UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

51 lines 8.72 kB
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()" } }, providers: [tuiCheckboxOptionsProvider({ appearance: () => 'action' })], hostDirectives: [{ directive: i1.TuiScrollIntoView }], ngImport: i0, template: ` <input 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 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()', }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ3JCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRW5ELE1Bc0JhLGVBQWU7SUF0QjVCO1FBdUJxQixhQUFRLEdBQXdCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNELFVBQUssR0FBRyxjQUFjLEVBQUssQ0FBQztRQUUxQixhQUFRLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLE1BQU0sQ0FBd0Isa0JBQWtCLEVBQUU7WUFDMUUsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRWdCLGFBQVEsR0FBRyxRQUFRLENBQ2xDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2hFLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDekIsWUFBWSxDQUFDLFlBQVksQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FDakUsQ0FBQztRQUVpQixhQUFRLEdBQUcsbUJBQW1CLENBQzdDLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FDaEIsQ0FBQztLQUNMOytHQXJCWSxlQUFlO21HQUFmLGVBQWUsdUxBUmIsQ0FBQywwQkFBMEIsQ0FBQyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLGlGQVgzRDs7Ozs7Ozs7S0FRVCx5WEFUUyxXQUFXOztTQW9CWixlQUFlOzRGQUFmLGVBQWU7a0JBdEIzQixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQyxZQUNaOzs7Ozs7OztLQVFULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxrQkFDckQsQ0FBQyxpQkFBaUIsQ0FBQyxRQUM3Qjt3QkFDRixlQUFlLEVBQUUsRUFBRTt3QkFDbkIsZ0JBQWdCLEVBQUUsUUFBUTt3QkFDMUIsbUJBQW1CLEVBQUUsWUFBWTtxQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEaXJlY3RpdmVCaW5kaW5nLCB0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1xuICAgIFR1aURhdGFMaXN0Q29tcG9uZW50LFxuICAgIFR1aU9wdGlvbldpdGhWYWx1ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlTY3JvbGxJbnRvVmlld30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHR5cGUge1R1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUdWlDaGVja2JveCwgdHVpQ2hlY2tib3hPcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQge3R1aUluamVjdFZhbHVlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVHVpQ2hlY2tib3hdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHVpQ2hlY2tib3hcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2hlY2tcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICBbc2l6ZV09XCJkYXRhbGlzdC5zaXplID09PSAnbCcgPyAnbScgOiAncydcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW9wdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQ2hlY2tib3hPcHRpb25zUHJvdmlkZXIoe2FwcGVhcmFuY2U6ICgpID0+ICdhY3Rpb24nfSldLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpU2Nyb2xsSW50b1ZpZXddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpU2VsZWN0T3B0aW9uOiAnJyxcbiAgICAgICAgJ1tjbGFzcy5fdmFsdWVdJzogJ29wdGlvbicsXG4gICAgICAgICdbY2xhc3MuX3NlbGVjdGVkXSc6ICdzZWxlY3RlZCgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RPcHRpb248VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlID0gdHVpSW5qZWN0VmFsdWU8VD4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRhbGlzdCA9IGluamVjdChUdWlEYXRhTGlzdENvbXBvbmVudCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbiA9IGluamVjdDxUdWlPcHRpb25XaXRoVmFsdWU8VD4+KFR1aU9wdGlvbldpdGhWYWx1ZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKFxuICAgICAgICAoY29udHJvbFZhbHVlID0gdGhpcy52YWx1ZSgpLCBvcHRpb25WYWx1ZSA9IHRoaXMub3B0aW9uPy52YWx1ZSgpKSA9PlxuICAgICAgICAgICAgdHVpSXNQcmVzZW50KG9wdGlvblZhbHVlKSAmJlxuICAgICAgICAgICAgdHVpSXNQcmVzZW50KGNvbnRyb2xWYWx1ZSkgJiZcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyKCkoY29udHJvbFZhbHVlLCBvcHRpb25WYWx1ZSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxlZCA9IHR1aURpcmVjdGl2ZUJpbmRpbmcoXG4gICAgICAgIFR1aVNjcm9sbEludG9WaWV3LFxuICAgICAgICAndHVpU2Nyb2xsSW50b1ZpZXcnLFxuICAgICAgICB0aGlzLnNlbGVjdGVkLFxuICAgICk7XG59XG4iXX0=