{"version":3,"sources":["src/components/search/atomic-refine-toggle/atomic-refine-toggle.pcss?tag=atomic-refine-toggle&encapsulation=shadow","src/components/search/atomic-refine-toggle/atomic-refine-toggle.tsx"],"names":["atomicRefineToggleCss","AtomicRefineToggle","[object Object]","hostRef","this","collapseFacetsAfter","searchStatus","buildSearchStatus","bindings","engine","modalRef","document","createElement","host","insertAdjacentElement","openButton","buttonRef","isOpen","searchStatusState","hasError","firstSearchExecuted","h","part","aria-hidden","class","hasResults","Button","style","onClick","enableModal","text","i18n","t","ref","button","loadModal","__decorate","InitializeBindings","BindStateToController"],"mappings":"wRAAA,MAAMA,EAAwB,w79BCyBjBC,EAAkB,MAL/BC,YAAAC,aAuBgCC,KAAAC,oBAAsB,EAE7CH,aACLE,KAAKE,aAAeC,EAAkBH,KAAKI,SAASC,QAG9CP,YACN,GAAIE,KAAKM,SAAU,CACjB,OAGFN,KAAKM,SAAWC,SAASC,cAAc,uBACvCR,KAAKS,KAAKC,sBAAsB,cAAeV,KAAKM,UACpDN,KAAKM,SAASK,WAAaX,KAAKY,UAChCZ,KAAKM,SAASL,oBAAsBD,KAAKC,oBAGnCH,cACNE,KAAKM,WAAaN,KAAKM,SAASO,OAAS,MAGpCf,SACL,GAAIE,KAAKc,kBAAkBC,SAAU,CACnC,OAGF,IAAKf,KAAKc,kBAAkBE,oBAAqB,CAC/C,OACEC,EAAA,MAAA,CACEC,KAAK,cAAaC,cAAA,KAElBC,MAAM,mDAKZ,IAAKpB,KAAKc,kBAAkBO,WAAY,CACtC,OAGF,OACEJ,EAACK,EAAM,CACLC,MAAM,kBACNH,MAAM,aACNI,QAAS,IAAMxB,KAAKyB,cACpBC,KAAM1B,KAAKI,SAASuB,KAAKC,EAAE,mBAC3BC,IAAMC,IACJ,IAAKA,EAAQ,CACX,OAEF9B,KAAKY,UAAYkB,EACjB9B,KAAK+B,aAEPb,KAAK,uCAjEWc,EAAA,CAArBC,uCAEAC,EAAsB","sourcesContent":["@import '../../../global/global.pcss';\n","import {\n buildSearchStatus,\n SearchStatusState,\n SearchStatus,\n} from '@coveo/headless';\nimport {Component, h, Prop, State, Element} from '@stencil/core';\nimport {\n InitializeBindings,\n InitializableComponent,\n BindStateToController,\n} from '../../../utils/initialization-utils';\nimport {Button} from '../../common/button';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-refine-toggle` component displays a button that opens a modal containing the facets and the sort components.\n *\n * When this component is added to the `atomic-search-interface`, an `atomic-refine-modal` component is automatically created.\n * @part button - The refine toggle button.\n */\n@Component({\n tag: 'atomic-refine-toggle',\n styleUrl: 'atomic-refine-toggle.pcss',\n shadow: true,\n})\nexport class AtomicRefineToggle implements InitializableComponent {\n @Element() public host!: HTMLElement;\n public searchStatus!: SearchStatus;\n private modalRef?: HTMLAtomicRefineModalElement;\n private buttonRef?: HTMLButtonElement;\n\n @InitializeBindings() public bindings!: Bindings;\n @State() public error!: Error;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n\n /**\n * The number of expanded facets inside the refine modal.\n * Remaining facets are automatically collapsed.\n *\n * Using the value `0` collapses all facets.\n */\n @Prop({reflect: true}) public collapseFacetsAfter = 0;\n\n public initialize() {\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n }\n\n private loadModal() {\n if (this.modalRef) {\n return;\n }\n\n this.modalRef = document.createElement('atomic-refine-modal');\n this.host.insertAdjacentElement('beforebegin', this.modalRef);\n this.modalRef.openButton = this.buttonRef;\n this.modalRef.collapseFacetsAfter = this.collapseFacetsAfter;\n }\n\n private enableModal() {\n this.modalRef && (this.modalRef.isOpen = true);\n }\n\n public render() {\n if (this.searchStatusState.hasError) {\n return;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n \n );\n }\n\n if (!this.searchStatusState.hasResults) {\n return;\n }\n\n return (\n this.enableModal()}\n text={this.bindings.i18n.t('sort-and-filter')}\n ref={(button) => {\n if (!button) {\n return;\n }\n this.buttonRef = button;\n this.loadModal();\n }}\n part=\"button\"\n >\n );\n }\n}\n"]}