@taiga-ui/kit
Version:
Taiga UI Angular main components kit
54 lines • 8.97 kB
JavaScript
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
import { tuiDirectiveBinding, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
import { TuiDataListComponent, TuiOptionWithValue, } from '@taiga-ui/core/components/data-list';
import { TuiScrollIntoView } from '@taiga-ui/core/components/scrollbar';
import { TUI_ITEMS_HANDLERS, } from '@taiga-ui/core/directives/items-handlers';
import { TuiCheckbox, tuiCheckboxOptionsProvider } from '@taiga-ui/kit/components/checkbox';
import { tuiInjectValue } from '@taiga-ui/kit/utils';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/scrollbar";
class TuiSelectOption {
constructor() {
this.handlers = inject(TUI_ITEMS_HANDLERS);
this.value = tuiInjectValue();
this.datalist = inject(TuiDataListComponent);
this.option = inject(TuiOptionWithValue, {
optional: true,
});
this.selected = computed((controlValue = this.value(), optionValue = this.option?.value()) => tuiIsPresent(optionValue) &&
tuiIsPresent(controlValue) &&
this.handlers.identityMatcher()(controlValue, optionValue));
this.scrolled = tuiDirectiveBinding(TuiScrollIntoView, 'tuiScrollIntoView', this.selected);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectOption, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiSelectOption": "" }, properties: { "class._value": "option", "class._selected": "selected()", "attr.aria-selected": "selected()" } }, providers: [tuiCheckboxOptionsProvider({ appearance: () => 'action' })], hostDirectives: [{ directive: i1.TuiScrollIntoView }], ngImport: i0, template: `
<input
aria-hidden="true"
tuiCheckbox
type="checkbox"
class="t-check"
[checked]="selected()"
[size]="datalist.size === 'l' ? 'm' : 's'"
/>
`, isInline: true, styles: [":host._value>.t-check{order:100;margin-inline-start:auto;pointer-events:none}:host._value._selected~::ng-deep [tuiSelectOption]>.t-check:before{opacity:0}:host:not(._value)>.t-check,:host-context(tui-dropdown-mobile:not(._sheet))>.t-check{display:none}.t-check:before{inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "component", type: TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
export { TuiSelectOption };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectOption, decorators: [{
type: Component,
args: [{ standalone: true, imports: [TuiCheckbox], template: `
<input
aria-hidden="true"
tuiCheckbox
type="checkbox"
class="t-check"
[checked]="selected()"
[size]="datalist.size === 'l' ? 'm' : 's'"
/>
`, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiCheckboxOptionsProvider({ appearance: () => 'action' })], hostDirectives: [TuiScrollIntoView], host: {
tuiSelectOption: '',
'[class._value]': 'option',
'[class._selected]': 'selected()',
'[attr.aria-selected]': 'selected()',
}, styles: [":host._value>.t-check{order:100;margin-inline-start:auto;pointer-events:none}:host._value._selected~::ng-deep [tuiSelectOption]>.t-check:before{opacity:0}:host:not(._value)>.t-check,:host-context(tui-dropdown-mobile:not(._sheet))>.t-check{display:none}.t-check:before{inline-size:100%;block-size:100%}\n"] }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ3JCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUNILGtCQUFrQixHQUVyQixNQUFNLDBDQUEwQyxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUUsMEJBQTBCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQUVuRCxNQXdCYSxlQUFlO0lBeEI1QjtRQXlCcUIsYUFBUSxHQUF3QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxVQUFLLEdBQUcsY0FBYyxFQUFLLENBQUM7UUFFMUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxNQUFNLENBQXdCLGtCQUFrQixFQUFFO1lBQzFFLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVnQixhQUFRLEdBQUcsUUFBUSxDQUNsQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUNoRSxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQ2pFLENBQUM7UUFFaUIsYUFBUSxHQUFHLG1CQUFtQixDQUM3QyxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxRQUFRLENBQ2hCLENBQUM7S0FDTDsrR0FyQlksZUFBZTttR0FBZixlQUFlLDJOQVRiLENBQUMsMEJBQTBCLENBQUMsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxpRkFaM0Q7Ozs7Ozs7OztLQVNULHlYQVZTLFdBQVc7O1NBc0JaLGVBQWU7NEZBQWYsZUFBZTtrQkF4QjNCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsV0FBVyxDQUFDLFlBQ1o7Ozs7Ozs7OztLQVNULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxrQkFDckQsQ0FBQyxpQkFBaUIsQ0FBQyxRQUM3Qjt3QkFDRixlQUFlLEVBQUUsRUFBRTt3QkFDbkIsZ0JBQWdCLEVBQUUsUUFBUTt3QkFDMUIsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsc0JBQXNCLEVBQUUsWUFBWTtxQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEaXJlY3RpdmVCaW5kaW5nLCB0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1xuICAgIFR1aURhdGFMaXN0Q29tcG9uZW50LFxuICAgIFR1aU9wdGlvbldpdGhWYWx1ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlTY3JvbGxJbnRvVmlld30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHtcbiAgICBUVUlfSVRFTVNfSEFORExFUlMsXG4gICAgdHlwZSBUdWlJdGVtc0hhbmRsZXJzLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VHVpQ2hlY2tib3gsIHR1aUNoZWNrYm94T3B0aW9uc1Byb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvY2hlY2tib3gnO1xuaW1wb3J0IHt0dWlJbmplY3RWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1R1aUNoZWNrYm94XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICB0dWlDaGVja2JveFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jaGVja1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZCgpXCJcbiAgICAgICAgICAgIFtzaXplXT1cImRhdGFsaXN0LnNpemUgPT09ICdsJyA/ICdtJyA6ICdzJ1wiXG4gICAgICAgIC8+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3Qtb3B0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt0dWlDaGVja2JveE9wdGlvbnNQcm92aWRlcih7YXBwZWFyYW5jZTogKCkgPT4gJ2FjdGlvbid9KV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlTY3JvbGxJbnRvVmlld10sXG4gICAgaG9zdDoge1xuICAgICAgICB0dWlTZWxlY3RPcHRpb246ICcnLFxuICAgICAgICAnW2NsYXNzLl92YWx1ZV0nOiAnb3B0aW9uJyxcbiAgICAgICAgJ1tjbGFzcy5fc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2VsZWN0T3B0aW9uPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+ID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZSA9IHR1aUluamVjdFZhbHVlPFQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YWxpc3QgPSBpbmplY3QoVHVpRGF0YUxpc3RDb21wb25lbnQpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb24gPSBpbmplY3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PihUdWlPcHRpb25XaXRoVmFsdWUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZChcbiAgICAgICAgKGNvbnRyb2xWYWx1ZSA9IHRoaXMudmFsdWUoKSwgb3B0aW9uVmFsdWUgPSB0aGlzLm9wdGlvbj8udmFsdWUoKSkgPT5cbiAgICAgICAgICAgIHR1aUlzUHJlc2VudChvcHRpb25WYWx1ZSkgJiZcbiAgICAgICAgICAgIHR1aUlzUHJlc2VudChjb250cm9sVmFsdWUpICYmXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcigpKGNvbnRyb2xWYWx1ZSwgb3B0aW9uVmFsdWUpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsZWQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgJ3R1aVNjcm9sbEludG9WaWV3JyxcbiAgICAgICAgdGhpcy5zZWxlY3RlZCxcbiAgICApO1xufVxuIl19