@coveo/atomic 3.33.8-pre.5374e553a0 → 3.33.8-pre.5817b2824b

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 (465) 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 -2
  6. package/dist/atomic/components/_index.js +1 -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 +2 -2
  22. package/dist/atomic/components/atomic-insight-history-toggle.js.map +1 -1
  23. package/dist/atomic/components/atomic-insight-interface.js +1 -1
  24. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  25. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  26. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  27. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  28. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  29. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  30. package/dist/atomic/components/atomic-insight-result-action.js +1 -1
  31. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  35. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  36. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  37. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  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 +2 -2
  42. package/dist/atomic/components/atomic-insight-user-actions-toggle.js.map +1 -1
  43. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  45. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  46. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  47. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  50. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  51. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  52. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  53. package/dist/atomic/components/atomic-no-results.js +1 -1
  54. package/dist/atomic/components/atomic-numeric-facet.js +1 -2
  55. package/dist/atomic/components/atomic-numeric-facet.js.map +1 -1
  56. package/dist/atomic/components/atomic-pager.js +3 -3
  57. package/dist/atomic/components/atomic-query-error.js +1 -1
  58. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  59. package/dist/atomic/components/atomic-quickview.js +1 -1
  60. package/dist/atomic/components/atomic-recs-error.js +1 -1
  61. package/dist/atomic/components/atomic-recs-interface.js +1 -1
  62. package/dist/atomic/components/atomic-recs-list.js +1 -1
  63. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  64. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  65. package/dist/atomic/components/atomic-relevance-inspector.js +1 -46
  66. package/dist/atomic/components/atomic-relevance-inspector.js.map +1 -1
  67. package/dist/atomic/components/atomic-relevance-inspector2.js +50 -0
  68. package/dist/atomic/components/atomic-relevance-inspector2.js.map +1 -0
  69. package/dist/atomic/components/atomic-result-children.js +1 -1
  70. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  71. package/dist/atomic/components/atomic-result-link.js +1 -1
  72. package/dist/atomic/components/atomic-result-list.js +1 -1
  73. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  74. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  75. package/dist/atomic/components/atomic-search-box-instant-results.js +1 -1
  76. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  77. package/dist/atomic/components/atomic-search-box.js +5 -11
  78. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  79. package/dist/atomic/components/atomic-search-interface.d.ts +11 -0
  80. package/dist/atomic/components/atomic-search-interface.js +552 -0
  81. package/dist/atomic/components/atomic-search-interface.js.map +1 -0
  82. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  83. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  84. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  85. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  86. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  87. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  88. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  89. package/dist/atomic/components/atomic-stencil-facet-date-input.js +3 -3
  90. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  91. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  92. package/dist/atomic/components/clock.js +2 -2
  93. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +50 -8
  94. package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +2 -2
  95. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
  96. package/dist/atomic/components/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.js +137 -0
  97. package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +9 -20
  98. package/dist/atomic/components/components/search/index.js +1 -1
  99. package/dist/atomic/components/components/search/lazy-index.js +1 -1
  100. package/dist/atomic/components/facet-number-input.js +2 -2
  101. package/dist/atomic/components/global/environment.js +1 -1
  102. package/dist/atomic/components/tab-button.js +1 -1
  103. package/dist/atomic/components/tab-popover.js +1 -1
  104. package/dist/atomic/{p-41c5d5fa.entry.js → p-021f01d6.entry.js} +2 -2
  105. package/dist/atomic/{p-a3fa6695.entry.js → p-035f8dc8.entry.js} +2 -2
  106. package/dist/atomic/{p-45c4685e.entry.js → p-089be992.entry.js} +2 -2
  107. package/dist/atomic/{p-65373475.entry.js → p-09a3a067.entry.js} +2 -2
  108. package/dist/atomic/{p-6a815b28.js → p-0fa43138.js} +2 -2
  109. package/dist/atomic/{p-4915faeb.entry.js → p-11a2e38a.entry.js} +2 -2
  110. package/dist/atomic/p-1992b245.entry.js +2 -0
  111. package/dist/atomic/{p-a02b1209.entry.js → p-1d1f54a5.entry.js} +2 -2
  112. package/dist/atomic/{p-9d023f0b.entry.js → p-1ef658d8.entry.js} +2 -2
  113. package/dist/atomic/{p-10b5e0f3.entry.js → p-20341936.entry.js} +2 -2
  114. package/dist/atomic/{p-3213225f.entry.js → p-26a51a77.entry.js} +2 -2
  115. package/dist/atomic/{p-15406648.entry.js → p-2ca352f4.entry.js} +2 -2
  116. package/dist/atomic/{p-97e42c43.entry.js → p-31aa052e.entry.js} +2 -2
  117. package/dist/atomic/p-33f71897.entry.js +2 -0
  118. package/dist/atomic/p-33f71897.entry.js.map +1 -0
  119. package/dist/atomic/{p-7a6468a7.entry.js → p-36fab158.entry.js} +2 -2
  120. package/dist/atomic/{p-9727f36b.entry.js → p-37374964.entry.js} +2 -2
  121. package/dist/atomic/{p-7b1a3cab.entry.js → p-3a2c900c.entry.js} +2 -2
  122. package/dist/atomic/{p-5adbf098.entry.js → p-3b023e83.entry.js} +2 -2
  123. package/dist/atomic/{p-0610b3e7.entry.js → p-3b20b011.entry.js} +2 -2
  124. package/dist/atomic/{p-c08f4ee6.entry.js → p-3f912e98.entry.js} +2 -2
  125. package/dist/atomic/{p-9e771351.entry.js → p-40635c2d.entry.js} +2 -2
  126. package/dist/atomic/{p-c9fe4f77.entry.js → p-43d708cb.entry.js} +2 -2
  127. package/dist/atomic/{p-b0c50194.entry.js → p-48f57fd8.entry.js} +2 -2
  128. package/dist/atomic/{p-4c30ca3e.entry.js → p-49c38b27.entry.js} +2 -2
  129. package/dist/atomic/{p-87c6c206.entry.js → p-534b6a0a.entry.js} +2 -2
  130. package/dist/atomic/{p-f0012580.entry.js → p-594488f2.entry.js} +2 -2
  131. package/dist/atomic/{p-b4ad3036.entry.js → p-5f1fa581.entry.js} +2 -2
  132. package/dist/atomic/{p-8df7270f.entry.js → p-604c4085.entry.js} +2 -2
  133. package/dist/atomic/{p-d50c96c2.entry.js → p-627e1265.entry.js} +2 -2
  134. package/dist/atomic/{p-e3af1bb4.entry.js → p-7383fd32.entry.js} +2 -2
  135. package/dist/atomic/{p-79a9a372.entry.js → p-744da781.entry.js} +2 -2
  136. package/dist/atomic/{p-e6a7e7b2.entry.js → p-7dfcd6af.entry.js} +2 -2
  137. package/dist/atomic/{p-be1b98a6.entry.js → p-7e2109e9.entry.js} +2 -2
  138. package/dist/atomic/{p-fc566d9a.entry.js → p-8016cf62.entry.js} +2 -2
  139. package/dist/atomic/{p-780170e5.entry.js → p-811d6dcb.entry.js} +2 -2
  140. package/dist/atomic/{p-9147b0db.entry.js → p-8256cd44.entry.js} +2 -2
  141. package/dist/atomic/{p-0e27d4f2.entry.js → p-83c9244a.entry.js} +2 -2
  142. package/dist/atomic/{p-71bb8125.entry.js → p-89085429.entry.js} +2 -2
  143. package/dist/atomic/{p-bd99fcc1.entry.js → p-939eaaac.entry.js} +2 -2
  144. package/dist/atomic/{p-9b92b4e2.entry.js → p-93e29b24.entry.js} +2 -2
  145. package/dist/atomic/{p-b6377fb6.entry.js → p-98c5b9b8.entry.js} +2 -2
  146. package/dist/atomic/{p-bf49fed3.entry.js → p-99b8d52d.entry.js} +2 -2
  147. package/dist/atomic/{p-3af5c567.entry.js → p-9c9b1965.entry.js} +2 -2
  148. package/dist/atomic/p-a1e6419e.entry.js +2 -0
  149. package/dist/atomic/p-a1e6419e.entry.js.map +1 -0
  150. package/dist/atomic/{p-160553ce.entry.js → p-a3efa89e.entry.js} +2 -2
  151. package/dist/atomic/{p-c538c8ac.entry.js → p-a53c7821.entry.js} +2 -2
  152. package/dist/atomic/{p-8acb1466.entry.js → p-a8882a2a.entry.js} +2 -2
  153. package/dist/atomic/{p-ce41c447.entry.js → p-ae060711.entry.js} +2 -2
  154. package/dist/atomic/{p-b4c34553.entry.js → p-b0b17e21.entry.js} +2 -2
  155. package/dist/atomic/{p-e1c99e2e.entry.js → p-b2ff1330.entry.js} +2 -2
  156. package/dist/atomic/{p-d2d22ab2.entry.js → p-b6963bae.entry.js} +2 -2
  157. package/dist/atomic/{p-ef64b06a.entry.js → p-b7063a0d.entry.js} +2 -2
  158. package/dist/atomic/{p-ef64b06a.entry.js.map → p-b7063a0d.entry.js.map} +1 -1
  159. package/dist/atomic/{p-004adbb8.entry.js → p-ba4bf29f.entry.js} +2 -2
  160. package/dist/atomic/{p-dee60597.entry.js → p-bc0d6d3d.entry.js} +2 -2
  161. package/dist/atomic/{p-0e5dc57f.entry.js → p-c126ee6b.entry.js} +2 -2
  162. package/dist/atomic/{p-754909fe.entry.js → p-c1999888.entry.js} +2 -2
  163. package/dist/atomic/{p-4e9d1f9e.entry.js → p-cd62de88.entry.js} +2 -2
  164. package/dist/atomic/{p-00a6ab8c.entry.js → p-d0f47b33.entry.js} +2 -2
  165. package/dist/atomic/p-d24d34a7.entry.js +2 -0
  166. package/dist/atomic/{p-7f40e57d.entry.js → p-d364064c.entry.js} +2 -2
  167. package/dist/atomic/{p-856e858c.entry.js → p-d785121d.entry.js} +2 -2
  168. package/dist/atomic/{p-7d63bf7b.entry.js → p-d93adf52.entry.js} +2 -2
  169. package/dist/atomic/{p-2a4e9425.entry.js → p-de066001.entry.js} +2 -2
  170. package/dist/atomic/{p-8a7a23b7.entry.js → p-e162805d.entry.js} +2 -2
  171. package/dist/atomic/{p-c280cd05.js → p-e1cc5150.js} +1 -1
  172. package/dist/atomic/{p-441b1a7b.entry.js → p-e23b3334.entry.js} +2 -2
  173. package/dist/atomic/p-e2afb475.entry.js +2 -0
  174. package/dist/atomic/{p-bd32625e.entry.js → p-ea446721.entry.js} +2 -2
  175. package/dist/atomic/{p-07b6424c.entry.js → p-ee6771f1.entry.js} +2 -2
  176. package/dist/atomic/{p-abb14108.entry.js → p-f0c2dfe8.entry.js} +2 -2
  177. package/dist/atomic/{p-f073a78d.entry.js → p-f289269f.entry.js} +2 -2
  178. package/dist/atomic/{p-d4ad7336.entry.js → p-fa8b7c4c.entry.js} +2 -2
  179. package/dist/atomic/{p-fb1a1e2e.entry.js → p-fbfe913d.entry.js} +2 -2
  180. package/dist/atomic/p-fcf3f7d7.entry.js +2 -0
  181. package/dist/atomic/{p-6de44060.entry.js.map → p-fcf3f7d7.entry.js.map} +1 -1
  182. package/dist/atomic/{p-d11b2b24.entry.js → p-fda26113.entry.js} +2 -2
  183. package/dist/atomic/{p-f936f55e.entry.js → p-fea7bf3b.entry.js} +2 -2
  184. package/dist/atomic/{p-bfe4b353.entry.js → p-ffd5b5e2.entry.js} +2 -2
  185. package/dist/cjs/_loader.cjs.js +1 -1
  186. package/dist/cjs/{analytics-config-44e78f25.js → analytics-config-05025c8c.js} +2 -2
  187. package/dist/cjs/{analytics-config-44e78f25.js.map → analytics-config-05025c8c.js.map} +1 -1
  188. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  189. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  190. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  191. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  192. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  193. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  194. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  195. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  196. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  197. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  198. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  199. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  200. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  201. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  202. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +2 -2
  203. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js.map +1 -1
  204. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  205. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  206. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  207. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  208. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  209. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  210. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  211. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
  212. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
  213. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  214. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  215. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  217. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  218. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  219. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  220. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  221. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  222. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -2
  223. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
  224. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  225. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  226. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  227. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  228. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  229. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  230. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  232. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  233. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  234. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  235. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -2
  236. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  237. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  238. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  239. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  240. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  241. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  242. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  243. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  244. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  245. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  246. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  247. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  248. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  249. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  250. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  251. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  252. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +76 -0
  254. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +1 -0
  255. package/dist/cjs/atomic-search-box.cjs.entry.js +3 -3
  256. package/dist/cjs/atomic-search-interface.cjs.entry.js +511 -0
  257. package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -0
  258. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  259. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  260. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  261. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  262. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +3 -3
  264. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  265. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  266. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  267. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic.cjs.js +1 -1
  269. package/dist/cjs/clock-7aeb19d0.js +7 -0
  270. package/dist/cjs/clock-7aeb19d0.js.map +1 -0
  271. package/dist/cjs/index-757bc886.js +10 -6
  272. package/dist/cjs/version.cjs.js +2 -2
  273. package/dist/esm/_loader.js +1 -1
  274. package/dist/esm/{analytics-config-37d95f4e.js → analytics-config-12643ebf.js} +2 -2
  275. package/dist/esm/{analytics-config-37d95f4e.js.map → analytics-config-12643ebf.js.map} +1 -1
  276. package/dist/esm/atomic-category-facet.entry.js +1 -1
  277. package/dist/esm/atomic-citation.entry.js +1 -1
  278. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  279. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  280. package/dist/esm/atomic-facet.entry.js +1 -1
  281. package/dist/esm/atomic-format-currency.entry.js +1 -1
  282. package/dist/esm/atomic-format-number.entry.js +1 -1
  283. package/dist/esm/atomic-format-unit.entry.js +1 -1
  284. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  285. package/dist/esm/atomic-html.entry.js +1 -1
  286. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  287. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  288. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  289. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  290. package/dist/esm/atomic-insight-history-toggle.entry.js +2 -2
  291. package/dist/esm/atomic-insight-history-toggle.entry.js.map +1 -1
  292. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  293. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  294. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  295. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  296. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  297. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  298. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  299. package/dist/esm/atomic-insight-result-action.entry.js +1 -1
  300. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
  301. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  302. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  303. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  304. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  305. package/dist/esm/atomic-insight-result.entry.js +1 -1
  306. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  307. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  308. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  309. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  310. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -2
  311. package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
  312. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  313. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  314. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  315. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  316. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  317. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  318. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  319. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  320. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  321. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  322. package/dist/esm/atomic-no-results.entry.js +1 -1
  323. package/dist/esm/atomic-numeric-facet.entry.js +1 -2
  324. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  325. package/dist/esm/atomic-pager.entry.js +3 -3
  326. package/dist/esm/atomic-query-error.entry.js +1 -1
  327. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  328. package/dist/esm/atomic-quickview.entry.js +1 -1
  329. package/dist/esm/atomic-recs-error.entry.js +1 -1
  330. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  331. package/dist/esm/atomic-recs-list.entry.js +1 -1
  332. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  333. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  334. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  335. package/dist/esm/atomic-result-children.entry.js +1 -1
  336. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  337. package/dist/esm/atomic-result-link.entry.js +1 -1
  338. package/dist/esm/atomic-result-list.entry.js +1 -1
  339. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  340. package/dist/esm/atomic-search-box-instant-results.entry.js +1 -1
  341. package/dist/esm/atomic-search-box-query-suggestions.entry.js +72 -0
  342. package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +1 -0
  343. package/dist/esm/atomic-search-box.entry.js +3 -3
  344. package/dist/esm/atomic-search-interface.entry.js +507 -0
  345. package/dist/esm/atomic-search-interface.entry.js.map +1 -0
  346. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  347. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  348. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  349. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  350. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  351. package/dist/esm/atomic-stencil-facet-date-input.entry.js +3 -3
  352. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  353. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  354. package/dist/esm/atomic-tab-button.entry.js +1 -1
  355. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  356. package/dist/esm/atomic.js +1 -1
  357. package/dist/esm/clock-b1f5d7f7.js +5 -0
  358. package/dist/esm/clock-b1f5d7f7.js.map +1 -0
  359. package/dist/esm/index-3f35faca.js +10 -6
  360. package/dist/esm/version.js +2 -2
  361. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +30 -2
  362. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
  363. package/dist/types/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +45 -0
  364. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +44 -46
  365. package/dist/types/components/search/atomic-search-interface/interfaces.d.ts +1 -2
  366. package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +1 -3
  367. package/dist/types/components/search/index.d.ts +1 -1
  368. package/dist/types/components.d.ts +141 -27
  369. package/docs/atomic-docs.json +508 -42
  370. package/package.json +4 -4
  371. package/dist/atomic/components/atomic-search-box-recent-queries.d.ts +0 -11
  372. package/dist/atomic/components/atomic-search-box-recent-queries.js +0 -8
  373. package/dist/atomic/components/atomic-search-box-recent-queries.js.map +0 -1
  374. package/dist/atomic/components/atomic-search-box-recent-queries2.js +0 -183
  375. package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +0 -1
  376. package/dist/atomic/components/components/search/atomic-search-interface/analytics-config.js +0 -57
  377. package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +0 -495
  378. package/dist/atomic/p-0edea6f9.entry.js +0 -2
  379. package/dist/atomic/p-516b8165.entry.js +0 -2
  380. package/dist/atomic/p-516b8165.entry.js.map +0 -1
  381. package/dist/atomic/p-6de44060.entry.js +0 -2
  382. package/dist/atomic/p-97829295.entry.js +0 -2
  383. package/dist/atomic/p-c2b4b401.entry.js +0 -2
  384. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +0 -234
  385. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +0 -1
  386. package/dist/cjs/clock-f03ff827.js +0 -7
  387. package/dist/cjs/clock-f03ff827.js.map +0 -1
  388. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +0 -229
  389. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +0 -1
  390. package/dist/esm/clock-add3e9a5.js +0 -5
  391. package/dist/esm/clock-add3e9a5.js.map +0 -1
  392. package/dist/types/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +0 -37
  393. /package/dist/atomic/{p-41c5d5fa.entry.js.map → p-021f01d6.entry.js.map} +0 -0
  394. /package/dist/atomic/{p-a3fa6695.entry.js.map → p-035f8dc8.entry.js.map} +0 -0
  395. /package/dist/atomic/{p-45c4685e.entry.js.map → p-089be992.entry.js.map} +0 -0
  396. /package/dist/atomic/{p-65373475.entry.js.map → p-09a3a067.entry.js.map} +0 -0
  397. /package/dist/atomic/{p-6a815b28.js.map → p-0fa43138.js.map} +0 -0
  398. /package/dist/atomic/{p-4915faeb.entry.js.map → p-11a2e38a.entry.js.map} +0 -0
  399. /package/dist/atomic/{p-0edea6f9.entry.js.map → p-1992b245.entry.js.map} +0 -0
  400. /package/dist/atomic/{p-a02b1209.entry.js.map → p-1d1f54a5.entry.js.map} +0 -0
  401. /package/dist/atomic/{p-9d023f0b.entry.js.map → p-1ef658d8.entry.js.map} +0 -0
  402. /package/dist/atomic/{p-10b5e0f3.entry.js.map → p-20341936.entry.js.map} +0 -0
  403. /package/dist/atomic/{p-3213225f.entry.js.map → p-26a51a77.entry.js.map} +0 -0
  404. /package/dist/atomic/{p-15406648.entry.js.map → p-2ca352f4.entry.js.map} +0 -0
  405. /package/dist/atomic/{p-97e42c43.entry.js.map → p-31aa052e.entry.js.map} +0 -0
  406. /package/dist/atomic/{p-7a6468a7.entry.js.map → p-36fab158.entry.js.map} +0 -0
  407. /package/dist/atomic/{p-9727f36b.entry.js.map → p-37374964.entry.js.map} +0 -0
  408. /package/dist/atomic/{p-7b1a3cab.entry.js.map → p-3a2c900c.entry.js.map} +0 -0
  409. /package/dist/atomic/{p-5adbf098.entry.js.map → p-3b023e83.entry.js.map} +0 -0
  410. /package/dist/atomic/{p-0610b3e7.entry.js.map → p-3b20b011.entry.js.map} +0 -0
  411. /package/dist/atomic/{p-c08f4ee6.entry.js.map → p-3f912e98.entry.js.map} +0 -0
  412. /package/dist/atomic/{p-9e771351.entry.js.map → p-40635c2d.entry.js.map} +0 -0
  413. /package/dist/atomic/{p-c9fe4f77.entry.js.map → p-43d708cb.entry.js.map} +0 -0
  414. /package/dist/atomic/{p-b0c50194.entry.js.map → p-48f57fd8.entry.js.map} +0 -0
  415. /package/dist/atomic/{p-4c30ca3e.entry.js.map → p-49c38b27.entry.js.map} +0 -0
  416. /package/dist/atomic/{p-87c6c206.entry.js.map → p-534b6a0a.entry.js.map} +0 -0
  417. /package/dist/atomic/{p-f0012580.entry.js.map → p-594488f2.entry.js.map} +0 -0
  418. /package/dist/atomic/{p-b4ad3036.entry.js.map → p-5f1fa581.entry.js.map} +0 -0
  419. /package/dist/atomic/{p-8df7270f.entry.js.map → p-604c4085.entry.js.map} +0 -0
  420. /package/dist/atomic/{p-d50c96c2.entry.js.map → p-627e1265.entry.js.map} +0 -0
  421. /package/dist/atomic/{p-e3af1bb4.entry.js.map → p-7383fd32.entry.js.map} +0 -0
  422. /package/dist/atomic/{p-79a9a372.entry.js.map → p-744da781.entry.js.map} +0 -0
  423. /package/dist/atomic/{p-e6a7e7b2.entry.js.map → p-7dfcd6af.entry.js.map} +0 -0
  424. /package/dist/atomic/{p-be1b98a6.entry.js.map → p-7e2109e9.entry.js.map} +0 -0
  425. /package/dist/atomic/{p-fc566d9a.entry.js.map → p-8016cf62.entry.js.map} +0 -0
  426. /package/dist/atomic/{p-780170e5.entry.js.map → p-811d6dcb.entry.js.map} +0 -0
  427. /package/dist/atomic/{p-9147b0db.entry.js.map → p-8256cd44.entry.js.map} +0 -0
  428. /package/dist/atomic/{p-0e27d4f2.entry.js.map → p-83c9244a.entry.js.map} +0 -0
  429. /package/dist/atomic/{p-71bb8125.entry.js.map → p-89085429.entry.js.map} +0 -0
  430. /package/dist/atomic/{p-bd99fcc1.entry.js.map → p-939eaaac.entry.js.map} +0 -0
  431. /package/dist/atomic/{p-9b92b4e2.entry.js.map → p-93e29b24.entry.js.map} +0 -0
  432. /package/dist/atomic/{p-b6377fb6.entry.js.map → p-98c5b9b8.entry.js.map} +0 -0
  433. /package/dist/atomic/{p-bf49fed3.entry.js.map → p-99b8d52d.entry.js.map} +0 -0
  434. /package/dist/atomic/{p-3af5c567.entry.js.map → p-9c9b1965.entry.js.map} +0 -0
  435. /package/dist/atomic/{p-160553ce.entry.js.map → p-a3efa89e.entry.js.map} +0 -0
  436. /package/dist/atomic/{p-c538c8ac.entry.js.map → p-a53c7821.entry.js.map} +0 -0
  437. /package/dist/atomic/{p-8acb1466.entry.js.map → p-a8882a2a.entry.js.map} +0 -0
  438. /package/dist/atomic/{p-ce41c447.entry.js.map → p-ae060711.entry.js.map} +0 -0
  439. /package/dist/atomic/{p-b4c34553.entry.js.map → p-b0b17e21.entry.js.map} +0 -0
  440. /package/dist/atomic/{p-e1c99e2e.entry.js.map → p-b2ff1330.entry.js.map} +0 -0
  441. /package/dist/atomic/{p-d2d22ab2.entry.js.map → p-b6963bae.entry.js.map} +0 -0
  442. /package/dist/atomic/{p-004adbb8.entry.js.map → p-ba4bf29f.entry.js.map} +0 -0
  443. /package/dist/atomic/{p-dee60597.entry.js.map → p-bc0d6d3d.entry.js.map} +0 -0
  444. /package/dist/atomic/{p-0e5dc57f.entry.js.map → p-c126ee6b.entry.js.map} +0 -0
  445. /package/dist/atomic/{p-754909fe.entry.js.map → p-c1999888.entry.js.map} +0 -0
  446. /package/dist/atomic/{p-4e9d1f9e.entry.js.map → p-cd62de88.entry.js.map} +0 -0
  447. /package/dist/atomic/{p-00a6ab8c.entry.js.map → p-d0f47b33.entry.js.map} +0 -0
  448. /package/dist/atomic/{p-97829295.entry.js.map → p-d24d34a7.entry.js.map} +0 -0
  449. /package/dist/atomic/{p-7f40e57d.entry.js.map → p-d364064c.entry.js.map} +0 -0
  450. /package/dist/atomic/{p-856e858c.entry.js.map → p-d785121d.entry.js.map} +0 -0
  451. /package/dist/atomic/{p-7d63bf7b.entry.js.map → p-d93adf52.entry.js.map} +0 -0
  452. /package/dist/atomic/{p-2a4e9425.entry.js.map → p-de066001.entry.js.map} +0 -0
  453. /package/dist/atomic/{p-8a7a23b7.entry.js.map → p-e162805d.entry.js.map} +0 -0
  454. /package/dist/atomic/{p-c280cd05.js.map → p-e1cc5150.js.map} +0 -0
  455. /package/dist/atomic/{p-441b1a7b.entry.js.map → p-e23b3334.entry.js.map} +0 -0
  456. /package/dist/atomic/{p-c2b4b401.entry.js.map → p-e2afb475.entry.js.map} +0 -0
  457. /package/dist/atomic/{p-bd32625e.entry.js.map → p-ea446721.entry.js.map} +0 -0
  458. /package/dist/atomic/{p-07b6424c.entry.js.map → p-ee6771f1.entry.js.map} +0 -0
  459. /package/dist/atomic/{p-abb14108.entry.js.map → p-f0c2dfe8.entry.js.map} +0 -0
  460. /package/dist/atomic/{p-f073a78d.entry.js.map → p-f289269f.entry.js.map} +0 -0
  461. /package/dist/atomic/{p-d4ad7336.entry.js.map → p-fa8b7c4c.entry.js.map} +0 -0
  462. /package/dist/atomic/{p-fb1a1e2e.entry.js.map → p-fbfe913d.entry.js.map} +0 -0
  463. /package/dist/atomic/{p-d11b2b24.entry.js.map → p-fda26113.entry.js.map} +0 -0
  464. /package/dist/atomic/{p-f936f55e.entry.js.map → p-fea7bf3b.entry.js.map} +0 -0
  465. /package/dist/atomic/{p-bfe4b353.entry.js.map → p-ffd5b5e2.entry.js.map} +0 -0
@@ -1,495 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { buildSearchEngine, buildSearchStatus, buildUrlManager, EcommerceDefaultFieldsToInclude, VERSION as HEADLESS_VERSION, loadFieldActions, loadQueryActions, loadSearchConfigurationActions, } from '@coveo/headless';
8
- import { provide } from '@lit/context';
9
- import i18next from 'i18next';
10
- import { css, html, LitElement } from 'lit';
11
- import { customElement, property, state } from 'lit/decorators.js';
12
- import { when } from 'lit/directives/when.js';
13
- import { InterfaceController, } from "../../common/interface/interface-controller";
14
- import { MobileBreakpointController } from "../../common/layout/mobile-breakpoint-controller";
15
- import { bindingsContext } from "../../context/bindings-context";
16
- import { errorSelector, firstSearchExecutedSelector, noResultsSelector, } from "../atomic-search-layout/search-layout";
17
- import { booleanConverter } from "../../../converters/boolean-converter";
18
- import { errorGuard } from "../../../decorators/error-guard";
19
- import { watch } from "../../../decorators/watch";
20
- import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
21
- import { ChildrenUpdateCompleteMixin } from "../../../mixins/children-update-complete-mixin";
22
- import { markParentAsReady } from "../../../utils/init-queue";
23
- import { SafeStorage, StorageItems, } from "../../../utils/local-storage-utils";
24
- import { getAnalyticsConfig } from './analytics-config';
25
- import { createSearchStore } from './store';
26
- import "../../common/atomic-modal/atomic-modal";
27
- const FirstSearchExecutedFlag = 'firstSearchExecuted';
28
- /**
29
- * 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.
30
- *
31
- * @slot default - The default slot where you can add child components to the interface.
32
- */
33
- let AtomicSearchInterface = class AtomicSearchInterface extends ChildrenUpdateCompleteMixin(LitElement) {
34
- constructor() {
35
- super();
36
- this.bindings = {};
37
- this.relevanceInspectorIsOpen = false;
38
- this.unsubscribeUrlManager = () => { };
39
- this.unsubscribeSearchStatus = () => { };
40
- this.initialized = false;
41
- this.interfaceController = new InterfaceController(this, 'CoveoAtomic', HEADLESS_VERSION);
42
- /**
43
- * A list of non-default fields to include in the query results.
44
- *
45
- * Specify the property as an array using a JSON string representation:
46
- * ```html
47
- * <atomic-search-interface fields-to-include='["fieldA", "fieldB"]'></atomic-search-interface>
48
- * ```
49
- */
50
- this.fieldsToInclude = [];
51
- // TODO - KIT-4994: Add disableAnalytics property that defaults to false.
52
- // TODO - KIT-4994: Deprecate in favor of disableAnalytics property.
53
- // TODO - (v4) KIT-4990: Remove.
54
- /**
55
- * Whether analytics should be enabled.
56
- */
57
- this.analytics = true;
58
- /**
59
- * The search interface language.
60
- */
61
- this.language = 'en';
62
- // TODO - (v4) KIT-4823: Remove.
63
- /**
64
- * Whether the state should be reflected in the URL parameters.
65
- * @deprecated - replaced by `disable-state-reflection-in-url` (this defaults to `true`, while the replacement defaults to `false`).
66
- */
67
- this.reflectStateInUrl = true;
68
- /**
69
- * Whether to disable state reflection in the URL parameters.
70
- */
71
- this.disableStateReflectionInUrl = false;
72
- /**
73
- * The CSS selector for the container where the interface will scroll back to.
74
- */
75
- this.scrollContainer = 'atomic-search-interface';
76
- /**
77
- * The language assets path. By default, this will be a relative URL pointing to `./lang`.
78
- *
79
- * Example: "/mypublicpath/languages"
80
- *
81
- */
82
- this.languageAssetsPath = './lang';
83
- /**
84
- * The icon assets path. By default, this will be a relative URL pointing to `./assets`.
85
- *
86
- * Example: "/mypublicpath/icons"
87
- *
88
- */
89
- this.iconAssetsPath = './assets';
90
- // TODO - (v4) KIT-5004: Remove.
91
- /**
92
- * Whether the relevance inspector shortcut should be enabled for this interface.
93
- *
94
- * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double click.
95
- *
96
- * The relevance inspector allows to troubleshoot and debug queries.
97
- * @deprecated - replaced by `disable-relevance-inspector` (this defaults to `true`, while the replacement defaults to `false`).
98
- */
99
- this.enableRelevanceInspector = true;
100
- /**
101
- * Whether to disable the relevance inspector shortcut for this interface.
102
- */
103
- this.disableRelevanceInspector = false;
104
- this.handleInitialization = (event) => {
105
- this.interfaceController.onComponentInitializing(event);
106
- };
107
- this.handleRelevanceInspectorDoubleClick = (e) => {
108
- if (e.altKey) {
109
- this.relevanceInspectorIsOpen = !this.relevanceInspectorIsOpen;
110
- }
111
- };
112
- this.onHashChange = () => {
113
- this.urlManager.synchronize(this.fragment);
114
- };
115
- this.store = createSearchStore();
116
- new MobileBreakpointController(this, this.store);
117
- const { promise, resolve } = Promise.withResolvers();
118
- this.i18Initialized = promise;
119
- this.i18n = i18next.createInstance(undefined, resolve);
120
- }
121
- connectedCallback() {
122
- super.connectedCallback();
123
- this.store.setLoadingFlag(FirstSearchExecutedFlag);
124
- this.initRelevanceInspector();
125
- this.addEventListener('atomic/initializeComponent', this.handleInitialization);
126
- this.addEventListener('atomic/scrollToTop', this.scrollToTop);
127
- this.addEventListener('atomic/relevanceInspector/close', this.closeRelevanceInspector);
128
- }
129
- willUpdate(changedProperties) {
130
- super.willUpdate(changedProperties);
131
- if (changedProperties.has('fieldsToInclude')) {
132
- this.initFieldsToInclude();
133
- }
134
- }
135
- disconnectedCallback() {
136
- super.disconnectedCallback();
137
- if (typeof this.unsubscribeUrlManager === 'function') {
138
- this.unsubscribeUrlManager();
139
- }
140
- if (typeof this.unsubscribeSearchStatus === 'function') {
141
- this.unsubscribeSearchStatus();
142
- }
143
- window.removeEventListener('hashchange', this.onHashChange);
144
- this.removeEventListener('atomic/initializeComponent', this.handleInitialization);
145
- this.removeEventListener('atomic/scrollToTop', this.scrollToTop);
146
- this.removeEventListener('atomic/relevanceInspector/close', this.closeRelevanceInspector);
147
- this.removeEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
148
- }
149
- // TODO - (v4) KIT-4991: Make private.
150
- scrollToTop() {
151
- const scrollContainerElement = document.querySelector(this.scrollContainer);
152
- if (!scrollContainerElement) {
153
- this.bindings.engine.logger.warn(`Could not find the scroll container with the selector "${this.scrollContainer}". This will prevent UX interactions that require a scroll from working correctly. Please review the CSS selector in the scrollContainer option`);
154
- return;
155
- }
156
- scrollContainerElement.scrollIntoView({ behavior: 'smooth' });
157
- }
158
- closeRelevanceInspector() {
159
- this.relevanceInspectorIsOpen = false;
160
- }
161
- /**
162
- * Initializes the connection with the headless search engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.
163
- */
164
- initialize(options) {
165
- return this.internalInitialization(() => this.initEngine(options));
166
- }
167
- /**
168
- * Initializes the interface using the provided [headless search engine](https://docs.coveo.com/en/headless/latest/reference/modules/Search.html, as opposed to the `initialize` method which internally builds a search engine instance.
169
- * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone & logLevel.
170
- */
171
- initializeWithSearchEngine(engine) {
172
- if (this.pipeline && this.pipeline !== engine.state.pipeline) {
173
- console.warn('Mismatch between search interface pipeline and engine pipeline. The engine pipeline will be used.');
174
- }
175
- if (this.searchHub && this.searchHub !== engine.state.searchHub) {
176
- console.warn('Mismatch between search interface search hub and engine search hub. The engine search hub will be used.');
177
- }
178
- return this.internalInitialization(() => {
179
- this.engine = engine;
180
- });
181
- }
182
- /**
183
- *
184
- * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.
185
- */
186
- async executeFirstSearch() {
187
- if (!this.interfaceController.engineIsCreated(this.engine)) {
188
- return;
189
- }
190
- if (!this.initialized) {
191
- console.error('You have to wait until the "initialize" promise is fulfilled before executing a search.', this);
192
- return;
193
- }
194
- const safeStorage = new SafeStorage();
195
- const standaloneSearchBoxData = safeStorage.getParsedJSON(StorageItems.STANDALONE_SEARCH_BOX_DATA, null);
196
- if (!standaloneSearchBoxData) {
197
- this.engine.executeFirstSearch();
198
- return;
199
- }
200
- safeStorage.removeItem(StorageItems.STANDALONE_SEARCH_BOX_DATA);
201
- const { updateQuery } = loadQueryActions(this.engine);
202
- const { value, enableQuerySyntax, analytics } = standaloneSearchBoxData;
203
- this.engine.dispatch(updateQuery({ q: value, enableQuerySyntax }));
204
- this.engine.executeFirstSearchAfterStandaloneSearchBoxRedirect(analytics);
205
- }
206
- updateSearchConfiguration(updatedProp, newValue) {
207
- if (!this.interfaceController.engineIsCreated(this.engine)) {
208
- return;
209
- }
210
- if (this.engine.state[updatedProp] === newValue) {
211
- return;
212
- }
213
- const { updateSearchConfiguration } = loadSearchConfigurationActions(this.engine);
214
- this.engine.dispatch(updateSearchConfiguration({
215
- [updatedProp]: newValue,
216
- }));
217
- }
218
- updateSearchHub() {
219
- this.updateSearchConfiguration('searchHub', this.searchHub ?? 'default');
220
- }
221
- updatePipeline() {
222
- this.updateSearchConfiguration('pipeline', this.pipeline);
223
- }
224
- toggleAnalytics() {
225
- this.interfaceController.onAnalyticsChange();
226
- }
227
- updateLanguage() {
228
- if (!this.interfaceController.engineIsCreated(this.engine) ||
229
- !this.language) {
230
- return;
231
- }
232
- const { updateSearchConfiguration } = loadSearchConfigurationActions(this.engine);
233
- this.engine.dispatch(updateSearchConfiguration({
234
- locale: this.language,
235
- }));
236
- return this.interfaceController.onLanguageChange();
237
- }
238
- updateIconAssetsPath() {
239
- this.store.state.iconAssetsPath = this.iconAssetsPath;
240
- }
241
- getBindings() {
242
- return {
243
- engine: this.engine,
244
- i18n: this.i18n,
245
- store: this.store,
246
- interfaceElement: this,
247
- createStyleElement: () => {
248
- const styleTag = document.createElement('style');
249
- return styleTag;
250
- },
251
- // TODO - KIT-4893: Remove once atomic-quickview-modal migration is complete.
252
- createScriptElement: () => {
253
- const scriptTag = document.createElement('script');
254
- return scriptTag;
255
- },
256
- };
257
- }
258
- initFieldsToInclude() {
259
- const fields = EcommerceDefaultFieldsToInclude.concat(this.fieldsToInclude);
260
- this.store.addFieldsToInclude(fields);
261
- }
262
- registerFieldsToInclude() {
263
- this.engine?.dispatch(loadFieldActions(this.engine).registerFieldsToInclude(this.store.state.fieldsToInclude));
264
- }
265
- initEngine(options) {
266
- const searchConfig = this.getSearchConfiguration(options);
267
- const analyticsConfig = getAnalyticsConfig(options, this.analytics, this.store);
268
- try {
269
- this.engine = buildSearchEngine({
270
- configuration: {
271
- ...options,
272
- search: searchConfig,
273
- analytics: analyticsConfig,
274
- },
275
- loggerOptions: {
276
- level: this.logLevel,
277
- },
278
- });
279
- }
280
- catch (error) {
281
- this.error = error;
282
- throw error;
283
- }
284
- }
285
- getSearchConfiguration(options) {
286
- const searchConfigFromProps = {
287
- searchHub: this.searchHub ?? 'default',
288
- pipeline: this.pipeline,
289
- locale: this.language,
290
- timezone: this.timezone,
291
- };
292
- if (options.search) {
293
- return {
294
- ...searchConfigFromProps,
295
- ...options.search,
296
- };
297
- }
298
- return searchConfigFromProps;
299
- }
300
- get fragment() {
301
- return window.location.hash.slice(1);
302
- }
303
- initUrlManager() {
304
- if (this.disableStateReflectionInUrl) {
305
- return;
306
- }
307
- if (!this.reflectStateInUrl) {
308
- return;
309
- }
310
- this.urlManager = buildUrlManager(this.engine, {
311
- initialState: { fragment: this.fragment },
312
- });
313
- this.unsubscribeUrlManager = this.urlManager.subscribe(() => this.updateHash());
314
- window.addEventListener('hashchange', this.onHashChange);
315
- }
316
- initRelevanceInspector() {
317
- if (this.enableRelevanceInspector && !this.disableRelevanceInspector) {
318
- this.addEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
319
- }
320
- }
321
- initSearchStatus() {
322
- this.searchStatus = buildSearchStatus(this.engine);
323
- this.unsubscribeSearchStatus = this.searchStatus.subscribe(() => {
324
- const hasNoResultsAfterInitialSearch = !this.searchStatus.state.hasResults &&
325
- this.searchStatus.state.firstSearchExecuted &&
326
- !this.searchStatus.state.hasError;
327
- this.classList.toggle(noResultsSelector, hasNoResultsAfterInitialSearch);
328
- this.classList.toggle(errorSelector, this.searchStatus.state.hasError);
329
- this.classList.toggle(firstSearchExecutedSelector, this.searchStatus.state.firstSearchExecuted);
330
- if (this.searchStatus.state.firstSearchExecuted &&
331
- this.store.hasLoadingFlag(FirstSearchExecutedFlag)) {
332
- this.store.unsetLoadingFlag(FirstSearchExecutedFlag);
333
- }
334
- });
335
- }
336
- updateHash() {
337
- const newFragment = this.urlManager.state.fragment;
338
- if (!this.searchStatus.state.firstSearchExecuted) {
339
- history.replaceState(null, document.title, `#${newFragment}`);
340
- this.bindings.engine.logger.info(`History replaceState #${newFragment}`);
341
- return;
342
- }
343
- history.pushState(null, document.title, `#${newFragment}`);
344
- this.bindings.engine.logger.info(`History pushState #${newFragment}`);
345
- }
346
- async internalInitialization(initEngine) {
347
- await Promise.all([
348
- this.interfaceController.onInitialization(initEngine),
349
- this.i18Initialized,
350
- ]);
351
- this.updateLanguage();
352
- this.bindings = this.getBindings();
353
- markParentAsReady(this);
354
- this.pipeline = this.engine.state.pipeline;
355
- this.searchHub = this.engine.state.searchHub;
356
- this.initSearchStatus();
357
- await this.getUpdateComplete();
358
- this.initUrlManager();
359
- this.initialized = true;
360
- }
361
- render() {
362
- return html `
363
- ${when(this.bindings?.engine &&
364
- this.enableRelevanceInspector &&
365
- !this.disableRelevanceInspector, () => html `<atomic-relevance-inspector
366
- ?open=${this.relevanceInspectorIsOpen}
367
- .bindings=${this.bindings}
368
- ></atomic-relevance-inspector>`)}
369
- <slot></slot>
370
- `;
371
- }
372
- };
373
- AtomicSearchInterface.styles = [
374
- css`:host{height:inherit;width:inherit;&>slot{height:inherit}}`,
375
- ];
376
- __decorate([
377
- state(),
378
- provide({ context: bindingsContext })
379
- ], AtomicSearchInterface.prototype, "bindings", void 0);
380
- __decorate([
381
- state()
382
- ], AtomicSearchInterface.prototype, "error", void 0);
383
- __decorate([
384
- state()
385
- ], AtomicSearchInterface.prototype, "relevanceInspectorIsOpen", void 0);
386
- __decorate([
387
- property({
388
- type: Array,
389
- attribute: 'fields-to-include',
390
- converter: {
391
- fromAttribute: (value) => {
392
- if (!value)
393
- return [];
394
- try {
395
- const parsed = JSON.parse(value);
396
- return Array.isArray(parsed) ? parsed : [];
397
- }
398
- catch {
399
- return [];
400
- }
401
- },
402
- toAttribute: (value) => JSON.stringify(value),
403
- },
404
- })
405
- ], AtomicSearchInterface.prototype, "fieldsToInclude", void 0);
406
- __decorate([
407
- property({ type: String, reflect: true })
408
- ], AtomicSearchInterface.prototype, "pipeline", void 0);
409
- __decorate([
410
- property({ type: String, attribute: 'search-hub', reflect: true })
411
- ], AtomicSearchInterface.prototype, "searchHub", void 0);
412
- __decorate([
413
- property({
414
- type: Boolean,
415
- converter: booleanConverter,
416
- reflect: true,
417
- })
418
- ], AtomicSearchInterface.prototype, "analytics", void 0);
419
- __decorate([
420
- property({ type: String, reflect: true })
421
- ], AtomicSearchInterface.prototype, "timezone", void 0);
422
- __decorate([
423
- property({ type: String, attribute: 'log-level', reflect: true })
424
- ], AtomicSearchInterface.prototype, "logLevel", void 0);
425
- __decorate([
426
- property({ type: Object, attribute: false })
427
- ], AtomicSearchInterface.prototype, "i18n", void 0);
428
- __decorate([
429
- property({ type: String, reflect: true })
430
- ], AtomicSearchInterface.prototype, "language", void 0);
431
- __decorate([
432
- property({ type: Object, attribute: false })
433
- ], AtomicSearchInterface.prototype, "engine", void 0);
434
- __decorate([
435
- property({
436
- type: Boolean,
437
- attribute: 'reflect-state-in-url',
438
- reflect: true,
439
- converter: booleanConverter,
440
- })
441
- ], AtomicSearchInterface.prototype, "reflectStateInUrl", void 0);
442
- __decorate([
443
- property({
444
- type: Boolean,
445
- attribute: 'disable-state-reflection-in-url',
446
- reflect: true,
447
- })
448
- ], AtomicSearchInterface.prototype, "disableStateReflectionInUrl", void 0);
449
- __decorate([
450
- property({ type: String, attribute: 'scroll-container', reflect: true })
451
- ], AtomicSearchInterface.prototype, "scrollContainer", void 0);
452
- __decorate([
453
- property({ type: String, attribute: 'language-assets-path', reflect: true })
454
- ], AtomicSearchInterface.prototype, "languageAssetsPath", void 0);
455
- __decorate([
456
- property({ type: String, attribute: 'icon-assets-path', reflect: true })
457
- ], AtomicSearchInterface.prototype, "iconAssetsPath", void 0);
458
- __decorate([
459
- property({
460
- type: Boolean,
461
- attribute: 'enable-relevance-inspector',
462
- reflect: true,
463
- converter: booleanConverter,
464
- })
465
- ], AtomicSearchInterface.prototype, "enableRelevanceInspector", void 0);
466
- __decorate([
467
- property({
468
- type: Boolean,
469
- attribute: 'disable-relevance-inspector',
470
- reflect: true,
471
- })
472
- ], AtomicSearchInterface.prototype, "disableRelevanceInspector", void 0);
473
- __decorate([
474
- watch('searchHub')
475
- ], AtomicSearchInterface.prototype, "updateSearchHub", null);
476
- __decorate([
477
- watch('pipeline')
478
- ], AtomicSearchInterface.prototype, "updatePipeline", null);
479
- __decorate([
480
- watch('analytics')
481
- ], AtomicSearchInterface.prototype, "toggleAnalytics", null);
482
- __decorate([
483
- watch('language')
484
- ], AtomicSearchInterface.prototype, "updateLanguage", null);
485
- __decorate([
486
- watch('iconAssetsPath')
487
- ], AtomicSearchInterface.prototype, "updateIconAssetsPath", null);
488
- __decorate([
489
- errorGuard()
490
- ], AtomicSearchInterface.prototype, "render", null);
491
- AtomicSearchInterface = __decorate([
492
- customElement('atomic-search-interface'),
493
- withTailwindStyles
494
- ], AtomicSearchInterface);
495
- export { AtomicSearchInterface };
@@ -1,2 +0,0 @@
1
- import{r as e,h as t}from"./p-dc3df5ce.js";import{I as a}from"./p-ff2d324d.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-05de7ca3.js";import"./p-cae02339.js";var c=undefined&&undefined.__decorate||function(e,t,a,c){var r=arguments.length,f=r<3?t:c===null?c=Object.getOwnPropertyDescriptor(t,a):c,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")f=Reflect.decorate(e,t,a,c);else for(var i=e.length-1;i>=0;i--)if(o=e[i])f=(r<3?o(f):r>3?o(t,a,f):o(t,a))||f;return r>3&&f&&Object.defineProperty(t,a,f),f};const r=class{constructor(t){e(this,t);this.error=undefined}render(){return t("atomic-tab-bar",{key:"213ba4db0fe06cda854967aec377453090fda5c2"},t("slot",{key:"957788c0b75593ae52fd3a730ae18ae3abe2f87e"}))}};c([a()],r.prototype,"bindings",void 0);export{r as atomic_ipx_tabs};
2
- //# sourceMappingURL=p-0edea6f9.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,g as s}from"./p-dc3df5ce.js";import{loadQuerySuggestActions as r,HighlightUtils as i,buildRecentQueriesList as n}from"@coveo/headless";import{S as c}from"./p-cfb3c589.js";import{g as o,Q as a,a as h,b as l}from"./p-af93b44c.js";import{d as u}from"./p-4b7a19db.js";import{C as p}from"./p-c280cd05.js";import{S as d,a as f}from"./p-946fe85f.js";import{o as m}from"./p-a12e1c59.js";import{e as y}from"./p-8f5830b4.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-f284897c.js";import"./p-0462f723.js";const b=class{constructor(e){t(this,e);this.error=undefined;this.icon=undefined;this.maxWithQuery=undefined;this.maxWithoutQuery=undefined}componentWillLoad(){try{u((t=>{this.bindings=t;return this.initialize()}),this.host,["atomic-search-box"])}catch(t){this.error=t}}initialize(){const t=this.bindings.engine;const{registerQuerySuggest:e,fetchQuerySuggestions:s}=r(t);t.dispatch(e({id:this.bindings.id,count:this.bindings.numberOfQueries}));return{position:Array.from(this.host.parentNode.children).indexOf(this.host),onInput:()=>t.dispatch(s({id:this.bindings.id})),renderItems:()=>this.renderItems()}}renderItems(){const t=this.bindings.searchBoxController.state.value!=="";const e=t?this.maxWithQuery:this.maxWithoutQuery;return this.bindings.searchBoxController.state.suggestions.slice(0,e).map((t=>this.renderItem(t)))}renderItem(t){const s=this.bindings.searchBoxController.state.value!=="";const r=o(t,this.bindings.i18n);return{...r,content:e(l,null,e(h,{icon:this.icon||c,hasSuggestion:this.bindings.getSuggestions().length>1}),e(a,{suggestion:t,hasQuery:s})),onSelect:()=>{this.bindings.searchBoxController.selectSuggestion(t.rawValue)}}}render(){if(this.error){return e("atomic-component-error",{key:"ee518dd01ee68d5ac1e13c37335888acf7089beb",element:this.host,error:this.error})}}get host(){return s(this)}};const g=(t,e)=>({part:"recent-query-item",query:t,key:`recent-${y(t)}`,ariaLabel:e.t("recent-query-suggestion-label",{query:t,interpolation:{escapeValue:false}})});const q=t=>({key:"recent-query-clear",ariaLabel:t.t("clear-recent-searches",{interpolation:{escapeValue:false}}),part:"recent-query-title-item suggestion-divider",hideIfLast:true});const j=(t,s)=>e("div",{part:"recent-query-content",class:"flex items-center text-left break-all"},s);const x=({icon:t})=>e("atomic-icon",{part:"recent-query-icon",icon:t,class:"mr-2 h-4 w-4 shrink-0"});const S=({query:t,value:s})=>{if(t===""){return e("span",{part:"recent-query-text",class:"line-clamp-2 break-all"},s)}return e("span",{part:"recent-query-text",class:"line-clamp-2 break-all",innerHTML:i.highlightString({content:s,openingDelimiter:'<span part="recent-query-text-highlight" class="font-bold">',closingDelimiter:"</span>",highlights:[{offset:t.length,length:s.length-t.length}]})})};const I=({i18n:t})=>e("div",{part:"recent-query-title-content",class:"flex w-full justify-between"},e("span",{class:"font-bold",part:"recent-query-title"},t.t("recent-searches")),e("span",{part:"recent-query-clear"},t.t("clear")));const L=class{constructor(e){t(this,e);this.maxWithQuery=3;this.warnUser=m((()=>this.bindings.engine.logger.warn("Because analytics are disabled, the recent queries feature is deactivated.")));this.error=undefined;this.icon=undefined;this.maxWithQuery=3;this.maxWithoutQuery=undefined}componentWillLoad(){try{u((t=>{this.bindings=t;return this.initialize()}),this.host,["atomic-search-box"])}catch(t){this.error=t}}renderIcon(){return this.icon||p}initialize(){this.storage=new d;this.recentQueriesList=n(this.bindings.engine,{initialState:{queries:this.retrieveLocalStorage()},options:{maxLength:1e3,clearFilters:this.bindings.clearFilters}});this.recentQueriesList.subscribe((()=>this.updateLocalStorage()));return{position:Array.from(this.host.parentNode.children).indexOf(this.host),renderItems:()=>this.renderItems()}}retrieveLocalStorage(){return this.storage.getParsedJSON(f.RECENT_QUERIES,[])}updateLocalStorage(){if(!this.recentQueriesList.state.analyticsEnabled){return this.disableFeature()}return this.storage.setJSON(f.RECENT_QUERIES,this.recentQueriesList.state.queries)}disableFeature(){this.warnUser();this.storage.removeItem(f.RECENT_QUERIES)}renderItems(){if(!this.recentQueriesList.state.analyticsEnabled){return[]}const t=this.bindings.searchBoxController.state.value;const e=t!=="";const s=e?this.maxWithQuery:this.maxWithoutQuery;const r=this.recentQueriesList.state.queries.filter((e=>e.toLowerCase().startsWith(t.toLowerCase()))).slice(0,s);const i=r.map((t=>this.renderItem(t)));if(i.length){i.unshift(this.renderClear())}return i}renderClear(){const t=q(this.bindings.i18n);return{...t,content:e(I,{i18n:this.bindings.i18n}),onSelect:()=>{this.recentQueriesList.clear();this.bindings.triggerSuggestions()}}}renderItem(t){const s=this.bindings.searchBoxController.state.value;const r=g(t,this.bindings.i18n);return{...r,content:e(j,null,e(x,{icon:this.renderIcon()}),e(S,{query:s,value:t})),onSelect:()=>{if(this.bindings.isStandalone){this.bindings.searchBoxController.updateText(t);this.bindings.searchBoxController.submit();return}this.recentQueriesList.executeRecentQuery(this.recentQueriesList.state.queries.indexOf(t))}}}render(){if(this.error){return e("atomic-component-error",{key:"577129c08c073b99dbb6b86b77e2ffa7c2ff7f69",element:this.host,error:this.error})}}get host(){return s(this)}};export{b as atomic_search_box_query_suggestions,L as atomic_search_box_recent_queries};
2
- //# sourceMappingURL=p-516b8165.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AtomicSearchBoxQuerySuggestions","componentWillLoad","dispatchSearchBoxSuggestionsEvent","bindings","this","initialize","host","error","engine","registerQuerySuggest","fetchQuerySuggestions","loadQuerySuggestActions","dispatch","id","count","numberOfQueries","position","Array","from","parentNode","children","indexOf","onInput","renderItems","hasQuery","searchBoxController","state","value","max","maxWithQuery","maxWithoutQuery","suggestions","slice","map","suggestion","renderItem","partialItem","getPartialSearchBoxSuggestionElement","i18n","content","h","QuerySuggestionContainer","QuerySuggestionIcon","icon","SearchIcon","hasSuggestion","getSuggestions","length","QuerySuggestionText","onSelect","selectSuggestion","rawValue","render","key","element","getPartialRecentQueryElement","part","query","encodeForDomAttribute","ariaLabel","t","interpolation","escapeValue","getPartialRecentQueryClearElement","hideIfLast","RecentQueriesContainer","_","class","RecentQueryIcon","RecentQueryText","innerHTML","HighlightUtils","highlightString","openingDelimiter","closingDelimiter","highlights","offset","RecentQueryClear","AtomicSearchBoxRecentQueries","warnUser","once","logger","warn","renderIcon","Clock","storage","SafeStorage","recentQueriesList","buildRecentQueriesList","initialState","queries","retrieveLocalStorage","options","maxLength","clearFilters","subscribe","updateLocalStorage","getParsedJSON","StorageItems","RECENT_QUERIES","analyticsEnabled","disableFeature","setJSON","removeItem","filteredQueries","filter","recentQuery","toLowerCase","startsWith","suggestionElements","unshift","renderClear","clear","triggerSuggestions","isStandalone","updateText","submit","executeRecentQuery"],"sources":["src/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.tsx","src/components/common/suggestions/stencil-recent-queries.tsx","src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx"],"sourcesContent":["import {\n loadQuerySuggestActions,\n SearchBox,\n SearchEngine,\n Suggestion,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport SearchIcon from '../../../../images/search.svg';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../../common/suggestions/stencil-query-suggestions';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\n\n/**\n * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.\n */\n@Component({\n tag: 'atomic-search-box-query-suggestions',\n shadow: true,\n})\nexport class AtomicSearchBoxQuerySuggestions {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox>;\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery?: number;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private initialize(): SearchBoxSuggestions {\n const engine = this.bindings.engine as SearchEngine<{\n querySet: string;\n querySuggest: string;\n }>;\n const {registerQuerySuggest, fetchQuerySuggestions} =\n loadQuerySuggestActions(engine);\n\n engine.dispatch(\n registerQuerySuggest({\n id: this.bindings.id,\n count: this.bindings.numberOfQueries,\n })\n );\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n onInput: () =>\n engine.dispatch(\n fetchQuerySuggestions({\n id: this.bindings.id,\n })\n ),\n renderItems: () => this.renderItems(),\n };\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n return this.bindings.searchBoxController.state.suggestions\n .slice(0, max)\n .map((suggestion) => this.renderItem(suggestion));\n }\n\n private renderItem(suggestion: Suggestion) {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={this.icon || SearchIcon}\n hasSuggestion={this.bindings.getSuggestions().length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n","import {HighlightUtils} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils';\nimport {SearchBoxSuggestionElement} from './suggestions-types';\n\nexport const getPartialRecentQueryElement = (\n value: string,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'recent-query-item',\n query: value,\n key: `recent-${encodeForDomAttribute(value)}`,\n ariaLabel: i18n.t('recent-query-suggestion-label', {\n query: value,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const getPartialRecentQueryClearElement = (\n i18n: i18n\n): Pick<\n SearchBoxSuggestionElement,\n 'ariaLabel' | 'key' | 'part' | 'hideIfLast'\n> => {\n return {\n key: 'recent-query-clear',\n ariaLabel: i18n.t('clear-recent-searches', {\n interpolation: {escapeValue: false},\n }),\n part: 'recent-query-title-item suggestion-divider',\n hideIfLast: true,\n };\n};\n\nexport const RecentQueriesContainer: FunctionalComponent = (_, children) => {\n return (\n <div\n part=\"recent-query-content\"\n class=\"flex items-center text-left break-all\"\n >\n {children}\n </div>\n );\n};\n\ninterface RecentQueryIconProps {\n icon: string;\n}\n\nexport const RecentQueryIcon: FunctionalComponent<RecentQueryIconProps> = ({\n icon,\n}) => {\n return (\n <atomic-icon\n part=\"recent-query-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface RecentQueryTextProps {\n query: string;\n value: string;\n}\n\nexport const RecentQueryText: FunctionalComponent<RecentQueryTextProps> = ({\n query,\n value,\n}) => {\n if (query === '') {\n return (\n <span part=\"recent-query-text\" class=\"line-clamp-2 break-all\">\n {value}\n </span>\n );\n }\n return (\n <span\n part=\"recent-query-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={HighlightUtils.highlightString({\n content: value,\n openingDelimiter:\n '<span part=\"recent-query-text-highlight\" class=\"font-bold\">',\n closingDelimiter: '</span>',\n highlights: [\n {\n offset: query.length,\n length: value.length - query.length,\n },\n ],\n })}\n ></span>\n );\n};\n\ninterface RecentQueryClearProps {\n i18n: i18n;\n}\n\nexport const RecentQueryClear: FunctionalComponent<RecentQueryClearProps> = ({\n i18n,\n}) => {\n return (\n <div part=\"recent-query-title-content\" class=\"flex w-full justify-between\">\n <span class=\"font-bold\" part=\"recent-query-title\">\n {i18n.t('recent-searches')}\n </span>\n <span part=\"recent-query-clear\">{i18n.t('clear')}</span>\n </div>\n );\n};\n","import {\n buildRecentQueriesList,\n RecentQueriesList,\n SearchBox,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport Clock from '../../../../images/clock.svg';\nimport {SafeStorage, StorageItems} from '../../../../utils/local-storage-utils';\nimport {once} from '../../../../utils/utils';\nimport {\n getPartialRecentQueryClearElement,\n getPartialRecentQueryElement,\n RecentQueriesContainer,\n RecentQueryClear,\n RecentQueryIcon,\n RecentQueryText,\n} from '../../../common/suggestions/stencil-recent-queries';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.\n */\n@Component({\n tag: 'atomic-search-box-recent-queries',\n shadow: true,\n})\nexport class AtomicSearchBoxRecentQueries {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox, Bindings>;\n private recentQueriesList!: RecentQueriesList;\n private storage!: SafeStorage;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery = 3;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox, Bindings>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private renderIcon() {\n return this.icon || Clock;\n }\n\n private initialize(): SearchBoxSuggestions {\n this.storage = new SafeStorage();\n this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {\n initialState: {queries: this.retrieveLocalStorage()},\n options: {maxLength: 1000, clearFilters: this.bindings.clearFilters},\n });\n\n this.recentQueriesList.subscribe(() => this.updateLocalStorage());\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n renderItems: () => this.renderItems(),\n };\n }\n\n private retrieveLocalStorage() {\n return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);\n }\n\n private updateLocalStorage() {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return this.disableFeature();\n }\n\n return this.storage.setJSON(\n StorageItems.RECENT_QUERIES,\n this.recentQueriesList.state.queries\n );\n }\n\n private warnUser = once(() =>\n this.bindings.engine.logger.warn(\n 'Because analytics are disabled, the recent queries feature is deactivated.'\n )\n );\n\n private disableFeature() {\n this.warnUser();\n this.storage.removeItem(StorageItems.RECENT_QUERIES);\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return [];\n }\n\n const query = this.bindings.searchBoxController.state.value;\n const hasQuery = query !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n const filteredQueries = this.recentQueriesList.state.queries\n .filter((recentQuery) =>\n recentQuery.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, max);\n\n const suggestionElements: SearchBoxSuggestionElement[] =\n filteredQueries.map((value) => this.renderItem(value));\n if (suggestionElements.length) {\n suggestionElements.unshift(this.renderClear());\n }\n\n return suggestionElements;\n }\n\n private renderClear(): SearchBoxSuggestionElement {\n const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);\n\n return {\n ...partialItem,\n content: <RecentQueryClear i18n={this.bindings.i18n} />,\n onSelect: () => {\n this.recentQueriesList.clear();\n this.bindings.triggerSuggestions();\n },\n };\n }\n\n private renderItem(value: string): SearchBoxSuggestionElement {\n const query = this.bindings.searchBoxController.state.value;\n const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);\n return {\n ...partialItem,\n content: (\n <RecentQueriesContainer>\n <RecentQueryIcon icon={this.renderIcon()} />\n <RecentQueryText query={query} value={value} />\n </RecentQueriesContainer>\n ),\n\n onSelect: () => {\n if (this.bindings.isStandalone) {\n this.bindings.searchBoxController.updateText(value);\n this.bindings.searchBoxController.submit();\n return;\n }\n\n this.recentQueriesList.executeRecentQuery(\n this.recentQueriesList.state.queries.indexOf(value)\n );\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}