{"version":3,"file":"taiga-ui-kit-components-data-list-wrapper.mjs","sources":["../../../projects/kit/components/data-list-wrapper/data-list-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.ts","../../../projects/kit/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    inject,\n    input,\n    output,\n    viewChild,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {\n    TuiDataList,\n    type TuiDataListAccessor,\n    TuiDataListComponent,\n    tuiInjectDataListSize,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {\n    TUI_ITEMS_HANDLERS,\n    type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n    selector: 'tui-data-list-wrapper:not([labels])',\n    imports: [PolymorpheusOutlet, TuiDataList, TuiLoader],\n    templateUrl: './data-list-wrapper.template.html',\n    styleUrl: './data-list-wrapper.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsAuxiliary(TuiDataListWrapperComponent)],\n})\nexport class TuiDataListWrapperComponent<T, K = T> implements TuiDataListAccessor<T> {\n    protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n    protected readonly datalist = viewChild(TuiDataListComponent<T>);\n\n    protected readonly content = computed<PolymorpheusContent<TuiContext<T>>>(\n        () =>\n            this.itemContent() ?? (({$implicit}) => this.handlers.stringify()($implicit)),\n    );\n\n    public readonly options = computed(() => this.datalist()?.options() ?? []);\n    public readonly items = input<readonly K[] | null>([]);\n    public readonly emptyContent = input<PolymorpheusContent>();\n    public readonly size = input(tuiInjectDataListSize());\n    public readonly itemContent = input<PolymorpheusContent<TuiContext<T>>>();\n    public readonly itemClick = output<T>();\n\n    protected $cast(items: readonly K[] | null): readonly T[] {\n        return items as unknown as readonly T[];\n    }\n}\n","@if (items()) {\n    <tui-data-list\n        [emptyContent]=\"emptyContent()\"\n        [size]=\"size()\"\n    >\n        @for (item of $cast(items()); track item) {\n            <button\n                tuiOption\n                type=\"button\"\n                [disabled]=\"handlers.disabledItemHandler()(item)\"\n                [value]=\"item\"\n                (click.capture)=\"itemClick.emit(item)\"\n            >\n                <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\">\n                    {{ text }}\n                </ng-container>\n            </button>\n        }\n    </tui-data-list>\n} @else {\n    <tui-loader class=\"t-loader\" />\n}\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {\n    TuiMultiSelect,\n    TuiMultiSelectGroupDirective,\n} from '@taiga-ui/kit/components/multi-select';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\n@Component({\n    selector: 'tui-data-list-wrapper[labels]',\n    imports: [PolymorpheusOutlet, TuiDataList, TuiLoader, TuiMultiSelect],\n    templateUrl: './data-list-group-wrapper.template.html',\n    styleUrl: './data-list-wrapper.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsAuxiliary(TuiDataListGroupWrapperComponent)],\n})\nexport class TuiDataListGroupWrapperComponent<T> extends TuiDataListWrapperComponent<\n    T,\n    readonly T[]\n> {\n    protected readonly multi = inject(TuiMultiSelectGroupDirective, {optional: true});\n    public readonly labels = input<readonly string[]>([]);\n}\n","@if (items()) {\n    <tui-data-list\n        [emptyContent]=\"emptyContent()\"\n        [size]=\"size()\"\n    >\n        @for (group of items(); track group) {\n            @if (!labels()[$index] && group.length) {\n                <hr />\n            }\n            @if (multi && group.length) {\n                <tui-opt-group\n                    tuiMultiSelectGroup\n                    [label]=\"labels()[$index] || ''\"\n                >\n                    @for (item of group; track $index) {\n                        <button\n                            tuiOption\n                            type=\"button\"\n                            [disabled]=\"handlers.disabledItemHandler()(item)\"\n                            [value]=\"item\"\n                            (click.capture)=\"itemClick.emit(item)\"\n                        >\n                            <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\">\n                                {{ text }}\n                            </ng-container>\n                        </button>\n                    }\n                </tui-opt-group>\n            } @else if (group.length) {\n                <tui-opt-group [label]=\"labels()[$index]\">\n                    @for (item of group; track item) {\n                        <button\n                            tuiOption\n                            type=\"button\"\n                            [disabled]=\"handlers.disabledItemHandler()(item)\"\n                            [value]=\"item\"\n                            (click.capture)=\"itemClick.emit(item)\"\n                        >\n                            <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: item}\">\n                                {{ text }}\n                            </ng-container>\n                        </button>\n                    }\n                </tui-opt-group>\n            }\n            @if (!labels()[$index] && group.length) {\n                <hr />\n            }\n        }\n    </tui-data-list>\n} @else {\n    <tui-loader class=\"t-loader\" />\n}\n","import {TuiDataListGroupWrapperComponent} from './data-list-group-wrapper.component';\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\nexport const TuiDataListWrapper = [\n    TuiDataListWrapperComponent,\n    TuiDataListGroupWrapperComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}