{"version":3,"file":"taiga-ui-kit-components-breadcrumbs.mjs","sources":["../../../projects/kit/components/breadcrumbs/breadcrumbs.options.ts","../../../projects/kit/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/kit/components/breadcrumbs/breadcrumbs.template.html","../../../projects/kit/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\n\nexport interface TuiBreadcrumbsOptions {\n    readonly icon: string;\n    readonly size: TuiSizeL;\n    readonly itemsLimit: number;\n}\n\nexport const TUI_BREADCRUMBS_DEFAULT_OPTIONS: TuiBreadcrumbsOptions = {\n    icon: '@tui.chevron-right',\n    size: 'm',\n    itemsLimit: 0,\n};\n\nexport const [TUI_BREADCRUMBS_OPTIONS, tuiBreadcrumbsOptionsProvider] = tuiCreateOptions(\n    TUI_BREADCRUMBS_DEFAULT_OPTIONS,\n);\n","import {NgTemplateOutlet} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    contentChildren,\n    inject,\n    input,\n    TemplateRef,\n} from '@angular/core';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {TuiDropdown} from '@taiga-ui/core/portals/dropdown';\nimport {tuiHintOptionsProvider} from '@taiga-ui/core/portals/hint';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiItemsWithMore} from '@taiga-ui/kit/components/items-with-more';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\n\nimport {TUI_BREADCRUMBS_OPTIONS, type TuiBreadcrumbsOptions} from './breadcrumbs.options';\n\n@Component({\n    selector: 'tui-breadcrumbs',\n    imports: [\n        NgTemplateOutlet,\n        TuiButton,\n        TuiDataList,\n        TuiDropdown,\n        TuiIcon,\n        TuiItemsWithMore,\n    ],\n    templateUrl: './breadcrumbs.template.html',\n    styleUrl: './breadcrumbs.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        tuiLinkOptionsProvider({appearance: 'action-grayscale'}),\n        tuiHintOptionsProvider({direction: 'bottom'}),\n    ],\n    host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiBreadcrumbs {\n    protected readonly items = contentChildren(TuiItem, {read: TemplateRef});\n    protected readonly options = inject(TUI_BREADCRUMBS_OPTIONS);\n    protected readonly icons = inject(TUI_COMMON_ICONS);\n    protected readonly more = inject(TUI_MORE_WORD);\n    public readonly size = input<TuiBreadcrumbsOptions['size']>(this.options.size);\n    public readonly itemsLimit = input(this.options.itemsLimit);\n    protected readonly offset = computed(() => (this.itemsLimit() === 2 ? 1 : 0));\n}\n","@if (itemsLimit() > 1) {\n    @if (itemsLimit() !== 2) {\n        <ng-container [ngTemplateOutlet]=\"items()[0] || null\" />\n        <ng-container [ngTemplateOutlet]=\"separator\" />\n    }\n    <tui-items-with-more\n        side=\"start\"\n        [itemsLimit]=\"itemsLimit() - 2\"\n        [required]=\"items().length + offset() - 2\"\n    >\n        @for (item of items(); track item) {\n            @if (item !== items()[0] || itemsLimit() === 2) {\n                <ng-container *tuiItem>\n                    <ng-container [ngTemplateOutlet]=\"item\" />\n                    @if (!$last) {\n                        <ng-container [ngTemplateOutlet]=\"separator\" />\n                    }\n                </ng-container>\n            }\n        }\n        <ng-template\n            let-index\n            tuiMore\n        >\n            <span class=\"t-more\">\n                <button\n                    appearance=\"flat\"\n                    size=\"xs\"\n                    tuiDropdownAuto\n                    tuiIconButton\n                    type=\"button\"\n                    [iconStart]=\"icons.ellipsis\"\n                    [tuiDropdown]=\"dropdown\"\n                >\n                    {{ more() }}\n                </button>\n                <ng-container [ngTemplateOutlet]=\"separator\" />\n            </span>\n            <ng-template #dropdown>\n                <tui-data-list size=\"s\">\n                    @for (item of items(); track item) {\n                        @if ($index + offset() && $index <= index && item !== items()[items().length - 1]) {\n                            <span\n                                tuiOption\n                                class=\"t-option\"\n                            >\n                                <ng-container [ngTemplateOutlet]=\"item\" />\n                            </span>\n                        }\n                    }\n                </tui-data-list>\n            </ng-template>\n        </ng-template>\n    </tui-items-with-more>\n} @else {\n    @for (item of items(); track item) {\n        <ng-container [ngTemplateOutlet]=\"item\" />\n        @if (!$last) {\n            <ng-container [ngTemplateOutlet]=\"separator\" />\n        }\n    }\n}\n<ng-template #separator>\n    @if (options.icon.length > 1) {\n        <tui-icon\n            class=\"t-icon\"\n            [icon]=\"options.icon\"\n        />\n    } @else {\n        <span class=\"t-char\">{{ options.icon }}</span>\n    }\n</ng-template>\n\n<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AASO,MAAM,+BAA+B,GAA0B;AAClE,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,UAAU,EAAE,CAAC;;AAGV,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,GAAG,gBAAgB,CACpF,+BAA+B;;MC0BtB,cAAc,CAAA;AAnB3B,IAAA,WAAA,GAAA;QAoBuB,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;AACrD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;QAC/B,IAAA,CAAA,IAAI,GAAG,KAAK,CAAgC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9D,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACxC,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,IAAA;+GARY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EANZ;AACP,YAAA,sBAAsB,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAC,CAAC;AACxD,YAAA,sBAAsB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC;SAChD,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAI0C,OAAO,EAAA,IAAA,EAAS,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3C1E,89EA0EA,unBDhDQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,oGAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGT,OAAO,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAYF,cAAc,EAAA,UAAA,EAAA,CAAA;kBAnB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB;wBACL,gBAAgB;wBAChB,SAAS;wBACT,WAAW;wBACX,WAAW;wBACX,OAAO;wBACP,gBAAgB;qBACnB,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA,sBAAsB,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAC,CAAC;AACxD,wBAAA,sBAAsB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC;AAChD,qBAAA,EAAA,IAAA,EACK,EAAC,kBAAkB,EAAE,QAAQ,EAAC,EAAA,QAAA,EAAA,89EAAA,EAAA,MAAA,EAAA,CAAA,+jBAAA,CAAA,EAAA;;;AExCxC;;AAEG;;;;"}