@coveo/atomic 3.33.8-pre.a2a2959a46 → 3.33.8-pre.a42c491ac0

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.
Files changed (524) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/autoloader/index.cjs.js +2 -2
  4. package/dist/atomic/autoloader/index.esm.js +2 -2
  5. package/dist/atomic/components/_index.d.ts +2 -0
  6. package/dist/atomic/components/_index.js +3 -1
  7. package/dist/atomic/components/analytics-config.js +1 -1
  8. package/dist/atomic/components/atomic-category-facet.js +1 -1
  9. package/dist/atomic/components/atomic-citation.js +1 -1
  10. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  11. package/dist/atomic/components/atomic-facet.js +1 -1
  12. package/dist/atomic/components/atomic-format-currency.js +1 -1
  13. package/dist/atomic/components/atomic-format-number.js +1 -1
  14. package/dist/atomic/components/atomic-format-unit.js +1 -1
  15. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  16. package/dist/atomic/components/atomic-html2.js +1 -1
  17. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  18. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  19. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  20. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  21. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  22. package/dist/atomic/components/atomic-insight-interface.js +1 -1
  23. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  24. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  25. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  26. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  27. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  28. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  29. package/dist/atomic/components/atomic-insight-result-action.js +1 -1
  30. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +1 -1
  31. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  35. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  36. package/dist/atomic/components/atomic-insight-search-box.js +3 -4
  37. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  38. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  39. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  40. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  41. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  42. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  43. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  46. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  50. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  51. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  52. package/dist/atomic/components/atomic-no-results.js +1 -1
  53. package/dist/atomic/components/atomic-numeric-facet.js +1 -2
  54. package/dist/atomic/components/atomic-numeric-facet.js.map +1 -1
  55. package/dist/atomic/components/atomic-pager.js +3 -3
  56. package/dist/atomic/components/atomic-query-error.js +1 -1
  57. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  58. package/dist/atomic/components/atomic-quickview.js +1 -1
  59. package/dist/atomic/components/atomic-recs-error.js +1 -1
  60. package/dist/atomic/components/atomic-recs-interface.js +1 -1
  61. package/dist/atomic/components/atomic-recs-list.js +1 -1
  62. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  63. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  64. package/dist/atomic/components/atomic-relevance-inspector.js +1 -46
  65. package/dist/atomic/components/atomic-relevance-inspector.js.map +1 -1
  66. package/dist/atomic/components/atomic-relevance-inspector2.js +50 -0
  67. package/dist/atomic/components/atomic-relevance-inspector2.js.map +1 -0
  68. package/dist/atomic/components/atomic-result-children.js +1 -1
  69. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  70. package/dist/atomic/components/atomic-result-link.js +1 -1
  71. package/dist/atomic/components/atomic-result-list.js +1 -1
  72. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  73. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  74. package/dist/atomic/components/atomic-search-box-instant-results.js +2 -2
  75. package/dist/atomic/components/atomic-search-box-instant-results.js.map +1 -1
  76. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +2 -2
  77. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +1 -1
  78. package/dist/atomic/components/atomic-search-box-recent-queries2.js +2 -2
  79. package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +1 -1
  80. package/dist/atomic/components/atomic-search-box.js +5 -17
  81. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  82. package/dist/atomic/components/atomic-search-interface.d.ts +11 -0
  83. package/dist/atomic/components/atomic-search-interface.js +552 -0
  84. package/dist/atomic/components/atomic-search-interface.js.map +1 -0
  85. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  86. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  87. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  88. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  89. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  90. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  91. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  92. package/dist/atomic/components/atomic-stencil-facet-date-input.js +3 -3
  93. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  94. package/dist/atomic/components/atomic-suggestion-renderer2.js.map +1 -1
  95. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  96. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +50 -8
  97. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
  98. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +6 -9
  99. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js +1 -1
  100. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions.js +1 -1
  101. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.js +1 -1
  102. package/dist/atomic/components/components/common/suggestions/suggestion-manager.js +1 -1
  103. package/dist/atomic/components/components/common/suggestions/{suggestions-common.js → suggestions-events.js} +16 -18
  104. package/dist/atomic/components/components/common/suggestions/suggestions-types.js +1 -0
  105. package/dist/atomic/components/components/common/suggestions/suggestions-utils.js +18 -0
  106. package/dist/atomic/components/components/search/atomic-query-summary/atomic-query-summary.js +2 -1
  107. package/dist/atomic/components/components/search/atomic-results-per-page/atomic-results-per-page.js +2 -1
  108. package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +9 -20
  109. package/dist/atomic/components/components/search/index.js +0 -1
  110. package/dist/atomic/components/components/search/lazy-index.js +0 -1
  111. package/dist/atomic/components/facet-number-input.js +2 -2
  112. package/dist/atomic/components/global/environment.js +1 -1
  113. package/dist/atomic/components/index.js.map +1 -1
  114. package/dist/atomic/components/stencil-query-suggestions.js.map +1 -1
  115. package/dist/atomic/components/stencil-suggestion-manager.js +20 -2
  116. package/dist/atomic/components/stencil-suggestion-manager.js.map +1 -1
  117. package/dist/atomic/components/{suggestions-common.js → suggestions-events.js} +18 -20
  118. package/dist/atomic/components/suggestions-events.js.map +1 -0
  119. package/dist/atomic/components/tab-button.js +1 -1
  120. package/dist/atomic/components/tab-popover.js +1 -1
  121. package/dist/atomic/index.esm.js +1 -1
  122. package/dist/atomic/index.esm.js.map +1 -1
  123. package/dist/atomic/{p-41c5d5fa.entry.js → p-021f01d6.entry.js} +2 -2
  124. package/dist/atomic/{p-a3fa6695.entry.js → p-035f8dc8.entry.js} +2 -2
  125. package/dist/atomic/p-0a051b8d.js +2 -0
  126. package/dist/atomic/p-0a051b8d.js.map +1 -0
  127. package/dist/atomic/p-16f4ce98.js +2 -0
  128. package/dist/atomic/p-16f4ce98.js.map +1 -0
  129. package/dist/atomic/p-1992b245.entry.js +2 -0
  130. package/dist/atomic/{p-9d023f0b.entry.js → p-1ef658d8.entry.js} +2 -2
  131. package/dist/atomic/{p-10b5e0f3.entry.js → p-20341936.entry.js} +2 -2
  132. package/dist/atomic/{p-3db62800.entry.js → p-26a51a77.entry.js} +2 -2
  133. package/dist/atomic/p-26a51a77.entry.js.map +1 -0
  134. package/dist/atomic/{p-15406648.entry.js → p-2ca352f4.entry.js} +2 -2
  135. package/dist/atomic/{p-97e42c43.entry.js → p-31aa052e.entry.js} +2 -2
  136. package/dist/atomic/{p-182782aa.entry.js → p-31f1e44e.entry.js} +2 -2
  137. package/dist/atomic/p-31f1e44e.entry.js.map +1 -0
  138. package/dist/atomic/{p-3af5c567.entry.js → p-330e6e7c.entry.js} +2 -2
  139. package/dist/atomic/{p-7a6468a7.entry.js → p-36fab158.entry.js} +2 -2
  140. package/dist/atomic/{p-9727f36b.entry.js → p-37374964.entry.js} +2 -2
  141. package/dist/atomic/{p-7b1a3cab.entry.js → p-3a2c900c.entry.js} +2 -2
  142. package/dist/atomic/{p-8fc4b999.js → p-3ae7d4d8.js} +2 -2
  143. package/dist/atomic/{p-0610b3e7.entry.js → p-3b20b011.entry.js} +2 -2
  144. package/dist/atomic/{p-ef64b06a.entry.js → p-3c8d109e.entry.js} +2 -2
  145. package/dist/atomic/{p-ef64b06a.entry.js.map → p-3c8d109e.entry.js.map} +1 -1
  146. package/dist/atomic/{p-c08f4ee6.entry.js → p-3f912e98.entry.js} +2 -2
  147. package/dist/atomic/{p-9e771351.entry.js → p-40635c2d.entry.js} +2 -2
  148. package/dist/atomic/{p-c9fe4f77.entry.js → p-43d708cb.entry.js} +2 -2
  149. package/dist/atomic/{p-b0c50194.entry.js → p-48f57fd8.entry.js} +2 -2
  150. package/dist/atomic/{p-65373475.entry.js → p-4b3d253b.entry.js} +2 -2
  151. package/dist/atomic/p-4b7a19db.js +2 -0
  152. package/dist/atomic/p-4b7a19db.js.map +1 -0
  153. package/dist/atomic/{p-4c30ca3e.entry.js → p-52ba404c.entry.js} +2 -2
  154. package/dist/atomic/{p-87c6c206.entry.js → p-534b6a0a.entry.js} +2 -2
  155. package/dist/atomic/{p-f0012580.entry.js → p-594488f2.entry.js} +2 -2
  156. package/dist/atomic/{p-8df7270f.entry.js → p-604c4085.entry.js} +2 -2
  157. package/dist/atomic/{p-d50c96c2.entry.js → p-627e1265.entry.js} +2 -2
  158. package/dist/atomic/{p-004adbb8.entry.js → p-6329ff94.entry.js} +2 -2
  159. package/dist/atomic/{p-e3af1bb4.entry.js → p-6e6d686e.entry.js} +2 -2
  160. package/dist/atomic/{p-45c4685e.entry.js → p-75e00690.entry.js} +2 -2
  161. package/dist/atomic/{p-8acb1466.entry.js → p-78b70622.entry.js} +2 -2
  162. package/dist/atomic/{p-4915faeb.entry.js → p-7a625c7e.entry.js} +2 -2
  163. package/dist/atomic/{p-f073a78d.entry.js → p-7b0b9e9b.entry.js} +2 -2
  164. package/dist/atomic/{p-a02b1209.entry.js → p-7b899b57.entry.js} +2 -2
  165. package/dist/atomic/{p-e6a7e7b2.entry.js → p-7dfcd6af.entry.js} +2 -2
  166. package/dist/atomic/{p-780170e5.entry.js → p-811d6dcb.entry.js} +2 -2
  167. package/dist/atomic/{p-9147b0db.entry.js → p-8256cd44.entry.js} +2 -2
  168. package/dist/atomic/{p-0e27d4f2.entry.js → p-83c9244a.entry.js} +2 -2
  169. package/dist/atomic/{p-5adbf098.entry.js → p-877d35b1.entry.js} +2 -2
  170. package/dist/atomic/{p-615a8ef7.entry.js → p-9383d0d3.entry.js} +2 -2
  171. package/dist/atomic/{p-bd99fcc1.entry.js → p-939eaaac.entry.js} +2 -2
  172. package/dist/atomic/{p-9b92b4e2.entry.js → p-93e29b24.entry.js} +2 -2
  173. package/dist/atomic/{p-b6377fb6.entry.js → p-98c5b9b8.entry.js} +2 -2
  174. package/dist/atomic/{p-bf49fed3.entry.js → p-99b8d52d.entry.js} +2 -2
  175. package/dist/atomic/p-9d6d0631.entry.js +2 -0
  176. package/dist/atomic/p-9d6d0631.entry.js.map +1 -0
  177. package/dist/atomic/{p-160553ce.entry.js → p-a3efa89e.entry.js} +2 -2
  178. package/dist/atomic/{p-c538c8ac.entry.js → p-a53c7821.entry.js} +2 -2
  179. package/dist/atomic/{p-be1b98a6.entry.js → p-a760d9f9.entry.js} +2 -2
  180. package/dist/atomic/{p-4e9d1f9e.entry.js → p-aa2a81fd.entry.js} +2 -2
  181. package/dist/atomic/{p-ce41c447.entry.js → p-ae060711.entry.js} +2 -2
  182. package/dist/atomic/p-af93b44c.js.map +1 -1
  183. package/dist/atomic/{p-b4c34553.entry.js → p-b0b17e21.entry.js} +2 -2
  184. package/dist/atomic/{p-71bb8125.entry.js → p-b28011e6.entry.js} +2 -2
  185. package/dist/atomic/{p-e1c99e2e.entry.js → p-b2ff1330.entry.js} +2 -2
  186. package/dist/atomic/{p-dee60597.entry.js → p-bc0d6d3d.entry.js} +2 -2
  187. package/dist/atomic/{p-0e5dc57f.entry.js → p-c126ee6b.entry.js} +2 -2
  188. package/dist/atomic/{p-754909fe.entry.js → p-c1999888.entry.js} +2 -2
  189. package/dist/atomic/{p-d11b2b24.entry.js → p-c49cfa0c.entry.js} +2 -2
  190. package/dist/atomic/{p-e305c149.entry.js → p-c6eca514.entry.js} +2 -2
  191. package/dist/atomic/p-c88a3d2d.entry.js +2 -0
  192. package/dist/atomic/p-c88a3d2d.entry.js.map +1 -0
  193. package/dist/atomic/{p-b4ad3036.entry.js → p-d00a12e9.entry.js} +2 -2
  194. package/dist/atomic/{p-a37fae7c.entry.js → p-d0f47b33.entry.js} +2 -2
  195. package/dist/atomic/p-d0f47b33.entry.js.map +1 -0
  196. package/dist/atomic/p-d24d34a7.entry.js +2 -0
  197. package/dist/atomic/{p-7f40e57d.entry.js → p-d364064c.entry.js} +2 -2
  198. package/dist/atomic/{p-856e858c.entry.js → p-d785121d.entry.js} +2 -2
  199. package/dist/atomic/{p-7d63bf7b.entry.js → p-d93adf52.entry.js} +2 -2
  200. package/dist/atomic/{p-2a4e9425.entry.js → p-de066001.entry.js} +2 -2
  201. package/dist/atomic/{p-8a7a23b7.entry.js → p-e162805d.entry.js} +2 -2
  202. package/dist/atomic/{p-441b1a7b.entry.js → p-e23b3334.entry.js} +2 -2
  203. package/dist/atomic/p-e2afb475.entry.js +2 -0
  204. package/dist/atomic/{p-bd32625e.entry.js → p-ea446721.entry.js} +2 -2
  205. package/dist/atomic/{p-07b6424c.entry.js → p-ee6771f1.entry.js} +2 -2
  206. package/dist/atomic/{p-abb14108.entry.js → p-f0c2dfe8.entry.js} +2 -2
  207. package/dist/atomic/{p-d2d22ab2.entry.js → p-f22bcb8c.entry.js} +2 -2
  208. package/dist/atomic/{p-d4ad7336.entry.js → p-fa8b7c4c.entry.js} +2 -2
  209. package/dist/atomic/{p-1c6f7489.entry.js → p-fbfe913d.entry.js} +2 -2
  210. package/dist/atomic/p-fbfe913d.entry.js.map +1 -0
  211. package/dist/atomic/p-fcf3f7d7.entry.js +2 -0
  212. package/dist/atomic/{p-6de44060.entry.js.map → p-fcf3f7d7.entry.js.map} +1 -1
  213. package/dist/atomic/{p-f936f55e.entry.js → p-fea7bf3b.entry.js} +2 -2
  214. package/dist/cjs/_index.cjs.js +5 -2
  215. package/dist/cjs/_loader.cjs.js +1 -1
  216. package/dist/cjs/{analytics-config-50e81597.js → analytics-config-e2beaf7f.js} +2 -2
  217. package/dist/cjs/{analytics-config-50e81597.js.map → analytics-config-e2beaf7f.js.map} +1 -1
  218. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  219. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  220. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  221. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  222. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  223. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  224. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  225. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  226. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  227. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  228. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  229. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  230. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  232. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  233. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  234. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  235. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  236. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  237. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  238. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  239. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  240. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
  241. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
  242. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  243. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  244. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  245. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  246. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  247. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +5 -5
  248. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  249. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  250. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  251. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  252. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  254. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  255. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  256. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  257. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  258. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  259. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  260. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  261. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  262. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  264. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -2
  265. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  266. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  267. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  269. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  270. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  271. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  272. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  273. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  274. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  275. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  276. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  277. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  278. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  279. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  280. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  281. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js +3 -3
  282. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js.map +1 -1
  283. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +5 -5
  284. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +1 -1
  285. package/dist/cjs/atomic-search-box.cjs.entry.js +7 -18
  286. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  287. package/dist/cjs/atomic-search-interface.cjs.entry.js +511 -0
  288. package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -0
  289. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  290. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  291. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  292. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  293. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  294. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +3 -3
  295. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  296. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js.map +1 -1
  297. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  298. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  299. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  300. package/dist/cjs/atomic.cjs.js +1 -1
  301. package/dist/cjs/index-757bc886.js +8 -4
  302. package/dist/cjs/index.cjs.js.map +1 -1
  303. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +1 -1
  304. package/dist/cjs/{stencil-suggestion-manager-c0878ef2.js → stencil-suggestion-manager-2cba6d69.js} +4 -4
  305. package/dist/cjs/{stencil-suggestion-manager-c0878ef2.js.map → stencil-suggestion-manager-2cba6d69.js.map} +1 -1
  306. package/dist/cjs/{suggestions-common-5097a362.js → suggestions-events-63dd0640.js} +17 -21
  307. package/dist/cjs/suggestions-events-63dd0640.js.map +1 -0
  308. package/dist/cjs/suggestions-utils-61000808.js +25 -0
  309. package/dist/cjs/suggestions-utils-61000808.js.map +1 -0
  310. package/dist/cjs/version.cjs.js +2 -2
  311. package/dist/esm/_index.js +2 -1
  312. package/dist/esm/_loader.js +1 -1
  313. package/dist/esm/{analytics-config-aadb4d6d.js → analytics-config-75896191.js} +2 -2
  314. package/dist/esm/{analytics-config-aadb4d6d.js.map → analytics-config-75896191.js.map} +1 -1
  315. package/dist/esm/atomic-category-facet.entry.js +1 -1
  316. package/dist/esm/atomic-citation.entry.js +1 -1
  317. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  318. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  319. package/dist/esm/atomic-facet.entry.js +1 -1
  320. package/dist/esm/atomic-format-currency.entry.js +1 -1
  321. package/dist/esm/atomic-format-number.entry.js +1 -1
  322. package/dist/esm/atomic-format-unit.entry.js +1 -1
  323. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  324. package/dist/esm/atomic-html.entry.js +1 -1
  325. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  326. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  327. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  328. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  329. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  330. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  331. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  332. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  333. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  334. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  335. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  336. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  337. package/dist/esm/atomic-insight-result-action.entry.js +1 -1
  338. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
  339. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  340. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  341. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  342. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  343. package/dist/esm/atomic-insight-result.entry.js +1 -1
  344. package/dist/esm/atomic-insight-search-box.entry.js +4 -4
  345. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  346. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  347. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  348. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  349. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  350. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  351. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  352. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  353. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  354. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  355. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  356. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  357. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  358. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  359. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  360. package/dist/esm/atomic-no-results.entry.js +1 -1
  361. package/dist/esm/atomic-numeric-facet.entry.js +1 -2
  362. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  363. package/dist/esm/atomic-pager.entry.js +3 -3
  364. package/dist/esm/atomic-query-error.entry.js +1 -1
  365. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  366. package/dist/esm/atomic-quickview.entry.js +1 -1
  367. package/dist/esm/atomic-recs-error.entry.js +1 -1
  368. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  369. package/dist/esm/atomic-recs-list.entry.js +1 -1
  370. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  371. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  372. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  373. package/dist/esm/atomic-result-children.entry.js +1 -1
  374. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  375. package/dist/esm/atomic-result-link.entry.js +1 -1
  376. package/dist/esm/atomic-result-list.entry.js +1 -1
  377. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  378. package/dist/esm/atomic-search-box-instant-results.entry.js +2 -2
  379. package/dist/esm/atomic-search-box-instant-results.entry.js.map +1 -1
  380. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +3 -3
  381. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +1 -1
  382. package/dist/esm/atomic-search-box.entry.js +6 -17
  383. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  384. package/dist/esm/atomic-search-interface.entry.js +507 -0
  385. package/dist/esm/atomic-search-interface.entry.js.map +1 -0
  386. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  387. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  388. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  389. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  390. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  391. package/dist/esm/atomic-stencil-facet-date-input.entry.js +3 -3
  392. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  393. package/dist/esm/atomic-suggestion-renderer.entry.js.map +1 -1
  394. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  395. package/dist/esm/atomic-tab-button.entry.js +1 -1
  396. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  397. package/dist/esm/atomic.js +1 -1
  398. package/dist/esm/index-3f35faca.js +8 -4
  399. package/dist/esm/index.js.map +1 -1
  400. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +1 -1
  401. package/dist/esm/{stencil-suggestion-manager-486094dd.js → stencil-suggestion-manager-376f83e8.js} +2 -2
  402. package/dist/esm/{stencil-suggestion-manager-486094dd.js.map → stencil-suggestion-manager-376f83e8.js.map} +1 -1
  403. package/dist/esm/{suggestions-common-2b20db26.js → suggestions-events-b7a6f007.js} +18 -20
  404. package/dist/esm/suggestions-events-b7a6f007.js.map +1 -0
  405. package/dist/esm/suggestions-utils-591559a0.js +22 -0
  406. package/dist/esm/suggestions-utils-591559a0.js.map +1 -0
  407. package/dist/esm/version.js +2 -2
  408. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +30 -2
  409. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
  410. package/dist/types/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.d.ts +1 -1
  411. package/dist/types/components/commerce/atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions.d.ts +1 -1
  412. package/dist/types/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.d.ts +1 -1
  413. package/dist/types/components/common/atomic-suggestion-renderer/atomic-suggestion-renderer.d.ts +1 -1
  414. package/dist/types/components/common/suggestions/instant-item.d.ts +1 -1
  415. package/dist/types/components/common/suggestions/query-suggestions.d.ts +1 -1
  416. package/dist/types/components/common/suggestions/recent-queries.d.ts +1 -1
  417. package/dist/types/components/common/suggestions/stencil-instant-item.d.ts +1 -1
  418. package/dist/types/components/common/suggestions/stencil-query-suggestions.d.ts +1 -1
  419. package/dist/types/components/common/suggestions/stencil-recent-queries.d.ts +1 -1
  420. package/dist/types/components/common/suggestions/stencil-suggestion-manager.d.ts +1 -1
  421. package/dist/types/components/common/suggestions/suggestion-manager.d.ts +1 -1
  422. package/dist/types/components/common/suggestions/suggestions-events.d.ts +14 -0
  423. package/dist/types/components/common/suggestions/{suggestions-common.d.ts → suggestions-types.d.ts} +6 -16
  424. package/dist/types/components/common/suggestions/suggestions-utils.d.ts +15 -0
  425. package/dist/types/components/search/atomic-query-summary/atomic-query-summary.d.ts +3 -1
  426. package/dist/types/components/search/atomic-results-per-page/atomic-results-per-page.d.ts +3 -1
  427. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +1 -2
  428. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +44 -46
  429. package/dist/types/components/search/atomic-search-interface/interfaces.d.ts +1 -2
  430. package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +1 -3
  431. package/dist/types/components/search/index.d.ts +0 -1
  432. package/dist/types/components/search/search-box-suggestions/atomic-search-box-instant-results/atomic-search-box-instant-results.d.ts +1 -1
  433. package/dist/types/components.d.ts +167 -4
  434. package/dist/types/decorators/types.d.ts +1 -1
  435. package/dist/types/index.d.ts +3 -1
  436. package/docs/atomic-docs.json +577 -14
  437. package/package.json +4 -4
  438. package/dist/atomic/components/components/search/atomic-search-interface/analytics-config.js +0 -57
  439. package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +0 -495
  440. package/dist/atomic/components/suggestions-common.js.map +0 -1
  441. package/dist/atomic/p-0edea6f9.entry.js +0 -2
  442. package/dist/atomic/p-182782aa.entry.js.map +0 -1
  443. package/dist/atomic/p-1c6f7489.entry.js.map +0 -1
  444. package/dist/atomic/p-29fd6768.js +0 -2
  445. package/dist/atomic/p-29fd6768.js.map +0 -1
  446. package/dist/atomic/p-3db62800.entry.js.map +0 -1
  447. package/dist/atomic/p-6de44060.entry.js +0 -2
  448. package/dist/atomic/p-72d135f2.entry.js +0 -2
  449. package/dist/atomic/p-72d135f2.entry.js.map +0 -1
  450. package/dist/atomic/p-7601c3de.js +0 -2
  451. package/dist/atomic/p-7601c3de.js.map +0 -1
  452. package/dist/atomic/p-97829295.entry.js +0 -2
  453. package/dist/atomic/p-a37fae7c.entry.js.map +0 -1
  454. package/dist/atomic/p-c2b4b401.entry.js +0 -2
  455. package/dist/cjs/suggestions-common-5097a362.js.map +0 -1
  456. package/dist/esm/suggestions-common-2b20db26.js.map +0 -1
  457. /package/dist/atomic/{p-41c5d5fa.entry.js.map → p-021f01d6.entry.js.map} +0 -0
  458. /package/dist/atomic/{p-a3fa6695.entry.js.map → p-035f8dc8.entry.js.map} +0 -0
  459. /package/dist/atomic/{p-0edea6f9.entry.js.map → p-1992b245.entry.js.map} +0 -0
  460. /package/dist/atomic/{p-9d023f0b.entry.js.map → p-1ef658d8.entry.js.map} +0 -0
  461. /package/dist/atomic/{p-10b5e0f3.entry.js.map → p-20341936.entry.js.map} +0 -0
  462. /package/dist/atomic/{p-15406648.entry.js.map → p-2ca352f4.entry.js.map} +0 -0
  463. /package/dist/atomic/{p-97e42c43.entry.js.map → p-31aa052e.entry.js.map} +0 -0
  464. /package/dist/atomic/{p-3af5c567.entry.js.map → p-330e6e7c.entry.js.map} +0 -0
  465. /package/dist/atomic/{p-7a6468a7.entry.js.map → p-36fab158.entry.js.map} +0 -0
  466. /package/dist/atomic/{p-9727f36b.entry.js.map → p-37374964.entry.js.map} +0 -0
  467. /package/dist/atomic/{p-7b1a3cab.entry.js.map → p-3a2c900c.entry.js.map} +0 -0
  468. /package/dist/atomic/{p-8fc4b999.js.map → p-3ae7d4d8.js.map} +0 -0
  469. /package/dist/atomic/{p-0610b3e7.entry.js.map → p-3b20b011.entry.js.map} +0 -0
  470. /package/dist/atomic/{p-c08f4ee6.entry.js.map → p-3f912e98.entry.js.map} +0 -0
  471. /package/dist/atomic/{p-9e771351.entry.js.map → p-40635c2d.entry.js.map} +0 -0
  472. /package/dist/atomic/{p-c9fe4f77.entry.js.map → p-43d708cb.entry.js.map} +0 -0
  473. /package/dist/atomic/{p-b0c50194.entry.js.map → p-48f57fd8.entry.js.map} +0 -0
  474. /package/dist/atomic/{p-65373475.entry.js.map → p-4b3d253b.entry.js.map} +0 -0
  475. /package/dist/atomic/{p-4c30ca3e.entry.js.map → p-52ba404c.entry.js.map} +0 -0
  476. /package/dist/atomic/{p-87c6c206.entry.js.map → p-534b6a0a.entry.js.map} +0 -0
  477. /package/dist/atomic/{p-f0012580.entry.js.map → p-594488f2.entry.js.map} +0 -0
  478. /package/dist/atomic/{p-8df7270f.entry.js.map → p-604c4085.entry.js.map} +0 -0
  479. /package/dist/atomic/{p-d50c96c2.entry.js.map → p-627e1265.entry.js.map} +0 -0
  480. /package/dist/atomic/{p-004adbb8.entry.js.map → p-6329ff94.entry.js.map} +0 -0
  481. /package/dist/atomic/{p-e3af1bb4.entry.js.map → p-6e6d686e.entry.js.map} +0 -0
  482. /package/dist/atomic/{p-45c4685e.entry.js.map → p-75e00690.entry.js.map} +0 -0
  483. /package/dist/atomic/{p-8acb1466.entry.js.map → p-78b70622.entry.js.map} +0 -0
  484. /package/dist/atomic/{p-4915faeb.entry.js.map → p-7a625c7e.entry.js.map} +0 -0
  485. /package/dist/atomic/{p-f073a78d.entry.js.map → p-7b0b9e9b.entry.js.map} +0 -0
  486. /package/dist/atomic/{p-a02b1209.entry.js.map → p-7b899b57.entry.js.map} +0 -0
  487. /package/dist/atomic/{p-e6a7e7b2.entry.js.map → p-7dfcd6af.entry.js.map} +0 -0
  488. /package/dist/atomic/{p-780170e5.entry.js.map → p-811d6dcb.entry.js.map} +0 -0
  489. /package/dist/atomic/{p-9147b0db.entry.js.map → p-8256cd44.entry.js.map} +0 -0
  490. /package/dist/atomic/{p-0e27d4f2.entry.js.map → p-83c9244a.entry.js.map} +0 -0
  491. /package/dist/atomic/{p-5adbf098.entry.js.map → p-877d35b1.entry.js.map} +0 -0
  492. /package/dist/atomic/{p-615a8ef7.entry.js.map → p-9383d0d3.entry.js.map} +0 -0
  493. /package/dist/atomic/{p-bd99fcc1.entry.js.map → p-939eaaac.entry.js.map} +0 -0
  494. /package/dist/atomic/{p-9b92b4e2.entry.js.map → p-93e29b24.entry.js.map} +0 -0
  495. /package/dist/atomic/{p-b6377fb6.entry.js.map → p-98c5b9b8.entry.js.map} +0 -0
  496. /package/dist/atomic/{p-bf49fed3.entry.js.map → p-99b8d52d.entry.js.map} +0 -0
  497. /package/dist/atomic/{p-160553ce.entry.js.map → p-a3efa89e.entry.js.map} +0 -0
  498. /package/dist/atomic/{p-c538c8ac.entry.js.map → p-a53c7821.entry.js.map} +0 -0
  499. /package/dist/atomic/{p-be1b98a6.entry.js.map → p-a760d9f9.entry.js.map} +0 -0
  500. /package/dist/atomic/{p-4e9d1f9e.entry.js.map → p-aa2a81fd.entry.js.map} +0 -0
  501. /package/dist/atomic/{p-ce41c447.entry.js.map → p-ae060711.entry.js.map} +0 -0
  502. /package/dist/atomic/{p-b4c34553.entry.js.map → p-b0b17e21.entry.js.map} +0 -0
  503. /package/dist/atomic/{p-71bb8125.entry.js.map → p-b28011e6.entry.js.map} +0 -0
  504. /package/dist/atomic/{p-e1c99e2e.entry.js.map → p-b2ff1330.entry.js.map} +0 -0
  505. /package/dist/atomic/{p-dee60597.entry.js.map → p-bc0d6d3d.entry.js.map} +0 -0
  506. /package/dist/atomic/{p-0e5dc57f.entry.js.map → p-c126ee6b.entry.js.map} +0 -0
  507. /package/dist/atomic/{p-754909fe.entry.js.map → p-c1999888.entry.js.map} +0 -0
  508. /package/dist/atomic/{p-d11b2b24.entry.js.map → p-c49cfa0c.entry.js.map} +0 -0
  509. /package/dist/atomic/{p-e305c149.entry.js.map → p-c6eca514.entry.js.map} +0 -0
  510. /package/dist/atomic/{p-b4ad3036.entry.js.map → p-d00a12e9.entry.js.map} +0 -0
  511. /package/dist/atomic/{p-97829295.entry.js.map → p-d24d34a7.entry.js.map} +0 -0
  512. /package/dist/atomic/{p-7f40e57d.entry.js.map → p-d364064c.entry.js.map} +0 -0
  513. /package/dist/atomic/{p-856e858c.entry.js.map → p-d785121d.entry.js.map} +0 -0
  514. /package/dist/atomic/{p-7d63bf7b.entry.js.map → p-d93adf52.entry.js.map} +0 -0
  515. /package/dist/atomic/{p-2a4e9425.entry.js.map → p-de066001.entry.js.map} +0 -0
  516. /package/dist/atomic/{p-8a7a23b7.entry.js.map → p-e162805d.entry.js.map} +0 -0
  517. /package/dist/atomic/{p-441b1a7b.entry.js.map → p-e23b3334.entry.js.map} +0 -0
  518. /package/dist/atomic/{p-c2b4b401.entry.js.map → p-e2afb475.entry.js.map} +0 -0
  519. /package/dist/atomic/{p-bd32625e.entry.js.map → p-ea446721.entry.js.map} +0 -0
  520. /package/dist/atomic/{p-07b6424c.entry.js.map → p-ee6771f1.entry.js.map} +0 -0
  521. /package/dist/atomic/{p-abb14108.entry.js.map → p-f0c2dfe8.entry.js.map} +0 -0
  522. /package/dist/atomic/{p-d2d22ab2.entry.js.map → p-f22bcb8c.entry.js.map} +0 -0
  523. /package/dist/atomic/{p-d4ad7336.entry.js.map → p-fa8b7c4c.entry.js.map} +0 -0
  524. /package/dist/atomic/{p-f936f55e.entry.js.map → p-fea7bf3b.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"file":"atomic-search-interface.js","mappings":";;;;;;;;;;AAGO,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAC/D,MAAM,iBAAiB,GAAG,GAAG,4BAA4B,aAAa,CAAC;AACvE,MAAM,aAAa,GAAG,GAAG,4BAA4B,QAAQ,CAAC;AAC9D,MAAM,2BAA2B,GAAG,GAAG,4BAA4B,kBAAkB,CAAC;SAE7E,gBAAgB,CAAC,gBAAwB;IACvD,OAAO,+BAA+B,gBAAgB,GAAG,CAAC;AAC5D;;SCIgB,kBAAkB,CAChC,kBAA6C,EAC7C,OAAgB,EAChB,KAA2C;IAE3C,QAAQ,kBAAkB,CAAC,SAAS,EAAE,aAAa;QACjD,KAAK,MAAM;YACT,OAAO,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC7D;YACE,OAAO,wBAAwB,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KACvE;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,kBAA6C,EAC7C,OAAgB,EAChB,KAA2C;IAE3C,MAAM,yBAAyB,GAAG,CAChC,KAAa,EACb,OAAyB,KACtB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAEjE,MAAM,oBAAoB,GAA2B;QACnD,yBAAyB;QACzB,OAAO;QACP,GAAG,kCAAkC,EAAE;KACxC,CAAC;IAEF,MAAM,sBAAsB,GAA2B;QACrD,GAAG,uCAAuC,EAAE;KAC7C,CAAC;IAEF,IAAI,kBAAkB,CAAC,SAAS,EAAE;QAChC,OAAO;YACL,GAAG,oBAAoB;YACvB,GAAG,kBAAkB,CAAC,SAAS;YAC/B,yBAAyB;YACzB,GAAG,sBAAsB;SAC1B,CAAC;KACH;IAED,OAAO;QACL,GAAG,oBAAoB;QACvB,GAAG,sBAAsB;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAa,EACb,OAAyB,EACzB,KAA2C,EAC3C,MAAiC;IAEjC,IAAI,MAAM,GAAG,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,GAAG,+BAA+B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,+BAA+B,CACtC,OAAyB,EACzB,KAA2C;IAE3C,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,kCAAkC,GAAG,CACzC,OAAe,EACf,aAAqB,MACjB,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CACzC,CAAC,mBAAgD;YAC/C,MAAM,EAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAC,GAAG,mBAAmB,CAAC;YACvD,OAAO;gBACL,GAAG,mBAAmB;gBACtB,KAAK,EAAE,kCAAkC,CAAC,EAAE,EAAE,aAAa,CAAC;aAC7D,CAAC;SACH,CACF,CAAC;KACH;IAED,IACE,OAAO,CAAC,UAAU,EAAE,UAAU;QAC9B,OAAO,CAAC,UAAU,CAAC,OAAO;QAC1B,OAAO,CAAC,UAAU,CAAC,UAAU,EAC7B;QACA,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,kCAAkC,CAChE,OAAO,CAAC,UAAU,CAAC,OAAO,EAC1B,OAAO,CAAC,UAAU,CAAC,UAAU,CAC9B,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AACjB;;SCtCgB,iBAAiB;IAC/B,MAAM,KAAK,GAAG,eAAe,CAAO;QAClC,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE,yBAAyB;QAC3C,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,KAAK;QAER,gBAAgB,CAAC,WAAmB;YAClC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SACtC;QAED,cAAc,CAAC,WAAmB;YAChC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SACpC;QAED,QAAQ;YACN,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACtE,OAAO,CAAC;SACZ;QAED,aAAa,CACX,SAAY,EACZ,IAAqD;YAErD,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;SACvC;QAED,gBAAgB;YACd,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,kBAAkB,CAAC,QAAoB;YACrC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SACrC;QAED,qBAAqB,CAAC,MAAoB;YACxC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;SAC/C;QAED,cAAc,CAAC,WAAmB;YAChC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7D;QAED,YAAY;YACV,OAAO;gBACL,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;gBACrB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU;gBACzB,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc;gBAC7B,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa;aAC7B,CAAC;SACH;QAED,kBAAkB,CAAC,MAAM;YACvB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;YAClD,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC;SAC7D;KACF,CAAC;AACJ;;ACzIA,MAAM,wBAAwB,GAAG,sxjEAAsxjE,CAAC;AACxzjE,oCAAe,wBAAwB;;;;;;;;;;;;ACgDvC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;MAYzCA,uBAAqB;IAmIhC;;;;QA9HQ,0BAAqB,GAAgB,SAAQ,CAAC;QAC9C,4BAAuB,GAAgB,SAAQ,CAAC;QAChD,gBAAW,GAAG,KAAK,CAAC;QAOnB,6BAAwB,GAAG,KAAK,CAAC;;;;;;;;;QAYnC,oBAAe,GAAsB,IAAI,CAAC;;;;QAmBnB,cAAS,GAAG,IAAI,CAAC;;;;QAuBjB,aAAQ,GAAG,IAAI,CAAC;;;;QAUhB,sBAAiB,GAAG,IAAI,CAAC;;;;QAKzB,oBAAe,GAAG,yBAAyB,CAAC;;;;;;;QAQ5C,uBAAkB,GAAG,QAAQ,CAAC;;;;;;;QAQ9B,mBAAc,GAAG,UAAU,CAAC;;;;;;;;QAS5B,6BAAwB,GAAG,IAAI,CAAC;QA6XtD,iBAAY,GAAG;YACrB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C,CAAC;;wCA7dkC,KAAK;+BAYG,IAAI;;;yBAmBN,IAAI;;;;wBAuBL,IAAI;;iCAUK,IAAI;+BAKN,yBAAyB;kCAQtB,QAAQ;8BAQZ,UAAU;wCASA,IAAI;;QAwB3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,2BAA2B,CAC1D,IAAI,EACJ,aAAa,CACd,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,iBAAiB,EAAE,CAAC;QACjC,CAAC;YACC,OAAO,EAAE,IAAI,CAAC,8BAA8B;YAC5C,OAAO,EAAE,IAAI,CAAC,yBAAyB;SACxC,GAAG,OAAO,CAAC,aAAa,EAAQ,EAAE;QACnC,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAGC,QAAO,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KACxD;IAEM,iBAAiB;QACtB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QACnD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEM,yBAAyB,CAC9B,WAAqC,EACrC,QAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE;YAC/C,OAAO;SACR;QAED,MAAM,EAAC,yBAAyB,EAAC,GAAG,8BAA8B,CAChE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,yBAAyB,CAAC;YACxB,CAAC,WAAW,GAAG,QAAQ;SACxB,CAAC,CACH,CAAC;KACH;IAGM,eAAe;QACpB,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;KAC1E;IAGM,cAAc;QACnB,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3D;IAGM,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC;KAChD;IAGM,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO;SACR;QAED,MAAM,EAAC,yBAAyB,EAAC,GAAG,8BAA8B,CAChE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,yBAAyB,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,CAAC;KACtD;IAGM,oBAAoB;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;KACvD;IAEM,oBAAoB;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAC7D;IAGM,oBAAoB,CAAC,KAAsB;QAChD,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KAC3D;IAGM,WAAW;QAChB,MAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,CAAC,sBAAsB,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC9B,0DAA0D,IAAI,CAAC,eAAe,gJAAgJ,CAC/N,CAAC;YACF,OAAO;SACR;QAED,sBAAsB,CAAC,cAAc,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;KAC7D;IAGM,uBAAuB;QAC5B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACvC;;;;IAKgB,UAAU,CAAC,OAA8B;QACxD,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;KACpE;;;;;IAMgB,0BAA0B,CAAC,MAAoB;QAC9D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5D,OAAO,CAAC,IAAI,CACV,qCAAqC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAClE,CAAC;SACH;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;YAC/D,OAAO,CAAC,IAAI,CACV,qCAAqC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC9D,CAAC;SACH;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;KAClE;;;;;IAMgB,MAAM,kBAAkB;QACvC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,CAAC,KAAK,CACX,yFAAyF,EACzF,IAAI,CAAC,IAAI,CACV,CAAC;YACF,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,uBAAuB,GAC3B,WAAW,CAAC,aAAa,CACvB,YAAY,CAAC,0BAA0B,EACvC,IAAI,CACL,CAAC;QAEJ,IAAI,CAAC,uBAAuB,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjC,OAAO;SACR;QAED,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAChE,MAAM,EAAC,WAAW,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QACrD,MAAM,EAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAC,GAAG,uBAAuB,CAAC;QACtE,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,kDAAkD,CAAC,SAAS,CAAC,CAAC;KAC3E;IAED,IAAW,QAAQ;QACjB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAO;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,gBAAgB,EAAE,IAAI,CAAC,IAAI;YAC3B,kBAAkB,EAAE;gBAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/C;gBACD,OAAO,QAAQ,CAAC;aACjB;YACD,mBAAmB,EAAE;gBACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/C;gBACD,OAAO,QAAQ,CAAC;aACjB;SACF,CAAC;KACH;IAEO,mBAAmB;QACzB,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;KACvC;IAEM,uBAAuB;QAC5B,IAAI,CAAC,MAAM,EAAE,QAAQ,CACnB,gBAAgB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,uBAAuB,CACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CACjC,CACF,CAAC;KACH;IAEO,sBAAsB;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CACxC,sBAAsB,CACvB,EAAE,gBAAgB,CAAC;QACpB,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;SAChD;KACF;IAEO,UAAU,CAAC,OAA8B;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,kBAAkB,CACxC,OAAO,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,CACX,CAAC;QACF,IAAI;YACF,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;gBAC9B,aAAa,EAAE;oBACb,GAAG,OAAO;oBACV,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,eAAe;iBAC3B;gBACD,aAAa,EAAE;oBACb,KAAK,EAAE,IAAI,CAAC,QAAQ;iBACrB;aACF,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,KAAc,CAAC;YAC5B,MAAM,KAAK,CAAC;SACb;KACF;IAEO,sBAAsB,CAAC,OAA8B;QAC3D,MAAM,qBAAqB,GAAG;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO;gBACL,GAAG,qBAAqB;gBACxB,GAAG,OAAO,CAAC,MAAM;aAClB,CAAC;SACH;QAED,OAAO,qBAAqB,CAAC;KAC9B;IAED,IAAY,QAAQ;QAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACtC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAO,EAAE;YAC9C,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MACrD,IAAI,CAAC,UAAU,EAAE,CAClB,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1D;IAEO,YAAY;QAClB,IACE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,KAAK,kBAAkB,CACpD,EACD;YACA,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACZ,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC;iBAChE;aACF,CAAC,CAAC;SACJ;KACF;IAEO,gBAAgB;QACtB,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QACpD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACzD,MAAM,8BAA8B,GAClC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU;gBACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB;gBAC3C,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CACxB,iBAAiB,EACjB,8BAA8B,CAC/B,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CACxB,aAAa,EACb,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CACjC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CACxB,2BAA2B,EAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAC5C,CAAC;YAEF,IACE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB;gBAC3C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAClD;gBACA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;aACtD;SACF,CAAC,CAAC;KACJ;IAEO,UAAU;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAChD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;YAEzE,OAAO;SACR;QAED,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;KACvE;IAMO,MAAM,sBAAsB,CAAC,UAAsB;QACzD,MAAM,IAAI,CAAC,8BAA8B,CAAC;QAC1C,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,cAAc;SACpB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAEM,MAAM;QACX,OAAO;YACL,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,wBAAwB,KAC1C,mFACE,IAAI,EAAE,IAAI,CAAC,wBAAwB,EACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACK,CAC/B;YACD,8DAAa;SACd,CAAC;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA5eM;IAFN,SAAS,EAAE;gEAEqC;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AtomicSearchInterface","i18next"],"sources":["src/components/search/atomic-search-layout/search-layout.ts","src/components/search/atomic-search-interface/analytics-config.ts","src/components/search/atomic-search-interface/store.ts","src/components/search/atomic-search-interface/atomic-search-interface.pcss?tag=atomic-search-interface&encapsulation=shadow","src/components/search/atomic-search-interface/atomic-search-interface.tsx"],"sourcesContent":["import {buildCommonLayout} from '../../common/atomic-layout-section/layout';\n\nexport const layoutWebComponentTagName = 'atomic-search-layout';\nexport const containerWebComponentTagName = 'atomic-search-interface';\nexport const noResultsSelector = `${containerWebComponentTagName}-no-results`;\nexport const errorSelector = `${containerWebComponentTagName}-error`;\nexport const firstSearchExecutedSelector = `${containerWebComponentTagName}-search-executed`;\n\nexport function makeDesktopQuery(mobileBreakpoint: string) {\n return `only screen and (min-width: ${mobileBreakpoint})`;\n}\nexport function buildSearchLayout(\n element: HTMLElement,\n mobileBreakpoint: string\n) {\n return buildCommonLayout(\n element,\n mobileBreakpoint,\n layoutWebComponentTagName,\n containerWebComponentTagName,\n noResultsSelector,\n errorSelector,\n 'atomic-refine-toggle',\n 'atomic-sort-dropdown'\n );\n}\n","import type {\n AnalyticsConfiguration,\n SearchEngineConfiguration,\n} from '@coveo/headless';\nimport {\n type AnalyticsPayload,\n augmentAnalyticsConfigWithAtomicVersion,\n augmentAnalyticsConfigWithDocument,\n augmentAnalyticsWithAtomicVersion,\n augmentWithExternalMiddleware,\n getNextAnalyticsConfig,\n} from '../../common/interface/analytics-config';\nimport type {createSearchStore} from './store';\n\nexport function getAnalyticsConfig(\n searchEngineConfig: SearchEngineConfiguration,\n enabled: boolean,\n store: ReturnType<typeof createSearchStore>\n): AnalyticsConfiguration {\n switch (searchEngineConfig.analytics?.analyticsMode) {\n case 'next':\n return getNextAnalyticsConfig(searchEngineConfig, enabled);\n default:\n return getLegacyAnalyticsConfig(searchEngineConfig, enabled, store);\n }\n}\n\nfunction getLegacyAnalyticsConfig(\n searchEngineConfig: SearchEngineConfiguration,\n enabled: boolean,\n store: ReturnType<typeof createSearchStore>\n): AnalyticsConfiguration {\n const analyticsClientMiddleware = (\n event: string,\n payload: AnalyticsPayload\n ) => augmentAnalytics(event, payload, store, searchEngineConfig);\n\n const defaultConfiguration: AnalyticsConfiguration = {\n analyticsClientMiddleware,\n enabled,\n ...augmentAnalyticsConfigWithDocument(),\n };\n\n const immutableConfiguration: AnalyticsConfiguration = {\n ...augmentAnalyticsConfigWithAtomicVersion(),\n };\n\n if (searchEngineConfig.analytics) {\n return {\n ...defaultConfiguration,\n ...searchEngineConfig.analytics,\n analyticsClientMiddleware,\n ...immutableConfiguration,\n };\n }\n\n return {\n ...defaultConfiguration,\n ...immutableConfiguration,\n };\n}\n\nfunction augmentAnalytics(\n event: string,\n payload: AnalyticsPayload,\n store: ReturnType<typeof createSearchStore>,\n config: SearchEngineConfiguration\n) {\n let result = augmentWithExternalMiddleware(event, payload, config);\n result = augmentAnalyticsWithAtomicVersion(result);\n result = augmentAnalyticsWithFacetTitles(result, store);\n return result;\n}\n\nfunction augmentAnalyticsWithFacetTitles(\n payload: AnalyticsPayload,\n store: ReturnType<typeof createSearchStore>\n) {\n const allFacets = store.getAllFacets();\n const getAtomicFacetLabelOrOriginalTitle = (\n facetId: string,\n originalTitle: string\n ) => (allFacets[facetId] ? allFacets[facetId].label() : originalTitle);\n\n if (payload.facetState) {\n payload.facetState = payload.facetState.map(\n (analyticsFacetState: {id: string; title: string}) => {\n const {id, title: originalTitle} = analyticsFacetState;\n return {\n ...analyticsFacetState,\n title: getAtomicFacetLabelOrOriginalTitle(id, originalTitle),\n };\n }\n );\n }\n\n if (\n payload.customData?.facetTitle &&\n payload.customData.facetId &&\n payload.customData.facetTitle\n ) {\n payload.customData.facetTitle = getAtomicFacetLabelOrOriginalTitle(\n payload.customData.facetId,\n payload.customData.facetTitle\n );\n }\n return payload;\n}\n","import type {\n DateFacetValue,\n NumericFacetValue,\n SearchEngine,\n SortCriterion,\n} from '@coveo/headless';\nimport {DEFAULT_MOBILE_BREAKPOINT} from '../../../utils/replace-breakpoint-utils';\nimport type {\n FacetInfo,\n FacetStore,\n FacetType,\n FacetValueFormat,\n} from '../../common/facets/facet-common-store';\nimport {\n type BaseStore,\n createBaseStore,\n getFacetElements,\n type ResultListInfo,\n registerFacet,\n setLoadingFlag,\n unsetLoadingFlag,\n waitUntilAppLoaded,\n} from '../../common/interface/store';\nimport {makeDesktopQuery} from '../atomic-search-layout/search-layout';\n\nexport interface SortDropdownOption {\n tabs: {included: string[] | string; excluded: string[] | string};\n expression: string;\n criteria: SortCriterion[];\n label: string;\n}\n\ninterface FacetInfoMap {\n [facetId: string]:\n | FacetInfo\n | (FacetInfo & FacetValueFormat<NumericFacetValue>)\n | (FacetInfo & FacetValueFormat<DateFacetValue>);\n}\n\ninterface Data {\n loadingFlags: string[];\n iconAssetsPath: string;\n resultList: ResultListInfo | undefined;\n mobileBreakpoint: string;\n facets: FacetStore<FacetInfo>;\n numericFacets: FacetStore<FacetInfo & FacetValueFormat<NumericFacetValue>>;\n dateFacets: FacetStore<FacetInfo & FacetValueFormat<DateFacetValue>>;\n categoryFacets: FacetStore<FacetInfo>;\n facetElements: HTMLElement[];\n fieldsToInclude: string[];\n sortOptions: SortDropdownOption[];\n}\n\nexport type SearchStore = BaseStore<Data> & {\n unsetLoadingFlag(loadingFlag: string): void;\n setLoadingFlag(flag: string): void;\n isMobile(): boolean;\n registerFacet<T extends FacetType, U extends string>(\n facetType: T,\n data: Data[T][U] & {facetId: U; element: HTMLElement}\n ): void;\n getFacetElements(): HTMLElement[];\n waitUntilAppLoaded(callback: () => void): void;\n getUniqueIDFromEngine(engine: SearchEngine): string;\n hasLoadingFlag(loadingFlag: string): boolean;\n getAllFacets(): FacetInfoMap;\n addFieldsToInclude(fields: string[]): void;\n};\n\nexport function createSearchStore(): SearchStore {\n const store = createBaseStore<Data>({\n loadingFlags: [],\n iconAssetsPath: '',\n resultList: undefined,\n mobileBreakpoint: DEFAULT_MOBILE_BREAKPOINT,\n facets: {},\n numericFacets: {},\n dateFacets: {},\n categoryFacets: {},\n facetElements: [],\n fieldsToInclude: [],\n sortOptions: [],\n });\n\n return {\n ...store,\n\n unsetLoadingFlag(loadingFlag: string) {\n unsetLoadingFlag(store, loadingFlag);\n },\n\n setLoadingFlag(loadingFlag: string) {\n setLoadingFlag(store, loadingFlag);\n },\n\n isMobile() {\n return !window.matchMedia(makeDesktopQuery(store.state.mobileBreakpoint))\n .matches;\n },\n\n registerFacet<T extends FacetType, U extends string>(\n facetType: T,\n data: Data[T][U] & {facetId: U; element: HTMLElement}\n ) {\n registerFacet(store, facetType, data);\n },\n\n getFacetElements() {\n return getFacetElements(store);\n },\n\n waitUntilAppLoaded(callback: () => void) {\n waitUntilAppLoaded(store, callback);\n },\n\n getUniqueIDFromEngine(engine: SearchEngine): string {\n return engine.state.search.response.searchUid;\n },\n\n hasLoadingFlag(loadingFlag: string) {\n return store.state.loadingFlags.indexOf(loadingFlag) !== -1;\n },\n\n getAllFacets() {\n return {\n ...store.state.facets,\n ...store.state.dateFacets,\n ...store.state.categoryFacets,\n ...store.state.numericFacets,\n };\n },\n\n addFieldsToInclude(fields) {\n const currentFields = store.state.fieldsToInclude;\n store.state.fieldsToInclude = [...currentFields, ...fields];\n },\n };\n}\n","@import '../../../global/global.pcss';\n\n:host {\n display: block;\n height: inherit;\n width: inherit;\n & > slot {\n height: inherit;\n }\n}\n","import {markParentAsReady} from '@/src/utils/init-queue';\nimport {\n LogLevel,\n Unsubscribe,\n buildUrlManager,\n UrlManager,\n buildSearchEngine,\n SearchEngine,\n SearchEngineConfiguration,\n SearchStatus,\n buildSearchStatus,\n loadSearchConfigurationActions,\n loadQueryActions,\n EcommerceDefaultFieldsToInclude,\n loadFieldActions,\n} from '@coveo/headless';\nimport {\n Component,\n Prop,\n h,\n Listen,\n Method,\n Watch,\n Element,\n State,\n setNonce,\n} from '@stencil/core';\nimport i18next, {i18n} from 'i18next';\nimport {InitializeEvent} from '../../../utils/initialization-utils';\nimport {\n SafeStorage,\n StandaloneSearchBoxData,\n StorageItems,\n} from '../../../utils/local-storage-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {\n StencilBaseAtomicInterface,\n CommonAtomicInterfaceHelper,\n mismatchedInterfaceAndEnginePropError,\n} from '../../common/interface/interface-common-stencil';\nimport {\n errorSelector,\n firstSearchExecutedSelector,\n noResultsSelector,\n} from '../atomic-search-layout/search-layout';\nimport {getAnalyticsConfig} from './analytics-config';\nimport type {Bindings as _Bindings} from './interfaces';\nimport {createSearchStore, SearchStore} from './store';\n\nconst FirstSearchExecutedFlag = 'firstSearchExecuted';\nexport type InitializationOptions = SearchEngineConfiguration;\nexport type Bindings = _Bindings;\n\n/**\n * The `atomic-search-interface` component is the parent to all other atomic components in a search page. It handles the headless search engine and localization configurations.\n */\n@Component({\n tag: 'atomic-search-interface',\n styleUrl: 'atomic-search-interface.pcss',\n shadow: true,\n})\nexport class AtomicSearchInterface\n implements StencilBaseAtomicInterface<SearchEngine>\n{\n private urlManager!: UrlManager;\n private searchStatus!: SearchStatus;\n private unsubscribeUrlManager: Unsubscribe = () => {};\n private unsubscribeSearchStatus: Unsubscribe = () => {};\n private initialized = false;\n private store: SearchStore;\n private commonInterfaceHelper: CommonAtomicInterfaceHelper<SearchEngine>;\n\n @Element() public host!: HTMLAtomicSearchInterfaceElement;\n\n @State() public error?: Error;\n @State() relevanceInspectorIsOpen = false;\n\n /**\n * A list of non-default fields to include in the query results.\n *\n * Specify the property as an array using a JSON string representation:\n * ```html\n * <atomic-search-interface fields-to-include='[\"fieldA\", \"fieldB\"]'></atomic-search-interface>\n * ```\n */\n @ArrayProp()\n @Prop({mutable: true})\n public fieldsToInclude: string[] | string = '[]';\n\n /**\n * The search interface [query pipeline](https://docs.coveo.com/en/180/).\n *\n * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine), the query pipeline should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public pipeline?: string;\n\n /**\n * The search interface [search hub](https://docs.coveo.com/en/1342/).\n *\n * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine, the search hub should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public searchHub?: string;\n\n /**\n * Whether analytics should be enabled.\n */\n @Prop({reflect: true}) public analytics = true;\n\n /**\n * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.\n * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).\n *\n * Example: \"America/Montreal\"\n */\n @Prop({reflect: true}) public timezone?: string;\n\n /**\n * The severity level of the messages to log in the console.\n */\n @Prop({reflect: true}) public logLevel?: LogLevel;\n\n /**\n * The search interface i18next instance.\n */\n @Prop() public i18n: i18n;\n\n /**\n * The search interface language.\n */\n @Prop({reflect: true}) public language = 'en';\n\n /**\n * The search interface headless engine.\n */\n @Prop({mutable: true}) public engine?: SearchEngine;\n\n /**\n * Whether the state should be reflected in the URL parameters.\n */\n @Prop({reflect: true}) public reflectStateInUrl = true;\n\n /**\n * The CSS selector for the container where the interface will scroll back to.\n */\n @Prop({reflect: true}) public scrollContainer = 'atomic-search-interface';\n\n /**\n * The language assets path. By default, this will be a relative URL pointing to `./lang`.\n *\n * Example: \"/mypublicpath/languages\"\n *\n */\n @Prop({reflect: true}) public languageAssetsPath = './lang';\n\n /**\n * The icon assets path. By default, this will be a relative URL pointing to `./assets`.\n *\n * Example: \"/mypublicpath/icons\"\n *\n */\n @Prop({reflect: true}) public iconAssetsPath = './assets';\n\n /**\n * Whether the relevance inspector shortcut should be enabled for this interface.\n *\n * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double click.\n *\n * The relevance inspector allows to troubleshoot and debug queries.\n */\n @Prop({reflect: true}) public enableRelevanceInspector = true;\n\n /**\n * The value to set the [nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) attribute to on inline script and style elements generated by this interface and its child components.\n * If your application is served with a Content Security Policy (CSP) that doesn't include the `script-src: 'unsafe-inline'` or `style-src: 'unsafe-inline'` directives,\n * you should ensure that your application server generates a new nonce on every page load and uses the generated value to set this prop and serve the corresponding CSP response headers\n * (i.e., script-src 'nonce-<YOUR_GENERATED_NONCE>' and style-src 'nonce-<YOUR_GENERATED_NONCE>').\n * Otherwise you may see console errors such as\n * - Refused to execute inline script because it violates the following Content Security Policy directive: [...]\n * - Refused to apply inline style because it violates the following Content Security Policy directive: [...].\n * @example:\n * ```html\n * <script nonce=\"<YOUR_GENERATED_NONCE>\">\n * import {setNonce} from '@coveo/atomic';\n * setNonce('<YOUR_GENERATED_NONCE>');\n * </script>\n * ```\n */\n @Prop({reflect: true}) public CspNonce?: string;\n\n private i18Initialized: Promise<void>;\n private componentWillLoadCalledPromise: Promise<void>;\n private componentWillLoadResolver: () => void;\n public constructor() {\n this.initRelevanceInspector();\n this.commonInterfaceHelper = new CommonAtomicInterfaceHelper(\n this,\n 'CoveoAtomic'\n );\n this.store = createSearchStore();\n ({\n promise: this.componentWillLoadCalledPromise,\n resolve: this.componentWillLoadResolver,\n } = Promise.withResolvers<void>());\n const {promise, resolve} = Promise.withResolvers<void>();\n this.i18Initialized = promise;\n this.i18n = i18next.createInstance(undefined, resolve);\n }\n\n public connectedCallback() {\n this.store.setLoadingFlag(FirstSearchExecutedFlag);\n this.updateMobileBreakpoint();\n }\n\n componentWillLoad() {\n if (this.CspNonce) {\n setNonce(this.CspNonce);\n }\n this.initAriaLive();\n this.initFieldsToInclude();\n this.componentWillLoadResolver();\n }\n\n public updateSearchConfiguration(\n updatedProp: 'searchHub' | 'pipeline',\n newValue: string | undefined\n ) {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (this.engine.state[updatedProp] === newValue) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n [updatedProp]: newValue,\n })\n );\n }\n\n @Watch('searchHub')\n public updateSearchHub() {\n this.updateSearchConfiguration('searchHub', this.searchHub ?? 'default');\n }\n\n @Watch('pipeline')\n public updatePipeline() {\n this.updateSearchConfiguration('pipeline', this.pipeline);\n }\n\n @Watch('analytics')\n public toggleAnalytics() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n this.commonInterfaceHelper.onAnalyticsChange();\n }\n\n @Watch('language')\n public updateLanguage() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n locale: this.language,\n })\n );\n return this.commonInterfaceHelper.onLanguageChange();\n }\n\n @Watch('iconAssetsPath')\n public updateIconAssetsPath() {\n this.store.state.iconAssetsPath = this.iconAssetsPath;\n }\n\n public disconnectedCallback() {\n this.unsubscribeUrlManager();\n this.unsubscribeSearchStatus();\n window.removeEventListener('hashchange', this.onHashChange);\n }\n\n @Listen('atomic/initializeComponent')\n public handleInitialization(event: InitializeEvent) {\n this.commonInterfaceHelper.onComponentInitializing(event);\n }\n\n @Listen('atomic/scrollToTop')\n public scrollToTop() {\n const scrollContainerElement = document.querySelector(this.scrollContainer);\n if (!scrollContainerElement) {\n this.bindings.engine.logger.warn(\n `Could not find the scroll container with the selector \"${this.scrollContainer}\". This will prevent UX interactions that require a scroll from working correctly. Please check the CSS selector in the scrollContainer option`\n );\n return;\n }\n\n scrollContainerElement.scrollIntoView({behavior: 'smooth'});\n }\n\n @Listen('atomic/relevanceInspector/close')\n public closeRelevanceInspector() {\n this.relevanceInspectorIsOpen = false;\n }\n\n /**\n * Initializes the connection with the headless search engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.\n */\n @Method() public initialize(options: InitializationOptions) {\n return this.internalInitialization(() => this.initEngine(options));\n }\n\n /**\n * Initializes the connection with an already preconfigured [headless search engine](https://docs.coveo.com/en/headless/latest/reference/interfaces/Search.SearchEngine.html), as opposed to the `initialize` method, which will internally create a new search engine instance.\n * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone & logLevel.\n */\n @Method() public initializeWithSearchEngine(engine: SearchEngine) {\n if (this.pipeline && this.pipeline !== engine.state.pipeline) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'query pipeline')\n );\n }\n if (this.searchHub && this.searchHub !== engine.state.searchHub) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'search hub')\n );\n }\n return this.internalInitialization(() => (this.engine = engine));\n }\n\n /**\n *\n * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.\n */\n @Method() public async executeFirstSearch() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (!this.initialized) {\n console.error(\n 'You have to wait until the \"initialize\" promise is fulfilled before executing a search.',\n this.host\n );\n return;\n }\n\n const safeStorage = new SafeStorage();\n const standaloneSearchBoxData =\n safeStorage.getParsedJSON<StandaloneSearchBoxData | null>(\n StorageItems.STANDALONE_SEARCH_BOX_DATA,\n null\n );\n\n if (!standaloneSearchBoxData) {\n this.engine.executeFirstSearch();\n return;\n }\n\n safeStorage.removeItem(StorageItems.STANDALONE_SEARCH_BOX_DATA);\n const {updateQuery} = loadQueryActions(this.engine!);\n const {value, enableQuerySyntax, analytics} = standaloneSearchBoxData;\n this.engine!.dispatch(updateQuery({q: value, enableQuerySyntax}));\n this.engine.executeFirstSearchAfterStandaloneSearchBoxRedirect(analytics);\n }\n\n public get bindings(): Bindings {\n return {\n engine: this.engine!,\n i18n: this.i18n,\n store: this.store,\n interfaceElement: this.host,\n createStyleElement: () => {\n const styleTag = document.createElement('style');\n if (this.CspNonce) {\n styleTag.setAttribute('nonce', this.CspNonce);\n }\n return styleTag;\n },\n createScriptElement: () => {\n const styleTag = document.createElement('script');\n if (this.CspNonce) {\n styleTag.setAttribute('nonce', this.CspNonce);\n }\n return styleTag;\n },\n };\n }\n\n private initFieldsToInclude() {\n const fields = EcommerceDefaultFieldsToInclude.concat(this.fieldsToInclude);\n this.store.addFieldsToInclude(fields);\n }\n\n public registerFieldsToInclude() {\n this.engine?.dispatch(\n loadFieldActions(this.engine!).registerFieldsToInclude(\n this.store.state.fieldsToInclude\n )\n );\n }\n\n private updateMobileBreakpoint() {\n const breakpoint = this.host.querySelector(\n 'atomic-search-layout'\n )?.mobileBreakpoint;\n if (breakpoint) {\n this.store.state.mobileBreakpoint = breakpoint;\n }\n }\n\n private initEngine(options: InitializationOptions) {\n const searchConfig = this.getSearchConfiguration(options);\n const analyticsConfig = getAnalyticsConfig(\n options,\n this.analytics,\n this.store\n );\n try {\n this.engine = buildSearchEngine({\n configuration: {\n ...options,\n search: searchConfig,\n analytics: analyticsConfig,\n },\n loggerOptions: {\n level: this.logLevel,\n },\n });\n } catch (error) {\n this.error = error as Error;\n throw error;\n }\n }\n\n private getSearchConfiguration(options: InitializationOptions) {\n const searchConfigFromProps = {\n searchHub: this.searchHub ?? 'default',\n pipeline: this.pipeline,\n locale: this.language,\n timezone: this.timezone,\n };\n\n if (options.search) {\n return {\n ...searchConfigFromProps,\n ...options.search,\n };\n }\n\n return searchConfigFromProps;\n }\n\n private get fragment() {\n return window.location.hash.slice(1);\n }\n\n private initUrlManager() {\n if (!this.reflectStateInUrl) {\n return;\n }\n\n this.urlManager = buildUrlManager(this.engine!, {\n initialState: {fragment: this.fragment},\n });\n\n this.unsubscribeUrlManager = this.urlManager.subscribe(() =>\n this.updateHash()\n );\n\n window.addEventListener('hashchange', this.onHashChange);\n }\n\n private initAriaLive() {\n if (\n Array.from(this.host.children).some(\n (element) => element.tagName === 'ATOMIC-ARIA-LIVE'\n )\n ) {\n return;\n }\n const ariaLive = document.createElement('atomic-aria-live');\n this.host.prepend(ariaLive);\n }\n\n private initRelevanceInspector() {\n if (this.enableRelevanceInspector) {\n this.host.addEventListener('dblclick', (e) => {\n if (e.altKey) {\n this.relevanceInspectorIsOpen = !this.relevanceInspectorIsOpen;\n }\n });\n }\n }\n\n private initSearchStatus() {\n this.searchStatus = buildSearchStatus(this.engine!);\n this.unsubscribeSearchStatus = this.searchStatus.subscribe(() => {\n const hasNoResultsAfterInitialSearch =\n !this.searchStatus.state.hasResults &&\n this.searchStatus.state.firstSearchExecuted &&\n !this.searchStatus.state.hasError;\n\n this.host.classList.toggle(\n noResultsSelector,\n hasNoResultsAfterInitialSearch\n );\n\n this.host.classList.toggle(\n errorSelector,\n this.searchStatus.state.hasError\n );\n\n this.host.classList.toggle(\n firstSearchExecutedSelector,\n this.searchStatus.state.firstSearchExecuted\n );\n\n if (\n this.searchStatus.state.firstSearchExecuted &&\n this.store.hasLoadingFlag(FirstSearchExecutedFlag)\n ) {\n this.store.unsetLoadingFlag(FirstSearchExecutedFlag);\n }\n });\n }\n\n private updateHash() {\n const newFragment = this.urlManager.state.fragment;\n\n if (!this.searchStatus.state.firstSearchExecuted) {\n history.replaceState(null, document.title, `#${newFragment}`);\n this.bindings.engine.logger.info(`History replaceState #${newFragment}`);\n\n return;\n }\n\n history.pushState(null, document.title, `#${newFragment}`);\n this.bindings.engine.logger.info(`History pushState #${newFragment}`);\n }\n\n private onHashChange = () => {\n this.urlManager.synchronize(this.fragment);\n };\n\n private async internalInitialization(initEngine: () => void) {\n await this.componentWillLoadCalledPromise;\n await Promise.all([\n this.commonInterfaceHelper.onInitialization(initEngine),\n this.i18Initialized,\n ]);\n await this.updateLanguage();\n markParentAsReady(this.host);\n this.pipeline = this.engine!.state.pipeline;\n this.searchHub = this.engine!.state.searchHub;\n this.initSearchStatus();\n this.initUrlManager();\n this.initialized = true;\n }\n\n public render() {\n return [\n this.engine && this.enableRelevanceInspector && (\n <atomic-relevance-inspector\n open={this.relevanceInspectorIsOpen}\n bindings={this.bindings}\n ></atomic-relevance-inspector>\n ),\n <slot></slot>,\n ];\n }\n}\n"],"version":3}
@@ -89,7 +89,7 @@ const AtomicSmartSnippetAnswer = /*@__PURE__*/ proxyCustomElement(class AtomicSm
89
89
  }), ref: (element) => element && this.bindAnalyticsToLinks(element), part: "answer", class: "margin" })));
90
90
  }
91
91
  render() {
92
- return (h(Host, { key: '70444fee1d3384fa1a413605776003ec98eafdcf' }, this.renderStyle(), this.renderContent()));
92
+ return (h(Host, { key: 'a5348601057208e867eaf3a869fd568312efcd60' }, this.renderStyle(), this.renderContent()));
93
93
  }
94
94
  get host() { return this; }
95
95
  static get style() { return AtomicSmartSnippetAnswerStyle0; }
@@ -56,11 +56,11 @@ const AtomicSmartSnippetCollapseWrapper = /*@__PURE__*/ proxyCustomElement(class
56
56
  return (h("button", { onClick: () => (this.isExpanded = !this.isExpanded), class: "text-primary mb-4 hover:underline", part: this.isExpanded ? 'show-less-button' : 'show-more-button' }, this.bindings.i18n.t(this.isExpanded ? 'show-less' : 'show-more'), h("atomic-icon", { icon: ArrowDown, class: "ml-2 w-3 align-baseline" })));
57
57
  }
58
58
  render() {
59
- return (h(Host, { key: 'f54077986855f352d54274719926b720d67666f4', class: this.fullHeight || !this.shouldRenderButton
59
+ return (h(Host, { key: 'e7e07c36fcb394b85cca875ba778ed0040cd34c6', class: this.fullHeight || !this.shouldRenderButton
60
60
  ? this.isExpanded
61
61
  ? 'expanded'
62
62
  : ''
63
- : 'invisible' }, h("div", { key: '50da7008c14259a00157127af608164375ac6fee', part: "smart-snippet-collapse-wrapper", class: "block overflow-hidden" }, h("slot", { key: 'c6e9c1299180b61315c6727ff44f594b55d73843' })), this.shouldRenderButton && this.renderButton()));
63
+ : 'invisible' }, h("div", { key: 'b91217dc798f3bad5041f6518ee4de6338dd77cf', part: "smart-snippet-collapse-wrapper", class: "block overflow-hidden" }, h("slot", { key: 'fe7073c94e352af68dafd1141d7c55ac3cf9a0ab' })), this.shouldRenderButton && this.renderButton()));
64
64
  }
65
65
  get host() { return this; }
66
66
  static get style() { return AtomicSmartSnippetCollapseWrapperStyle0; }
@@ -87,7 +87,7 @@ const AtomicSmartSnippetExpandableAnswer = /*@__PURE__*/ proxyCustomElement(clas
87
87
  return (h("button", { onClick: () => this.isExpanded ? this.collapse.emit() : this.expand.emit(), class: "text-primary mb-4 hover:underline", part: this.isExpanded ? 'show-less-button' : 'show-more-button' }, this.bindings.i18n.t(this.isExpanded ? 'show-less' : 'show-more'), h("atomic-icon", { icon: ArrowDown, class: "ml-2 w-3 align-baseline" })));
88
88
  }
89
89
  render() {
90
- return (h("div", { key: '19443f9310f0a6705f7f55eb74f7383ae7ff98bf', class: this.isExpanded ? 'expanded' : '' }, this.renderAnswer(), this.renderButton()));
90
+ return (h("div", { key: '429c0365f32c8bec74fb304441ac201c2968d32b', class: this.isExpanded ? 'expanded' : '' }, this.renderAnswer(), this.renderButton()));
91
91
  }
92
92
  get host() { return this; }
93
93
  static get watchers() { return {
@@ -43,9 +43,9 @@ const AtomicSmartSnippetFeedbackModal = /*@__PURE__*/ proxyCustomElement(class A
43
43
  }
44
44
  render() {
45
45
  updateBreakpoints(this.host);
46
- return (h("atomic-modal", { key: '9915bc71b6329068bc8a3731971a793946762f39', fullscreen: false, source: this.source, container: this.host, isOpen: this.isOpen, close: () => this.close(), exportparts: ATOMIC_MODAL_EXPORT_PARTS }, h(SmartSnippetFeedbackModalHeader, { key: '385350607264cd3a0dce273b18eec02909220384', i18n: this.bindings.i18n }), h(SmartSnippetFeedbackModalBody, { key: 'e1a01e0df35dbaf9da6891c825ad5e5e1e6bc534', formId: this.formId, onSubmit: (e) => this.sendFeedback(e) }, h(SmartSnippetFeebackModalOptions, { key: 'd92a6395c26802cfafbcbd50fb1b2cd86bb907de', i18n: this.bindings.i18n }, smartSnippetFeedbackOptions.map(({ id, localeKey, correspondingAnswer }) => (h(SmartSnippetFeedbackModalOption, { correspondingAnswer: correspondingAnswer, currentAnswer: this.currentAnswer, i18n: this.bindings.i18n, id: id, localeKey: localeKey, onChange: () => {
46
+ return (h("atomic-modal", { key: 'e859100c1a2aa70056f471123e6363953a8c978f', fullscreen: false, source: this.source, container: this.host, isOpen: this.isOpen, close: () => this.close(), exportparts: ATOMIC_MODAL_EXPORT_PARTS }, h(SmartSnippetFeedbackModalHeader, { key: '6f154e3e306f5fe14e724a7cc1124581c4ad50db', i18n: this.bindings.i18n }), h(SmartSnippetFeedbackModalBody, { key: '0c7aa2809a41f9725324d19d93a121e30995c322', formId: this.formId, onSubmit: (e) => this.sendFeedback(e) }, h(SmartSnippetFeebackModalOptions, { key: '7ea41f9ade73d9e28909ea5eb4d29fa277d6b762', i18n: this.bindings.i18n }, smartSnippetFeedbackOptions.map(({ id, localeKey, correspondingAnswer }) => (h(SmartSnippetFeedbackModalOption, { correspondingAnswer: correspondingAnswer, currentAnswer: this.currentAnswer, i18n: this.bindings.i18n, id: id, localeKey: localeKey, onChange: () => {
47
47
  this.currentAnswer = correspondingAnswer;
48
- } })))), h(SmartSnippetFeedbackModalDetails, { key: '6dfe87c931bc44d202d78c5a800936aa733b89de', currentAnswer: this.currentAnswer, i18n: this.bindings.i18n, setDetailsInputRef: (ref) => (this.detailsInputRef = ref) })), h(SmartSnippetFeedbackModalFooter, { key: '86f51c71ade3a7e360ce5c000e45939e8744ade4', formId: this.formId, i18n: this.bindings.i18n, onClick: () => this.close() })));
48
+ } })))), h(SmartSnippetFeedbackModalDetails, { key: 'bb2bcce38f8b554e24df782edfc3bbfd2b997588', currentAnswer: this.currentAnswer, i18n: this.bindings.i18n, setDetailsInputRef: (ref) => (this.detailsInputRef = ref) })), h(SmartSnippetFeedbackModalFooter, { key: '2803172d081d52cda72b8c22b2a3b206d3b7cb23', formId: this.formId, i18n: this.bindings.i18n, onClick: () => this.close() })));
49
49
  }
50
50
  close() {
51
51
  this.isOpen = false;
@@ -33,7 +33,7 @@ const AtomicSmartSnippetSource = /*@__PURE__*/ proxyCustomElement(class AtomicSm
33
33
  }
34
34
  }
35
35
  render() {
36
- return (h(Host, { key: '01141ee8feb5120848bdd8932943a34c4cc39314' }, h(LinkWithItemAnalytics, { key: '824f2a0b8166ff4f785c2c03e68e4a8e57f96df8', title: this.source.clickUri, href: this.source.clickUri, className: "block truncate", part: "source-url", attributes: this.anchorAttributes, onSelect: () => this.selectSource.emit(), onBeginDelayedSelect: () => this.beginDelayedSelectSource.emit(), onCancelPendingSelect: () => this.cancelPendingSelectSource.emit() }, this.source.clickUri), h(LinkWithItemAnalytics, { key: '509f68c6ccc999f50522cfc7c24e6ee90e0974f2', title: this.source.title, href: this.source.clickUri, attributes: this.anchorAttributes, className: "block", part: "source-title", onSelect: () => this.selectSource.emit(), onBeginDelayedSelect: () => this.beginDelayedSelectSource.emit(), onCancelPendingSelect: () => this.cancelPendingSelectSource.emit() }, h("atomic-result-text", { field: "title", default: "no-title", key: this.source.uniqueId }))));
36
+ return (h(Host, { key: '59e4530510fba9cd6a01049619dac8ed298d2ad0' }, h(LinkWithItemAnalytics, { key: '543fe4d96b6653157f1e62e069b45b0b25d586f7', title: this.source.clickUri, href: this.source.clickUri, className: "block truncate", part: "source-url", attributes: this.anchorAttributes, onSelect: () => this.selectSource.emit(), onBeginDelayedSelect: () => this.beginDelayedSelectSource.emit(), onCancelPendingSelect: () => this.cancelPendingSelectSource.emit() }, this.source.clickUri), h(LinkWithItemAnalytics, { key: 'd306acd763bc7e5540196848317a365aed1fa3d8', title: this.source.title, href: this.source.clickUri, attributes: this.anchorAttributes, className: "block", part: "source-title", onSelect: () => this.selectSource.emit(), onBeginDelayedSelect: () => this.beginDelayedSelectSource.emit(), onCancelPendingSelect: () => this.cancelPendingSelectSource.emit() }, h("atomic-result-text", { field: "title", default: "no-title", key: this.source.uniqueId }))));
37
37
  }
38
38
  }, [0, "atomic-smart-snippet-source", {
39
39
  "source": [1040],
@@ -117,8 +117,8 @@ const AtomicSortDropdown$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSortDr
117
117
  const { hasError, hasResults, firstSearchExecuted } = this.searchStatusState;
118
118
  const { bindings: { i18n }, id, } = this;
119
119
  return [
120
- h(SortGuard, { key: '0669c3a8c7067eef9ba5c178a5f4d12752f8b085', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: '6eb9cc11bb18013dfd384b809e6e72d2177cbe60' }, h(SortLabel, { key: '4573530fcd7c614b7ed1d3dbb8f4ad5617477ee3', i18n: i18n, id: id }), h(SortSelect, { key: 'a5ee4b55058679c63fb628337c33d1db192cf481', i18n: i18n, id: id, onSelect: (evt) => this.select(evt) }, this.options.map(({ label, criteria, expression }) => (h(SortOption, { i18n: i18n, label: label, selected: this.sort.isSortedBy(criteria), value: expression })))))),
121
- h("slot", { key: '39a0d6e53adfe877b5f677d4cf9b0ff9177f84e8' }),
120
+ h(SortGuard, { key: 'de3cefc2f8ba7dacb299dd569ca97d4d93a54249', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: '5a7296ed5a7f379509399ef260a344210c17ff34' }, h(SortLabel, { key: '1448eb9996a0b6a2df55f9ce880cd54c3312640d', i18n: i18n, id: id }), h(SortSelect, { key: '273f27873cfb73092eb7d98ef742536f3bb5fac5', i18n: i18n, id: id, onSelect: (evt) => this.select(evt) }, this.options.map(({ label, criteria, expression }) => (h(SortOption, { i18n: i18n, label: label, selected: this.sort.isSortedBy(criteria), value: expression })))))),
121
+ h("slot", { key: 'd1058cd5f4e28bca8816e6987ec2f3a72b2d4825' }),
122
122
  ];
123
123
  }
124
124
  get host() { return this; }
@@ -47,7 +47,7 @@ const AtomicSortExpression$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSort
47
47
  const dropdownComponent = 'atomic-sort-dropdown';
48
48
  if (!this.host.closest(dropdownComponent)) {
49
49
  const error = new Error(`The "${this.host.nodeName.toLowerCase()}" component has to be used inside an ${dropdownComponent} element.`);
50
- return (h("atomic-component-error", { key: '4e946fe770ef49fc6346f0bc247db856fd38ba68', element: this.host, error: error }));
50
+ return (h("atomic-component-error", { key: 'c0181fed2562ac8d51cba8d9a2395ab3fc431295', element: this.host, error: error }));
51
51
  }
52
52
  }
53
53
  get host() { return this; }
@@ -66,13 +66,13 @@ const FacetDateInput = /*@__PURE__*/ proxyCustomElement(class FacetDateInput ext
66
66
  // Fallback for Safari < 14.1, date with format yyyy-mm-dd over 1400 (API limit)
67
67
  const pattern = '^(1[4-9]\\d{2}|2\\d{3})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$';
68
68
  const range = this.rangeGetter();
69
- return (h("form", { key: '60acc60ec8b30e3eaa4d0e2e1426732925ff352c', class: "mt-4 grid grid-cols-[min-content_1fr] gap-2 px-2", onSubmit: (e) => {
69
+ return (h("form", { key: 'a9115a4868e39afbdb588fa0f3454d02308e36f5', class: "mt-4 grid grid-cols-[min-content_1fr] gap-2 px-2", onSubmit: (e) => {
70
70
  e.preventDefault();
71
71
  this.apply();
72
72
  return false;
73
- } }, h("label", { key: 'a43bd6b7f3ae352a7592e9de3390e5b8e180cb29', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: '7908bdd17fb8d035d2b75ab02417b13cd1516bd2', id: `${this.facetId}_start`, part: "input-start", type: "date", ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": startAria, placeholder: placeholder, pattern: pattern, required: true,
73
+ } }, h("label", { key: '4d3bcb4549ba5cd003d5284831001830e3ac272f', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: '98cc6ca7a7a9a33f777998806259d3a9fa495bb1', id: `${this.facetId}_start`, part: "input-start", type: "date", ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": startAria, placeholder: placeholder, pattern: pattern, required: true,
74
74
  // API/Index minimum supported date
75
- min: this.min || this.formattedDateValue('1401-01-01'), max: this.end ? this.formattedDateValue(this.end) : this.max, value: this.formattedDateValue(range?.start), onInput: (e) => (this.start = parseDate(e.target.value).toDate()) }), h("label", { key: 'd5d35be72e99ae7488fae004a61682d597ab7d7f', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: 'b6b30c327c78cecef22c0b6eeec8cbf29b1d711a', id: `${this.facetId}_end`, part: "input-end", type: "date", ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": endAria, placeholder: placeholder, pattern: pattern, required: true, min: this.formattedDateValue(this.start) || this.min, max: this.max, value: this.formattedDateValue(range?.end), onInput: (e) => (this.end = parseDate(e.target.value).toDate()) }), h(Button, { key: 'd0b34163e43a90cf982155bf7eeb315212c9e1d2', style: "outline-primary", type: "submit", part: "input-apply-button", class: "col-span-2 truncate p-2.5", ariaLabel: applyAria, text: apply })));
75
+ min: this.min || this.formattedDateValue('1401-01-01'), max: this.end ? this.formattedDateValue(this.end) : this.max, value: this.formattedDateValue(range?.start), onInput: (e) => (this.start = parseDate(e.target.value).toDate()) }), h("label", { key: 'fee1acc37402670ca45818b9a5da6062ed0b4218', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: 'cc3dd617c4d0fb7f8dbb2573bdcc30762aded812', id: `${this.facetId}_end`, part: "input-end", type: "date", ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": endAria, placeholder: placeholder, pattern: pattern, required: true, min: this.formattedDateValue(this.start) || this.min, max: this.max, value: this.formattedDateValue(range?.end), onInput: (e) => (this.end = parseDate(e.target.value).toDate()) }), h(Button, { key: 'd5e7426fc8fa1594c533a96f96faa07fce2e2d95', style: "outline-primary", type: "submit", part: "input-apply-button", class: "col-span-2 truncate p-2.5", ariaLabel: applyAria, text: apply })));
76
76
  }
77
77
  }, [0, "atomic-stencil-facet-date-input", {
78
78
  "bindings": [16],
@@ -80,7 +80,7 @@ const AtomicSuggestionRenderer = /*@__PURE__*/ proxyCustomElement(class AtomicSu
80
80
  }
81
81
  render() {
82
82
  const isButton = !!(this.suggestion.onSelect || this.suggestion.query);
83
- return (h(Host, { key: '2342d11b22f00a65da16b242ce54088cc3cdb0f5', class: "contents" }, isButton ? (h("button", { id: this.id, key: this.suggestion.key, part: this.parts, class: this.classes, onMouseDown: (e) => e.preventDefault(), onClick: (e) => this.onClick?.(e), onMouseOver: (e) => this.onMouseOver?.(e), "data-query": this.suggestion.query, "aria-label": this.ariaLabel(isButton), ref: (el) => {
83
+ return (h(Host, { key: 'a9f2b556d76e7ff77bcf7e6288191b14ce33fd21', class: "contents" }, isButton ? (h("button", { id: this.id, key: this.suggestion.key, part: this.parts, class: this.classes, onMouseDown: (e) => e.preventDefault(), onClick: (e) => this.onClick?.(e), onMouseOver: (e) => this.onMouseOver?.(e), "data-query": this.suggestion.query, "aria-label": this.ariaLabel(isButton), ref: (el) => {
84
84
  if (!el) {
85
85
  return;
86
86
  }
@@ -1 +1 @@
1
- {"file":"atomic-suggestion-renderer2.js","mappings":"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","names":[],"sources":["src/utils/device-utils.ts","src/components/common/atomic-suggestion-renderer/atomic-suggestion-renderer.tsx"],"sourcesContent":["export function isIOS() {\n // Source: https://stackoverflow.com/a/62094756\n const iosQuirkPresent = () => {\n const audio = new Audio();\n\n audio.volume = 0.5;\n return audio.volume === 1; // volume cannot be changed from \"1\" on iOS 12 and below\n };\n\n const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\n const isAppleDevice = navigator.userAgent.includes('Macintosh');\n const isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)\n\n return isIOS || (isAppleDevice && (isTouchScreen || iosQuirkPresent()));\n}\n\nexport function isMacOS() {\n // Source: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform#examples\n return navigator.platform.startsWith('Mac');\n}\n\nexport function hasKeyboard() {\n return window.matchMedia('(any-hover: hover)').matches;\n}\n","import {isMacOS} from '@/src/utils/device-utils';\nimport {Component, Fragment, Host, Prop, VNode, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {SearchBoxSuggestionElement} from '../suggestions/suggestions-common';\n\n/**\n * The `atomic-suggestion-renderer` component is used to render individual suggestions. It was created to isolate\n * the rendering logic of the 'content' property of the `SearchBoxSuggestionElement` interface. This property can be Stencil\n * VNode or native Element so there must be a Stencil component to render it. For Lit components using this component, they will\n * use native Elements.\n *\n * @internal\n */\n@Component({\n tag: 'atomic-suggestion-renderer',\n shadow: false,\n})\nexport class AtomicSuggestionRenderer {\n @Prop() public i18n!: i18n;\n @Prop() public id!: string;\n @Prop() public suggestion!: SearchBoxSuggestionElement;\n @Prop() public isSelected!: boolean;\n @Prop() public side!: 'left' | 'right';\n @Prop() public index!: number;\n @Prop() public lastIndex!: number;\n @Prop() public isDoubleList!: boolean;\n @Prop() public onClick?: (e: Event) => void;\n @Prop() public onMouseOver?: (e: Event) => void;\n\n private get parts() {\n let part = 'suggestion';\n if (this.isSelected) {\n part += ' active-suggestion';\n }\n if (this.suggestion.query) {\n part += ' suggestion-with-query';\n }\n if (this.suggestion.part) {\n part += ` ${this.suggestion.part}`;\n }\n return part;\n }\n\n private get classes() {\n return `flex px-4 min-h-10 items-center text-left text-neutral-dark cursor-pointer ${\n this.isSelected ? 'bg-neutral-light' : ''\n }`;\n }\n\n private get content() {\n return this.isHTMLElement(this.suggestion.content) ? (\n <Fragment></Fragment>\n ) : (\n this.suggestion.content\n );\n }\n\n private ariaLabel(isButton: boolean) {\n const contentLabel =\n this.suggestion.ariaLabel ??\n this.suggestion.query ??\n this.i18n.t('no-title');\n\n const labelWithType =\n isMacOS() && isButton\n ? this.i18n.t('search-suggestion-button', {\n label: contentLabel,\n interpolation: {escapeValue: false},\n })\n : contentLabel;\n\n const position = this.index + 1;\n const count = this.lastIndex + 1;\n\n if (!this.isDoubleList) {\n return this.i18n.t('search-suggestion-single-list', {\n label: labelWithType,\n position,\n count,\n interpolation: {escapeValue: false},\n });\n }\n\n return this.i18n.t('search-suggestion-double-list', {\n label: labelWithType,\n position,\n count,\n side: this.i18n.t(this.side === 'left' ? 'left' : 'right'),\n interpolation: {escapeValue: false},\n });\n }\n\n private ensureContentForRenderedSuggestion(element: HTMLElement) {\n if (this.isHTMLElement(this.suggestion.content)) {\n element.replaceChildren(this.suggestion.content);\n }\n }\n\n private isHTMLElement(el: VNode | Element): el is HTMLElement {\n return el instanceof HTMLElement;\n }\n\n render() {\n const isButton = !!(this.suggestion.onSelect || this.suggestion.query);\n\n return (\n <Host class=\"contents\">\n {isButton ? (\n <button\n id={this.id}\n key={this.suggestion.key}\n part={this.parts}\n class={this.classes}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e: Event) => this.onClick?.(e)}\n onMouseOver={(e: Event) => this.onMouseOver?.(e)}\n data-query={this.suggestion.query}\n aria-label={this.ariaLabel(isButton)}\n ref={(el) => {\n if (!el) {\n return;\n }\n this.ensureContentForRenderedSuggestion(el);\n }}\n >\n {this.content}\n </button>\n ) : (\n <span\n id={this.id}\n key={this.suggestion.key}\n part={this.parts}\n class={this.classes}\n aria-label={this.ariaLabel(isButton)}\n ref={(el) => {\n if (!el) {\n return;\n }\n this.ensureContentForRenderedSuggestion(el);\n }}\n >\n {this.content}\n </span>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-suggestion-renderer2.js","mappings":"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","names":[],"sources":["src/utils/device-utils.ts","src/components/common/atomic-suggestion-renderer/atomic-suggestion-renderer.tsx"],"sourcesContent":["export function isIOS() {\n // Source: https://stackoverflow.com/a/62094756\n const iosQuirkPresent = () => {\n const audio = new Audio();\n\n audio.volume = 0.5;\n return audio.volume === 1; // volume cannot be changed from \"1\" on iOS 12 and below\n };\n\n const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\n const isAppleDevice = navigator.userAgent.includes('Macintosh');\n const isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)\n\n return isIOS || (isAppleDevice && (isTouchScreen || iosQuirkPresent()));\n}\n\nexport function isMacOS() {\n // Source: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform#examples\n return navigator.platform.startsWith('Mac');\n}\n\nexport function hasKeyboard() {\n return window.matchMedia('(any-hover: hover)').matches;\n}\n","import {isMacOS} from '@/src/utils/device-utils';\nimport {Component, Fragment, Host, Prop, VNode, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {SearchBoxSuggestionElement} from '../suggestions/suggestions-types';\n\n/**\n * The `atomic-suggestion-renderer` component is used to render individual suggestions. It was created to isolate\n * the rendering logic of the 'content' property of the `SearchBoxSuggestionElement` interface. This property can be Stencil\n * VNode or native Element so there must be a Stencil component to render it. For Lit components using this component, they will\n * use native Elements.\n *\n * @internal\n */\n@Component({\n tag: 'atomic-suggestion-renderer',\n shadow: false,\n})\nexport class AtomicSuggestionRenderer {\n @Prop() public i18n!: i18n;\n @Prop() public id!: string;\n @Prop() public suggestion!: SearchBoxSuggestionElement;\n @Prop() public isSelected!: boolean;\n @Prop() public side!: 'left' | 'right';\n @Prop() public index!: number;\n @Prop() public lastIndex!: number;\n @Prop() public isDoubleList!: boolean;\n @Prop() public onClick?: (e: Event) => void;\n @Prop() public onMouseOver?: (e: Event) => void;\n\n private get parts() {\n let part = 'suggestion';\n if (this.isSelected) {\n part += ' active-suggestion';\n }\n if (this.suggestion.query) {\n part += ' suggestion-with-query';\n }\n if (this.suggestion.part) {\n part += ` ${this.suggestion.part}`;\n }\n return part;\n }\n\n private get classes() {\n return `flex px-4 min-h-10 items-center text-left text-neutral-dark cursor-pointer ${\n this.isSelected ? 'bg-neutral-light' : ''\n }`;\n }\n\n private get content() {\n return this.isHTMLElement(this.suggestion.content) ? (\n <Fragment></Fragment>\n ) : (\n this.suggestion.content\n );\n }\n\n private ariaLabel(isButton: boolean) {\n const contentLabel =\n this.suggestion.ariaLabel ??\n this.suggestion.query ??\n this.i18n.t('no-title');\n\n const labelWithType =\n isMacOS() && isButton\n ? this.i18n.t('search-suggestion-button', {\n label: contentLabel,\n interpolation: {escapeValue: false},\n })\n : contentLabel;\n\n const position = this.index + 1;\n const count = this.lastIndex + 1;\n\n if (!this.isDoubleList) {\n return this.i18n.t('search-suggestion-single-list', {\n label: labelWithType,\n position,\n count,\n interpolation: {escapeValue: false},\n });\n }\n\n return this.i18n.t('search-suggestion-double-list', {\n label: labelWithType,\n position,\n count,\n side: this.i18n.t(this.side === 'left' ? 'left' : 'right'),\n interpolation: {escapeValue: false},\n });\n }\n\n private ensureContentForRenderedSuggestion(element: HTMLElement) {\n if (this.isHTMLElement(this.suggestion.content)) {\n element.replaceChildren(this.suggestion.content);\n }\n }\n\n private isHTMLElement(el: VNode | Element): el is HTMLElement {\n return el instanceof HTMLElement;\n }\n\n render() {\n const isButton = !!(this.suggestion.onSelect || this.suggestion.query);\n\n return (\n <Host class=\"contents\">\n {isButton ? (\n <button\n id={this.id}\n key={this.suggestion.key}\n part={this.parts}\n class={this.classes}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e: Event) => this.onClick?.(e)}\n onMouseOver={(e: Event) => this.onMouseOver?.(e)}\n data-query={this.suggestion.query}\n aria-label={this.ariaLabel(isButton)}\n ref={(el) => {\n if (!el) {\n return;\n }\n this.ensureContentForRenderedSuggestion(el);\n }}\n >\n {this.content}\n </button>\n ) : (\n <span\n id={this.id}\n key={this.suggestion.key}\n part={this.parts}\n class={this.classes}\n aria-label={this.ariaLabel(isButton)}\n ref={(el) => {\n if (!el) {\n return;\n }\n this.ensureContentForRenderedSuggestion(el);\n }}\n >\n {this.content}\n </span>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -59,7 +59,7 @@ const AtomicTabManager$1 = /*@__PURE__*/ proxyCustomElement(class AtomicTabManag
59
59
  });
60
60
  }
61
61
  render() {
62
- return (h(Host, { key: 'ea60f4179a268319ba97570f95d6881c379c8b18' }, h("atomic-tab-bar", { key: 'ea83347d794b2f83b70706bdfc4240286c27d71e' }, h("div", { key: '9d9e588d7a4b7012f43419f3edae786b177498cc', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
62
+ return (h(Host, { key: 'abd272be633c8913b9c64f3b20d529373e7ca08c' }, h("atomic-tab-bar", { key: 'd21406c4e28a1a4fecd2986d97aa292f0cfd48a9' }, h("div", { key: '6a0375f62e5a178cec1737108984ac1e497370bd', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
63
63
  defaultValue: tab.label,
64
64
  }), select: () => {
65
65
  if (!tab.tabController.state.isActive) {
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { buildCommerceEngine, buildContext, buildProductListing, buildSearch, VERSION as HEADLESS_VERSION, loadConfigurationActions, loadQueryActions, } from '@coveo/headless/commerce';
7
+ import { buildCommerceEngine, buildContext, buildProductListing, buildSearch, VERSION as HEADLESS_VERSION, loadConfigurationActions, loadContextActions, loadQueryActions, } from '@coveo/headless/commerce';
8
8
  import { provide } from '@lit/context';
9
9
  import i18next from 'i18next';
10
10
  import { css, html, LitElement } from 'lit';
@@ -58,7 +58,7 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
58
58
  */
59
59
  this.reflectStateInUrl = true;
60
60
  /**
61
- * Whether to disable state reflection in the URL parameters.
61
+ * Disable state reflection in the URL parameters.
62
62
  */
63
63
  this.disableStateReflectionInUrl = false;
64
64
  /**
@@ -144,6 +144,41 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
144
144
  this.searchOrListing.executeFirstRequest();
145
145
  }
146
146
  }
147
+ /**
148
+ * Updates the locale settings for the commerce interface and headless commerce
149
+ * engine. Only the provided parameters will be updated.
150
+ *
151
+ * Calling this method affects the localization of the interface as well as
152
+ * the catalog configuration being used by the Commerce API. If the resulting
153
+ * language-country-currency combination matches no existing catalog
154
+ * configuration in your Coveo organization, requests made through the
155
+ * commerce engine will start failing.
156
+ *
157
+ * @param language - (Optional) The IETF language code tag (e.g., `en`).
158
+ * @param country - (Optional) The ISO-3166-1 country tag (e.g., `US`).
159
+ * @param currency - (Optional) The ISO-4217 currency code (e.g., `USD`).
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * interface.updateLocale('fr', 'CA', 'CAD');
164
+ * ```
165
+ */
166
+ updateLocale(language, country, currency) {
167
+ if (!this.interfaceController.engineIsCreated(this.engine) ||
168
+ !this.context) {
169
+ return;
170
+ }
171
+ language && this.interfaceController.onLanguageChange(language);
172
+ if (this.isNewLocale(language, country, currency)) {
173
+ const { setContext } = loadContextActions(this.engine);
174
+ this.engine.dispatch(setContext({
175
+ ...this.context.state,
176
+ ...(language && { language }),
177
+ ...(country && { country }),
178
+ ...(currency && { currency }),
179
+ }));
180
+ }
181
+ }
147
182
  toggleAnalytics() {
148
183
  this.interfaceController.onAnalyticsChange();
149
184
  }
@@ -157,11 +192,10 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
157
192
  !this.context) {
158
193
  return;
159
194
  }
160
- // TODO - KIT-4993: Add temporary deprecation warning.
195
+ this.engine.logger.warn('The `language` property will be removed in the next major version of Atomic (v4). Rather than using this property, set the initial language through the engine configuration when calling `initialize` or `initializeWithEngine`, and update the language as needed using the `updateLocale` method.');
161
196
  this.context.setLanguage(this.language);
162
197
  return this.interfaceController.onLanguageChange();
163
198
  }
164
- // TODO - KIT-4993: Add updateLocale public method.
165
199
  disconnectedCallback() {
166
200
  super.disconnectedCallback();
167
201
  if (typeof this.unsubscribeUrlManager === 'function') {
@@ -211,11 +245,11 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
211
245
  throw error;
212
246
  }
213
247
  }
214
- // TODO - KIT-4993: Adjust.
215
248
  initLanguage() {
216
- if (!this.language) {
217
- this.language = this.context.state.language;
249
+ if (!this.context || this.language) {
250
+ return;
218
251
  }
252
+ this.interfaceController.onLanguageChange(this.context.state.language);
219
253
  }
220
254
  initRequestStatus() {
221
255
  this.searchOrListing =
@@ -257,7 +291,7 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
257
291
  this.i18Initialized,
258
292
  ]);
259
293
  this.initContext();
260
- this.updateLanguage();
294
+ this.updateLanguage(); // TODO - (v4) KIT-4365: Remove.
261
295
  this.bindings = this.getBindings();
262
296
  markParentAsReady(this);
263
297
  this.initRequestStatus();
@@ -267,6 +301,14 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
267
301
  this.initUrlManager();
268
302
  this.initialized = true;
269
303
  }
304
+ isNewLocale(language, country, currency) {
305
+ if (!this.context) {
306
+ return false;
307
+ }
308
+ return ((language && language !== this.context.state.language) ||
309
+ (country && country !== this.context.state.country) ||
310
+ (currency && currency !== this.context.state.currency));
311
+ }
270
312
  // TODO - (v4) KIT-4991: Make private.
271
313
  scrollToTop() {
272
314
  const scrollContainerElement = document.querySelector(this.scrollContainer);
@@ -50,6 +50,9 @@ let AtomicCommerceRecommendationInterface = class AtomicCommerceRecommendationIn
50
50
  *
51
51
  */
52
52
  this.iconAssetsPath = './assets';
53
+ // TODO - KIT-4994: Add disableAnalytics property that defaults to false.
54
+ // TODO - KIT-4994: Deprecate in favor of disableAnalytics property.
55
+ // TODO - (v4) KIT-4990: Remove.
53
56
  /**
54
57
  * Whether to enable analytics.
55
58
  */
@@ -104,13 +107,15 @@ let AtomicCommerceRecommendationInterface = class AtomicCommerceRecommendationIn
104
107
  return;
105
108
  }
106
109
  language && this.interfaceController.onLanguageChange(language);
107
- const { setContext } = loadContextActions(this.engine);
108
- this.engine.dispatch(setContext({
109
- ...this.context.state,
110
- ...(language && { language }),
111
- ...(country && { country }),
112
- ...(currency && { currency }),
113
- }));
110
+ if (this.isNewLocale(language, country, currency)) {
111
+ const { setContext } = loadContextActions(this.engine);
112
+ this.engine.dispatch(setContext({
113
+ ...this.context.state,
114
+ ...(language && { language }),
115
+ ...(country && { country }),
116
+ ...(currency && { currency }),
117
+ }));
118
+ }
114
119
  }
115
120
  toggleAnalytics() {
116
121
  this.interfaceController.onAnalyticsChange();
@@ -118,6 +123,7 @@ let AtomicCommerceRecommendationInterface = class AtomicCommerceRecommendationIn
118
123
  updateIconAssetsPath() {
119
124
  this.store.state.iconAssetsPath = this.iconAssetsPath;
120
125
  }
126
+ // TODO - (v4) KIT-4365: Remove.
121
127
  async updateLanguage() {
122
128
  if (!this.interfaceController.engineIsCreated(this.engine) ||
123
129
  !this.language ||
@@ -150,7 +156,7 @@ let AtomicCommerceRecommendationInterface = class AtomicCommerceRecommendationIn
150
156
  this.i18Initialized,
151
157
  ]);
152
158
  this.initContext();
153
- this.language && this.updateLanguage();
159
+ this.updateLanguage();
154
160
  this.bindings = this.getBindings();
155
161
  markParentAsReady(this);
156
162
  this.initLanguage();
@@ -167,9 +173,18 @@ let AtomicCommerceRecommendationInterface = class AtomicCommerceRecommendationIn
167
173
  };
168
174
  }
169
175
  initLanguage() {
170
- if (!this.language) {
171
- this.interfaceController.onLanguageChange(this.context.state.language);
176
+ if (!this.context || this.language) {
177
+ return;
178
+ }
179
+ this.interfaceController.onLanguageChange(this.context.state.language);
180
+ }
181
+ isNewLocale(language, country, currency) {
182
+ if (!this.context) {
183
+ return false;
172
184
  }
185
+ return ((language && language !== this.context.state.language) ||
186
+ (country && country !== this.context.state.country) ||
187
+ (currency && currency !== this.context.state.currency));
173
188
  }
174
189
  };
175
190
  AtomicCommerceRecommendationInterface.styles = [
@@ -25,7 +25,7 @@ import { renderSearchBoxWrapper } from '../../common/search-box/search-box-wrapp
25
25
  import { renderSearchBoxTextArea } from '../../common/search-box/search-text-area';
26
26
  import { renderSubmitButton } from '../../common/search-box/submit-button';
27
27
  import { SuggestionManager } from '../../common/suggestions/suggestion-manager';
28
- import { elementHasQuery, } from '../../common/suggestions/suggestions-common';
28
+ import { elementHasQuery } from '../../common/suggestions/suggestions-utils';
29
29
  import '../atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products';
30
30
  import '../atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions';
31
31
  import '../atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries';
@@ -123,6 +123,9 @@ let AtomicCommerceSearchBox = class AtomicCommerceSearchBox extends LitElement {
123
123
  }
124
124
  connectedCallback() {
125
125
  super.connectedCallback();
126
+ if (this.children.length === 0) {
127
+ this.replaceChildren(document.createElement('atomic-commerce-search-box-recent-queries'), document.createElement('atomic-commerce-search-box-query-suggestions'));
128
+ }
126
129
  this.addEventListener('atomic/searchBoxSuggestion/register', (event) => {
127
130
  const customEvent = event;
128
131
  this.searchBoxSuggestionEventsQueue.push(customEvent);
@@ -494,8 +497,6 @@ let AtomicCommerceSearchBox = class AtomicCommerceSearchBox extends LitElement {
494
497
  if (!this.suggestionManager.suggestions.length) {
495
498
  this.registerSearchboxSuggestionEvents();
496
499
  }
497
- const slot = this.shadowRoot?.querySelector('slot');
498
- const hasSlottedChildren = slot && slot.assignedNodes({ flatten: true }).length > 0;
499
500
  return html `
500
501
  ${this.renderAbsolutePositionSpacer()}
501
502
  ${renderSearchBoxWrapper({
@@ -510,7 +511,7 @@ let AtomicCommerceSearchBox = class AtomicCommerceSearchBox extends LitElement {
510
511
  },
511
512
  },
512
513
  })(html `${this.renderTextBox()}
513
- ${renderSubmitButton({
514
+ ${renderSubmitButton({
514
515
  props: {
515
516
  i18n: this.bindings.i18n,
516
517
  disabled: this.isSearchDisabledForEndUser,
@@ -520,11 +521,7 @@ let AtomicCommerceSearchBox = class AtomicCommerceSearchBox extends LitElement {
520
521
  },
521
522
  },
522
523
  })}
523
- ${this.renderSuggestions()}`)}
524
-
525
- ${!hasSlottedChildren
526
- ? html `<atomic-commerce-search-box-recent-queries></atomic-commerce-search-box-recent-queries><atomic-commerce-search-box-query-suggestions></atomic-commerce-search-box-query-suggestions>`
527
- : html `<slot></slot>`}
524
+ ${this.renderSuggestions()}`)}
528
525
  `;
529
526
  }
530
527
  };
@@ -9,7 +9,7 @@ import { html, LitElement, nothing, render } from 'lit';
9
9
  import { customElement, property, state } from 'lit/decorators.js';
10
10
  import { keyed } from 'lit/directives/keyed.js';
11
11
  import { getPartialInstantItemElement, getPartialInstantItemShowAllElement, renderInstantItemShowAllButton, } from "../../common/suggestions/instant-item";
12
- import { dispatchSearchBoxSuggestionsEvent, } from "../../common/suggestions/suggestions-common";
12
+ import { dispatchSearchBoxSuggestionsEvent } from "../../common/suggestions/suggestions-events";
13
13
  import { errorGuard } from "../../../decorators/error-guard";
14
14
  import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
15
15
  import { encodeForDomAttribute } from "../../../utils/string-utils";
@@ -8,7 +8,7 @@ import { loadQuerySuggestActions, } from '@coveo/headless/commerce';
8
8
  import { html, LitElement, nothing } from 'lit';
9
9
  import { customElement, property, state } from 'lit/decorators.js';
10
10
  import { getPartialSearchBoxSuggestionElement, renderQuerySuggestion, } from "../../common/suggestions/query-suggestions";
11
- import { dispatchSearchBoxSuggestionsEvent, } from "../../common/suggestions/suggestions-common";
11
+ import { dispatchSearchBoxSuggestionsEvent } from "../../common/suggestions/suggestions-events";
12
12
  import { errorGuard } from "../../../decorators/error-guard";
13
13
  const SearchIcon = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m6.4 0c3.5 0 6.4 2.9 6.4 6.4 0 1.4-.4 2.7-1.2 3.7l4 4c.4.4.4 1 .1 1.5l-.1.1c-.2.2-.5.3-.8.3s-.6-.1-.8-.3l-4-4c-1 .7-2.3 1.2-3.7 1.2-3.4-.1-6.3-3-6.3-6.5s2.9-6.4 6.4-6.4zm0 2.1c-2.3 0-4.3 1.9-4.3 4.3s1.9 4.3 4.3 4.3 4.3-1.9 4.3-4.3-1.9-4.3-4.3-4.3z\"/></svg>";
14
14
  /**
@@ -12,7 +12,7 @@ import { SafeStorage, StorageItems } from "../../../utils/local-storage-utils";
12
12
  import { once } from "../../../utils/utils";
13
13
  const Clock = "<svg fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"8\" cy=\"8\" r=\"7.5\"/><path d=\"m8.5 4.5v4\"/><path d=\"m10.3066 10.1387-1.80932-1.5768\"/></svg>";
14
14
  import { getPartialRecentQueryClearElement, getPartialRecentQueryElement, renderRecentQuery, renderRecentQueryClear, } from '../../common/suggestions/recent-queries';
15
- import { dispatchSearchBoxSuggestionsEvent, } from '../../common/suggestions/suggestions-common';
15
+ import { dispatchSearchBoxSuggestionsEvent } from '../../common/suggestions/suggestions-events';
16
16
  /**
17
17
  * The `atomic-commerce-search-box-recent-queries` component can be added as a child of an `atomic-commerce-search-box` component, allowing for the configuration of recent query suggestions.
18
18
  */
@@ -2,7 +2,7 @@ import { isNullOrUndefined } from '@coveo/bueno';
2
2
  import DOMPurify from 'dompurify';
3
3
  import { debounce } from '../../../utils/debounce-utils';
4
4
  import { promiseTimeout } from '../../../utils/promise-utils';
5
- import { elementHasNoQuery, elementHasQuery, } from './suggestions-common';
5
+ import { elementHasNoQuery, elementHasQuery } from './suggestions-utils';
6
6
  export class SuggestionManager {
7
7
  constructor(ownerSearchBoxProps) {
8
8
  this.ownerSearchBoxProps = ownerSearchBoxProps;
@@ -1,5 +1,21 @@
1
1
  import { closest } from '../../../utils/dom-utils';
2
2
  import { buildCustomEvent } from '../../../utils/event-utils';
3
+ /**
4
+ * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
5
+ *
6
+ * @param event Event sent from the registered query suggestions to the parent search box
7
+ * @param element Element on which to dispatch the event, which must be the child of a configured search box
8
+ * @param allowedSearchBoxElements Optional array of allowed search box element selectors
9
+ *
10
+ * @throws Error if the element is not a child of an allowed search box element
11
+ */
12
+ export const dispatchSearchBoxSuggestionsEvent = (event, element, allowedSearchBoxElements = searchBoxElements) => {
13
+ const interfaceElement = closest(element, searchBoxElements.join(', '));
14
+ if (!interfaceElement) {
15
+ throw new Error(`The "${element.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(', ')}`);
16
+ }
17
+ void dispatchSearchBoxSuggestionsEventEventually(interfaceElement, element, event);
18
+ };
3
19
  const searchBoxElements = [
4
20
  'atomic-search-box',
5
21
  'atomic-insight-search-box',
@@ -17,21 +33,3 @@ const dispatchSearchBoxSuggestionsEventEventually = async (interfaceElement, ele
17
33
  }
18
34
  element.dispatchEvent(buildCustomEvent('atomic/searchBoxSuggestion/register', event));
19
35
  };
20
- /**
21
- * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
22
- * @param event Event sent from the registered query suggestions to the parent search box.
23
- * @param element Element on which to dispatch the event, which must be the child of a configured search box.
24
- */
25
- export const dispatchSearchBoxSuggestionsEvent = (event, element, allowedSearchBoxElements = searchBoxElements) => {
26
- const interfaceElement = closest(element, searchBoxElements.join(', '));
27
- if (!interfaceElement) {
28
- throw new Error(`The "${element.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(', ')}`);
29
- }
30
- void dispatchSearchBoxSuggestionsEventEventually(interfaceElement, element, event);
31
- };
32
- export function elementHasNoQuery(el) {
33
- return !el.query || el.query.trim() === '';
34
- }
35
- export function elementHasQuery(el) {
36
- return !!el.query && el.query.trim() !== '';
37
- }