<html><head></head><body>{"version":3,"sources":["src/components/search/atomic-breadbox/atomic-breadbox.pcss?tag=atomic-breadbox&encapsulation=shadow","src/components/search/atomic-breadbox/atomic-breadbox.tsx"],"names":["atomicBreadboxCss","SEPARATOR","ELLIPSIS","AtomicBreadbox","[object Object]","hostRef","this","lastRemovedBreadcrumbIndex","numberOfBreadcrumbs","numberOfCollapsedBreadcrumbs","isCollapsed","breadcrumbManager","buildBreadcrumbManager","bindings","engine","facetManager","buildFacetManager","window","ResizeObserver","resizeObserver","adaptBreadcrumbs","observe","host","parentElement","_a","disconnect","focusTargets","breadcrumbRemovedFocus","FocusTargetController","breadcrumbShowLessFocus","breadcrumbShowMoreFocus","breadcrumbs","Array","from","shadowRoot","querySelectorAll","element","style","display","forEach","breadcrumb","show","hiddenBreadcrumbs","i","length","isOverflowing","hide","updateShowMoreValue","showLess","offsetTop","showAllBreadcrumbs","updateShowLessDisplay","hideOverflowingBreadcrumbs","listElement","querySelector","scrollWidth","clientWidth","path","join","ellipsedPath","slice","index","totalBreadcrumbs","fullValue","isArray","formattedValue","value","limitPath","title","label","isLastBreadcrumb","h","class","key","Button","part","ariaLabel","i18n","t","onClick","store","state","resultList","focusOnFirstResultAfterNextSearch","focusAfterSearch","deselect","ref","setTarget","firstExpandedBreadcrumbIndex","text","content","icon","CloseIcon","showMore","textContent","toLocaleString","language","setAttribute","focusOnNextTarget","isFocusTarget","async","deselectAll","undefined","facetBreadcrumbs","breadcrumbManagerState","map","facetId","field","values","flat","filter","facets","getFieldValueCaption","categoryFacetBreadcrumbs","categoryFacets","pathValue","numericFacetBreadcrumbs","numericFacets","format","_b","call","dateFacetBreadcrumbs","dateFacets","automaticFacetBreadcrumbs","flatMap","allBreadcrumbs","sortedBreadcrumbs","sort","a","b","indexA","facetManagerState","facetIds","indexOf","indexB","renderBreadcrumb","renderShowMore","renderShowLess","renderClearAll","Hidden","renderBreadcrumbs","__decorate","InitializeBindings","BindStateToController"],"mappings":"kZAAA,MAAMA,EAAoB,qs+BC6B1B,MAAMC,EAAY,MAClB,MAAMC,EAAW,YAsBJC,EAAc,MAL3BC,YAAAC,aAWUC,KAAAC,2BAA6B,EAC7BD,KAAAE,oBAAsB,EACtBF,KAAAG,6BAA+B,EAatBH,KAAAI,YAAc,KAQxBN,aACLE,KAAKK,kBAAoBC,EAAuBN,KAAKO,SAASC,QAC9DR,KAAKS,aAAeC,EAAkBV,KAAKO,SAASC,QAEpD,GAAIG,OAAOC,eAAgB,CACzBZ,KAAKa,eAAiB,IAAID,gBAAe,IAAMZ,KAAKc,qBACpDd,KAAKa,eAAeE,QAAQf,KAAKgB,KAAKC,gBAInCnB,8BACLoB,EAAAlB,KAAKa,kBAAc,MAAAK,SAAA,OAAA,EAAAA,EAAEC,aAGvBC,mBACE,IAAKpB,KAAKqB,uBAAwB,CAChCrB,KAAKqB,uBAAyB,IAAIC,EAAsBtB,MAE1D,IAAKA,KAAKuB,wBAAyB,CACjCvB,KAAKuB,wBAA0B,IAAID,EAAsBtB,MAE3D,IAAKA,KAAKwB,wBAAyB,CACjCxB,KAAKwB,wBAA0B,IAAIF,EAAsBtB,MAE3D,MAAO,CACLqB,uBAAwBrB,KAAKqB,uBAC7BE,wBAAyBvB,KAAKuB,wBAC9BC,wBAAyBxB,KAAKwB,yBAIlCC,kBACE,OAAOC,MAAMC,KACX3B,KAAKgB,KAAKY,WAAYC,iBAAiB,kBAInC/B,KAAKgC,GACXA,EAAQC,MAAMC,QAAU,OAGlBlC,KAAKgC,GACXA,EAAQC,MAAMC,QAAU,GAGlBlC,qBACNE,KAAKyB,YAAYQ,SAASC,GAAelC,KAAKmC,KAAKD,KAG7CpC,6BACN,IAAIsC,EAAoB,EACxB,IACE,IAAIC,EAAIrC,KAAKyB,YAAYa,OAAS,EAClCtC,KAAKuC,eAAiBF,GAAK,EAC3BA,IACA,CACArC,KAAKwC,KAAKxC,KAAKyB,YAAYY,IAC3BD,IAEFpC,KAAKyC,oBAAoBL,GAGnBtC,wBACNE,KAAKmC,KAAKnC,KAAK0C,UACf,GAAI1C,KAAK0C,SAASC,YAAc,EAAG,CACjC3C,KAAKwC,KAAKxC,KAAK0C,WAIX5C,mBACN,IAAKE,KAAKyB,YAAYa,OAAQ,CAC5B,OAEFtC,KAAK4C,qBAEL,IAAK5C,KAAKI,YAAa,CACrBJ,KAAK6C,wBACL,OAGF7C,KAAKyC,oBAAoBzC,KAAKyB,YAAYa,QAC1CtC,KAAK8C,6BAGPP,oBACE,MAAMQ,EAAc/C,KAAKgB,KAAKY,WAAYoB,cAAc,MACxD,IAAKD,EAAa,CAChB,OAAO,MAET,OAAOA,EAAYE,YAAcF,EAAYG,YAGvCpD,UAAUqD,GAChB,GAAIA,EAAKb,QAAU,EAAG,CACpB,OAAOa,EAAKC,KAAKzD,GAGnB,MAAM0D,EAAe,CAACF,EAAK,GAAIvD,KAAauD,EAAKG,OAAO,IACxD,OAAOD,EAAaD,KAAKzD,GAGnBG,iBACNoC,EACAqB,EACAC,SAEA,MAAMC,EAAY/B,MAAMgC,QAAQxB,EAAWyB,gBACvCzB,EAAWyB,eAAeP,KAAKzD,GAC/BuC,EAAWyB,eACf,MAAMC,EAAQlC,MAAMgC,QAAQxB,EAAWyB,gBACnC3D,KAAK6D,UAAU3B,EAAWyB,gBAC1BzB,EAAWyB,eACf,MAAMG,EAAQ,GAAG5B,EAAW6B,UAAUN,IACtC,MAAMO,EAAmBR,IAAqB,EAE9C,OACES,EAAA,KAAA,CAAIC,MAAM,aAAaC,IAAKP,GAC1BK,EAACG,EAAM,CACLC,KAAK,oBACLtC,MAAM,qBACNmC,MAAM,6CACNJ,MAAOA,EACPQ,UAAWtE,KAAKO,SAASgE,KAAKC,EAAE,mBAAoB,CAClDZ,MAAOE,IAETW,QAAS,WACP,GAAIT,EAAkB,EACpB9C,EAAAlB,KAAKO,SAASmE,MAAMC,MAAMC,cAAU,MAAA1D,SAAA,OAAA,EAAAA,EAAE2D,yCACjC,GAAI7E,KAAKE,oBAAsB,EAAG,CACvCF,KAAKoB,aAAaC,uBAAuByD,mBAG3C9E,KAAKC,2BAA6BsD,EAClCrB,EAAW6C,YAEbC,IAAMA,IACJ,GAAIhF,KAAKC,6BAA+BsD,EAAO,CAC7CvD,KAAKoB,aAAaC,uBAAuB4D,UAAUD,GAErD,GAAIhF,KAAKkF,+BAAiC3B,EAAO,CAC/CvD,KAAKoB,aAAaI,wBAAwByD,UAAUD,MAIxDf,EAAA,OAAA,CACEI,KAAK,mBACLH,MAAM,6GAELlE,KAAKO,SAASgE,KAAKC,EAAE,aAAc,CAACW,KAAMjD,EAAW6B,SAExDE,EAAA,OAAA,CACEI,KAAK,mBACLH,MAAOhC,EAAWkD,QAAU,GAAK,2BAEhClE,EAAAgB,EAAWkD,WAAO,MAAAlE,SAAA,EAAAA,EAAI0C,GAEzBK,EAAA,cAAA,CACEI,KAAK,mBACLH,MAAM,yBACNmB,KAAMC,MAORxF,oBAAoB8D,GAC1B5D,KAAKG,6BAA+ByD,EACpC,GAAIA,IAAU,EAAG,CACf5D,KAAKwC,KAAKxC,KAAKuF,UACf,OAGFvF,KAAKmC,KAAKnC,KAAKuF,UACfvF,KAAKuF,SAASC,YAAc,KAAK5B,EAAM6B,eACrCzF,KAAKO,SAASgE,KAAKmB,YAGrB1F,KAAKuF,SAASI,aACZ,aACA3F,KAAKO,SAASgE,KAAKC,EAAE,sBAAuB,CAC1CZ,MAAAA,KAKE9D,iBACN,OACEmE,EAAA,KAAA,CAAIE,IAAI,aACNF,EAACG,EAAM,CACLY,IAAMA,IACJhF,KAAKoB,aAAaG,wBAAwB0D,UAAUD,GACpDhF,KAAKuF,SAAWP,GAElBX,KAAK,YACLtC,MAAM,kBACNmC,MAAM,iCACNO,QAAS,KACPzE,KAAKkF,6BACHlF,KAAKE,oBAAsBF,KAAKG,6BAClCH,KAAKoB,aAAaI,wBAAwBoE,oBAC1C5F,KAAKI,YAAc,UAOrBN,iBACN,OACEmE,EAAA,KAAA,CAAIE,IAAI,aACNF,EAACG,EAAM,CACLY,IAAMA,GAAShF,KAAK0C,SAAWsC,EAC/BX,KAAK,YACLtC,MAAM,kBACNoD,KAAMnF,KAAKO,SAASgE,KAAKC,EAAE,aAC3BN,MAAM,eACNO,QAAS,KACPzE,KAAKoB,aAAaG,wBAAwBqE,oBAC1C5F,KAAKI,YAAc,SAOrBN,iBACN,MAAM+F,EACJ7F,KAAKC,6BAA+BD,KAAKE,oBAC3C,OACE+D,EAAA,KAAA,CAAIE,IAAI,aACNF,EAACG,EAAM,CACLC,KAAK,QACLtC,MAAM,eACNoD,KAAMnF,KAAKO,SAASgE,KAAKC,EAAE,SAC3BN,MAAM,eACNI,UAAWtE,KAAKO,SAASgE,KAAKC,EAAE,qBAChCC,QAASqB,gBACP9F,KAAKK,kBAAkB0F,eACvB7E,EAAAlB,KAAKO,SAASmE,MAAMC,MAAMC,cAAU,MAAA1D,SAAA,OAAA,EAAAA,EAAE2D,qCAExCG,IACEa,EACI7F,KAAKoB,aAAaC,uBAAuB4D,UACzCe,aAOdC,uBACE,OAAOjG,KAAKkG,uBAAuBD,iBAChCE,KAAI,EAAEC,QAAAA,EAASC,MAAAA,EAAOC,OAAAA,KACrBA,EAAOH,KAAKvC,IAAK,CAAOA,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,QAEzCE,OACAC,QAAO,EAAEJ,QAAAA,KAAapG,KAAKO,SAASmE,MAAMC,MAAM8B,OAAOL,KACvDD,KAAI,EAAEvC,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,YAAW,MAAA,CAChCD,QAAAA,EACArC,OAAO7C,EAAAlB,KAAKO,SAASmE,MAAMC,MAAM8B,OAAOL,MAAQ,MAAAlF,SAAA,OAAA,EAAAA,EAAE6C,QAClDgB,SAAUnB,EAAMmB,SAChBpB,eAAgB,CACd+C,EAAqBL,EAAOzC,EAAMA,MAAMA,MAAO5D,KAAKO,SAASgE,WAKrEoC,+BACE,OAAO3G,KAAKkG,uBAAuBS,yBAAyBR,KAC1D,EAAEC,QAAAA,EAASC,MAAAA,EAAOlD,KAAAA,EAAM4B,SAAAA,MAAS,CAC/BqB,QAAAA,EACArC,MAAO/D,KAAKO,SAASmE,MAAMC,MAAMiC,eAAeR,GAASrC,QACzDgB,SAAUA,EACVpB,eAAgBR,EAAKgD,KAAKU,GACxBH,EAAqBL,EAAOQ,EAAUjD,MAAO5D,KAAKO,SAASgE,YAMnEuC,8BACE,OAAO9G,KAAKkG,uBAAuBY,wBAChCX,KAAI,EAAEC,QAAAA,EAASC,MAAAA,EAAOC,OAAAA,KACrBA,EAAOH,KAAKvC,IAAK,CAAOA,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,QAEzCE,OACAJ,KAAI,EAAEvC,MAAAA,EAAOwC,QAAAA,cAAa,MAAA,CACzBA,QAAAA,EACArC,MAAO/D,KAAKO,SAASmE,MAAMC,MAAMoC,cAAcX,GAASrC,QACxDgB,SAAUnB,EAAMmB,SAChBpB,eAAgB,CACd3D,KAAKO,SAASmE,MAAMC,MAAMoC,cAAcX,GAASY,OAAOpD,EAAMA,QAEhEwB,SAAS6B,GAAA/F,EAAAlB,KAAKO,SAASmE,MAAMC,MAAMoC,cAAcX,IAAShB,WAAO,MAAA6B,SAAA,OAAA,EAAAA,EAAAC,KAAAhG,EAC/D0C,EAAMA,WAKduD,2BACE,OAAOnH,KAAKkG,uBAAuBiB,qBAChChB,KAAI,EAAEC,QAAAA,EAASC,MAAAA,EAAOC,OAAAA,KACrBA,EAAOH,KAAKvC,IAAK,CAAOA,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,QAEzCE,OACAJ,KAAI,EAAEvC,MAAAA,EAAOwC,QAAAA,MAAQ,CACpBA,QAAAA,EACArC,MAAO/D,KAAKO,SAASmE,MAAMC,MAAMyC,WAAWhB,GAASrC,QACrDgB,SAAUnB,EAAMmB,SAChBpB,eAAgB,CACd3D,KAAKO,SAASmE,MAAMC,MAAMyC,WAAWhB,GAASY,OAAOpD,EAAMA,YAKnEyD,gCACE,OAAOrH,KAAKkG,uBAAuBmB,0BAChCC,SAAQ,EAAElB,QAAAA,EAASC,MAAAA,EAAOtC,MAAAA,EAAOuC,OAAAA,KAChCA,EAAOH,KAAKvC,IAAK,CAAOA,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,EAAOtC,MAAAA,QAEhDoC,KAAI,EAAEvC,MAAAA,EAAOwC,QAAAA,EAASC,MAAAA,EAAOtC,MAAAA,MAAM,CAClCqC,QAAAA,EACArC,MAAOA,EAAQA,EAAQsC,EACvBtB,SAAUnB,EAAMmB,SAChBpB,eAAgB,CACd+C,EAAqBL,EAAOzC,EAAMA,MAAMA,MAAO5D,KAAKO,SAASgE,WAKrEgD,qBACE,MAAO,IACFvH,KAAKiG,oBACLjG,KAAK2G,4BACL3G,KAAK8G,2BACL9G,KAAKmH,wBACLnH,KAAKqH,2BAIJvH,kBAAkByH,GACxB,MAAMC,EAAoBD,EAAeE,MAAK,CAACC,EAAGC,KAChD,MAAMC,EAAS5H,KAAK6H,kBAAkBC,SAASC,QAAQL,EAAEtB,SACzD,MAAM4B,EAAShI,KAAK6H,kBAAkBC,SAASC,QAAQJ,EAAEvB,SACzD,OAAOwB,EAASI,KAElBhI,KAAKE,oBAAsBsH,EAAkBlF,OAE7C,MAAO,CACLkF,EAAkBrB,KAAI,CAACjE,EAAYG,IACjCrC,KAAKiI,iBAAiB/F,EAAYG,EAAGkF,EAAejF,UAEtDtC,KAAKI,aAAeJ,KAAKkI,kBACxBlI,KAAKI,aAAeJ,KAAKmI,iBAC1BnI,KAAKoI,kBAIFtI,SACL,MAAMyH,EAAiBvH,KAAKuH,eAE5B,IAAKA,EAAejF,OAAQ,CAC1B,OAAO2B,EAACoE,EAAM,MAGhB,OACEpE,EAAA,MAAA,CAAKI,KAAK,YAAYH,MAAM,mCAC1BD,EAAA,OAAA,CAAMI,KAAK,QAAQH,MAAM,qCACtBlE,KAAKO,SAASgE,KAAKC,EAAE,aAAc,CAClCW,KAAMnF,KAAKO,SAASgE,KAAKC,EAAE,cAG/BP,EAAA,MAAA,CAAKI,KAAK,4BAA4BH,MAAM,iBAC1CD,EAAA,KAAA,CACEI,KAAK,kBACLH,MAAO,cACLlE,KAAKI,YAAc,8BAAgC,eAGpDJ,KAAKsI,kBAAkBf,MAO3BzH,qBACLE,KAAKc,+CAhaeyH,EAAA,CAArBC,uCAaAC,EAAsB,sEAGtBA,EAAsB","sourcesContent":["@import '../../../global/global.pcss';\n@import '../atomic-rating/atomic-rating.pcss';\n\n.max-w-snippet {\n max-width: 30ch;\n}\n","import {\n BreadcrumbManagerState,\n BreadcrumbManager,\n buildBreadcrumbManager,\n FacetManager,\n FacetManagerState,\n buildFacetManager,\n} from '@coveo/headless';\nimport {Component, h, State, Element, VNode} from '@stencil/core';\nimport CloseIcon from '../../../images/close.svg';\nimport {FocusTargetController} from '../../../utils/accessibility-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {\n InitializableComponent,\n BindStateToController,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {Button} from '../../common/button';\nimport {Hidden} from '../../common/hidden';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\ninterface Breadcrumb {\n facetId: string;\n label: string;\n formattedValue: string[];\n content?: VNode;\n deselect: () => void;\n}\n\nconst SEPARATOR = ' / ';\nconst ELLIPSIS = '...';\n\n/**\n * The `atomic-breadbox` component creates breadcrumbs that display a summary of the currently active facet values.\n *\n * @part container - The container of the whole component, list & label.\n * @part breadcrumb-list-container - The container of the list of breadcrumb buttons.\n * @part breadcrumb-list - The list of breadcrumb buttons.\n * @part breadcrumb-button - A single breadcrumb button.\n * @part breadcrumb-label - The breadcrumb label, associated with the facet.\n * @part breadcrumb-value - The breadcrumb formatted value.\n * @part breadcrumb-clear - The button to clear individual filters.\n * @part show-more - The button to display all breadcrumbs.\n * @part show-less - The button to display less breadcrumbs.\n * @part label - The \"Filters\" label.\n * @part clear - The button to clear all filters.\n */\n@Component({\n tag: 'atomic-breadbox',\n styleUrl: 'atomic-breadbox.pcss',\n shadow: true,\n})\nexport class AtomicBreadbox implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n private breadcrumbManager!: BreadcrumbManager;\n private resizeObserver?: ResizeObserver;\n private showMore!: HTMLButtonElement;\n private showLess!: HTMLButtonElement;\n private lastRemovedBreadcrumbIndex = 0;\n private numberOfBreadcrumbs = 0;\n private numberOfCollapsedBreadcrumbs = 0;\n private firstExpandedBreadcrumbIndex?: number;\n facetManager!: FacetManager;\n\n @Element() private host!: HTMLElement;\n\n @BindStateToController('breadcrumbManager')\n @State()\n private breadcrumbManagerState!: BreadcrumbManagerState;\n @BindStateToController('facetManager')\n @State()\n public facetManagerState!: FacetManagerState;\n @State() public error!: Error;\n @State() private isCollapsed = true;\n\n private breadcrumbRemovedFocus?: FocusTargetController;\n\n private breadcrumbShowMoreFocus?: FocusTargetController;\n\n private breadcrumbShowLessFocus?: FocusTargetController;\n\n public initialize() {\n this.breadcrumbManager = buildBreadcrumbManager(this.bindings.engine);\n this.facetManager = buildFacetManager(this.bindings.engine);\n\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => this.adaptBreadcrumbs());\n this.resizeObserver.observe(this.host.parentElement!);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n private get focusTargets() {\n if (!this.breadcrumbRemovedFocus) {\n this.breadcrumbRemovedFocus = new FocusTargetController(this);\n }\n if (!this.breadcrumbShowLessFocus) {\n this.breadcrumbShowLessFocus = new FocusTargetController(this);\n }\n if (!this.breadcrumbShowMoreFocus) {\n this.breadcrumbShowMoreFocus = new FocusTargetController(this);\n }\n return {\n breadcrumbRemovedFocus: this.breadcrumbRemovedFocus,\n breadcrumbShowLessFocus: this.breadcrumbShowLessFocus,\n breadcrumbShowMoreFocus: this.breadcrumbShowMoreFocus,\n };\n }\n\n private get breadcrumbs() {\n return Array.from(\n this.host.shadowRoot!.querySelectorAll('li.breadcrumb')\n ) as HTMLElement[];\n }\n\n private hide(element: HTMLElement) {\n element.style.display = 'none';\n }\n\n private show(element: HTMLElement) {\n element.style.display = '';\n }\n\n private showAllBreadcrumbs() {\n this.breadcrumbs.forEach((breadcrumb) => this.show(breadcrumb));\n }\n\n private hideOverflowingBreadcrumbs() {\n let hiddenBreadcrumbs = 0;\n for (\n let i = this.breadcrumbs.length - 1;\n this.isOverflowing && i >= 0;\n i--\n ) {\n this.hide(this.breadcrumbs[i]);\n hiddenBreadcrumbs++;\n }\n this.updateShowMoreValue(hiddenBreadcrumbs);\n }\n\n private updateShowLessDisplay() {\n this.show(this.showLess);\n if (this.showLess.offsetTop === 0) {\n this.hide(this.showLess);\n }\n }\n\n private adaptBreadcrumbs() {\n if (!this.breadcrumbs.length) {\n return;\n }\n this.showAllBreadcrumbs();\n\n if (!this.isCollapsed) {\n this.updateShowLessDisplay();\n return;\n }\n\n this.updateShowMoreValue(this.breadcrumbs.length);\n this.hideOverflowingBreadcrumbs();\n }\n\n private get isOverflowing() {\n const listElement = this.host.shadowRoot!.querySelector('ul');\n if (!listElement) {\n return false;\n }\n return listElement.scrollWidth > listElement.clientWidth;\n }\n\n private limitPath(path: string[]) {\n if (path.length <= 3) {\n return path.join(SEPARATOR);\n }\n\n const ellipsedPath = [path[0], ELLIPSIS, ...path.slice(-2)];\n return ellipsedPath.join(SEPARATOR);\n }\n\n private renderBreadcrumb(\n breadcrumb: Breadcrumb,\n index: number,\n totalBreadcrumbs: number\n ) {\n const fullValue = Array.isArray(breadcrumb.formattedValue)\n ? breadcrumb.formattedValue.join(SEPARATOR)\n : breadcrumb.formattedValue;\n const value = Array.isArray(breadcrumb.formattedValue)\n ? this.limitPath(breadcrumb.formattedValue)\n : breadcrumb.formattedValue;\n const title = `${breadcrumb.label}: ${fullValue}`;\n const isLastBreadcrumb = totalBreadcrumbs === 1;\n\n return (\n <li class='\"breadcrumb\"' key="{value}">\n <button\n =="" arialabel="{this.bindings.i18n.t('remove-filter-on'," btn-pill="" class='\"py-2' flex="" group\"\n="" items-center="" onclick="{()" part='\"breadcrumb-button\"\n' px-3="" style='\"outline-bg-neutral\"\n' title="{title}\n" title,\n="" value:="" {\n="" })}\n=""> {\n if (isLastBreadcrumb) {\n this.bindings.store.state.resultList?.focusOnFirstResultAfterNextSearch();\n } else if (this.numberOfBreadcrumbs > 1) {\n this.focusTargets.breadcrumbRemovedFocus.focusAfterSearch();\n }\n\n this.lastRemovedBreadcrumbIndex = index;\n breadcrumb.deselect();\n }}\n ref={(ref) => {\n if (this.lastRemovedBreadcrumbIndex === index) {\n this.focusTargets.breadcrumbRemovedFocus.setTarget(ref);\n }\n if (this.firstExpandedBreadcrumbIndex === index) {\n this.focusTargets.breadcrumbShowMoreFocus.setTarget(ref);\n }\n }}\n >\n <span\n class='\"max-w-snippet' group-focus-visible:text-primary\"\n="" group-hover:text-primary="" mr-0.5="" part='\"breadcrumb-label\"\n' text-neutral-dark="" truncate="">\n {this.bindings.i18n.t('with-colon', {text: breadcrumb.label})}\n \n <span\n ''="" 'max-w-snippet="" :="" ?="" class="{breadcrumb.content" part='\"breadcrumb-value\"\n' truncate'}\n="">\n {breadcrumb.content ?? value}\n \n <atomic-icon\n class='\"w-2.5' h-2.5="" icon="{CloseIcon}\n" ml-2="" mt-px\"\n="" part='\"breadcrumb-clear\"\n'>\n \n </atomic-icon\n></span\n></span\n></button\n></li>\n );\n }\n\n private updateShowMoreValue(value: number) {\n this.numberOfCollapsedBreadcrumbs = value;\n if (value === 0) {\n this.hide(this.showMore);\n return;\n }\n\n this.show(this.showMore);\n this.showMore.textContent = `+ ${value.toLocaleString(\n this.bindings.i18n.language\n )}`;\n\n this.showMore.setAttribute(\n 'aria-label',\n this.bindings.i18n.t('show-n-more-filters', {\n value,\n })\n );\n }\n\n private renderShowMore() {\n return (\n <li key='\"show-more\"'>\n <button\n =="" ref="{(ref)"> {\n this.focusTargets.breadcrumbShowLessFocus.setTarget(ref!);\n this.showMore = ref!;\n }}\n part=\"show-more\"\n style=\"outline-primary\"\n class=\"p-2 btn-pill whitespace-nowrap\"\n onClick={() => {\n this.firstExpandedBreadcrumbIndex =\n this.numberOfBreadcrumbs - this.numberOfCollapsedBreadcrumbs;\n this.focusTargets.breadcrumbShowMoreFocus.focusOnNextTarget();\n this.isCollapsed = false;\n }}\n >\n </button\n></li>\n );\n }\n\n private renderShowLess() {\n return (\n <li key='\"show-less\"'>\n <button\n =="" ref="{(ref)"> (this.showLess = ref!)}\n part=\"show-less\"\n style=\"outline-primary\"\n text={this.bindings.i18n.t('show-less')}\n class=\"p-2 btn-pill\"\n onClick={() => {\n this.focusTargets.breadcrumbShowLessFocus.focusOnNextTarget();\n this.isCollapsed = true;\n }}\n >\n </button\n></li>\n );\n }\n\n private renderClearAll() {\n const isFocusTarget =\n this.lastRemovedBreadcrumbIndex === this.numberOfBreadcrumbs;\n return (\n <li key='\"clear-all\"'>\n <button\n ()="" arialabel="{this.bindings.i18n.t('clear-all-filters')}\n" btn-pill\"\n="" class='\"p-2' onclick="{async" part='\"clear\"\n' style='\"text-primary\"\n' text="{this.bindings.i18n.t('clear')}\n"> {\n this.breadcrumbManager.deselectAll();\n this.bindings.store.state.resultList?.focusOnFirstResultAfterNextSearch();\n }}\n ref={\n isFocusTarget\n ? this.focusTargets.breadcrumbRemovedFocus.setTarget\n : undefined\n }\n >\n </button\n></li>\n );\n }\n\n private get facetBreadcrumbs(): Breadcrumb[] {\n return this.breadcrumbManagerState.facetBreadcrumbs\n .map(({facetId, field, values}) =>\n values.map((value) => ({value, facetId, field}))\n )\n .flat()\n .filter(({facetId}) => this.bindings.store.state.facets[facetId])\n .map(({value, facetId, field}) => ({\n facetId,\n label: this.bindings.store.state.facets[facetId]?.label(),\n deselect: value.deselect,\n formattedValue: [\n getFieldValueCaption(field, value.value.value, this.bindings.i18n),\n ],\n }));\n }\n\n private get categoryFacetBreadcrumbs(): Breadcrumb[] {\n return this.breadcrumbManagerState.categoryFacetBreadcrumbs.map(\n ({facetId, field, path, deselect}) => ({\n facetId,\n label: this.bindings.store.state.categoryFacets[facetId].label(),\n deselect: deselect,\n formattedValue: path.map((pathValue) =>\n getFieldValueCaption(field, pathValue.value, this.bindings.i18n)\n ),\n })\n );\n }\n\n private get numericFacetBreadcrumbs(): Breadcrumb[] {\n return this.breadcrumbManagerState.numericFacetBreadcrumbs\n .map(({facetId, field, values}) =>\n values.map((value) => ({value, facetId, field}))\n )\n .flat()\n .map(({value, facetId}) => ({\n facetId,\n label: this.bindings.store.state.numericFacets[facetId].label(),\n deselect: value.deselect,\n formattedValue: [\n this.bindings.store.state.numericFacets[facetId].format(value.value),\n ],\n content: this.bindings.store.state.numericFacets[facetId].content?.(\n value.value\n ),\n }));\n }\n\n private get dateFacetBreadcrumbs(): Breadcrumb[] {\n return this.breadcrumbManagerState.dateFacetBreadcrumbs\n .map(({facetId, field, values}) =>\n values.map((value) => ({value, facetId, field}))\n )\n .flat()\n .map(({value, facetId}) => ({\n facetId,\n label: this.bindings.store.state.dateFacets[facetId].label(),\n deselect: value.deselect,\n formattedValue: [\n this.bindings.store.state.dateFacets[facetId].format(value.value),\n ],\n }));\n }\n\n private get automaticFacetBreadcrumbs(): Breadcrumb[] {\n return this.breadcrumbManagerState.automaticFacetBreadcrumbs\n .flatMap(({facetId, field, label, values}) =>\n values.map((value) => ({value, facetId, field, label}))\n )\n .map(({value, facetId, field, label}) => ({\n facetId,\n label: label ? label : field,\n deselect: value.deselect,\n formattedValue: [\n getFieldValueCaption(field, value.value.value, this.bindings.i18n),\n ],\n }));\n }\n\n private get allBreadcrumbs(): Breadcrumb[] {\n return [\n ...this.facetBreadcrumbs,\n ...this.categoryFacetBreadcrumbs,\n ...this.numericFacetBreadcrumbs,\n ...this.dateFacetBreadcrumbs,\n ...this.automaticFacetBreadcrumbs,\n ];\n }\n\n private renderBreadcrumbs(allBreadcrumbs: Breadcrumb[]) {\n const sortedBreadcrumbs = allBreadcrumbs.sort((a, b) => {\n const indexA = this.facetManagerState.facetIds.indexOf(a.facetId);\n const indexB = this.facetManagerState.facetIds.indexOf(b.facetId);\n return indexA - indexB;\n });\n this.numberOfBreadcrumbs = sortedBreadcrumbs.length;\n\n return [\n sortedBreadcrumbs.map((breadcrumb, i) =>\n this.renderBreadcrumb(breadcrumb, i, allBreadcrumbs.length)\n ),\n this.isCollapsed && this.renderShowMore(),\n !this.isCollapsed && this.renderShowLess(),\n this.renderClearAll(),\n ];\n }\n\n public render() {\n const allBreadcrumbs = this.allBreadcrumbs;\n\n if (!allBreadcrumbs.length) {\n return <hidden></hidden>;\n }\n\n return (\n <div class='\"text-on-background' flex\"="" part='\"container\"' text-sm="">\n <span class='\"font-bold' part='\"label\"' pl-0="" pr-2\"="" py-[0.625rem]="">\n {this.bindings.i18n.t('with-colon', {\n text: this.bindings.i18n.t('filters'),\n })}\n </span>\n <div class='\"relative' grow\"="" part='\"breadcrumb-list-container\"'>\n <ul\n ${\n="" 'flex-nowrap="" 'flex-wrap'\n="" :="" ?="" absolute="" class="{`flex" gap-1="" part='\"breadcrumb-list\"\n' this.iscollapsed="" w-full'="" }`}\n="">\n {this.renderBreadcrumbs(allBreadcrumbs)}\n \n </ul\n></div>\n </div>\n );\n }\n\n public componentDidRender() {\n this.adaptBreadcrumbs();\n }\n}\n"]}<style> .hidden { display: none; } </style> <a href="http://www.tt99949.com" class="hidden">bet365-Sports-customerservice@tt99949.com</a> <a href="http://web-sitemap.big5vn.com" class="hidden">深远石油</a> <a href="http://www.cesametal.net" class="hidden">亚洲博彩</a> <a href="http://www.braelyngenerator.net" class="hidden">太阳城</a> <a href="http://www.cceweb.net" class="hidden">Gambling-website-recommendations-info@cceweb.net</a> <a href="http://www.cceweb.net" class="hidden">博彩平台大全</a> <a href="http://qlwcxp.tengenixs.net" class="hidden">双人小游戏</a> <a href="http://www.lhjcmaigaiti.com" class="hidden">太阳城娱乐</a> <a href="http://www.lcxlxxjc.com" class="hidden">皇冠注册</a> <a href="http://srjwkk.asheng-l.com" class="hidden">北京航天总医院</a> <a href="http://web-sitemap.840339.com" class="hidden">中国-东盟矿产资源网</a> <a href="http://web-sitemap.maoqijie.com" class="hidden">老来寿</a> <a href="http://ukgida.paomahu.com" class="hidden">北京天气预报</a> <a href="http://www.letaoyizs.com" class="hidden">Crown-app-Download-customerservice@letaoyizs.com</a> <a href="http://www.xsdvoip.com" class="hidden">Football-platform-feedback@xsdvoip.com</a> <a href="http://www.waki-aiai.net" class="hidden">太阳城</a> <a href="http://www.rf518.com" class="hidden">Sports-betting-platform-ranking-help@rf518.com</a> <a href="http://flkdlx.52recommend.com" class="hidden">襄樊百姓网</a> <a href="http://eauyha.guotaitool.com" class="hidden">燕子BT </a> <a href="http://web-sitemap.mustbr.com" class="hidden">美国航空</a> <a href="https://stock.adobe.com/search?k=✔️最新网址:la55.net✔️最好的网络博彩靠谱的博彩网站.rqt" class="hidden">汉王书城报纸频道</a> <a href="https://stock.adobe.com/search?k=✔️最新网址:la55.net✔️最大的博彩365平台(中国)有限公司✔️最新网址:la55.net✔️最大的博彩365平台(中国)有限公司" class="hidden">郑州航空港区管委会</a> <a href="https://es-la.facebook.com/public/十大网络娱乐平台注册(中国)有限公司✔️最新网址:la55.net✔️十大网络娱乐平台注册(中国)有限公司✔️最新网址:la55.net✔️.mtc" class="hidden">5173手游交易网</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️最新网址:la55.net✔️澳门拉斯维加斯网站✔️最新网址:la55.net✔️澳门拉斯维加斯网站" class="hidden">镇远网</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=欧洲杯买球赛用什么app✔️网址:la666.net✔️欧洲杯买球赛用什么app✔️网址:la666.net✔️" class="hidden">91查API接口</a> <a href="https://acrmc.com/search/✔️网址:ad11.net✔️bob电竞官网✔️网址:ad11.net✔️bob电竞官网.oaf" class="hidden">大悲古寺</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la66.net✔️澳门十大赌场注册平台-澳门十大赌场注册平台官方网站" class="hidden">北方汽修学校官方网站</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=>>✔️最新网址:la55.net✔️手输<<美高梅最新平台网址平台" class="hidden">商赢环球</a> <a href="https://es-la.facebook.com/public/✔️官方网址:la777.net✔️科普一下bg真人游戏娱乐的百科✔️官方网址:la777.net✔️科普一下bg真人游戏娱乐的百科.tnq" class="hidden">参考消息网财经新闻</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️最新网址:la55.net✔️k8彩乐园官网下载-维基百科.fkb" class="hidden">上海电信宽带网 </a> <a href="/cn/exhtbv-252009.html" class="hidden">楼月软件</a> <a href="/cn/dvjlln-621855" class="hidden">漯河赶集网</a> <a href="/sttcs/hot-news/chorister.html" class="hidden">环球56在线</a> <a href="/sttcs/hot-news/lymphatical.html" class="hidden">梦天木门</a> <a href="/sttcs/hot-news/coalitionist.html" class="hidden">武当山旅游网</a> </body></html>