@taiga-ui/kit
Version:
Taiga UI Angular main components kit
57 lines • 7.71 kB
JavaScript
import { Directive, inject } from '@angular/core';
import { TuiControl } from '@taiga-ui/cdk/classes';
import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
import { tuiAsDataListHost, tuiAsOptionContent, } from '@taiga-ui/core/components/data-list';
import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
import { TuiDropdownDirective, tuiDropdownOpen, tuiDropdownOptionsProvider, TuiWithDropdownOpen, } from '@taiga-ui/core/directives/dropdown';
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
import { TuiSelectOption } from '@taiga-ui/kit/components/select';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/directives/dropdown";
import * as i2 from "@taiga-ui/cdk/directives/native-validator";
import * as i3 from "@taiga-ui/core/components/textfield";
class TuiButtonSelect extends TuiControl {
constructor() {
super(...arguments);
this.open = tuiDropdownOpen();
this.handlers = inject(TUI_ITEMS_HANDLERS);
this.size = 's';
}
handleOption(option) {
if (Array.isArray(this.control.value)) {
const result = tuiArrayToggle(this.control.value, option, this.handlers.identityMatcher());
this.onChange(result);
}
else {
this.onChange(option);
this.open.set(false);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
tuiAsOptionContent(TuiSelectOption),
tuiAsDataListHost(TuiButtonSelect),
tuiDropdownOptionsProvider({ align: 'right' }),
], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }, { directive: i3.TuiWithTextfieldDropdown }], ngImport: i0 }); }
}
export { TuiButtonSelect };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: 'button[tuiButtonSelect]',
providers: [
tuiAsOptionContent(TuiSelectOption),
tuiAsDataListHost(TuiButtonSelect),
tuiDropdownOptionsProvider({ align: 'right' }),
],
hostDirectives: [
TuiDropdownDirective,
TuiNativeValidator,
TuiWithDropdownOpen,
TuiWithTextfieldDropdown,
],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXNlbGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvZGlyZWN0aXZlcy9idXR0b24tc2VsZWN0L2J1dHRvbi1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUNILGlCQUFpQixFQUNqQixrQkFBa0IsR0FFckIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsbUJBQW1CLEdBQ3RCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQUVoRSxNQWVhLGVBQ1QsU0FBUSxVQUFtQjtJQWhCL0I7O1FBbUJxQixTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZDLFNBQUksR0FBRyxHQUFHLENBQUM7S0FnQjlCO0lBZFUsWUFBWSxDQUFDLE1BQVM7UUFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQVksRUFDekIsTUFBTSxFQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQ2xDLENBQUM7WUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzsrR0F0QlEsZUFBZTttR0FBZixlQUFlLHNFQVpiO1lBQ1Asa0JBQWtCLENBQUMsZUFBZSxDQUFDO1lBQ25DLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztZQUNsQywwQkFBMEIsQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQztTQUMvQzs7U0FRUSxlQUFlOzRGQUFmLGVBQWU7a0JBZjNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7d0JBQ25DLGlCQUFpQixpQkFBaUI7d0JBQ2xDLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDO3FCQUMvQztvQkFDRCxjQUFjLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlOYXRpdmVWYWxpZGF0b3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmltcG9ydCB7dHVpQXJyYXlUb2dnbGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1xuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIHR1aUFzT3B0aW9uQ29udGVudCxcbiAgICB0eXBlIFR1aURhdGFMaXN0SG9zdCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgdHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUdWlTZWxlY3RPcHRpb259IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW3R1aUJ1dHRvblNlbGVjdF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVHVpU2VsZWN0T3B0aW9uKSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpQnV0dG9uU2VsZWN0KSxcbiAgICAgICAgdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIoe2FsaWduOiAncmlnaHQnfSksXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpTmF0aXZlVmFsaWRhdG9yLFxuICAgICAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxuICAgICAgICBUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd24sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQnV0dG9uU2VsZWN0PFQ+XG4gICAgZXh0ZW5kcyBUdWlDb250cm9sPFQgfCBUW10+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXJzID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9ICdzJztcblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHR1aUFycmF5VG9nZ2xlKFxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZSBhcyBUW10sXG4gICAgICAgICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyKCksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG9wdGlvbik7XG4gICAgICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==