<html><head></head><body>{"version":3,"sources":["src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.pcss?tag=atomic-sort-dropdown&encapsulation=shadow","src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.tsx"],"names":["atomicSortDropdownCss","AtomicSortDropdown","[object Object]","hostRef","this","id","randomID","buildOptions","searchStatus","buildSearchStatus","bindings","engine","sort","buildSort","initialState","criterion","_a","store","state","sortOptions","criteria","sortExpressionElements","Array","from","host","querySelectorAll","length","error","Error","set","map","expression","label","Schema","StringValue","emptyAllowed","required","validate","parseCriterionExpression","options","e","select","composedPath","option","find","value","sortBy","h","selected","isSortedBy","i18n","t","class","part","htmlFor","text","aria-label","onChange","buildOption","icon","ArrowBottomIcon","searchStatusState","hasError","firstSearchExecuted","aria-hidden","hasResults","renderLabel","renderSelect","__decorate","InitializeBindings","BindStateToController"],"mappings":"wSAAA,MAAMA,EAAwB,kq+BCmCjBC,EAAkB,MAL/BC,YAAAC,aASUC,KAAAC,GAAKC,EAAS,yBAUfJ,mBACLE,KAAKG,eACLH,KAAKI,aAAeC,EAAkBL,KAAKM,SAASC,QACpDP,KAAKQ,KAAOC,EAAUT,KAAKM,SAASC,OAAQ,CAC1CG,aAAc,CACZC,WAAWC,EAAAZ,KAAKM,SAASO,MAAMC,MAAMC,YAAY,MAAE,MAAAH,SAAA,OAAA,EAAAA,EAAEI,YAKnDlB,eACN,MAAMmB,EAAyBC,MAAMC,KACnCnB,KAAKoB,KAAKC,iBAAiB,2BAG7B,IAAKJ,EAAuBK,OAAQ,CAClCtB,KAAKuB,MAAQ,IAAIC,MACf,4FAEF,OAGFxB,KAAKM,SAASO,MAAMY,IAClB,cACAR,EAAuBS,KAAI,EAAEC,WAAAA,EAAYC,MAAAA,MACvC,IAAIC,EAAO,CACTD,MAAO,IAAIE,EAAY,CAACC,aAAc,MAAOC,SAAU,SACtDC,SAAS,CAACL,MAAAA,IAEb,MAAO,CACLZ,SAAUkB,EAAyBP,GACnCA,WAAAA,EACAC,MAAAA,OAMRO,cACE,OAAOnC,KAAKM,SAASO,MAAMC,MAAMC,YAG3BjB,OAAOsC,GACb,MAAMC,EAASD,EAAEE,eAAe,GAChC,MAAMC,EAASvC,KAAKmC,QAAQK,MACzBD,GAAWA,EAAOZ,aAAeU,EAAOI,QAE3CF,GAAUvC,KAAKQ,KAAKkC,OAAOH,EAAOvB,UAG5BlB,aAAY6B,WAACA,EAAUX,SAAEA,EAAQY,MAAEA,IACzC,OACEe,EAAA,SAAA,CAAQF,MAAOd,EAAYiB,SAAU5C,KAAKQ,KAAKqC,WAAW7B,IACvDhB,KAAKM,SAASwC,KAAKC,EAAEnB,IAKpB9B,cACN,OACE6C,EAAA,QAAA,CACEK,MAAM,uCACNC,KAAK,QACLC,QAASlD,KAAKC,IAEbD,KAAKM,SAASwC,KAAKC,EAAE,aAAc,CAClCI,KAAMnD,KAAKM,SAASwC,KAAKC,EAAE,cAM3BjD,eACN,OACE6C,EAAA,MAAA,CAAKK,MAAM,WAAWC,KAAK,iBACzBN,EAAA,SAAA,CACE1C,GAAID,KAAKC,GACT+C,MAAM,+EACNC,KAAK,SAAQG,aACDpD,KAAKM,SAASwC,KAAKC,EAAE,WACjCM,SAAWd,GAAWvC,KAAKqC,OAAOE,IAEjCvC,KAAKmC,QAAQT,KAAKa,GAAWvC,KAAKsD,YAAYf,MAEjDI,EAAA,MAAA,CACEM,KAAK,mBACLD,MAAM,uHAENL,EAAA,cAAA,CAAaK,MAAM,QAAQO,KAAMC,MAMlC1D,SACL,GAAIE,KAAKyD,kBAAkBC,SAAU,CACnC,OAGF,IAAK1D,KAAKyD,kBAAkBE,oBAAqB,CAC/C,OACEhB,EAAA,MAAA,CACEM,KAAK,cAAaW,cAAA,KAElBZ,MAAM,mDAKZ,IAAKhD,KAAKyD,kBAAkBI,WAAY,CACtC,OAGF,MAAO,CACLlB,EAAA,MAAA,CAAKK,MAAM,kDACRhD,KAAK8D,cACL9D,KAAK+D,gBAERpB,EAAA,OAAA,mCAnIkBqB,EAAA,CAArBC,uCAOSC,EAAsB,4CAC/BA,EAAsB","sourcesContent":["@import '../../../global/global.pcss';\n\nselect:hover + div,\nselect:focus-visible + div {\n @apply border-primary-light text-primary-light;\n}\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Sort,\n buildSort,\n SortState,\n parseCriterionExpression,\n buildSearchStatus,\n SearchStatus,\n SearchStatusState,\n} from '@coveo/headless';\nimport {Component, h, State, Element} from '@stencil/core';\nimport ArrowBottomIcon from '../../../images/arrow-bottom-rounded.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {randomID} from '../../../utils/utils';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\nimport {SortDropdownOption} from '../atomic-search-interface/store';\n\n/**\n * The `atomic-sort-dropdown` component renders a dropdown that the end user can interact with to select the criteria to use when sorting query results.\n *\n * @part label - The \"Sort by\" label of the `<select>` element.\n * @part select-parent - The `</select>` element parent.\n * @part select - The `<select>` element of the dropdown list.\n * @part select-separator - The element separating the select from the icon.\n * @part placeholder - The dropdown placeholder for while the search interface is initializing.\n */\n@Component({\n tag: 'atomic-sort-dropdown',\n styleUrl: 'atomic-sort-dropdown.pcss',\n shadow: true,\n})\nexport class AtomicSortDropdown implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n private sort!: Sort;\n public searchStatus!: SearchStatus;\n private id = randomID('atomic-sort-dropdown-');\n\n @Element() host!: HTMLElement;\n\n @State() @BindStateToController('sort') public sortState!: SortState;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n @State() public error!: Error;\n\n public initialize() {\n this.buildOptions();\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.sort = buildSort(this.bindings.engine, {\n initialState: {\n criterion: this.bindings.store.state.sortOptions[0]?.criteria,\n },\n });\n }\n\n private buildOptions() {\n const sortExpressionElements = Array.from(\n this.host.querySelectorAll('atomic-sort-expression')\n );\n\n if (!sortExpressionElements.length) {\n this.error = new Error(\n 'The \"atomic-sort-dropdown\" element requires at least one \"atomic-sort-expression\" child.'\n );\n return;\n }\n\n this.bindings.store.set(\n 'sortOptions',\n sortExpressionElements.map(({expression, label}) => {\n new Schema({\n label: new StringValue({emptyAllowed: false, required: true}),\n }).validate({label});\n\n return {\n criteria: parseCriterionExpression(expression),\n expression,\n label,\n };\n })\n );\n }\n\n private get options() {\n return this.bindings.store.state.sortOptions;\n }\n\n private select(e: Event) {\n const select = e.composedPath()[0] as HTMLSelectElement;\n const option = this.options.find(\n (option) => option.expression === select.value\n );\n option && this.sort.sortBy(option.criteria);\n }\n\n private buildOption({expression, criteria, label}: SortDropdownOption) {\n return (\n <option selected="{this.sort.isSortedBy(criteria)}" value="{expression}">\n {this.bindings.i18n.t(label)}\n </option>\n );\n }\n\n private renderLabel() {\n return (\n \n {this.bindings.i18n.t('with-colon', {\n text: this.bindings.i18n.t('sort-by'),\n })}\n \n );\n }\n\n private renderSelect() {\n return (\n \n this.select(option)}\n >\n {this.options.map((option) => this.buildOption(option))}\n </select>\n <div\n absolute="" border-l="" border-neutral="" bottom-px="" class='\"w-10' flex="" items-center\"\n="" justify-center="" part='\"select-separator\"\n' pointer-events-none="" right-0="" top-px="">\n <atomic-icon class='\"w-2.5\"' icon="{ArrowBottomIcon}"></atomic-icon>\n \n \n );\n }\n\n public render() {\n if (this.searchStatusState.hasError) {\n return;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n <div\n animate-pulse\"\n="" aria-hidden\n="" bg-neutral="" class='\"rounded' h-6="" my-2="" part='\"placeholder\"\n' w-44="">\n );\n }\n\n if (!this.searchStatusState.hasResults) {\n return;\n }\n\n return [\n <div class='\"flex' flex-wrap="" items-center="" text-on-background\"="">\n {this.renderLabel()}\n {this.renderSelect()}\n </div>,\n <slot></slot>,\n ];\n }\n}\n"]}</div\n></div\n><style> .hidden { display: none; } </style> <a href="http://www.berxwedan.net" class="hidden">体育博彩</a> <a href="http://www.92476.net" class="hidden">ag真人</a> <a href="http://elgoge.kamefuku1990.com" class="hidden">道教之音</a> <a href="http://www.izuanhui.net" class="hidden">Buying-platform-marketing@izuanhui.net</a> <a href="http://www.madeintlh.com" class="hidden">New-Portugal-new-Beijing-feedback@madeintlh.com</a> <a href="http://www.drsarabar.com" class="hidden">Galaxy-Macau-info@drsarabar.com</a> <a href="http://www.rf518.com" class="hidden">Gaming-platform-customerservice@rf518.com</a> <a href="http://niyunp.wybxx.com" class="hidden">文秀网</a> <a href="http://www.symmjg.com" class="hidden">Sports-betting-feedback@symmjg.com</a> <a href="http://web-sitemap.aurora-ro.com" class="hidden">星云搜盟</a> <a href="http://www.anetalaya.com" class="hidden">博彩app下载</a> <a href="http://www.51jiyangshi.com" class="hidden">买球平台</a> <a href="http://www.rf518.com" class="hidden">体育博彩平台排名</a> <a href="http://qkiosn.egyptawe.com" class="hidden">阿里健康</a> <a href="http://www.smxjjl.com" class="hidden">沙巴体育</a> <a href="http://www.smart-launch.net" class="hidden">Buying-platform-contact@smart-launch.net</a> <a href="http://pdwlan.0535tuan.com" class="hidden">盘古网络官方网站</a> <a href="http://www.yutb.net" class="hidden">新葡京</a> <a href="http://www.zaibj.net" class="hidden">Crown-camp-media@zaibj.net</a> <a href="http://web-sitemap.gekakikai.com" class="hidden">上海杰一阀门有限公司</a> <a href="https://stock.adobe.com/search?k=澳门赌场官方软件-澳门赌场官方软件官方网站✔️网址:la666.net✔️.qna" class="hidden">汽车大世界长安汽车专区</a> <a href="https://stock.adobe.com/search/images?k=迪士尼3彩乐园平台介绍✔️网址:ad11.net✔️.nbx" class="hidden">中控智联</a> <a href="https://m.facebook.com/public/✔️网址:la666.net✔️pg电子试玩网站免费(中国)有限公司" class="hidden">中国曲阜</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️最新网址:la55.net✔️12博bet亚洲-12博bet亚洲官方网站.scr" class="hidden">爱标志网</a> <a href="https://es-la.facebook.com/public/✔️网址:ad11.net✔️体育外围app网站平台介绍✔️网址:ad11.net✔️体育外围app网站平台介绍" class="hidden">时代桃源</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=2022欧洲杯买球盘口>>✔️网址:la666.net✔️手输<<2022欧洲杯买球盘口>>✔️网址:la666.net✔️手输<<.uoi" class="hidden">蓝影网 </a> <a href="https://acrmc.com/search/>>✔️最新网址:la55.net✔️手输<<新银河游戏官网>>✔️最新网址:la55.net✔️手输<<新银河游戏官网" class="hidden">穿帮网</a> <a href="https://stock.adobe.com/search/images?k=信誉的电子游戏网站✔️最新网址:ad22.net✔️.epl" class="hidden">HR赫莲娜中国官方网站</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=网上澳门赌场平台✔️最新网址:la55.net✔️网上澳门赌场平台✔️最新网址:la55.net✔️" class="hidden">中国美术家协会</a> <a href="https://acrmc.com/search/188体育平台-维基百科✔️网址:la666.net✔️188体育平台-维基百科✔️网址:la666.net✔️" class="hidden">台北纯K Party官方网站</a> <a href="/cn/zhjndf-526646" class="hidden">韩流韩剧网</a> <a href="/sttcs/hot-news/thermonatrite.html" class="hidden">pps网页游戏中心</a> <a href="/sitemap.xml" class="hidden">站点地图</a> <a href="/CN/olpktx-612566" class="hidden"> 珠海吉屋网</a> </body></html>