UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

1 lines 8.66 kB
{"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":"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"}