@ember-eui/core 16.1.1 → 16.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -24,9 +24,11 @@ export type EuiBreadcrumbPopoverContentArgs = {
|
|
|
24
24
|
export type EuiBreadcrumbPopoverProps = Omit<EuiPopoverArgs, 'button' | 'closePopover' | 'isOpen' | 'buttonRef' | 'insert'>;
|
|
25
25
|
export type EuiBreadcrumb = {
|
|
26
26
|
/**
|
|
27
|
-
* Visible label of the breadcrumb
|
|
27
|
+
* Visible label of the breadcrumb: a string, or a component (curried),
|
|
28
|
+
* rendered in its place. With `popoverContent`, the button's tooltip
|
|
29
|
+
* shows it too.
|
|
28
30
|
*/
|
|
29
|
-
text: string
|
|
31
|
+
text: string | ComponentLike<any>;
|
|
30
32
|
/**
|
|
31
33
|
* Makes the breadcrumb a link.
|
|
32
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/components/eui-breadcrumbs.gts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eui-breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/components/eui-breadcrumbs.gts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
|
6
6
|
import { throttle } from '@ember/runloop';
|
|
7
7
|
import { service } from '@ember/service';
|
|
8
8
|
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
9
|
+
import EuiRenderNodeView from '../-private/eui-render-node.js';
|
|
9
10
|
import onWindowResize from '../-private/window-resize.js';
|
|
10
11
|
import useState from '../helpers/use-state.js';
|
|
11
12
|
import { getBreakpoint } from '../utils/breakpoint.js';
|
|
@@ -332,7 +333,7 @@ class BreadcrumbItem extends Component {
|
|
|
332
333
|
n(this.prototype, "popoverCss", [cached]);
|
|
333
334
|
}
|
|
334
335
|
static {
|
|
335
|
-
setComponentTemplate(precompileTemplate("{{#if this.isPopover}}\n {{#let (useState false) this.breadcrumb.popoverProps as |popover props|}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiPopover @css={{this.popoverCss}} @isOpen={{popover.value}} @closePopover={{fn popover.setState false}} @anchorPosition={{props.anchorPosition}} @anchorClassName={{props.anchorClassName}} @panelPaddingSize={{props.panelPaddingSize}} @panelClassName={{props.panelClassName}} @panelStyle={{props.panelStyle}} @panelCss={{props.panelCss}} @rootCss={{props.rootCss}} @ownFocus={{props.ownFocus}} @display={{props.display}} @hasArrow={{props.hasArrow}} @initialFocus={{props.initialFocus}} @ariaLabel={{props.ariaLabel}} @ariaLabelledBy={{props.ariaLabelledBy}} @repositionOnScroll={{props.repositionOnScroll}} @repositionToCrossAxis={{props.repositionToCrossAxis}} @popoverScreenReaderText={{props.popoverScreenReaderText}} @attachToAnchor={{props.attachToAnchor}} @container={{props.container}} @zIndex={{props.zIndex}} @offset={{props.offset}} @buffer={{props.buffer}} @shouldSelfFocus={{props.shouldSelfFocus}} @isFocusTrapPaused={{props.isFocusTrapPaused}} @focusTrapOptions={{props.focusTrapOptions}} @popoverRef={{props.popoverRef}} @panelRef={{props.panelRef}} @portalRef={{props.portalRef}} @onTrapDeactivation={{props.onTrapDeactivation}}>\n <:button>\n {{#if this.isCollapsed}}\n <EuiLink class={{this.contentClassNames}} @css={{this.contentStyles}} @color=\"subdued\" aria-label={{@collapsedLabel}} title={{@collapsedLabel}} {{on \"click\" (fn popover.setState (if popover.value false true))}}>\n <span class={{this.truncationClass}}>…</span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" />\n </EuiLink>\n {{else if this.breadcrumb.text}}\n {{!-- Upstream wraps the button in a tooltip with its text. --}}\n <EuiToolTip @content={{this.breadcrumb.text}}
|
|
336
|
+
setComponentTemplate(precompileTemplate("{{#if this.isPopover}}\n {{#let (useState false) this.breadcrumb.popoverProps as |popover props|}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiPopover @css={{this.popoverCss}} @isOpen={{popover.value}} @closePopover={{fn popover.setState false}} @anchorPosition={{props.anchorPosition}} @anchorClassName={{props.anchorClassName}} @panelPaddingSize={{props.panelPaddingSize}} @panelClassName={{props.panelClassName}} @panelStyle={{props.panelStyle}} @panelCss={{props.panelCss}} @rootCss={{props.rootCss}} @ownFocus={{props.ownFocus}} @display={{props.display}} @hasArrow={{props.hasArrow}} @initialFocus={{props.initialFocus}} @ariaLabel={{props.ariaLabel}} @ariaLabelledBy={{props.ariaLabelledBy}} @repositionOnScroll={{props.repositionOnScroll}} @repositionToCrossAxis={{props.repositionToCrossAxis}} @popoverScreenReaderText={{props.popoverScreenReaderText}} @attachToAnchor={{props.attachToAnchor}} @container={{props.container}} @zIndex={{props.zIndex}} @offset={{props.offset}} @buffer={{props.buffer}} @shouldSelfFocus={{props.shouldSelfFocus}} @isFocusTrapPaused={{props.isFocusTrapPaused}} @focusTrapOptions={{props.focusTrapOptions}} @popoverRef={{props.popoverRef}} @panelRef={{props.panelRef}} @portalRef={{props.portalRef}} @onTrapDeactivation={{props.onTrapDeactivation}}>\n <:button>\n {{#if this.isCollapsed}}\n <EuiLink class={{this.contentClassNames}} @css={{this.contentStyles}} @color=\"subdued\" aria-label={{@collapsedLabel}} title={{@collapsedLabel}} {{on \"click\" (fn popover.setState (if popover.value false true))}}>\n <span class={{this.truncationClass}}>…</span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" />\n </EuiLink>\n {{else if this.breadcrumb.text}}\n {{!-- Upstream wraps the button in a tooltip with its text. --}}\n <EuiToolTip @disableScreenReaderOutput={{true}}>\n <:content><EuiRenderNode @value={{this.breadcrumb.text}} /></:content>\n <:anchor>\n <EuiLink class={{this.contentClassNames}} @css={{this.contentStyles}} @color={{this.linkColor}} aria-current={{this.ariaCurrent}} {{on \"click\" (fn popover.setState (if popover.value false true))}}>\n <span class={{this.truncationClass}}><EuiRenderNode @value={{this.breadcrumb.text}} /></span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" aria-label={{this.popoverAriaLabel}} />\n </EuiLink>\n </:anchor>\n </EuiToolTip>\n {{else}}\n <EuiLink class={{this.contentClassNames}} @css={{this.contentStyles}} @color={{this.linkColor}} aria-current={{this.ariaCurrent}} {{on \"click\" (fn popover.setState (if popover.value false true))}}>\n <span class={{this.truncationClass}}></span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" aria-label={{this.popoverAriaLabel}} />\n </EuiLink>\n {{/if}}\n </:button>\n <:content>\n {{#if this.overflow}}\n <EuiBreadcrumbs @breadcrumbs={{this.overflow}} @lastBreadcrumbIsCurrentPage={{false}} @responsive={{false}} @truncate={{false}} @max={{0}}>\n <:popoverContent as |breadcrumb closePopover|>\n {{yield breadcrumb closePopover to=\"popoverContent\"}}\n </:popoverContent>\n </EuiBreadcrumbs>\n {{else if this.popoverText}}\n {{this.popoverText}}\n {{else if this.popoverComponent}}\n {{#let this.popoverComponent as |Content|}}\n <Content @closePopover={{fn popover.setState false}} @breadcrumb={{this.popoverBreadcrumb}} />\n {{/let}}\n {{else}}\n {{yield this.popoverBreadcrumb (fn popover.setState false) to=\"popoverContent\"}}\n {{/if}}\n </:content>\n </EuiPopover>\n </li>\n {{/let}}\n{{else if this.breadcrumb}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#if this.isInteractive}}\n <EuiLink {{didInsert setInnerTextRef}} @color={{this.linkColor}} @href={{this.breadcrumb.href}} @rel={{this.breadcrumb.rel}} title={{if innerText innerText}} class={{this.contentClassNames}} @css={{this.contentStyles}} aria-current={{this.ariaCurrent}} {{on \"click\" (optional this.breadcrumb.onClick)}}>\n <EuiRenderNode @value={{this.breadcrumb.text}} />\n </EuiLink>\n {{else}}\n <span {{didInsert setInnerTextRef}} title={{if innerText innerText}} class={{this.contentClass}} aria-current={{this.ariaCurrent}}>\n <EuiRenderNode @value={{this.breadcrumb.text}} />\n </span>\n {{/if}}\n </EuiInnerText>\n </li>\n{{/if}}", {
|
|
336
337
|
strictMode: true,
|
|
337
338
|
scope: () => ({
|
|
338
339
|
useState,
|
|
@@ -342,6 +343,7 @@ class BreadcrumbItem extends Component {
|
|
|
342
343
|
on,
|
|
343
344
|
EuiIcon,
|
|
344
345
|
EuiToolTip,
|
|
346
|
+
EuiRenderNode: EuiRenderNodeView,
|
|
345
347
|
EuiBreadcrumbs,
|
|
346
348
|
EuiInnerText: EuiImage$1,
|
|
347
349
|
didInsert,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-breadcrumbs.js","sources":["../../src/components/eui-breadcrumbs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { throttle } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport onWindowResize from '../-private/window-resize.ts';\nimport useState from '../helpers/use-state.ts';\nimport { getBreakpoint } from '../utils/breakpoint.ts';\nimport { getEuiThemeContext } from '../utils/emotion/consume.ts';\nimport { euiClass, useEuiBorealisStyles } from '../utils/eui/styles.ts';\nimport type { EuiCss } from '../utils/eui/styles.ts';\nimport {\n euiBreadcrumbContentStyles,\n euiBreadcrumbPopoverStyles,\n euiBreadcrumbsListStyles,\n euiBreadcrumbStyles\n} from '../utils/eui/styles.generated.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiInnerText from './eui-inner-text.gts';\nimport EuiLink from './eui-link.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type { ComponentLike } from '@glint/template';\nimport type { EuiPopoverArgs } from './eui-popover.gts';\nimport type EuiI18nService from '../services/eui-i18n.ts';\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { CSSInterpolation } from '@emotion/css/create-instance';\n\nexport type EuiBreadcrumbResponsiveMaxCount = {\n /**\n * Any of the following keys are allowed: `'xs' | 's' | 'm' | 'l' | 'xl'`\n * Omitting a key will display all breadcrumbs at that breakpoint\n */\n [key in EuiBreakpointSize]?: number;\n};\n\nconst responsiveDefault: EuiBreadcrumbResponsiveMaxCount = {\n xs: 1,\n s: 2,\n m: 4\n};\n\n/**\n * Args the `popoverContent` component receives.\n */\nexport type EuiBreadcrumbPopoverContentArgs = {\n /** Closes the breadcrumb's popover. */\n closePopover: () => void;\n /** The breadcrumb the popover belongs to. */\n breadcrumb: EuiBreadcrumb;\n};\n\n/**\n * `EuiPopover` args accepted by a breadcrumb's `popoverProps`: everything\n * except the ones that control its state, which `EuiBreadcrumbs` owns.\n */\nexport type EuiBreadcrumbPopoverProps = Omit<\n EuiPopoverArgs,\n 'button' | 'closePopover' | 'isOpen' | 'buttonRef' | 'insert'\n>;\n\nexport type EuiBreadcrumb = {\n /**\n * Visible label of the breadcrumb\n */\n text: string;\n /**\n * Makes the breadcrumb a link.\n */\n href?: string;\n /** `rel` of a link breadcrumb (`noreferrer` is always added). */\n rel?: string;\n /**\n * Makes the breadcrumb clickable, e.g. to transition with the router.\n */\n onClick?: (e: MouseEvent) => void;\n\n /**\n * Class for the breadcrumb's text element.\n */\n className?: string;\n /**\n * Overrides `@truncate` for this breadcrumb: `true` limits its text to\n * 160px with an ellipsis, `false` never truncates it.\n */\n truncate?: boolean;\n\n /**\n * `EuiLink` color of a clickable breadcrumb. Defaults to `'subdued'`\n * (upstream; it used to be `'text'` for the last one).\n */\n color?: string;\n\n /**\n * Makes the breadcrumb a button that toggles a popover (with a\n * `chevronSingleDown` icon). A string is shown as text. A component\n * is rendered inside the popover with `@closePopover` and `@breadcrumb`.\n * `true` renders the `<:popoverContent as |breadcrumb closePopover|>` block\n * of `EuiBreadcrumbs`. `href` and `onClick` are ignored.\n */\n popoverContent?:\n | string\n | true\n | ComponentLike<{ Args: EuiBreadcrumbPopoverContentArgs }>;\n /**\n * `EuiPopover` args for the popover (e.g. `{ panelPaddingSize: 'none' }`),\n * except the ones controlling its state.\n */\n popoverProps?: EuiBreadcrumbPopoverProps;\n\n /** @deprecated Ignored. It used to mark the internal \"…\" item. */\n ellipsis?: boolean;\n\n /**\n * @deprecated Ignored. The last breadcrumb gets `aria-current=\"page\"`;\n * see `@lastBreadcrumbIsCurrentPage`.\n */\n 'aria-current'?: string;\n};\n\nexport type EuiBreadcrumbsType = 'page' | 'application';\n\ntype Item = {\n breadcrumb?: EuiBreadcrumb;\n overflow?: EuiBreadcrumb[];\n isFirst: boolean;\n isLast: boolean;\n isOnly: boolean;\n};\n\nconst LIST_RESET = {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n listStyle: 'none'\n} as const;\nconst ITEM_RESET = { boxSizing: 'border-box', margin: 0, padding: 0 } as const;\n\n/**\n * Upstream `limitBreadcrumbs`: keeps `max` breadcrumbs (biased to the end)\n * and collapses the rest into one item.\n */\nfunction limitBreadcrumbs(breadcrumbs: EuiBreadcrumb[], max: number) {\n const atStart: EuiBreadcrumb[] = [];\n const atEnd: EuiBreadcrumb[] = [];\n const limit = Math.min(max, breadcrumbs.length);\n const start = Math.floor(limit / 2);\n const overflow = breadcrumbs.slice(start, start + breadcrumbs.length - limit);\n\n for (let i = 0; i < limit; i++) {\n const isEven = i % 2 === 0;\n const normalizedIndex = Math.floor(i * 0.5);\n const index = isEven\n ? breadcrumbs.length - 1 - normalizedIndex\n : normalizedIndex;\n const breadcrumb = breadcrumbs[index]!;\n\n if (isEven) {\n atEnd.unshift(breadcrumb);\n } else {\n atStart.push(breadcrumb);\n }\n }\n\n return [\n ...atStart.map((breadcrumb) => ({ breadcrumb })),\n { overflow },\n ...atEnd.map((breadcrumb) => ({ breadcrumb }))\n ];\n}\n\ninterface EuiBreadcrumbsComponentArgs {\n /**\n * Shows fewer breadcrumbs on smaller screens, collapsing the ones in the\n * middle into a \"…\" popover. `true` uses `{ xs: 1, s: 2, m: 4 }` (at most\n * 1 breadcrumb on extra small screens, 2 on small, 4 on medium); pass an\n * object with any of the `xs`, `s`, `m`, `l`, `xl` keys for your own\n * limits (a missing key falls back to `@max`). Never shows more than\n * `@max`. Defaults to `true`, as upstream; `false` turns it off.\n */\n responsive?: boolean | EuiBreadcrumbResponsiveMaxCount;\n\n /**\n * Forces all breadcrumbs to a single line and truncates each breadcrumb\n * to 160px, except the last one, which fills the remaining space.\n * Defaults to `true`.\n */\n truncate?: boolean;\n\n /**\n * Collapses the breadcrumbs in the middle past this number into a single\n * \"…\" item that opens a popover with them. Defaults to `5`; pass `0` or\n * `null` to always show all breadcrumbs.\n */\n max?: number | null;\n\n /**\n * `'page'` (default) separates breadcrumbs with slashes; `'application'`\n * renders them as connected arrow-shaped chips, for the top of an app.\n */\n type?: EuiBreadcrumbsType;\n\n /**\n * Extra styles composed last into this component's class (like upstream's\n * `css` prop). Prefer this to an extra class when styling it from a parent.\n */\n css?: EuiCss;\n\n /**\n * Marks the last breadcrumb as the current page (`aria-current=\"page\"`).\n * Defaults to `true`.\n */\n lastBreadcrumbIsCurrentPage?: boolean;\n\n /**\n * The breadcrumbs, from the root to the current page:\n * `[{ text: 'Home', href: '/' }, { text: 'Users', onClick: … }, { text: 'Jane' }]`.\n */\n breadcrumbs: EuiBreadcrumb[];\n}\n\n/**\n * A `<nav aria-label=\"Breadcrumbs\">` trail of links to the current page.\n */\nexport interface EuiBreadcrumbsSignature {\n Element: HTMLElement;\n Args: EuiBreadcrumbsComponentArgs;\n Blocks: {\n default: [];\n /**\n * Content of the popover of every breadcrumb with `popoverContent: true`;\n * yields the breadcrumb and a `closePopover` function.\n */\n popoverContent: [breadcrumb: EuiBreadcrumb, closePopover: () => void];\n };\n}\n\nexport default class EuiBreadcrumbs extends Component<EuiBreadcrumbsSignature> {\n @service declare euiI18n: EuiI18nService;\n @tracked currentBreakpoint: EuiBreakpointSize | undefined;\n\n constructor(owner: Owner, args: EuiBreadcrumbsComponentArgs) {\n super(owner, args);\n this.currentBreakpoint = getBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth\n );\n }\n\n updateBreakpoint = () => {\n const breakpoint = getBreakpoint(window.innerWidth);\n if (breakpoint !== this.currentBreakpoint) {\n this.currentBreakpoint = breakpoint;\n }\n };\n\n onResize = () => {\n throttle(this, this.updateBreakpoint, 50);\n };\n\n get ariaLabel(): string {\n return this.euiI18n.lookupToken('euiBreadcrumbs.nav.ariaLabel', 'Breadcrumbs');\n }\n\n get collapsedLabel(): string {\n return this.euiI18n.lookupToken(\n 'euiBreadcrumb.collapsedBadge.ariaLabel',\n 'See collapsed breadcrumbs'\n );\n }\n\n get type(): EuiBreadcrumbsType {\n return this.args.type ?? 'page';\n }\n\n get lastBreadcrumbIsCurrentPage(): boolean {\n return this.args.lastBreadcrumbIsCurrentPage ?? true;\n }\n\n get truncate(): boolean {\n return this.args.truncate ?? true;\n }\n\n get max(): number | null {\n return this.args.max === null ? null : (this.args.max ?? 5);\n }\n\n /** Upstream `useResponsiveMax`. */\n get responsiveMax(): number | null {\n const responsive = this.args.responsive ?? true;\n const responsiveObject =\n typeof responsive === 'object' ? responsive : responsiveDefault;\n const max = this.max;\n let responsiveMax = max;\n const breakpoint = this.currentBreakpoint;\n\n if (responsive && breakpoint && responsiveObject[breakpoint]) {\n responsiveMax = responsiveObject[breakpoint]!;\n }\n\n if (max && responsiveMax) {\n responsiveMax = max < responsiveMax ? max : responsiveMax;\n }\n\n return responsiveMax;\n }\n\n @cached\n get classes(): string {\n if (!this.args.css) return 'euiBreadcrumbs';\n return `euiBreadcrumbs ${euiClass(getEuiThemeContext(this), this.args.css)}`;\n }\n\n @cached\n get listClasses(): string {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbsListStyles);\n return `euiBreadcrumbs__list ${euiClass(\n context,\n // Scoped stand-in for React's global list reset.\n LIST_RESET,\n styles.euiBreadcrumbs__list,\n this.truncate && styles.isTruncated\n )}`;\n }\n\n @cached\n get items(): Item[] {\n const { breadcrumbs } = this.args;\n const max = this.responsiveMax;\n const visible: { breadcrumb?: EuiBreadcrumb; overflow?: EuiBreadcrumb[] }[] =\n max && breadcrumbs.length > max\n ? limitBreadcrumbs(breadcrumbs, max)\n : breadcrumbs.map((breadcrumb) => ({ breadcrumb }));\n\n return visible.map(({ breadcrumb, overflow }, index) => ({\n breadcrumb,\n overflow,\n isFirst: index === 0,\n isLast: index === visible.length - 1,\n isOnly: visible.length === 1\n }));\n }\n\n <template>\n <nav\n aria-label={{this.ariaLabel}}\n class={{this.classes}}\n {{onWindowResize this.onResize}}\n ...attributes\n >\n <ol class={{this.listClasses}}>\n {{#each this.items as |item|}}\n <BreadcrumbItem\n @item={{item}}\n @type={{this.type}}\n @truncate={{this.truncate}}\n @lastBreadcrumbIsCurrentPage={{this.lastBreadcrumbIsCurrentPage}}\n @collapsedLabel={{this.collapsedLabel}}\n >\n <:popoverContent as |breadcrumb closePopover|>\n {{yield breadcrumb closePopover to=\"popoverContent\"}}\n </:popoverContent>\n </BreadcrumbItem>\n {{/each}}\n </ol>\n </nav>\n </template>\n}\n\ninterface BreadcrumbItemSignature {\n Args: {\n item: Item;\n type: EuiBreadcrumbsType;\n truncate: boolean;\n lastBreadcrumbIsCurrentPage: boolean;\n collapsedLabel: string;\n };\n Blocks: {\n popoverContent: [breadcrumb: EuiBreadcrumb, closePopover: () => void];\n };\n}\n\n/**\n * One breadcrumb (or the collapsed \"…\" item). Its link styles go through\n * EuiLink's `@css`, composed last into the link's own class (like upstream\n * `css`).\n */\nclass BreadcrumbItem extends Component<BreadcrumbItemSignature> {\n @service declare euiI18n: EuiI18nService;\n\n get isCollapsed(): boolean {\n return Boolean(this.args.item.overflow);\n }\n\n get breadcrumb(): EuiBreadcrumb | undefined {\n return this.args.item.breadcrumb;\n }\n\n get itemTruncate(): boolean {\n return this.isCollapsed\n ? this.args.truncate\n : (this.breadcrumb!.truncate ?? this.args.truncate);\n }\n\n get truncateLast(): boolean {\n return (\n !this.isCollapsed &&\n this.args.item.isLast &&\n this.args.truncate &&\n this.breadcrumb!.truncate == null\n );\n }\n\n /** The breadcrumb of a popover item (never the \"…\" item). */\n get popoverBreadcrumb(): EuiBreadcrumb {\n return this.breadcrumb!;\n }\n\n get overflow(): EuiBreadcrumb[] | undefined {\n return this.args.item.overflow;\n }\n\n /** `popoverContent` given as a string. */\n get popoverText(): string | undefined {\n const content = this.breadcrumb?.popoverContent;\n return typeof content === 'string' ? content : undefined;\n }\n\n /** `popoverContent` given as a component. */\n get popoverComponent():\n | ComponentLike<{ Args: EuiBreadcrumbPopoverContentArgs }>\n | undefined {\n const content = this.breadcrumb?.popoverContent;\n return typeof content === 'string' || content === true\n ? undefined\n : content;\n }\n\n /** A breadcrumb that toggles a popover (it ignores `href`/`onClick`). */\n get hasPopover(): boolean {\n return !this.isCollapsed && Boolean(this.breadcrumb!.popoverContent);\n }\n\n /** The \"…\" item or a breadcrumb with `popoverContent`. */\n get isPopover(): boolean {\n return this.isCollapsed || this.hasPopover;\n }\n\n get popoverAriaLabel(): string {\n return ` - ${this.euiI18n.lookupToken(\n 'euiBreadcrumb.popoverAriaLabel',\n 'Clicking this button will toggle a popover dialog.'\n )}`;\n }\n\n get isInteractive(): boolean {\n return (\n !this.isCollapsed &&\n !this.hasPopover &&\n Boolean(this.breadcrumb!.href || this.breadcrumb!.onClick)\n );\n }\n\n get ariaCurrent(): 'page' | undefined {\n const { item, lastBreadcrumbIsCurrentPage } = this.args;\n return !this.isCollapsed && item.isLast && lastBreadcrumbIsCurrentPage\n ? 'page'\n : undefined;\n }\n\n get linkColor(): string {\n return this.breadcrumb?.color ?? 'subdued';\n }\n\n @cached\n get liClass(): string {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbStyles);\n return `euiBreadcrumb ${euiClass(\n context,\n ITEM_RESET,\n styles.euiBreadcrumb,\n styles[this.args.type],\n this.itemTruncate && styles.isTruncated,\n this.isCollapsed && styles.isCollapsed\n )}`;\n }\n\n @cached\n get contentCss(): CSSInterpolation[] {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n const { type, item } = this.args;\n const isApplication = type === 'application';\n const css: CSSInterpolation[] = [styles.euiBreadcrumb__content, styles[type]];\n if (isApplication) {\n css.push(\n item.isOnly\n ? styles.applicationStyles.onlyChild\n : item.isFirst\n ? styles.applicationStyles.firstChild\n : item.isLast\n ? styles.applicationStyles.lastChild\n : styles.applicationStyles.intermediateChild\n );\n }\n return css;\n }\n\n @cached\n get truncationCss(): CSSInterpolation[] {\n // The collapsed item never truncates (upstream `truncate: false`).\n if (this.isCollapsed) return [];\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n return [\n this.itemTruncate && !this.truncateLast && styles.isTruncated,\n this.truncateLast && styles.isTruncatedLast\n ];\n }\n\n @cached\n get interactionCss(): CSSInterpolation {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n return (this.isInteractive || this.isPopover) &&\n this.args.type !== 'application'\n ? styles.isInteractive\n : undefined;\n }\n\n /** The content's styles: EuiLink's `@css`, or the plain span's class. */\n @cached\n get contentStyles(): CSSInterpolation[] {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return this.isPopover\n ? [\n popoverStyles.euiBreadcrumb__popoverButton,\n ...this.contentCss,\n this.interactionCss\n ]\n : [...this.contentCss, ...this.truncationCss, this.interactionCss];\n }\n\n /** Upstream's `popoverProps.css`, composed after the wrapper styles. */\n get popoverUserCss(): EuiCss {\n return this.breadcrumb?.popoverProps?.css;\n }\n\n get contentClassNames(): string {\n return ['euiBreadcrumb__content', this.breadcrumb?.className]\n .filter(Boolean)\n .join(' ');\n }\n\n @cached\n get contentClass(): string {\n return `${this.contentClassNames} ${euiClass(\n getEuiThemeContext(this),\n ...this.contentStyles\n )}`;\n }\n\n @cached\n get truncationClass(): string {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return euiClass(\n context,\n popoverStyles.euiBreadcrumb__popoverTruncation,\n ...this.truncationCss\n );\n }\n\n /** Upstream's `css` on the collapsed item's EuiPopover. */\n @cached\n get popoverCss(): EuiCss[] {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return [\n popoverStyles.popoverWrapper.euiBreadcrumb__popoverWrapper,\n !this.args.item.isLast && popoverStyles.popoverWrapper[this.args.type],\n this.popoverUserCss\n ];\n }\n\n <template>\n {{#if this.isPopover}}\n {{#let (useState false) this.breadcrumb.popoverProps as |popover props|}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiPopover\n @css={{this.popoverCss}}\n @isOpen={{popover.value}}\n @closePopover={{fn popover.setState false}}\n @anchorPosition={{props.anchorPosition}}\n @anchorClassName={{props.anchorClassName}}\n @panelPaddingSize={{props.panelPaddingSize}}\n @panelClassName={{props.panelClassName}}\n @panelStyle={{props.panelStyle}}\n @panelCss={{props.panelCss}}\n @rootCss={{props.rootCss}}\n @ownFocus={{props.ownFocus}}\n @display={{props.display}}\n @hasArrow={{props.hasArrow}}\n @initialFocus={{props.initialFocus}}\n @ariaLabel={{props.ariaLabel}}\n @ariaLabelledBy={{props.ariaLabelledBy}}\n @repositionOnScroll={{props.repositionOnScroll}}\n @repositionToCrossAxis={{props.repositionToCrossAxis}}\n @popoverScreenReaderText={{props.popoverScreenReaderText}}\n @attachToAnchor={{props.attachToAnchor}}\n @container={{props.container}}\n @zIndex={{props.zIndex}}\n @offset={{props.offset}}\n @buffer={{props.buffer}}\n @shouldSelfFocus={{props.shouldSelfFocus}}\n @isFocusTrapPaused={{props.isFocusTrapPaused}}\n @focusTrapOptions={{props.focusTrapOptions}}\n @popoverRef={{props.popoverRef}}\n @panelRef={{props.panelRef}}\n @portalRef={{props.portalRef}}\n @onTrapDeactivation={{props.onTrapDeactivation}}\n >\n <:button>\n {{#if this.isCollapsed}}\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color=\"subdued\"\n aria-label={{@collapsedLabel}}\n title={{@collapsedLabel}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}>…</span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" />\n </EuiLink>\n {{else if this.breadcrumb.text}}\n {{! Upstream wraps the button in a tooltip with its text. }}\n <EuiToolTip\n @content={{this.breadcrumb.text}}\n @disableScreenReaderOutput={{true}}\n >\n <:anchor>\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color={{this.linkColor}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}>{{this.breadcrumb.text}}</span>\n <EuiIcon\n @type=\"chevronSingleDown\"\n @size=\"s\"\n aria-label={{this.popoverAriaLabel}}\n />\n </EuiLink>\n </:anchor>\n </EuiToolTip>\n {{else}}\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color={{this.linkColor}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}></span>\n <EuiIcon\n @type=\"chevronSingleDown\"\n @size=\"s\"\n aria-label={{this.popoverAriaLabel}}\n />\n </EuiLink>\n {{/if}}\n </:button>\n <:content>\n {{#if this.overflow}}\n <EuiBreadcrumbs\n @breadcrumbs={{this.overflow}}\n @lastBreadcrumbIsCurrentPage={{false}}\n @responsive={{false}}\n @truncate={{false}}\n @max={{0}}\n >\n <:popoverContent as |breadcrumb closePopover|>\n {{yield breadcrumb closePopover to=\"popoverContent\"}}\n </:popoverContent>\n </EuiBreadcrumbs>\n {{else if this.popoverText}}\n {{this.popoverText}}\n {{else if this.popoverComponent}}\n {{#let this.popoverComponent as |Content|}}\n <Content\n @closePopover={{fn popover.setState false}}\n @breadcrumb={{this.popoverBreadcrumb}}\n />\n {{/let}}\n {{else}}\n {{yield this.popoverBreadcrumb (fn popover.setState false) to=\"popoverContent\"}}\n {{/if}}\n </:content>\n </EuiPopover>\n </li>\n {{/let}}\n {{else if this.breadcrumb}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#if this.isInteractive}}\n <EuiLink\n {{didInsert setInnerTextRef}}\n @color={{this.linkColor}}\n @href={{this.breadcrumb.href}}\n @rel={{this.breadcrumb.rel}}\n title={{if innerText innerText}}\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (optional this.breadcrumb.onClick)}}\n >\n {{this.breadcrumb.text}}\n </EuiLink>\n {{else}}\n <span\n {{didInsert setInnerTextRef}}\n title={{if innerText innerText}}\n class={{this.contentClass}}\n aria-current={{this.ariaCurrent}}\n >\n {{this.breadcrumb.text}}\n </span>\n {{/if}}\n </EuiInnerText>\n </li>\n {{/if}}\n </template>\n}\n"],"names":["responsiveDefault","xs","s","m","LIST_RESET","boxSizing","margin","padding","listStyle","ITEM_RESET","limitBreadcrumbs","breadcrumbs","max","atStart","atEnd","limit","Math","min","length","start","floor","overflow","slice","i","isEven","normalizedIndex","index","breadcrumb","unshift","push","map","EuiBreadcrumbs","Component","g","prototype","service","tracked","constructor","owner","args","currentBreakpoint","getBreakpoint","window","Infinity","innerWidth","updateBreakpoint","breakpoint","onResize","throttle","ariaLabel","euiI18n","lookupToken","collapsedLabel","type","lastBreadcrumbIsCurrentPage","truncate","responsiveMax","responsive","responsiveObject","classes","css","euiClass","getEuiThemeContext","n","cached","listClasses","context","styles","useEuiBorealisStyles","euiBreadcrumbsListStyles","euiBreadcrumbs__list","isTruncated","items","visible","isFirst","isLast","isOnly","setComponentTemplate","precompileTemplate","strictMode","scope","onWindowResize","BreadcrumbItem","isCollapsed","Boolean","item","itemTruncate","truncateLast","popoverBreadcrumb","popoverText","content","popoverContent","undefined","popoverComponent","hasPopover","isPopover","popoverAriaLabel","isInteractive","href","onClick","ariaCurrent","linkColor","color","liClass","euiBreadcrumbStyles","euiBreadcrumb","contentCss","euiBreadcrumbContentStyles","isApplication","euiBreadcrumb__content","applicationStyles","onlyChild","firstChild","lastChild","intermediateChild","truncationCss","isTruncatedLast","interactionCss","contentStyles","popoverStyles","euiBreadcrumbPopoverStyles","euiBreadcrumb__popoverButton","popoverUserCss","popoverProps","contentClassNames","className","filter","join","contentClass","truncationClass","euiBreadcrumb__popoverTruncation","popoverCss","popoverWrapper","euiBreadcrumb__popoverWrapper","useState","EuiPopover","fn","EuiLink","on","EuiIcon","EuiToolTip","EuiInnerText","didInsert","optional"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAMA,iBAAmB,GAAkC;AACzDC,EAAAA,EAAA,EAAI,CAAA;AACJC,EAAAA,CAAA,EAAG,CAAA;AACHC,EAAAA,CAAA,EAAG;AACL,CAAA;AAEA;;AAEC;;AAQD;;;AAGC;;AA2ED,MAAMC,UAAA,GAAa;AACjBC,EAAAA,SAAA,EAAW,YAAA;AACXC,EAAAA,MAAA,EAAQ,CAAA;AACRC,EAAAA,OAAA,EAAS,CAAA;AACTC,EAAAA,SAAA,EAAW;AACb,CAAA;AACA,MAAMC,UAAA,GAAa;AAAEJ,EAAAA,SAAA,EAAW,YAAA;AAAcC,EAAAA,MAAA,EAAQ,CAAA;AAAGC,EAAAA,OAAA,EAAS;AAAE,CAAA;AAEpE;;;AAGC;AACD,SAASG,gBAAAA,CAAiBC,WAA4B,EAAEC,GAAW,EAAA;EACjE,MAAMC,UAA2B,EAAE;EACnC,MAAMC,QAAyB,EAAE;EACjC,MAAMC,QAAQC,IAAA,CAAKC,GAAG,CAACL,GAAA,EAAKD,YAAYO,MAAM,CAAA;EAC9C,MAAMC,KAAA,GAAQH,IAAA,CAAKI,KAAK,CAACL,KAAA,GAAQ,CAAA,CAAA;AACjC,EAAA,MAAMM,QAAA,GAAWV,YAAYW,KAAK,CAACH,OAAOA,KAAA,GAAQR,WAAA,CAAYO,MAAM,GAAGH,KAAA,CAAA;EAEvE,KAAK,IAAIQ,CAAA,GAAI,CAAA,EAAGA,CAAA,GAAIR,OAAOQ,CAAA,EAAA,EAAK;AAC9B,IAAA,MAAMC,MAAA,GAASD,IAAI,CAAA,KAAM,CAAA;IACzB,MAAME,eAAA,GAAkBT,IAAA,CAAKI,KAAK,CAACG,CAAA,GAAI,GAAA,CAAA;AACvC,IAAA,MAAMG,QAAQF,MAAA,GACVb,WAAA,CAAYO,MAAM,GAAG,IAAIO,eAAA,GACzBA,eAAA;AACJ,IAAA,MAAME,UAAA,GAAahB,WAAW,CAACe,KAAA,CAAM;AAErC,IAAA,IAAIF,MAAA,EAAQ;AACVV,MAAAA,KAAA,CAAMc,OAAO,CAACD,UAAA,CAAA;AAChB,IAAA,CAAA,MAAO;AACLd,MAAAA,OAAA,CAAQgB,IAAI,CAACF,UAAA,CAAA;AACf,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,CACF,GAAAd,OAAA,CAAQiB,GAAG,CAAEH,UAAA,KAAgB;AAAEA,IAAAA;GAAY,CAAA,CAAA,EAC9C;AAAEN,IAAAA;AAAS,GAAA,EACR,GAAAP,KAAA,CAAMgB,GAAG,CAAEH,UAAA,KAAgB;AAAEA,IAAAA;GAAY,CAAA,CAAA,CAC7C;AACH;;AAoDA;;AAEC;;AAcc,MAAMI,uBAAuBC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACnDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAZ,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAU,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CACAE,OAAA,CAAA,CAAA;AAAA;EAAA,kBAAA,IAAAb,CAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,EAAA,MAAA;AAEDc,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAiC,EAAE;AAC3D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AACb,IAAA,IAAI,CAACC,iBAAiB,GAAGC,aAAA,CACvB,OAAOC,WAAW,WAAA,GAAc,CAACC,QAAA,GAAWD,MAAA,CAAOE,UAAU,CAAA;AAEjE,EAAA;EAEAC,gBAAA,GAAmBA,MAAA;AACjB,IAAA,MAAMC,UAAA,GAAaL,aAAA,CAAcC,MAAA,CAAOE,UAAU,CAAA;AAClD,IAAA,IAAIE,UAAA,KAAe,IAAI,CAACN,iBAAiB,EAAE;MACzC,IAAI,CAACA,iBAAiB,GAAGM,UAAA;AAC3B,IAAA;EACF,CAAA;EAEAC,QAAA,GAAWA,MAAA;IACTC,QAAA,CAAS,IAAI,EAAE,IAAI,CAACH,gBAAgB,EAAE,EAAA,CAAA;EACxC,CAAA;EAEA,IAAII,SAAAA,GAAoB;IACtB,OAAO,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,8BAAA,EAAgC,aAAA,CAAA;AAClE,EAAA;EAEA,IAAIC,cAAAA,GAAyB;IAC3B,OAAO,IAAI,CAACF,OAAO,CAACC,WAAW,CAC7B,wCAAA,EACA,2BAAA,CAAA;AAEJ,EAAA;EAEA,IAAIE,OAA2B;AAC7B,IAAA,OAAO,IAAI,CAACd,IAAI,CAACc,IAAI,IAAI,MAAA;AAC3B,EAAA;EAEA,IAAIC,2BAAAA,GAAuC;AACzC,IAAA,OAAO,IAAI,CAACf,IAAI,CAACe,2BAA2B,IAAI,IAAA;AAClD,EAAA;EAEA,IAAIC,QAAAA,GAAoB;AACtB,IAAA,OAAO,IAAI,CAAChB,IAAI,CAACgB,QAAQ,IAAI,IAAA;AAC/B,EAAA;EAEA,IAAI3C,GAAAA,GAAqB;AACvB,IAAA,OAAO,IAAI,CAAC2B,IAAI,CAAC3B,GAAG,KAAK,IAAA,GAAO,IAAA,GAAQ,IAAI,CAAC2B,IAAI,CAAC3B,GAAG,IAAI,CAAC;AAC5D,EAAA;AAEA;EACA,IAAI4C,aAAAA,GAA+B;IACjC,MAAMC,aAAa,IAAI,CAAClB,IAAI,CAACkB,UAAU,IAAI,IAAA;IAC3C,MAAMC,gBAAA,GACJ,OAAOD,UAAA,KAAe,QAAA,GAAWA,UAAA,GAAazD,iBAAA;AAChD,IAAA,MAAMY,GAAA,GAAM,IAAI,CAACA,GAAG;IACpB,IAAI4C,aAAA,GAAgB5C,GAAA;AACpB,IAAA,MAAMkC,UAAA,GAAa,IAAI,CAACN,iBAAiB;IAEzC,IAAIiB,UAAA,IAAcX,UAAA,IAAcY,gBAAgB,CAACZ,WAAW,EAAE;AAC5DU,MAAAA,aAAA,GAAgBE,gBAAgB,CAACZ,UAAA,CAAW;AAC9C,IAAA;IAEA,IAAIlC,OAAO4C,aAAA,EAAe;AACxBA,MAAAA,aAAA,GAAgB5C,GAAA,GAAM4C,gBAAgB5C,GAAA,GAAM4C,aAAA;AAC9C,IAAA;AAEA,IAAA,OAAOA,aAAA;AACT,EAAA;EAEA,IACIG,OAAAA,GAAkB;IACpB,IAAI,CAAC,IAAI,CAACpB,IAAI,CAACqB,GAAG,EAAE,OAAO,gBAAA;AAC3B,IAAA,OAAO,CAAA,eAAA,EAAkBC,QAAA,CAASC,kBAAA,CAAmB,IAAI,CAAA,EAAG,IAAI,CAACvB,IAAI,CAACqB,GAAG,CAAA,CAAA,CAAG;AAC9E,EAAA;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,SAAA,EAAA,CAJC8B,MAAA,CAAA,CAAA;AAAA;EAMD,IACIC,WAAAA,GAAsB;AACxB,IAAA,MAAMC,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMK,MAAA,GAASC,qBAAqBF,OAAA,EAASG,wBAAA,CAAA;IAC7C,OAAO,CAAA,qBAAA,EAAwBR,QAAA,CAC7BK;AACA;AACA9D,IAAAA,UAAA,EACA+D,MAAA,CAAOG,oBAAoB,EAC3B,IAAI,CAACf,QAAQ,IAAIY,MAAA,CAAOI,WAAW,CAAA,CAAA,CAClC;AACL,EAAA;AAAA,EAAA;IAAAR,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,aAAA,EAAA,CAXC8B,MAAA,CAAA,CAAA;AAAA;EAaD,IACIQ,QAAgB;IAClB,MAAM;AAAE7D,MAAAA;KAAa,GAAG,IAAI,CAAC4B,IAAI;AACjC,IAAA,MAAM3B,GAAA,GAAM,IAAI,CAAC4C,aAAa;IAC9B,MAAMiB,OACJ,GAAA7D,GAAA,IAAOD,WAAA,CAAYO,MAAM,GAAGN,GAAA,GACxBF,gBAAA,CAAiBC,WAAA,EAAaC,GAAA,CAAA,GAC9BD,WAAA,CAAYmB,GAAG,CAAEH,UAAA,KAAgB;AAAEA,MAAAA;AAAW,KAAC,CAAA,CAAA;AAErD,IAAA,OAAO8C,OAAA,CAAQ3C,GAAG,CAAC,CAAC;MAAEH,UAAU;AAAEN,MAAAA;KAAU,EAAEK,KAAA,MAAW;MACvDC,UAAA;MACAN,QAAA;MACAqD,OAAA,EAAShD,KAAA,KAAU,CAAA;AACnBiD,MAAAA,MAAA,EAAQjD,KAAA,KAAU+C,OAAA,CAAQvD,MAAM,GAAG,CAAA;AACnC0D,MAAAA,MAAA,EAAQH,OAAA,CAAQvD,MAAM,KAAK;AAC7B,KAAC,CAAA,CAAA;AACH,EAAA;AAAA,EAAA;IAAA6C,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,OAAA,EAAA,CAhBC8B,MAAA,CAAA,CAAA;AAAA;AAkBD,EAAA;IAAAa,oBAAA,CAAAC,kBAAA,CAAA,mkBAAA,EAuBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAeA;;;;;AAKA,MAAMA,uBAAuBlD,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACpCC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAZ,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;EAED,IAAI4D,WAAAA,GAAuB;IACzB,OAAOC,QAAQ,IAAI,CAAC7C,IAAI,CAAC8C,IAAI,CAAChE,QAAQ,CAAA;AACxC,EAAA;EAEA,IAAIM,UAAAA,GAAwC;AAC1C,IAAA,OAAO,IAAI,CAACY,IAAI,CAAC8C,IAAI,CAAC1D,UAAU;AAClC,EAAA;EAEA,IAAI2D,YAAAA,GAAwB;IAC1B,OAAO,IAAI,CAACH,WAAW,GACnB,IAAI,CAAC5C,IAAI,CAACgB,QAAQ,GACjB,IAAI,CAAC5B,UAAU,CAAE4B,QAAQ,IAAI,IAAI,CAAChB,IAAI,CAACgB,QAAQ;AACtD,EAAA;EAEA,IAAIgC,YAAAA,GAAwB;IAC1B,OACE,CAAC,IAAI,CAACJ,WAAW,IACjB,IAAI,CAAC5C,IAAI,CAAC8C,IAAI,CAACV,MAAM,IACrB,IAAI,CAACpC,IAAI,CAACgB,QAAQ,IAClB,IAAI,CAAC5B,UAAU,CAAE4B,QAAQ,IAAI,IAC/B;AACF,EAAA;AAEA;EACA,IAAIiC,iBAAAA,GAAmC;IACrC,OAAO,IAAI,CAAC7D,UAAU;AACxB,EAAA;EAEA,IAAIN,QAAAA,GAAwC;AAC1C,IAAA,OAAO,IAAI,CAACkB,IAAI,CAAC8C,IAAI,CAAChE,QAAQ;AAChC,EAAA;AAEA;EACA,IAAIoE,WAAAA,GAAkC;AACpC,IAAA,MAAMC,OAAA,GAAU,IAAI,CAAC/D,UAAU,EAAEgE,cAAA;AACjC,IAAA,OAAO,OAAOD,OAAA,KAAY,QAAA,GAAWA,OAAA,GAAUE,SAAA;AACjD,EAAA;AAEA;EACA,IAAIC,gBAAAA,GAEU;AACZ,IAAA,MAAMH,OAAA,GAAU,IAAI,CAAC/D,UAAU,EAAEgE,cAAA;IACjC,OAAO,OAAOD,OAAA,KAAY,QAAA,IAAYA,OAAA,KAAY,OAC9CE,SAAA,GACAF,OAAA;AACN,EAAA;AAEA;EACA,IAAII,UAAAA,GAAsB;AACxB,IAAA,OAAO,CAAC,IAAI,CAACX,WAAW,IAAIC,QAAQ,IAAI,CAACzD,UAAU,CAAEgE,cAAc,CAAA;AACrE,EAAA;AAEA;EACA,IAAII,SAAAA,GAAqB;AACvB,IAAA,OAAO,IAAI,CAACZ,WAAW,IAAI,IAAI,CAACW,UAAU;AAC5C,EAAA;EAEA,IAAIE,gBAAAA,GAA2B;IAC7B,OAAO,CAAA,GAAA,EAAM,IAAI,CAAC9C,OAAO,CAACC,WAAW,CACnC,gCAAA,EACA,oDAAA,CAAA,CAAA,CACC;AACL,EAAA;EAEA,IAAI8C,aAAAA,GAAyB;IAC3B,OACE,CAAC,IAAI,CAACd,WAAW,IACjB,CAAC,IAAI,CAACW,UAAU,IAChBV,QAAQ,IAAI,CAACzD,UAAU,CAAEuE,IAAI,IAAI,IAAI,CAACvE,UAAU,CAAEwE,OAAO,CAC3D;AACF,EAAA;EAEA,IAAIC,WAAAA,GAAkC;IACpC,MAAM;MAAEf,IAAI;AAAE/B,MAAAA;KAA6B,GAAG,IAAI,CAACf,IAAI;AACvD,IAAA,OAAO,CAAC,IAAI,CAAC4C,WAAW,IAAIE,IAAA,CAAKV,MAAM,IAAIrB,2BAAA,GACvC,MAAA,GACAsC,SAAA;AACN,EAAA;EAEA,IAAIS,SAAAA,GAAoB;AACtB,IAAA,OAAO,IAAI,CAAC1E,UAAU,EAAE2E,KAAA,IAAS,SAAA;AACnC,EAAA;EAEA,IACIC,OAAAA,GAAkB;AACpB,IAAA,MAAMrC,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMK,MAAA,GAASC,qBAAqBF,OAAA,EAASsC,mBAAA,CAAA;AAC7C,IAAA,OAAO,iBAAiB3C,QAAA,CACtBK,OAAA,EACAzD,UAAA,EACA0D,MAAA,CAAOsC,aAAa,EACpBtC,MAAM,CAAC,IAAI,CAAC5B,IAAI,CAACc,IAAI,CAAC,EACtB,IAAI,CAACiC,YAAY,IAAInB,MAAA,CAAOI,WAAW,EACvC,IAAI,CAACY,WAAW,IAAIhB,MAAA,CAAOgB,WAAW,CAAA,CAAA,CACrC;AACL,EAAA;AAAA,EAAA;IAAApB,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,SAAA,EAAA,CAZC8B,MAAA,CAAA,CAAA;AAAA;EAcD,IACI0C,aAAiC;AACnC,IAAA,MAAMxC,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMK,MAAA,GAASC,qBAAqBF,OAAA,EAASyC,0BAAA,CAAA;IAC7C,MAAM;MAAEtD,IAAI;AAAEgC,MAAAA;KAAM,GAAG,IAAI,CAAC9C,IAAI;AAChC,IAAA,MAAMqE,gBAAgBvD,IAAA,KAAS,aAAA;IAC/B,MAAMO,GAAK,GAAqB,CAACO,MAAA,CAAO0C,sBAAsB,EAAE1C,MAAM,CAACd,IAAA,CAAK,CAAC;AAC7E,IAAA,IAAIuD,aAAA,EAAe;AACjBhD,MAAAA,GAAA,CAAI/B,IAAI,CACNwD,IAAA,CAAKT,MAAM,GACPT,MAAA,CAAO2C,iBAAiB,CAACC,SAAS,GAClC1B,IAAA,CAAKX,OAAO,GACVP,MAAA,CAAO2C,iBAAiB,CAACE,UAAU,GACnC3B,IAAA,CAAKV,MAAM,GACTR,MAAA,CAAO2C,iBAAiB,CAACG,SAAS,GAClC9C,MAAA,CAAO2C,iBAAiB,CAACI,iBAAiB,CAAA;AAEtD,IAAA;AACA,IAAA,OAAOtD,GAAA;AACT,EAAA;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,YAAA,EAAA,CAnBC8B,MAAA,CAAA,CAAA;AAAA;EAqBD,IACImD,gBAAoC;AACtC;AACA,IAAA,IAAI,IAAI,CAAChC,WAAW,EAAE,OAAO,EAAE;AAC/B,IAAA,MAAMjB,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMK,MAAA,GAASC,qBAAqBF,OAAA,EAASyC,0BAAA,CAAA;IAC7C,OAAO,CACL,IAAI,CAACrB,YAAY,IAAI,CAAC,IAAI,CAACC,YAAY,IAAIpB,MAAA,CAAOI,WAAW,EAC7D,IAAI,CAACgB,YAAY,IAAIpB,MAAA,CAAOiD,eAAe,CAC5C;AACH,EAAA;AAAA,EAAA;IAAArD,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,eAAA,EAAA,CAVC8B,MAAA,CAAA,CAAA;AAAA;EAYD,IACIqD,iBAAmC;AACrC,IAAA,MAAMnD,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMK,MAAA,GAASC,qBAAqBF,OAAA,EAASyC,0BAAA,CAAA;IAC7C,OAAO,CAAC,IAAI,CAACV,aAAa,IAAI,IAAI,CAACF,SAAS,KAC1C,IAAI,CAACxD,IAAI,CAACc,IAAI,KAAK,aAAA,GACjBc,MAAA,CAAO8B,aAAa,GACpBL,SAAA;AACN,EAAA;AAEA;AAAA,EAAA;IAAA7B,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,gBAAA,EAAA,CAVC8B,MAAA,CAAA,CAAA;AAAA;EAWD,IACIsD,gBAAoC;AACtC,IAAA,MAAMpD,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMyD,aAAA,GAAgBnD,qBACpBF,OAAA,EACAsD,0BAAA,CAAA;AAEF,IAAA,OAAO,IAAI,CAACzB,SAAS,GACjB,CACEwB,aAAA,CAAcE,4BAA4B,EACvC,GAAA,IAAI,CAACf,UAAU,EAClB,IAAI,CAACW,cAAc,CACpB,GACD,CAAI,GAAA,IAAI,CAACX,UAAU,EAAK,GAAA,IAAI,CAACS,aAAa,EAAE,IAAI,CAACE,cAAc,CAAC;AACtE,EAAA;AAEA;AAAA,EAAA;IAAAtD,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,eAAA,EAAA,CAhBC8B,MAAA,CAAA,CAAA;AAAA;EAiBD,IAAI0D,cAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAAC/F,UAAU,EAAEgG,YAAA,EAAc/D,GAAA;AACxC,EAAA;EAEA,IAAIgE,iBAAAA,GAA4B;AAC9B,IAAA,OAAO,CAAC,wBAAA,EAA0B,IAAI,CAACjG,UAAU,EAAEkG,SAAA,CAAU,CAC1DC,MAAM,CAAC1C,OAAA,CAAA,CACP2C,IAAI,CAAC,GAAA,CAAA;AACV,EAAA;EAEA,IACIC,YAAAA,GAAuB;AACzB,IAAA,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAA,CAAA,EAAI/D,QAAA,CAClCC,kBAAA,CAAmB,IAAI,CAAA,EAAA,GACpB,IAAI,CAACwD,aAAa,CAAA,CAAA,CACpB;AACL,EAAA;AAAA,EAAA;IAAAvD,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,cAAA,EAAA,CANC8B,MAAA,CAAA,CAAA;AAAA;EAQD,IACIiE,eAAAA,GAA0B;AAC5B,IAAA,MAAM/D,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMyD,aAAA,GAAgBnD,qBACpBF,OAAA,EACAsD,0BAAA,CAAA;AAEF,IAAA,OAAO3D,SACLK,OAAA,EACAqD,aAAA,CAAcW,gCAAgC,EAAA,GAC3C,IAAI,CAACf,aAAa,CAAA;AAEzB,EAAA;AAEA;AAAA,EAAA;IAAApD,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,iBAAA,EAAA,CAdC8B,MAAA,CAAA,CAAA;AAAA;EAeD,IACImE,aAAuB;AACzB,IAAA,MAAMjE,OAAA,GAAUJ,mBAAmB,IAAI,CAAA;AACvC,IAAA,MAAMyD,aAAA,GAAgBnD,qBACpBF,OAAA,EACAsD,0BAAA,CAAA;AAEF,IAAA,OAAO,CACLD,aAAA,CAAca,cAAc,CAACC,6BAA6B,EAC1D,CAAC,IAAI,CAAC9F,IAAI,CAAC8C,IAAI,CAACV,MAAM,IAAI4C,aAAA,CAAca,cAAc,CAAC,IAAI,CAAC7F,IAAI,CAACc,IAAI,CAAC,EACtE,IAAI,CAACqE,cAAc,CACpB;AACH,EAAA;AAAA,EAAA;IAAA3D,CAAA,CAAA,IAAA,CAAA7B,SAAA,EAAA,YAAA,EAAA,CAZC8B,MAAA,CAAA,CAAA;AAAA;AAcD,EAAA;IAAAa,oBAAA,CAAAC,kBAAA,CAAA,ilJAAA,EAqJA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAsD,QAAA;oBAAAC,mBAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,UAAA;QAAA7G,cAAA;sBAAA8G,UAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;"}
|
|
1
|
+
{"version":3,"file":"eui-breadcrumbs.js","sources":["../../src/components/eui-breadcrumbs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { throttle } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport EuiRenderNode from '../-private/eui-render-node.gts';\nimport onWindowResize from '../-private/window-resize.ts';\nimport useState from '../helpers/use-state.ts';\nimport { getBreakpoint } from '../utils/breakpoint.ts';\nimport { getEuiThemeContext } from '../utils/emotion/consume.ts';\nimport { euiClass, useEuiBorealisStyles } from '../utils/eui/styles.ts';\nimport type { EuiCss } from '../utils/eui/styles.ts';\nimport {\n euiBreadcrumbContentStyles,\n euiBreadcrumbPopoverStyles,\n euiBreadcrumbsListStyles,\n euiBreadcrumbStyles\n} from '../utils/eui/styles.generated.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiInnerText from './eui-inner-text.gts';\nimport EuiLink from './eui-link.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type { ComponentLike } from '@glint/template';\nimport type { EuiPopoverArgs } from './eui-popover.gts';\nimport type EuiI18nService from '../services/eui-i18n.ts';\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { CSSInterpolation } from '@emotion/css/create-instance';\n\nexport type EuiBreadcrumbResponsiveMaxCount = {\n /**\n * Any of the following keys are allowed: `'xs' | 's' | 'm' | 'l' | 'xl'`\n * Omitting a key will display all breadcrumbs at that breakpoint\n */\n [key in EuiBreakpointSize]?: number;\n};\n\nconst responsiveDefault: EuiBreadcrumbResponsiveMaxCount = {\n xs: 1,\n s: 2,\n m: 4\n};\n\n/**\n * Args the `popoverContent` component receives.\n */\nexport type EuiBreadcrumbPopoverContentArgs = {\n /** Closes the breadcrumb's popover. */\n closePopover: () => void;\n /** The breadcrumb the popover belongs to. */\n breadcrumb: EuiBreadcrumb;\n};\n\n/**\n * `EuiPopover` args accepted by a breadcrumb's `popoverProps`: everything\n * except the ones that control its state, which `EuiBreadcrumbs` owns.\n */\nexport type EuiBreadcrumbPopoverProps = Omit<\n EuiPopoverArgs,\n 'button' | 'closePopover' | 'isOpen' | 'buttonRef' | 'insert'\n>;\n\nexport type EuiBreadcrumb = {\n /**\n * Visible label of the breadcrumb: a string, or a component (curried),\n * rendered in its place. With `popoverContent`, the button's tooltip\n * shows it too.\n */\n text: string | ComponentLike<any>;\n /**\n * Makes the breadcrumb a link.\n */\n href?: string;\n /** `rel` of a link breadcrumb (`noreferrer` is always added). */\n rel?: string;\n /**\n * Makes the breadcrumb clickable, e.g. to transition with the router.\n */\n onClick?: (e: MouseEvent) => void;\n\n /**\n * Class for the breadcrumb's text element.\n */\n className?: string;\n /**\n * Overrides `@truncate` for this breadcrumb: `true` limits its text to\n * 160px with an ellipsis, `false` never truncates it.\n */\n truncate?: boolean;\n\n /**\n * `EuiLink` color of a clickable breadcrumb. Defaults to `'subdued'`\n * (upstream; it used to be `'text'` for the last one).\n */\n color?: string;\n\n /**\n * Makes the breadcrumb a button that toggles a popover (with a\n * `chevronSingleDown` icon). A string is shown as text. A component\n * is rendered inside the popover with `@closePopover` and `@breadcrumb`.\n * `true` renders the `<:popoverContent as |breadcrumb closePopover|>` block\n * of `EuiBreadcrumbs`. `href` and `onClick` are ignored.\n */\n popoverContent?:\n | string\n | true\n | ComponentLike<{ Args: EuiBreadcrumbPopoverContentArgs }>;\n /**\n * `EuiPopover` args for the popover (e.g. `{ panelPaddingSize: 'none' }`),\n * except the ones controlling its state.\n */\n popoverProps?: EuiBreadcrumbPopoverProps;\n\n /** @deprecated Ignored. It used to mark the internal \"…\" item. */\n ellipsis?: boolean;\n\n /**\n * @deprecated Ignored. The last breadcrumb gets `aria-current=\"page\"`;\n * see `@lastBreadcrumbIsCurrentPage`.\n */\n 'aria-current'?: string;\n};\n\nexport type EuiBreadcrumbsType = 'page' | 'application';\n\ntype Item = {\n breadcrumb?: EuiBreadcrumb;\n overflow?: EuiBreadcrumb[];\n isFirst: boolean;\n isLast: boolean;\n isOnly: boolean;\n};\n\nconst LIST_RESET = {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n listStyle: 'none'\n} as const;\nconst ITEM_RESET = { boxSizing: 'border-box', margin: 0, padding: 0 } as const;\n\n/**\n * Upstream `limitBreadcrumbs`: keeps `max` breadcrumbs (biased to the end)\n * and collapses the rest into one item.\n */\nfunction limitBreadcrumbs(breadcrumbs: EuiBreadcrumb[], max: number) {\n const atStart: EuiBreadcrumb[] = [];\n const atEnd: EuiBreadcrumb[] = [];\n const limit = Math.min(max, breadcrumbs.length);\n const start = Math.floor(limit / 2);\n const overflow = breadcrumbs.slice(start, start + breadcrumbs.length - limit);\n\n for (let i = 0; i < limit; i++) {\n const isEven = i % 2 === 0;\n const normalizedIndex = Math.floor(i * 0.5);\n const index = isEven\n ? breadcrumbs.length - 1 - normalizedIndex\n : normalizedIndex;\n const breadcrumb = breadcrumbs[index]!;\n\n if (isEven) {\n atEnd.unshift(breadcrumb);\n } else {\n atStart.push(breadcrumb);\n }\n }\n\n return [\n ...atStart.map((breadcrumb) => ({ breadcrumb })),\n { overflow },\n ...atEnd.map((breadcrumb) => ({ breadcrumb }))\n ];\n}\n\ninterface EuiBreadcrumbsComponentArgs {\n /**\n * Shows fewer breadcrumbs on smaller screens, collapsing the ones in the\n * middle into a \"…\" popover. `true` uses `{ xs: 1, s: 2, m: 4 }` (at most\n * 1 breadcrumb on extra small screens, 2 on small, 4 on medium); pass an\n * object with any of the `xs`, `s`, `m`, `l`, `xl` keys for your own\n * limits (a missing key falls back to `@max`). Never shows more than\n * `@max`. Defaults to `true`, as upstream; `false` turns it off.\n */\n responsive?: boolean | EuiBreadcrumbResponsiveMaxCount;\n\n /**\n * Forces all breadcrumbs to a single line and truncates each breadcrumb\n * to 160px, except the last one, which fills the remaining space.\n * Defaults to `true`.\n */\n truncate?: boolean;\n\n /**\n * Collapses the breadcrumbs in the middle past this number into a single\n * \"…\" item that opens a popover with them. Defaults to `5`; pass `0` or\n * `null` to always show all breadcrumbs.\n */\n max?: number | null;\n\n /**\n * `'page'` (default) separates breadcrumbs with slashes; `'application'`\n * renders them as connected arrow-shaped chips, for the top of an app.\n */\n type?: EuiBreadcrumbsType;\n\n /**\n * Extra styles composed last into this component's class (like upstream's\n * `css` prop). Prefer this to an extra class when styling it from a parent.\n */\n css?: EuiCss;\n\n /**\n * Marks the last breadcrumb as the current page (`aria-current=\"page\"`).\n * Defaults to `true`.\n */\n lastBreadcrumbIsCurrentPage?: boolean;\n\n /**\n * The breadcrumbs, from the root to the current page:\n * `[{ text: 'Home', href: '/' }, { text: 'Users', onClick: … }, { text: 'Jane' }]`.\n */\n breadcrumbs: EuiBreadcrumb[];\n}\n\n/**\n * A `<nav aria-label=\"Breadcrumbs\">` trail of links to the current page.\n */\nexport interface EuiBreadcrumbsSignature {\n Element: HTMLElement;\n Args: EuiBreadcrumbsComponentArgs;\n Blocks: {\n default: [];\n /**\n * Content of the popover of every breadcrumb with `popoverContent: true`;\n * yields the breadcrumb and a `closePopover` function.\n */\n popoverContent: [breadcrumb: EuiBreadcrumb, closePopover: () => void];\n };\n}\n\nexport default class EuiBreadcrumbs extends Component<EuiBreadcrumbsSignature> {\n @service declare euiI18n: EuiI18nService;\n @tracked currentBreakpoint: EuiBreakpointSize | undefined;\n\n constructor(owner: Owner, args: EuiBreadcrumbsComponentArgs) {\n super(owner, args);\n this.currentBreakpoint = getBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth\n );\n }\n\n updateBreakpoint = () => {\n const breakpoint = getBreakpoint(window.innerWidth);\n if (breakpoint !== this.currentBreakpoint) {\n this.currentBreakpoint = breakpoint;\n }\n };\n\n onResize = () => {\n throttle(this, this.updateBreakpoint, 50);\n };\n\n get ariaLabel(): string {\n return this.euiI18n.lookupToken('euiBreadcrumbs.nav.ariaLabel', 'Breadcrumbs');\n }\n\n get collapsedLabel(): string {\n return this.euiI18n.lookupToken(\n 'euiBreadcrumb.collapsedBadge.ariaLabel',\n 'See collapsed breadcrumbs'\n );\n }\n\n get type(): EuiBreadcrumbsType {\n return this.args.type ?? 'page';\n }\n\n get lastBreadcrumbIsCurrentPage(): boolean {\n return this.args.lastBreadcrumbIsCurrentPage ?? true;\n }\n\n get truncate(): boolean {\n return this.args.truncate ?? true;\n }\n\n get max(): number | null {\n return this.args.max === null ? null : (this.args.max ?? 5);\n }\n\n /** Upstream `useResponsiveMax`. */\n get responsiveMax(): number | null {\n const responsive = this.args.responsive ?? true;\n const responsiveObject =\n typeof responsive === 'object' ? responsive : responsiveDefault;\n const max = this.max;\n let responsiveMax = max;\n const breakpoint = this.currentBreakpoint;\n\n if (responsive && breakpoint && responsiveObject[breakpoint]) {\n responsiveMax = responsiveObject[breakpoint]!;\n }\n\n if (max && responsiveMax) {\n responsiveMax = max < responsiveMax ? max : responsiveMax;\n }\n\n return responsiveMax;\n }\n\n @cached\n get classes(): string {\n if (!this.args.css) return 'euiBreadcrumbs';\n return `euiBreadcrumbs ${euiClass(getEuiThemeContext(this), this.args.css)}`;\n }\n\n @cached\n get listClasses(): string {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbsListStyles);\n return `euiBreadcrumbs__list ${euiClass(\n context,\n // Scoped stand-in for React's global list reset.\n LIST_RESET,\n styles.euiBreadcrumbs__list,\n this.truncate && styles.isTruncated\n )}`;\n }\n\n @cached\n get items(): Item[] {\n const { breadcrumbs } = this.args;\n const max = this.responsiveMax;\n const visible: { breadcrumb?: EuiBreadcrumb; overflow?: EuiBreadcrumb[] }[] =\n max && breadcrumbs.length > max\n ? limitBreadcrumbs(breadcrumbs, max)\n : breadcrumbs.map((breadcrumb) => ({ breadcrumb }));\n\n return visible.map(({ breadcrumb, overflow }, index) => ({\n breadcrumb,\n overflow,\n isFirst: index === 0,\n isLast: index === visible.length - 1,\n isOnly: visible.length === 1\n }));\n }\n\n <template>\n <nav\n aria-label={{this.ariaLabel}}\n class={{this.classes}}\n {{onWindowResize this.onResize}}\n ...attributes\n >\n <ol class={{this.listClasses}}>\n {{#each this.items as |item|}}\n <BreadcrumbItem\n @item={{item}}\n @type={{this.type}}\n @truncate={{this.truncate}}\n @lastBreadcrumbIsCurrentPage={{this.lastBreadcrumbIsCurrentPage}}\n @collapsedLabel={{this.collapsedLabel}}\n >\n <:popoverContent as |breadcrumb closePopover|>\n {{yield breadcrumb closePopover to=\"popoverContent\"}}\n </:popoverContent>\n </BreadcrumbItem>\n {{/each}}\n </ol>\n </nav>\n </template>\n}\n\ninterface BreadcrumbItemSignature {\n Args: {\n item: Item;\n type: EuiBreadcrumbsType;\n truncate: boolean;\n lastBreadcrumbIsCurrentPage: boolean;\n collapsedLabel: string;\n };\n Blocks: {\n popoverContent: [breadcrumb: EuiBreadcrumb, closePopover: () => void];\n };\n}\n\n/**\n * One breadcrumb (or the collapsed \"…\" item). Its link styles go through\n * EuiLink's `@css`, composed last into the link's own class (like upstream\n * `css`).\n */\nclass BreadcrumbItem extends Component<BreadcrumbItemSignature> {\n @service declare euiI18n: EuiI18nService;\n\n get isCollapsed(): boolean {\n return Boolean(this.args.item.overflow);\n }\n\n get breadcrumb(): EuiBreadcrumb | undefined {\n return this.args.item.breadcrumb;\n }\n\n get itemTruncate(): boolean {\n return this.isCollapsed\n ? this.args.truncate\n : (this.breadcrumb!.truncate ?? this.args.truncate);\n }\n\n get truncateLast(): boolean {\n return (\n !this.isCollapsed &&\n this.args.item.isLast &&\n this.args.truncate &&\n this.breadcrumb!.truncate == null\n );\n }\n\n /** The breadcrumb of a popover item (never the \"…\" item). */\n get popoverBreadcrumb(): EuiBreadcrumb {\n return this.breadcrumb!;\n }\n\n get overflow(): EuiBreadcrumb[] | undefined {\n return this.args.item.overflow;\n }\n\n /** `popoverContent` given as a string. */\n get popoverText(): string | undefined {\n const content = this.breadcrumb?.popoverContent;\n return typeof content === 'string' ? content : undefined;\n }\n\n /** `popoverContent` given as a component. */\n get popoverComponent():\n | ComponentLike<{ Args: EuiBreadcrumbPopoverContentArgs }>\n | undefined {\n const content = this.breadcrumb?.popoverContent;\n return typeof content === 'string' || content === true\n ? undefined\n : content;\n }\n\n /** A breadcrumb that toggles a popover (it ignores `href`/`onClick`). */\n get hasPopover(): boolean {\n return !this.isCollapsed && Boolean(this.breadcrumb!.popoverContent);\n }\n\n /** The \"…\" item or a breadcrumb with `popoverContent`. */\n get isPopover(): boolean {\n return this.isCollapsed || this.hasPopover;\n }\n\n get popoverAriaLabel(): string {\n return ` - ${this.euiI18n.lookupToken(\n 'euiBreadcrumb.popoverAriaLabel',\n 'Clicking this button will toggle a popover dialog.'\n )}`;\n }\n\n get isInteractive(): boolean {\n return (\n !this.isCollapsed &&\n !this.hasPopover &&\n Boolean(this.breadcrumb!.href || this.breadcrumb!.onClick)\n );\n }\n\n get ariaCurrent(): 'page' | undefined {\n const { item, lastBreadcrumbIsCurrentPage } = this.args;\n return !this.isCollapsed && item.isLast && lastBreadcrumbIsCurrentPage\n ? 'page'\n : undefined;\n }\n\n get linkColor(): string {\n return this.breadcrumb?.color ?? 'subdued';\n }\n\n @cached\n get liClass(): string {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbStyles);\n return `euiBreadcrumb ${euiClass(\n context,\n ITEM_RESET,\n styles.euiBreadcrumb,\n styles[this.args.type],\n this.itemTruncate && styles.isTruncated,\n this.isCollapsed && styles.isCollapsed\n )}`;\n }\n\n @cached\n get contentCss(): CSSInterpolation[] {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n const { type, item } = this.args;\n const isApplication = type === 'application';\n const css: CSSInterpolation[] = [styles.euiBreadcrumb__content, styles[type]];\n if (isApplication) {\n css.push(\n item.isOnly\n ? styles.applicationStyles.onlyChild\n : item.isFirst\n ? styles.applicationStyles.firstChild\n : item.isLast\n ? styles.applicationStyles.lastChild\n : styles.applicationStyles.intermediateChild\n );\n }\n return css;\n }\n\n @cached\n get truncationCss(): CSSInterpolation[] {\n // The collapsed item never truncates (upstream `truncate: false`).\n if (this.isCollapsed) return [];\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n return [\n this.itemTruncate && !this.truncateLast && styles.isTruncated,\n this.truncateLast && styles.isTruncatedLast\n ];\n }\n\n @cached\n get interactionCss(): CSSInterpolation {\n const context = getEuiThemeContext(this);\n const styles = useEuiBorealisStyles(context, euiBreadcrumbContentStyles);\n return (this.isInteractive || this.isPopover) &&\n this.args.type !== 'application'\n ? styles.isInteractive\n : undefined;\n }\n\n /** The content's styles: EuiLink's `@css`, or the plain span's class. */\n @cached\n get contentStyles(): CSSInterpolation[] {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return this.isPopover\n ? [\n popoverStyles.euiBreadcrumb__popoverButton,\n ...this.contentCss,\n this.interactionCss\n ]\n : [...this.contentCss, ...this.truncationCss, this.interactionCss];\n }\n\n /** Upstream's `popoverProps.css`, composed after the wrapper styles. */\n get popoverUserCss(): EuiCss {\n return this.breadcrumb?.popoverProps?.css;\n }\n\n get contentClassNames(): string {\n return ['euiBreadcrumb__content', this.breadcrumb?.className]\n .filter(Boolean)\n .join(' ');\n }\n\n @cached\n get contentClass(): string {\n return `${this.contentClassNames} ${euiClass(\n getEuiThemeContext(this),\n ...this.contentStyles\n )}`;\n }\n\n @cached\n get truncationClass(): string {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return euiClass(\n context,\n popoverStyles.euiBreadcrumb__popoverTruncation,\n ...this.truncationCss\n );\n }\n\n /** Upstream's `css` on the collapsed item's EuiPopover. */\n @cached\n get popoverCss(): EuiCss[] {\n const context = getEuiThemeContext(this);\n const popoverStyles = useEuiBorealisStyles(\n context,\n euiBreadcrumbPopoverStyles\n );\n return [\n popoverStyles.popoverWrapper.euiBreadcrumb__popoverWrapper,\n !this.args.item.isLast && popoverStyles.popoverWrapper[this.args.type],\n this.popoverUserCss\n ];\n }\n\n <template>\n {{#if this.isPopover}}\n {{#let (useState false) this.breadcrumb.popoverProps as |popover props|}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiPopover\n @css={{this.popoverCss}}\n @isOpen={{popover.value}}\n @closePopover={{fn popover.setState false}}\n @anchorPosition={{props.anchorPosition}}\n @anchorClassName={{props.anchorClassName}}\n @panelPaddingSize={{props.panelPaddingSize}}\n @panelClassName={{props.panelClassName}}\n @panelStyle={{props.panelStyle}}\n @panelCss={{props.panelCss}}\n @rootCss={{props.rootCss}}\n @ownFocus={{props.ownFocus}}\n @display={{props.display}}\n @hasArrow={{props.hasArrow}}\n @initialFocus={{props.initialFocus}}\n @ariaLabel={{props.ariaLabel}}\n @ariaLabelledBy={{props.ariaLabelledBy}}\n @repositionOnScroll={{props.repositionOnScroll}}\n @repositionToCrossAxis={{props.repositionToCrossAxis}}\n @popoverScreenReaderText={{props.popoverScreenReaderText}}\n @attachToAnchor={{props.attachToAnchor}}\n @container={{props.container}}\n @zIndex={{props.zIndex}}\n @offset={{props.offset}}\n @buffer={{props.buffer}}\n @shouldSelfFocus={{props.shouldSelfFocus}}\n @isFocusTrapPaused={{props.isFocusTrapPaused}}\n @focusTrapOptions={{props.focusTrapOptions}}\n @popoverRef={{props.popoverRef}}\n @panelRef={{props.panelRef}}\n @portalRef={{props.portalRef}}\n @onTrapDeactivation={{props.onTrapDeactivation}}\n >\n <:button>\n {{#if this.isCollapsed}}\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color=\"subdued\"\n aria-label={{@collapsedLabel}}\n title={{@collapsedLabel}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}>…</span>\n <EuiIcon @type=\"chevronSingleDown\" @size=\"s\" />\n </EuiLink>\n {{else if this.breadcrumb.text}}\n {{! Upstream wraps the button in a tooltip with its text. }}\n <EuiToolTip @disableScreenReaderOutput={{true}}>\n <:content><EuiRenderNode @value={{this.breadcrumb.text}} /></:content>\n <:anchor>\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color={{this.linkColor}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}><EuiRenderNode @value={{this.breadcrumb.text}} /></span>\n <EuiIcon\n @type=\"chevronSingleDown\"\n @size=\"s\"\n aria-label={{this.popoverAriaLabel}}\n />\n </EuiLink>\n </:anchor>\n </EuiToolTip>\n {{else}}\n <EuiLink\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n @color={{this.linkColor}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (fn popover.setState (if popover.value false true))}}\n >\n <span class={{this.truncationClass}}></span>\n <EuiIcon\n @type=\"chevronSingleDown\"\n @size=\"s\"\n aria-label={{this.popoverAriaLabel}}\n />\n </EuiLink>\n {{/if}}\n </:button>\n <:content>\n {{#if this.overflow}}\n <EuiBreadcrumbs\n @breadcrumbs={{this.overflow}}\n @lastBreadcrumbIsCurrentPage={{false}}\n @responsive={{false}}\n @truncate={{false}}\n @max={{0}}\n >\n <:popoverContent as |breadcrumb closePopover|>\n {{yield breadcrumb closePopover to=\"popoverContent\"}}\n </:popoverContent>\n </EuiBreadcrumbs>\n {{else if this.popoverText}}\n {{this.popoverText}}\n {{else if this.popoverComponent}}\n {{#let this.popoverComponent as |Content|}}\n <Content\n @closePopover={{fn popover.setState false}}\n @breadcrumb={{this.popoverBreadcrumb}}\n />\n {{/let}}\n {{else}}\n {{yield this.popoverBreadcrumb (fn popover.setState false) to=\"popoverContent\"}}\n {{/if}}\n </:content>\n </EuiPopover>\n </li>\n {{/let}}\n {{else if this.breadcrumb}}\n <li class={{this.liClass}} data-test-subj=\"euiBreadcrumb\">\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#if this.isInteractive}}\n <EuiLink\n {{didInsert setInnerTextRef}}\n @color={{this.linkColor}}\n @href={{this.breadcrumb.href}}\n @rel={{this.breadcrumb.rel}}\n title={{if innerText innerText}}\n class={{this.contentClassNames}}\n @css={{this.contentStyles}}\n aria-current={{this.ariaCurrent}}\n {{on \"click\" (optional this.breadcrumb.onClick)}}\n >\n <EuiRenderNode @value={{this.breadcrumb.text}} />\n </EuiLink>\n {{else}}\n <span\n {{didInsert setInnerTextRef}}\n title={{if innerText innerText}}\n class={{this.contentClass}}\n aria-current={{this.ariaCurrent}}\n >\n <EuiRenderNode @value={{this.breadcrumb.text}} />\n </span>\n {{/if}}\n </EuiInnerText>\n </li>\n {{/if}}\n </template>\n}\n"],"names":["responsiveDefault","xs","s","m","LIST_RESET","boxSizing","margin","padding","listStyle","ITEM_RESET","limitBreadcrumbs","breadcrumbs","max","atStart","atEnd","limit","Math","min","length","start","floor","overflow","slice","i","isEven","normalizedIndex","index","breadcrumb","unshift","push","map","EuiBreadcrumbs","Component","g","prototype","service","tracked","constructor","owner","args","currentBreakpoint","getBreakpoint","window","Infinity","innerWidth","updateBreakpoint","breakpoint","onResize","throttle","ariaLabel","euiI18n","lookupToken","collapsedLabel","type","lastBreadcrumbIsCurrentPage","truncate","responsiveMax","responsive","responsiveObject","classes","css","euiClass","getEuiThemeContext","n","cached","listClasses","context","styles","useEuiBorealisStyles","euiBreadcrumbsListStyles","euiBreadcrumbs__list","isTruncated","items","visible","isFirst","isLast","isOnly","setComponentTemplate","precompileTemplate","strictMode","scope","onWindowResize","BreadcrumbItem","isCollapsed","Boolean","item","itemTruncate","truncateLast","popoverBreadcrumb","popoverText","content","popoverContent","undefined","popoverComponent","hasPopover","isPopover","popoverAriaLabel","isInteractive","href","onClick","ariaCurrent","linkColor","color","liClass","euiBreadcrumbStyles","euiBreadcrumb","contentCss","euiBreadcrumbContentStyles","isApplication","euiBreadcrumb__content","applicationStyles","onlyChild","firstChild","lastChild","intermediateChild","truncationCss","isTruncatedLast","interactionCss","contentStyles","popoverStyles","euiBreadcrumbPopoverStyles","euiBreadcrumb__popoverButton","popoverUserCss","popoverProps","contentClassNames","className","filter","join","contentClass","truncationClass","euiBreadcrumb__popoverTruncation","popoverCss","popoverWrapper","euiBreadcrumb__popoverWrapper","useState","EuiPopover","fn","EuiLink","on","EuiIcon","EuiToolTip","EuiRenderNode","EuiInnerText","didInsert","optional"],"mappings":"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"}
|