UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

56 lines (52 loc) 2.82 kB
import * as i0 from '@angular/core'; import { inject, Directive } from '@angular/core'; import { TuiControl } from '@taiga-ui/cdk/classes'; import * as i2 from '@taiga-ui/cdk/directives/native-validator'; import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator'; import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous'; import { tuiAsOptionContent, tuiAsDataListHost } from '@taiga-ui/core/components/data-list'; import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers'; import * as i1 from '@taiga-ui/core/portals/dropdown'; import { TuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/portals/dropdown'; import { TuiSelectOption } from '@taiga-ui/kit/components/select'; class TuiButtonSelect extends TuiControl { constructor() { super(...arguments); this.open = inject(TuiDropdownOpen).open; 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: "19.2.21", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [ tuiAsOptionContent(TuiSelectOption), tuiAsDataListHost(TuiButtonSelect), tuiDropdownOptionsProvider({ align: 'end' }), ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiButtonSelect, decorators: [{ type: Directive, args: [{ selector: 'button[tuiButtonSelect]', providers: [ tuiAsOptionContent(TuiSelectOption), tuiAsDataListHost(TuiButtonSelect), tuiDropdownOptionsProvider({ align: 'end' }), ], hostDirectives: [TuiDropdownDirective, TuiNativeValidator, TuiWithDropdownOpen], }] }] }); /** * Generated bundle index. Do not edit. */ export { TuiButtonSelect }; //# sourceMappingURL=taiga-ui-kit-directives-button-select.mjs.map