@taiga-ui/kit
Version:
Taiga UI Angular main components kit
37 lines • 8.01 kB
JavaScript
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
import { tuiDirectiveBinding, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
import { TuiOptionWithValue } from '@taiga-ui/core/components/data-list';
import { TuiScrollIntoView } from '@taiga-ui/core/components/scrollbar';
import { TuiIcons } from '@taiga-ui/core/directives/icons';
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
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.option = inject(TuiOptionWithValue, {
optional: true,
});
this.icon = this.option &&
tuiDirectiveBinding(TuiIcons, 'iconEnd', inject(TUI_COMMON_ICONS).check, {});
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()" } }, hostDirectives: [{ directive: i1.TuiScrollIntoView }], ngImport: i0, template: '', isInline: true, styles: [":host._value:after{color:var(--tui-text-action);opacity:0}:host-context(tui-data-list[data-size=\"s\"]) :host._value:after{margin-inline-end:-.625rem}:host-context(tui-data-list[data-size=\"m\"]) :host._value:after,:host-context(tui-data-list[data-size=\"l\"]) :host._value:after{margin-inline-end:-.5rem}:host-context(tui-data-list[data-size=\"l\"]) :host._value:after{font-size:1.5rem}:host._value._selected:after{opacity:1}:host._value._selected~::ng-deep [tuiSelectOption]:after{opacity:0}\n"], 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, template: '', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiScrollIntoView], host: {
tuiSelectOption: '',
'[class._value]': 'option',
'[class._selected]': 'selected()',
}, styles: [":host._value:after{color:var(--tui-text-action);opacity:0}:host-context(tui-data-list[data-size=\"s\"]) :host._value:after{margin-inline-end:-.625rem}:host-context(tui-data-list[data-size=\"m\"]) :host._value:after,:host-context(tui-data-list[data-size=\"l\"]) :host._value:after{margin-inline-end:-.5rem}:host-context(tui-data-list[data-size=\"l\"]) :host._value:after{font-size:1.5rem}:host._value._selected:after{opacity:1}:host._value._selected~::ng-deep [tuiSelectOption]:after{opacity:0}\n"] }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQUVuRCxNQVlhLGVBQWU7SUFaNUI7UUFhcUIsYUFBUSxHQUF3QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxVQUFLLEdBQUcsY0FBYyxFQUFLLENBQUM7UUFFMUIsV0FBTSxHQUFHLE1BQU0sQ0FBd0Isa0JBQWtCLEVBQUU7WUFDMUUsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRWdCLFNBQUksR0FDbkIsSUFBSSxDQUFDLE1BQU07WUFDWCxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RCxhQUFRLEdBQUcsUUFBUSxDQUNsQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUNoRSxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQ2pFLENBQUM7UUFFaUIsYUFBUSxHQUFHLG1CQUFtQixDQUM3QyxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxRQUFRLENBQ2hCLENBQUM7S0FDTDsrR0F4QlksZUFBZTttR0FBZixlQUFlLDJQQVZkLEVBQUU7O1NBVUgsZUFBZTs0RkFBZixlQUFlO2tCQVozQixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsaUJBQWlCLENBQUMsUUFDN0I7d0JBQ0YsZUFBZSxFQUFFLEVBQUU7d0JBQ25CLGdCQUFnQixFQUFFLFFBQVE7d0JBQzFCLG1CQUFtQixFQUFFLFlBQVk7cUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpRGlyZWN0aXZlQmluZGluZywgdHVpSXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUdWlPcHRpb25XaXRoVmFsdWV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpU2Nyb2xsSW50b1ZpZXd9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvc2Nyb2xsYmFyJztcbmltcG9ydCB7VHVpSWNvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaWNvbnMnO1xuaW1wb3J0IHR5cGUge1R1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUVUlfQ09NTU9OX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1vcHRpb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpU2Nyb2xsSW50b1ZpZXddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpU2VsZWN0T3B0aW9uOiAnJyxcbiAgICAgICAgJ1tjbGFzcy5fdmFsdWVdJzogJ29wdGlvbicsXG4gICAgICAgICdbY2xhc3MuX3NlbGVjdGVkXSc6ICdzZWxlY3RlZCgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RPcHRpb248VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlID0gdHVpSW5qZWN0VmFsdWU8VD4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb24gPSBpbmplY3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PihUdWlPcHRpb25XaXRoVmFsdWUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbiA9XG4gICAgICAgIHRoaXMub3B0aW9uICYmXG4gICAgICAgIHR1aURpcmVjdGl2ZUJpbmRpbmcoVHVpSWNvbnMsICdpY29uRW5kJywgaW5qZWN0KFRVSV9DT01NT05fSUNPTlMpLmNoZWNrLCB7fSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZChcbiAgICAgICAgKGNvbnRyb2xWYWx1ZSA9IHRoaXMudmFsdWUoKSwgb3B0aW9uVmFsdWUgPSB0aGlzLm9wdGlvbj8udmFsdWUoKSkgPT5cbiAgICAgICAgICAgIHR1aUlzUHJlc2VudChvcHRpb25WYWx1ZSkgJiZcbiAgICAgICAgICAgIHR1aUlzUHJlc2VudChjb250cm9sVmFsdWUpICYmXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcigpKGNvbnRyb2xWYWx1ZSwgb3B0aW9uVmFsdWUpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsZWQgPSB0dWlEaXJlY3RpdmVCaW5kaW5nKFxuICAgICAgICBUdWlTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgJ3R1aVNjcm9sbEludG9WaWV3JyxcbiAgICAgICAgdGhpcy5zZWxlY3RlZCxcbiAgICApO1xufVxuIl19