@coveo/atomic 3.34.0-pre.60b218fb89 → 3.34.0-pre.61b8e221e3

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 (723) 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/components/_index.d.ts +2 -2
  4. package/dist/atomic/components/_index.js +3 -2
  5. package/dist/atomic/components/atomic-category-facet.js +1 -1
  6. package/dist/atomic/components/atomic-citation.js +1 -1
  7. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  8. package/dist/atomic/components/atomic-facet.js +1 -1
  9. package/dist/atomic/components/atomic-format-currency.js +1 -1
  10. package/dist/atomic/components/atomic-format-number.js +1 -1
  11. package/dist/atomic/components/atomic-format-unit.js +1 -1
  12. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  13. package/dist/atomic/components/atomic-html2.js +1 -1
  14. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  15. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  16. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  17. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  18. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  19. package/dist/atomic/components/atomic-insight-layout.js +82 -1
  20. package/dist/atomic/components/atomic-insight-layout.js.map +1 -1
  21. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  22. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  23. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  24. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  25. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  26. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  27. package/dist/atomic/components/atomic-insight-result-action.js +1 -1
  28. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +1 -1
  29. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  30. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  31. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  34. package/dist/atomic/components/atomic-insight-search-box.js +4 -31
  35. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  36. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  37. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  38. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  39. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  40. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  41. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  42. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  43. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  46. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  49. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  50. package/dist/atomic/components/atomic-no-results.js +1 -1
  51. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  52. package/dist/atomic/components/atomic-query-error.js +1 -1
  53. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  54. package/dist/atomic/components/atomic-quickview.js +1 -1
  55. package/dist/atomic/components/atomic-recs-error.js +1 -1
  56. package/dist/atomic/components/atomic-recs-interface.js +2915 -3
  57. package/dist/atomic/components/atomic-recs-interface.js.map +1 -1
  58. package/dist/atomic/components/atomic-recs-list.js +1 -1
  59. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  60. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  61. package/dist/atomic/components/atomic-result-children.js +1 -1
  62. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  63. package/dist/atomic/components/atomic-result-link.js +1 -1
  64. package/dist/atomic/components/atomic-result-list.js +1 -1
  65. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  66. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  67. package/dist/atomic/components/atomic-search-box-instant-results.js +3 -38
  68. package/dist/atomic/components/atomic-search-box-instant-results.js.map +1 -1
  69. package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +11 -0
  70. package/dist/atomic/components/atomic-search-box-query-suggestions.js +8 -0
  71. package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +1 -0
  72. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +89 -0
  73. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +1 -0
  74. package/dist/atomic/components/atomic-search-box.js +10 -4
  75. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  76. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  77. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  78. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  79. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  80. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  81. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  82. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  83. package/dist/atomic/components/atomic-stencil-facet-date-input.js +3 -3
  84. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  85. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  86. package/dist/atomic/components/components/commerce/atomic-product/atomic-product.js +26 -58
  87. package/dist/atomic/components/components/common/layout/custom-render-controller.js +37 -0
  88. package/dist/atomic/components/components/common/layout/item-layout-controller.js +103 -0
  89. package/dist/atomic/components/components/common/suggestions/query-suggestions.js +16 -11
  90. package/dist/atomic/components/components/insight/atomic-insight-interface/analytics-config.js +31 -0
  91. package/dist/atomic/components/components/insight/atomic-insight-interface/atomic-insight-interface.js +258 -0
  92. package/dist/atomic/components/components/insight/index.js +2 -1
  93. package/dist/atomic/components/components/insight/lazy-index.js +3 -1
  94. package/dist/atomic/components/components/search/index.js +0 -1
  95. package/dist/atomic/components/components/search/lazy-index.js +0 -1
  96. package/dist/atomic/components/facet-number-input.js +2 -2
  97. package/dist/atomic/components/global/environment.js +1 -1
  98. package/dist/atomic/components/index.js.map +1 -1
  99. package/dist/atomic/components/item-section-utils.js +1 -1
  100. package/dist/atomic/components/replace-breakpoint-utils.js +1 -1
  101. package/dist/atomic/components/replace-breakpoint-utils.js.map +1 -1
  102. package/dist/atomic/components/stencil-query-suggestions.js +33 -0
  103. package/dist/atomic/components/stencil-query-suggestions.js.map +1 -0
  104. package/dist/atomic/components/store.js +2 -30
  105. package/dist/atomic/components/store.js.map +1 -1
  106. package/dist/atomic/components/suggestions-events.js +40 -0
  107. package/dist/atomic/components/suggestions-events.js.map +1 -0
  108. package/dist/atomic/components/tab-button.js +1 -1
  109. package/dist/atomic/components/tab-popover.js +1 -1
  110. package/dist/atomic/components/utils.js +1 -17
  111. package/dist/atomic/components/utils.js.map +1 -1
  112. package/dist/atomic/{p-27cf779a.js → p-025a346a.js} +2 -2
  113. package/dist/atomic/{p-7e971d15.entry.js → p-044de1f9.entry.js} +2 -2
  114. package/dist/atomic/{p-fe59fb2d.entry.js → p-0535b93d.entry.js} +2 -2
  115. package/dist/atomic/{p-31a13850.js → p-0580b866.js} +2 -2
  116. package/dist/atomic/{p-0edea6f9.entry.js → p-05f1ff6f.entry.js} +2 -2
  117. package/dist/atomic/{p-3e9db2b5.entry.js → p-088d634c.entry.js} +2 -2
  118. package/dist/atomic/{p-4bdc6d5a.entry.js → p-0ee7cab8.entry.js} +2 -2
  119. package/dist/atomic/{p-0f449e9d.entry.js → p-14bad769.entry.js} +2 -2
  120. package/dist/atomic/{p-01511388.entry.js → p-15547bd5.entry.js} +2 -2
  121. package/dist/atomic/{p-b313058c.entry.js → p-182f9112.entry.js} +2 -2
  122. package/dist/atomic/{p-00069a4b.entry.js → p-1910eb7f.entry.js} +2 -2
  123. package/dist/atomic/{p-85145c88.entry.js → p-1c8bcadf.entry.js} +2 -2
  124. package/dist/atomic/p-1fca38e1.js +2 -0
  125. package/dist/atomic/{p-26598ee0.js.map → p-1fca38e1.js.map} +1 -1
  126. package/dist/atomic/{p-cafa4083.entry.js → p-21ab7750.entry.js} +2 -2
  127. package/dist/atomic/{p-9a6ec803.entry.js → p-229018fa.entry.js} +2 -2
  128. package/dist/atomic/{p-89d8bb0d.entry.js → p-22b76c96.entry.js} +2 -2
  129. package/dist/atomic/{p-36f63642.entry.js → p-26e0c1f8.entry.js} +2 -2
  130. package/dist/atomic/{p-c4fb6426.entry.js → p-2e13e2c0.entry.js} +2 -2
  131. package/dist/atomic/{p-6098b906.entry.js → p-2f437b47.entry.js} +2 -2
  132. package/dist/atomic/{p-998393ec.entry.js → p-2f517a54.entry.js} +2 -2
  133. package/dist/atomic/{p-06284430.entry.js → p-318c96f5.entry.js} +2 -2
  134. package/dist/atomic/{p-0ed76e65.entry.js → p-3272a04b.entry.js} +2 -2
  135. package/dist/atomic/{p-d211a422.entry.js → p-3291adda.entry.js} +2 -2
  136. package/dist/atomic/{p-dbc0ce5c.entry.js → p-33245038.entry.js} +2 -2
  137. package/dist/atomic/{p-fa658ef2.entry.js → p-35c2ee5f.entry.js} +2 -2
  138. package/dist/atomic/p-36270a85.entry.js +2 -0
  139. package/dist/atomic/p-36270a85.entry.js.map +1 -0
  140. package/dist/atomic/{p-3d55fce6.entry.js → p-36e2c945.entry.js} +2 -2
  141. package/dist/atomic/{p-83d3857f.entry.js → p-36ff2bc3.entry.js} +2 -2
  142. package/dist/atomic/{p-af1b4924.entry.js → p-3bd8469f.entry.js} +2 -2
  143. package/dist/atomic/{p-e62fc40e.js → p-3ef52afa.js} +2 -2
  144. package/dist/atomic/{p-170c7da6.entry.js → p-400c28b6.entry.js} +2 -2
  145. package/dist/atomic/{p-fafd5042.entry.js → p-448091f7.entry.js} +2 -2
  146. package/dist/atomic/{p-fe3cd55b.entry.js → p-44d96103.entry.js} +2 -2
  147. package/dist/atomic/{p-da845e35.entry.js → p-463336ca.entry.js} +2 -2
  148. package/dist/atomic/{p-f9dd14b2.entry.js → p-479cb38a.entry.js} +2 -2
  149. package/dist/atomic/{p-a9383817.entry.js → p-47b41b27.entry.js} +2 -2
  150. package/dist/atomic/{p-be2a43f4.entry.js → p-48bab1a6.entry.js} +2 -2
  151. package/dist/atomic/{p-0c8e7d5f.entry.js → p-4cb91ee7.entry.js} +2 -2
  152. package/dist/atomic/{p-23d4dc54.entry.js → p-558f2191.entry.js} +2 -2
  153. package/dist/atomic/{p-8572a953.entry.js → p-55c41e00.entry.js} +2 -2
  154. package/dist/atomic/{p-2e4628bb.entry.js → p-57049cd2.entry.js} +2 -2
  155. package/dist/atomic/{p-edd4d5f7.js → p-5a2ef889.js} +2 -2
  156. package/dist/atomic/{p-dc128135.entry.js → p-5a83b7e5.entry.js} +2 -2
  157. package/dist/atomic/{p-10b5e0f3.entry.js → p-5b8cc4bc.entry.js} +2 -2
  158. package/dist/atomic/{p-87f69e53.entry.js → p-5cab535b.entry.js} +2 -2
  159. package/dist/atomic/p-5d0fc7e2.js +2 -0
  160. package/dist/atomic/{p-740cd5bc.entry.js → p-6439156c.entry.js} +2 -2
  161. package/dist/atomic/{p-7e9a1a1a.entry.js → p-66166975.entry.js} +2 -2
  162. package/dist/atomic/{p-97538903.entry.js → p-6698d5e9.entry.js} +2 -2
  163. package/dist/atomic/{p-0610b3e7.entry.js → p-6819f12c.entry.js} +2 -2
  164. package/dist/atomic/p-6b11c149.entry.js +2 -0
  165. package/dist/atomic/p-6b11c149.entry.js.map +1 -0
  166. package/dist/atomic/p-6b3429d3.js +2 -0
  167. package/dist/atomic/{p-6078667f.entry.js → p-7045745d.entry.js} +2 -2
  168. package/dist/atomic/{p-a130b00b.entry.js → p-70747efa.entry.js} +2 -2
  169. package/dist/atomic/{p-4830b9bb.entry.js → p-7242b46e.entry.js} +2 -2
  170. package/dist/atomic/{p-3af2fca0.js → p-7427daa3.js} +2 -2
  171. package/dist/atomic/{p-b320f270.entry.js → p-76c14d82.entry.js} +2 -2
  172. package/dist/atomic/{p-1435fb6f.entry.js → p-7741124a.entry.js} +2 -2
  173. package/dist/atomic/{p-cdeb5f2a.entry.js → p-77d00da1.entry.js} +2 -2
  174. package/dist/atomic/{p-519d9abd.entry.js → p-7fd58269.entry.js} +2 -2
  175. package/dist/atomic/p-7fe23afc.entry.js +2 -0
  176. package/dist/atomic/{p-c7af4b9e.entry.js.map → p-7fe23afc.entry.js.map} +1 -1
  177. package/dist/atomic/{p-f76b7ac3.entry.js → p-80290dd3.entry.js} +2 -2
  178. package/dist/atomic/{p-b6ae0244.entry.js → p-81bdbd07.entry.js} +2 -2
  179. package/dist/atomic/{p-dc28ee14.js → p-828ab4ff.js} +2 -2
  180. package/dist/atomic/{p-723f76a1.entry.js → p-82cd6398.entry.js} +2 -2
  181. package/dist/atomic/{p-fdcd187d.entry.js → p-851b9735.entry.js} +2 -2
  182. package/dist/atomic/{p-f6a275b0.entry.js → p-874f0a4c.entry.js} +2 -2
  183. package/dist/atomic/{p-373448df.entry.js → p-8b0cf1d4.entry.js} +2 -2
  184. package/dist/atomic/{p-36112c34.entry.js → p-8b0d881e.entry.js} +2 -2
  185. package/dist/atomic/{p-ee957926.entry.js → p-8d5228da.entry.js} +2 -2
  186. package/dist/atomic/{p-c25f1437.entry.js → p-955092ed.entry.js} +2 -2
  187. package/dist/atomic/{p-47ab6c9f.entry.js → p-99d4c4bf.entry.js} +2 -2
  188. package/dist/atomic/{p-edede7d1.entry.js → p-9aad555a.entry.js} +2 -2
  189. package/dist/atomic/{p-2250f505.js → p-9ae68e86.js} +2 -2
  190. package/dist/atomic/{p-00a6ab8c.entry.js → p-a0ebbbdf.entry.js} +2 -2
  191. package/dist/atomic/{p-7fd5b6ac.entry.js → p-a1798150.entry.js} +2 -2
  192. package/dist/atomic/{p-9239be63.entry.js → p-a54f3f24.entry.js} +2 -2
  193. package/dist/atomic/{p-24fd7df6.entry.js → p-a6dde0f6.entry.js} +2 -2
  194. package/dist/atomic/{p-a1e5f767.entry.js → p-a78cbb80.entry.js} +2 -2
  195. package/dist/atomic/p-aaa5a853.js +2 -0
  196. package/dist/atomic/p-aaa5a853.js.map +1 -0
  197. package/dist/atomic/{p-59b15bd6.entry.js → p-ae69f519.entry.js} +2 -2
  198. package/dist/atomic/p-af93b44c.js +2 -0
  199. package/dist/atomic/p-af93b44c.js.map +1 -0
  200. package/dist/atomic/{p-98dd6df1.entry.js → p-b06de6f8.entry.js} +2 -2
  201. package/dist/atomic/{p-fdd0aa42.entry.js → p-b1b583a0.entry.js} +2 -2
  202. package/dist/atomic/{p-3c9289b5.js → p-b29d121c.js} +2 -2
  203. package/dist/atomic/p-b628ed03.entry.js +2 -0
  204. package/dist/atomic/{p-a1ee594f.entry.js.map → p-b628ed03.entry.js.map} +1 -1
  205. package/dist/atomic/{p-cb3fd0f4.entry.js → p-b84108f3.entry.js} +2 -2
  206. package/dist/atomic/{p-fb1a1e2e.entry.js → p-b85c2c46.entry.js} +2 -2
  207. package/dist/atomic/{p-9260dd7d.entry.js → p-b9eeac20.entry.js} +2 -2
  208. package/dist/atomic/{p-b2b9e83f.entry.js → p-bc43df67.entry.js} +2 -2
  209. package/dist/atomic/{p-93601dc0.entry.js → p-bd01acd5.entry.js} +2 -2
  210. package/dist/atomic/{p-416d088e.entry.js → p-be011bd1.entry.js} +2 -2
  211. package/dist/atomic/{p-4f4c9a03.entry.js → p-c2a5dac0.entry.js} +2 -2
  212. package/dist/atomic/{p-93f1d551.entry.js → p-c5164dbf.entry.js} +2 -2
  213. package/dist/atomic/{p-3622ed6c.js → p-c619df9b.js} +2 -2
  214. package/dist/atomic/{p-1bbaf206.entry.js → p-c8190eb9.entry.js} +2 -2
  215. package/dist/atomic/p-ca1425cc.entry.js +2 -0
  216. package/dist/atomic/p-ca1425cc.entry.js.map +1 -0
  217. package/dist/atomic/{p-5ca21deb.js → p-ca37969c.js} +2 -2
  218. package/dist/atomic/{p-7cced247.entry.js → p-d0ab0125.entry.js} +2 -2
  219. package/dist/atomic/{p-2fb49fe8.entry.js → p-d8caa4d8.entry.js} +2 -2
  220. package/dist/atomic/{p-62e85c20.entry.js → p-da87ef51.entry.js} +2 -2
  221. package/dist/atomic/{p-367ec37d.entry.js → p-db2d92c5.entry.js} +2 -2
  222. package/dist/atomic/{p-dbf0c5a3.entry.js → p-db3b11ca.entry.js} +2 -2
  223. package/dist/atomic/{p-20b33c18.entry.js → p-dd24c66a.entry.js} +2 -2
  224. package/dist/atomic/{p-0f39889d.entry.js → p-dea22a8d.entry.js} +2 -2
  225. package/dist/atomic/{p-bbfe727a.entry.js → p-df8d38ca.entry.js} +2 -2
  226. package/dist/atomic/{p-f9608731.entry.js → p-e276c7e0.entry.js} +2 -2
  227. package/dist/atomic/{p-ce5b896e.entry.js → p-e455330c.entry.js} +2 -2
  228. package/dist/atomic/{p-59f043a0.entry.js → p-e49ad083.entry.js} +2 -2
  229. package/dist/atomic/{p-30c09377.entry.js → p-e6871a3f.entry.js} +2 -2
  230. package/dist/atomic/{p-c9f1790d.entry.js → p-e6dc9de7.entry.js} +2 -2
  231. package/dist/atomic/p-e8176ac8.entry.js +2 -0
  232. package/dist/atomic/p-e8176ac8.entry.js.map +1 -0
  233. package/dist/atomic/{p-331ad989.entry.js → p-ed413091.entry.js} +2 -2
  234. package/dist/atomic/p-ef8f2239.entry.js +2 -0
  235. package/dist/atomic/{p-345c425d.entry.js.map → p-ef8f2239.entry.js.map} +1 -1
  236. package/dist/atomic/{p-3549a469.entry.js → p-f0c657f4.entry.js} +2 -2
  237. package/dist/atomic/{p-f936f55e.entry.js → p-f1241140.entry.js} +2 -2
  238. package/dist/atomic/p-f37dea9e.entry.js +2 -0
  239. package/dist/atomic/{p-b6415814.entry.js.map → p-f37dea9e.entry.js.map} +1 -1
  240. package/dist/atomic/p-f4818e53.entry.js +2 -0
  241. package/dist/atomic/p-f537c5af.js +2 -0
  242. package/dist/atomic/p-f537c5af.js.map +1 -0
  243. package/dist/atomic/{p-dd35e7ad.entry.js → p-f65ca329.entry.js} +2 -2
  244. package/dist/atomic/{p-6f34dd3a.entry.js → p-f800678c.entry.js} +2 -2
  245. package/dist/atomic/{p-e7a25b00.entry.js → p-fb517fba.entry.js} +2 -2
  246. package/dist/atomic/{p-97829295.entry.js → p-fc71835d.entry.js} +2 -2
  247. package/dist/atomic/{p-a5f66ecd.entry.js → p-fd1ef9e3.entry.js} +2 -2
  248. package/dist/cjs/_loader.cjs.js +1 -1
  249. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +3 -3
  250. package/dist/cjs/atomic-breadbox.cjs.entry.js +2 -2
  251. package/dist/cjs/atomic-category-facet.cjs.entry.js +4 -4
  252. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-color-facet.cjs.entry.js +3 -3
  254. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  255. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  256. package/dist/cjs/atomic-facet.cjs.entry.js +6 -6
  257. package/dist/cjs/atomic-field-condition.cjs.entry.js +4 -4
  258. package/dist/cjs/atomic-focus-trap.cjs.entry.js +2 -2
  259. package/dist/cjs/atomic-folded-result-list.cjs.entry.js +8 -8
  260. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  261. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  262. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +3 -3
  264. package/dist/cjs/atomic-generated-answer.cjs.entry.js +3 -3
  265. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  266. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  267. package/dist/cjs/atomic-insight-facet.cjs.entry.js +5 -5
  268. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +8 -8
  269. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  270. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +2 -2
  271. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  272. package/dist/cjs/atomic-insight-layout.cjs.entry.js +85 -5
  273. package/dist/cjs/atomic-insight-layout.cjs.entry.js.map +1 -1
  274. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +3 -3
  275. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +6 -6
  276. package/dist/cjs/atomic-insight-pager.cjs.entry.js +4 -4
  277. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +3 -3
  278. package/dist/cjs/atomic-insight-query-summary.cjs.entry.js +2 -2
  279. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +4 -5
  280. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js.map +1 -1
  281. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  282. package/dist/cjs/atomic-insight-result-action-bar.cjs.entry.js +2 -2
  283. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
  284. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
  285. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  286. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +4 -4
  287. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +2 -2
  288. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +8 -8
  289. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +3 -3
  290. package/dist/cjs/atomic-insight-result-template.cjs.entry.js +4 -4
  291. package/dist/cjs/atomic-insight-result.cjs.entry.js +7 -7
  292. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +8 -34
  293. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  294. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +4 -4
  295. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +1 -1
  296. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js +1 -1
  297. package/dist/cjs/atomic-insight-tab.cjs.entry.js +2 -2
  298. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  299. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +4 -4
  300. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  301. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  302. package/dist/cjs/atomic-ipx-body.cjs.entry.js +4 -4
  303. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  304. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +3 -3
  305. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +4 -4
  306. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +8 -8
  307. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +3 -4
  308. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +1 -1
  309. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  310. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  311. package/dist/cjs/atomic-ipx-tab.cjs.entry.js +1 -2
  312. package/dist/cjs/atomic-ipx-tab.cjs.entry.js.map +1 -1
  313. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  314. package/dist/cjs/atomic-load-more-results.cjs.entry.js +2 -3
  315. package/dist/cjs/atomic-load-more-results.cjs.entry.js.map +1 -1
  316. package/dist/cjs/atomic-no-results.cjs.entry.js +3 -3
  317. package/dist/cjs/atomic-notifications.cjs.entry.js +2 -2
  318. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +6 -6
  319. package/dist/cjs/atomic-query-error.cjs.entry.js +3 -3
  320. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  321. package/dist/cjs/atomic-quickview.cjs.entry.js +3 -3
  322. package/dist/cjs/atomic-rating-facet.cjs.entry.js +4 -4
  323. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +3 -3
  324. package/dist/cjs/atomic-recs-error.cjs.entry.js +3 -3
  325. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2927 -18
  326. package/dist/cjs/atomic-recs-interface.cjs.entry.js.map +1 -1
  327. package/dist/cjs/atomic-recs-list.cjs.entry.js +8 -8
  328. package/dist/cjs/atomic-recs-result-template.cjs.entry.js +4 -4
  329. package/dist/cjs/atomic-recs-result.cjs.entry.js +6 -6
  330. package/dist/cjs/atomic-refine-modal.cjs.entry.js +3 -3
  331. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  332. package/dist/cjs/atomic-result-children-template.cjs.entry.js +4 -4
  333. package/dist/cjs/atomic-result-children.cjs.entry.js +2 -2
  334. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  335. package/dist/cjs/atomic-result-icon.cjs.entry.js +1 -1
  336. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  337. package/dist/cjs/atomic-result-list.cjs.entry.js +9 -9
  338. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +2 -2
  339. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +1 -1
  340. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +7 -7
  341. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -2
  342. package/dist/cjs/atomic-result-section-children.cjs.entry.js +2 -2
  343. package/dist/cjs/atomic-result-section-emphasized.cjs.entry.js +2 -2
  344. package/dist/cjs/atomic-result-section-title-metadata.cjs.entry.js +2 -2
  345. package/dist/cjs/atomic-result-template.cjs.entry.js +4 -4
  346. package/dist/cjs/atomic-result.cjs.entry.js +6 -6
  347. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js +1 -1
  348. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +76 -0
  349. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +1 -0
  350. package/dist/cjs/atomic-search-box.cjs.entry.js +6 -6
  351. package/dist/cjs/atomic-segmented-facet.cjs.entry.js +2 -2
  352. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +3 -3
  353. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  354. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +4 -4
  355. package/dist/cjs/atomic-smart-snippet-suggestions.cjs.entry.js +1 -1
  356. package/dist/cjs/atomic-smart-snippet.cjs.entry.js +2 -2
  357. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +3 -3
  358. package/dist/cjs/atomic-sort-expression.cjs.entry.js +3 -3
  359. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +3 -3
  360. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  361. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  362. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  363. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  364. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +4 -4
  365. package/dist/cjs/atomic.cjs.js +1 -1
  366. package/dist/cjs/{cloned-facet-elements-70cd1601.js → cloned-facet-elements-3c7ea837.js} +2 -2
  367. package/dist/cjs/{cloned-facet-elements-70cd1601.js.map → cloned-facet-elements-3c7ea837.js.map} +1 -1
  368. package/dist/cjs/{display-options-69531e8d.js → display-options-10f84088.js} +2 -2
  369. package/dist/cjs/{display-options-69531e8d.js.map → display-options-10f84088.js.map} +1 -1
  370. package/dist/cjs/index-757bc886.js +4 -4
  371. package/dist/cjs/{item-layout-sections-b09ba4b3.js → item-layout-sections-73e27d24.js} +2 -2
  372. package/dist/cjs/{item-layout-sections-b09ba4b3.js.map → item-layout-sections-73e27d24.js.map} +1 -1
  373. package/dist/cjs/{item-section-utils-8579462c.js → item-section-utils-37848715.js} +2 -2
  374. package/dist/cjs/{item-section-utils-8579462c.js.map → item-section-utils-37848715.js.map} +1 -1
  375. package/dist/cjs/{props-utils-1e4ba1b0.js → props-utils-15a042f3.js} +2 -2
  376. package/dist/cjs/{props-utils-1e4ba1b0.js.map → props-utils-15a042f3.js.map} +1 -1
  377. package/dist/cjs/{replace-breakpoint-utils-7a084f54.js → replace-breakpoint-utils-47f2eaa4.js} +1 -2
  378. package/dist/cjs/replace-breakpoint-utils-47f2eaa4.js.map +1 -0
  379. package/dist/cjs/{result-template-common-84bd4057.js → result-template-common-bc03b2ad.js} +3 -3
  380. package/dist/cjs/{result-template-common-84bd4057.js.map → result-template-common-bc03b2ad.js.map} +1 -1
  381. package/dist/cjs/{stencil-accessibility-utils-aa4c9f6c.js → stencil-accessibility-utils-86cc7071.js} +2 -2
  382. package/dist/cjs/{stencil-accessibility-utils-aa4c9f6c.js.map → stencil-accessibility-utils-86cc7071.js.map} +1 -1
  383. package/dist/cjs/{stencil-facet-value-e67c9332.js → stencil-facet-value-5957b403.js} +2 -2
  384. package/dist/cjs/{stencil-facet-value-e67c9332.js.map → stencil-facet-value-5957b403.js.map} +1 -1
  385. package/dist/cjs/{stencil-facet-value-checkbox-62f07459.js → stencil-facet-value-checkbox-fed178ad.js} +2 -2
  386. package/dist/cjs/{stencil-facet-value-checkbox-62f07459.js.map → stencil-facet-value-checkbox-fed178ad.js.map} +1 -1
  387. package/dist/cjs/{stencil-item-list-common-17bd1046.js → stencil-item-list-common-b08abf21.js} +4 -4
  388. package/dist/cjs/{stencil-item-list-common-17bd1046.js.map → stencil-item-list-common-b08abf21.js.map} +1 -1
  389. package/dist/cjs/stencil-query-suggestions-03268ecc.js +38 -0
  390. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +1 -0
  391. package/dist/cjs/{stencil-values-container-9f50ec1a.js → stencil-values-container-d20f9b28.js} +2 -2
  392. package/dist/cjs/{stencil-values-container-9f50ec1a.js.map → stencil-values-container-d20f9b28.js.map} +1 -1
  393. package/dist/cjs/{store-82abd941.js → store-7927ea61.js} +2 -33
  394. package/dist/cjs/store-7927ea61.js.map +1 -0
  395. package/dist/cjs/{timeframe-facet-common-b5535cca.js → timeframe-facet-common-4ea96ccb.js} +2 -2
  396. package/dist/cjs/{timeframe-facet-common-b5535cca.js.map → timeframe-facet-common-4ea96ccb.js.map} +1 -1
  397. package/dist/cjs/{utils-7153ae6b.js → utils-12b49e87.js} +1 -18
  398. package/dist/cjs/utils-12b49e87.js.map +1 -0
  399. package/dist/cjs/version.cjs.js +2 -2
  400. package/dist/esm/_loader.js +1 -1
  401. package/dist/esm/atomic-automatic-facet_2.entry.js +3 -3
  402. package/dist/esm/atomic-breadbox.entry.js +2 -2
  403. package/dist/esm/atomic-category-facet.entry.js +4 -4
  404. package/dist/esm/atomic-citation.entry.js +1 -1
  405. package/dist/esm/atomic-color-facet.entry.js +3 -3
  406. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  407. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  408. package/dist/esm/atomic-facet.entry.js +6 -6
  409. package/dist/esm/atomic-field-condition.entry.js +4 -4
  410. package/dist/esm/atomic-focus-trap.entry.js +2 -2
  411. package/dist/esm/atomic-folded-result-list.entry.js +8 -8
  412. package/dist/esm/atomic-format-currency.entry.js +1 -1
  413. package/dist/esm/atomic-format-number.entry.js +1 -1
  414. package/dist/esm/atomic-format-unit.entry.js +1 -1
  415. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +3 -3
  416. package/dist/esm/atomic-generated-answer.entry.js +3 -3
  417. package/dist/esm/atomic-html.entry.js +1 -1
  418. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  419. package/dist/esm/atomic-insight-facet.entry.js +5 -5
  420. package/dist/esm/atomic-insight-folded-result-list.entry.js +8 -8
  421. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  422. package/dist/esm/atomic-insight-generated-answer.entry.js +2 -2
  423. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  424. package/dist/esm/atomic-insight-layout.entry.js +83 -3
  425. package/dist/esm/atomic-insight-layout.entry.js.map +1 -1
  426. package/dist/esm/atomic-insight-no-results.entry.js +3 -3
  427. package/dist/esm/atomic-insight-numeric-facet.entry.js +6 -6
  428. package/dist/esm/atomic-insight-pager.entry.js +4 -4
  429. package/dist/esm/atomic-insight-query-error.entry.js +3 -3
  430. package/dist/esm/atomic-insight-query-summary.entry.js +2 -2
  431. package/dist/esm/atomic-insight-refine-modal.entry.js +4 -5
  432. package/dist/esm/atomic-insight-refine-modal.entry.js.map +1 -1
  433. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  434. package/dist/esm/atomic-insight-result-action-bar.entry.js +2 -2
  435. package/dist/esm/atomic-insight-result-action.entry.js +1 -1
  436. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
  437. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  438. package/dist/esm/atomic-insight-result-children-template.entry.js +4 -4
  439. package/dist/esm/atomic-insight-result-children.entry.js +2 -2
  440. package/dist/esm/atomic-insight-result-list.entry.js +8 -8
  441. package/dist/esm/atomic-insight-result-quickview-action.entry.js +3 -3
  442. package/dist/esm/atomic-insight-result-template.entry.js +4 -4
  443. package/dist/esm/atomic-insight-result.entry.js +7 -7
  444. package/dist/esm/atomic-insight-search-box.entry.js +7 -33
  445. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  446. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +4 -4
  447. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +1 -1
  448. package/dist/esm/atomic-insight-smart-snippet.entry.js +1 -1
  449. package/dist/esm/atomic-insight-tab.entry.js +2 -2
  450. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  451. package/dist/esm/atomic-insight-timeframe-facet.entry.js +4 -4
  452. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  453. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  454. package/dist/esm/atomic-ipx-body.entry.js +4 -4
  455. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  456. package/dist/esm/atomic-ipx-embedded.entry.js +3 -3
  457. package/dist/esm/atomic-ipx-modal.entry.js +4 -4
  458. package/dist/esm/atomic-ipx-recs-list.entry.js +8 -8
  459. package/dist/esm/atomic-ipx-refine-modal.entry.js +3 -4
  460. package/dist/esm/atomic-ipx-refine-modal.entry.js.map +1 -1
  461. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  462. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  463. package/dist/esm/atomic-ipx-tab.entry.js +1 -2
  464. package/dist/esm/atomic-ipx-tab.entry.js.map +1 -1
  465. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  466. package/dist/esm/atomic-load-more-results.entry.js +2 -3
  467. package/dist/esm/atomic-load-more-results.entry.js.map +1 -1
  468. package/dist/esm/atomic-no-results.entry.js +3 -3
  469. package/dist/esm/atomic-notifications.entry.js +2 -2
  470. package/dist/esm/atomic-numeric-facet.entry.js +6 -6
  471. package/dist/esm/atomic-query-error.entry.js +3 -3
  472. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  473. package/dist/esm/atomic-quickview.entry.js +3 -3
  474. package/dist/esm/atomic-rating-facet.entry.js +4 -4
  475. package/dist/esm/atomic-rating-range-facet.entry.js +3 -3
  476. package/dist/esm/atomic-recs-error.entry.js +3 -3
  477. package/dist/esm/atomic-recs-interface.entry.js +2919 -10
  478. package/dist/esm/atomic-recs-interface.entry.js.map +1 -1
  479. package/dist/esm/atomic-recs-list.entry.js +8 -8
  480. package/dist/esm/atomic-recs-result-template.entry.js +4 -4
  481. package/dist/esm/atomic-recs-result.entry.js +6 -6
  482. package/dist/esm/atomic-refine-modal.entry.js +3 -3
  483. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  484. package/dist/esm/atomic-result-children-template.entry.js +4 -4
  485. package/dist/esm/atomic-result-children.entry.js +2 -2
  486. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  487. package/dist/esm/atomic-result-icon.entry.js +1 -1
  488. package/dist/esm/atomic-result-link.entry.js +1 -1
  489. package/dist/esm/atomic-result-list.entry.js +9 -9
  490. package/dist/esm/atomic-result-localized-text.entry.js +2 -2
  491. package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
  492. package/dist/esm/atomic-result-placeholder_8.entry.js +7 -7
  493. package/dist/esm/atomic-result-printable-uri.entry.js +2 -2
  494. package/dist/esm/atomic-result-section-children.entry.js +2 -2
  495. package/dist/esm/atomic-result-section-emphasized.entry.js +2 -2
  496. package/dist/esm/atomic-result-section-title-metadata.entry.js +2 -2
  497. package/dist/esm/atomic-result-template.entry.js +4 -4
  498. package/dist/esm/atomic-result.entry.js +6 -6
  499. package/dist/esm/atomic-search-box-instant-results.entry.js +1 -1
  500. package/dist/esm/atomic-search-box-query-suggestions.entry.js +72 -0
  501. package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +1 -0
  502. package/dist/esm/atomic-search-box.entry.js +6 -6
  503. package/dist/esm/atomic-segmented-facet.entry.js +2 -2
  504. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +3 -3
  505. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  506. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +4 -4
  507. package/dist/esm/atomic-smart-snippet-suggestions.entry.js +1 -1
  508. package/dist/esm/atomic-smart-snippet.entry.js +2 -2
  509. package/dist/esm/atomic-sort-dropdown.entry.js +3 -3
  510. package/dist/esm/atomic-sort-expression.entry.js +3 -3
  511. package/dist/esm/atomic-stencil-facet-date-input.entry.js +3 -3
  512. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  513. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  514. package/dist/esm/atomic-tab-button.entry.js +1 -1
  515. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  516. package/dist/esm/atomic-timeframe-facet.entry.js +4 -4
  517. package/dist/esm/atomic.js +1 -1
  518. package/dist/esm/{cloned-facet-elements-807b566b.js → cloned-facet-elements-82071d0c.js} +2 -2
  519. package/dist/esm/{cloned-facet-elements-807b566b.js.map → cloned-facet-elements-82071d0c.js.map} +1 -1
  520. package/dist/esm/{display-options-1199eed5.js → display-options-b7c33617.js} +2 -2
  521. package/dist/esm/{display-options-1199eed5.js.map → display-options-b7c33617.js.map} +1 -1
  522. package/dist/esm/index-3f35faca.js +4 -4
  523. package/dist/esm/{item-layout-sections-8afb5049.js → item-layout-sections-26123790.js} +2 -2
  524. package/dist/esm/{item-layout-sections-8afb5049.js.map → item-layout-sections-26123790.js.map} +1 -1
  525. package/dist/esm/{item-section-utils-46828f30.js → item-section-utils-d8aa24b7.js} +2 -2
  526. package/dist/esm/{item-section-utils-46828f30.js.map → item-section-utils-d8aa24b7.js.map} +1 -1
  527. package/dist/esm/{props-utils-e97ad6bd.js → props-utils-6040b5d2.js} +2 -2
  528. package/dist/esm/{props-utils-e97ad6bd.js.map → props-utils-6040b5d2.js.map} +1 -1
  529. package/dist/esm/{replace-breakpoint-utils-7a336631.js → replace-breakpoint-utils-13ff9ca5.js} +2 -2
  530. package/dist/esm/replace-breakpoint-utils-13ff9ca5.js.map +1 -0
  531. package/dist/esm/{result-template-common-995b94f8.js → result-template-common-47799c7c.js} +3 -3
  532. package/dist/esm/{result-template-common-995b94f8.js.map → result-template-common-47799c7c.js.map} +1 -1
  533. package/dist/esm/{stencil-accessibility-utils-196a08f3.js → stencil-accessibility-utils-ae75044b.js} +2 -2
  534. package/dist/esm/{stencil-accessibility-utils-196a08f3.js.map → stencil-accessibility-utils-ae75044b.js.map} +1 -1
  535. package/dist/esm/{stencil-facet-value-30dc9b6c.js → stencil-facet-value-9deafe8e.js} +2 -2
  536. package/dist/esm/{stencil-facet-value-30dc9b6c.js.map → stencil-facet-value-9deafe8e.js.map} +1 -1
  537. package/dist/esm/{stencil-facet-value-checkbox-0637f7f8.js → stencil-facet-value-checkbox-c0df7c4e.js} +2 -2
  538. package/dist/esm/{stencil-facet-value-checkbox-0637f7f8.js.map → stencil-facet-value-checkbox-c0df7c4e.js.map} +1 -1
  539. package/dist/esm/{stencil-item-list-common-fc95e16b.js → stencil-item-list-common-d2833d51.js} +4 -4
  540. package/dist/esm/{stencil-item-list-common-fc95e16b.js.map → stencil-item-list-common-d2833d51.js.map} +1 -1
  541. package/dist/esm/stencil-query-suggestions-5d6a46d7.js +33 -0
  542. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +1 -0
  543. package/dist/esm/{stencil-values-container-55a7e816.js → stencil-values-container-9b9cd73f.js} +2 -2
  544. package/dist/esm/{stencil-values-container-55a7e816.js.map → stencil-values-container-9b9cd73f.js.map} +1 -1
  545. package/dist/esm/{store-015afa83.js → store-7d2c2a8c.js} +3 -31
  546. package/dist/esm/store-7d2c2a8c.js.map +1 -0
  547. package/dist/esm/{timeframe-facet-common-eb1016d2.js → timeframe-facet-common-55fc72f3.js} +2 -2
  548. package/dist/esm/{timeframe-facet-common-eb1016d2.js.map → timeframe-facet-common-55fc72f3.js.map} +1 -1
  549. package/dist/esm/{utils-7161486d.js → utils-6400ebde.js} +2 -18
  550. package/dist/esm/utils-6400ebde.js.map +1 -0
  551. package/dist/esm/version.js +2 -2
  552. package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +4 -16
  553. package/dist/types/components/common/layout/custom-render-controller.d.ts +25 -0
  554. package/dist/types/components/common/layout/item-layout-controller.d.ts +47 -0
  555. package/dist/types/components/insight/atomic-insight-interface/atomic-insight-interface.d.ts +35 -42
  556. package/dist/types/components/insight/index.d.ts +1 -1
  557. package/dist/types/components/search/index.d.ts +0 -1
  558. package/dist/types/components/search/{atomic-search-box-query-suggestions → search-box-suggestions/atomic-search-box-query-suggestions}/atomic-search-box-query-suggestions.d.ts +7 -16
  559. package/dist/types/components.d.ts +53 -113
  560. package/docs/atomic-docs.json +107 -423
  561. package/package.json +7 -7
  562. package/dist/atomic/components/analytics-config.js +0 -2918
  563. package/dist/atomic/components/analytics-config.js.map +0 -1
  564. package/dist/atomic/components/atomic-insight-interface.d.ts +0 -11
  565. package/dist/atomic/components/atomic-insight-interface.js +0 -332
  566. package/dist/atomic/components/atomic-insight-interface.js.map +0 -1
  567. package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +0 -107
  568. package/dist/atomic/components/insight-layout.js +0 -87
  569. package/dist/atomic/components/insight-layout.js.map +0 -1
  570. package/dist/atomic/p-0d05b965.js +0 -2
  571. package/dist/atomic/p-0d05b965.js.map +0 -1
  572. package/dist/atomic/p-0e62bdd6.js +0 -2
  573. package/dist/atomic/p-0e62bdd6.js.map +0 -1
  574. package/dist/atomic/p-1ef775a6.entry.js +0 -2
  575. package/dist/atomic/p-1ef775a6.entry.js.map +0 -1
  576. package/dist/atomic/p-26598ee0.js +0 -2
  577. package/dist/atomic/p-28e882e8.js +0 -2
  578. package/dist/atomic/p-345c425d.entry.js +0 -2
  579. package/dist/atomic/p-56c97c3e.js +0 -2
  580. package/dist/atomic/p-5d71a211.entry.js +0 -2
  581. package/dist/atomic/p-5d71a211.entry.js.map +0 -1
  582. package/dist/atomic/p-768b172e.entry.js +0 -2
  583. package/dist/atomic/p-768b172e.entry.js.map +0 -1
  584. package/dist/atomic/p-a12e1c59.js +0 -2
  585. package/dist/atomic/p-a12e1c59.js.map +0 -1
  586. package/dist/atomic/p-a1ee594f.entry.js +0 -2
  587. package/dist/atomic/p-b6415814.entry.js +0 -2
  588. package/dist/atomic/p-c2b4b401.entry.js +0 -2
  589. package/dist/atomic/p-c7af4b9e.entry.js +0 -2
  590. package/dist/atomic/p-cc0bf58b.js +0 -2
  591. package/dist/atomic/p-cc0bf58b.js.map +0 -1
  592. package/dist/atomic/p-f0ef3649.entry.js +0 -2
  593. package/dist/atomic/p-f0ef3649.entry.js.map +0 -1
  594. package/dist/cjs/analytics-config-fce69dc2.js +0 -2927
  595. package/dist/cjs/analytics-config-fce69dc2.js.map +0 -1
  596. package/dist/cjs/atomic-insight-interface.cjs.entry.js +0 -307
  597. package/dist/cjs/atomic-insight-interface.cjs.entry.js.map +0 -1
  598. package/dist/cjs/insight-layout-b6ff92fd.js +0 -90
  599. package/dist/cjs/insight-layout-b6ff92fd.js.map +0 -1
  600. package/dist/cjs/replace-breakpoint-utils-7a084f54.js.map +0 -1
  601. package/dist/cjs/store-82abd941.js.map +0 -1
  602. package/dist/cjs/utils-7153ae6b.js.map +0 -1
  603. package/dist/esm/analytics-config-d8daa624.js +0 -2918
  604. package/dist/esm/analytics-config-d8daa624.js.map +0 -1
  605. package/dist/esm/atomic-insight-interface.entry.js +0 -303
  606. package/dist/esm/atomic-insight-interface.entry.js.map +0 -1
  607. package/dist/esm/insight-layout-a1e4b795.js +0 -87
  608. package/dist/esm/insight-layout-a1e4b795.js.map +0 -1
  609. package/dist/esm/replace-breakpoint-utils-7a336631.js.map +0 -1
  610. package/dist/esm/store-015afa83.js.map +0 -1
  611. package/dist/esm/utils-7161486d.js.map +0 -1
  612. /package/dist/atomic/{p-27cf779a.js.map → p-025a346a.js.map} +0 -0
  613. /package/dist/atomic/{p-7e971d15.entry.js.map → p-044de1f9.entry.js.map} +0 -0
  614. /package/dist/atomic/{p-fe59fb2d.entry.js.map → p-0535b93d.entry.js.map} +0 -0
  615. /package/dist/atomic/{p-31a13850.js.map → p-0580b866.js.map} +0 -0
  616. /package/dist/atomic/{p-0edea6f9.entry.js.map → p-05f1ff6f.entry.js.map} +0 -0
  617. /package/dist/atomic/{p-3e9db2b5.entry.js.map → p-088d634c.entry.js.map} +0 -0
  618. /package/dist/atomic/{p-4bdc6d5a.entry.js.map → p-0ee7cab8.entry.js.map} +0 -0
  619. /package/dist/atomic/{p-0f449e9d.entry.js.map → p-14bad769.entry.js.map} +0 -0
  620. /package/dist/atomic/{p-01511388.entry.js.map → p-15547bd5.entry.js.map} +0 -0
  621. /package/dist/atomic/{p-b313058c.entry.js.map → p-182f9112.entry.js.map} +0 -0
  622. /package/dist/atomic/{p-00069a4b.entry.js.map → p-1910eb7f.entry.js.map} +0 -0
  623. /package/dist/atomic/{p-85145c88.entry.js.map → p-1c8bcadf.entry.js.map} +0 -0
  624. /package/dist/atomic/{p-cafa4083.entry.js.map → p-21ab7750.entry.js.map} +0 -0
  625. /package/dist/atomic/{p-9a6ec803.entry.js.map → p-229018fa.entry.js.map} +0 -0
  626. /package/dist/atomic/{p-89d8bb0d.entry.js.map → p-22b76c96.entry.js.map} +0 -0
  627. /package/dist/atomic/{p-36f63642.entry.js.map → p-26e0c1f8.entry.js.map} +0 -0
  628. /package/dist/atomic/{p-c4fb6426.entry.js.map → p-2e13e2c0.entry.js.map} +0 -0
  629. /package/dist/atomic/{p-6098b906.entry.js.map → p-2f437b47.entry.js.map} +0 -0
  630. /package/dist/atomic/{p-998393ec.entry.js.map → p-2f517a54.entry.js.map} +0 -0
  631. /package/dist/atomic/{p-06284430.entry.js.map → p-318c96f5.entry.js.map} +0 -0
  632. /package/dist/atomic/{p-0ed76e65.entry.js.map → p-3272a04b.entry.js.map} +0 -0
  633. /package/dist/atomic/{p-d211a422.entry.js.map → p-3291adda.entry.js.map} +0 -0
  634. /package/dist/atomic/{p-dbc0ce5c.entry.js.map → p-33245038.entry.js.map} +0 -0
  635. /package/dist/atomic/{p-fa658ef2.entry.js.map → p-35c2ee5f.entry.js.map} +0 -0
  636. /package/dist/atomic/{p-3d55fce6.entry.js.map → p-36e2c945.entry.js.map} +0 -0
  637. /package/dist/atomic/{p-83d3857f.entry.js.map → p-36ff2bc3.entry.js.map} +0 -0
  638. /package/dist/atomic/{p-af1b4924.entry.js.map → p-3bd8469f.entry.js.map} +0 -0
  639. /package/dist/atomic/{p-e62fc40e.js.map → p-3ef52afa.js.map} +0 -0
  640. /package/dist/atomic/{p-170c7da6.entry.js.map → p-400c28b6.entry.js.map} +0 -0
  641. /package/dist/atomic/{p-fafd5042.entry.js.map → p-448091f7.entry.js.map} +0 -0
  642. /package/dist/atomic/{p-fe3cd55b.entry.js.map → p-44d96103.entry.js.map} +0 -0
  643. /package/dist/atomic/{p-da845e35.entry.js.map → p-463336ca.entry.js.map} +0 -0
  644. /package/dist/atomic/{p-f9dd14b2.entry.js.map → p-479cb38a.entry.js.map} +0 -0
  645. /package/dist/atomic/{p-a9383817.entry.js.map → p-47b41b27.entry.js.map} +0 -0
  646. /package/dist/atomic/{p-be2a43f4.entry.js.map → p-48bab1a6.entry.js.map} +0 -0
  647. /package/dist/atomic/{p-0c8e7d5f.entry.js.map → p-4cb91ee7.entry.js.map} +0 -0
  648. /package/dist/atomic/{p-23d4dc54.entry.js.map → p-558f2191.entry.js.map} +0 -0
  649. /package/dist/atomic/{p-8572a953.entry.js.map → p-55c41e00.entry.js.map} +0 -0
  650. /package/dist/atomic/{p-2e4628bb.entry.js.map → p-57049cd2.entry.js.map} +0 -0
  651. /package/dist/atomic/{p-edd4d5f7.js.map → p-5a2ef889.js.map} +0 -0
  652. /package/dist/atomic/{p-dc128135.entry.js.map → p-5a83b7e5.entry.js.map} +0 -0
  653. /package/dist/atomic/{p-10b5e0f3.entry.js.map → p-5b8cc4bc.entry.js.map} +0 -0
  654. /package/dist/atomic/{p-87f69e53.entry.js.map → p-5cab535b.entry.js.map} +0 -0
  655. /package/dist/atomic/{p-56c97c3e.js.map → p-5d0fc7e2.js.map} +0 -0
  656. /package/dist/atomic/{p-740cd5bc.entry.js.map → p-6439156c.entry.js.map} +0 -0
  657. /package/dist/atomic/{p-7e9a1a1a.entry.js.map → p-66166975.entry.js.map} +0 -0
  658. /package/dist/atomic/{p-97538903.entry.js.map → p-6698d5e9.entry.js.map} +0 -0
  659. /package/dist/atomic/{p-0610b3e7.entry.js.map → p-6819f12c.entry.js.map} +0 -0
  660. /package/dist/atomic/{p-28e882e8.js.map → p-6b3429d3.js.map} +0 -0
  661. /package/dist/atomic/{p-6078667f.entry.js.map → p-7045745d.entry.js.map} +0 -0
  662. /package/dist/atomic/{p-a130b00b.entry.js.map → p-70747efa.entry.js.map} +0 -0
  663. /package/dist/atomic/{p-4830b9bb.entry.js.map → p-7242b46e.entry.js.map} +0 -0
  664. /package/dist/atomic/{p-3af2fca0.js.map → p-7427daa3.js.map} +0 -0
  665. /package/dist/atomic/{p-b320f270.entry.js.map → p-76c14d82.entry.js.map} +0 -0
  666. /package/dist/atomic/{p-1435fb6f.entry.js.map → p-7741124a.entry.js.map} +0 -0
  667. /package/dist/atomic/{p-cdeb5f2a.entry.js.map → p-77d00da1.entry.js.map} +0 -0
  668. /package/dist/atomic/{p-519d9abd.entry.js.map → p-7fd58269.entry.js.map} +0 -0
  669. /package/dist/atomic/{p-f76b7ac3.entry.js.map → p-80290dd3.entry.js.map} +0 -0
  670. /package/dist/atomic/{p-b6ae0244.entry.js.map → p-81bdbd07.entry.js.map} +0 -0
  671. /package/dist/atomic/{p-dc28ee14.js.map → p-828ab4ff.js.map} +0 -0
  672. /package/dist/atomic/{p-723f76a1.entry.js.map → p-82cd6398.entry.js.map} +0 -0
  673. /package/dist/atomic/{p-fdcd187d.entry.js.map → p-851b9735.entry.js.map} +0 -0
  674. /package/dist/atomic/{p-f6a275b0.entry.js.map → p-874f0a4c.entry.js.map} +0 -0
  675. /package/dist/atomic/{p-373448df.entry.js.map → p-8b0cf1d4.entry.js.map} +0 -0
  676. /package/dist/atomic/{p-36112c34.entry.js.map → p-8b0d881e.entry.js.map} +0 -0
  677. /package/dist/atomic/{p-ee957926.entry.js.map → p-8d5228da.entry.js.map} +0 -0
  678. /package/dist/atomic/{p-c25f1437.entry.js.map → p-955092ed.entry.js.map} +0 -0
  679. /package/dist/atomic/{p-47ab6c9f.entry.js.map → p-99d4c4bf.entry.js.map} +0 -0
  680. /package/dist/atomic/{p-edede7d1.entry.js.map → p-9aad555a.entry.js.map} +0 -0
  681. /package/dist/atomic/{p-2250f505.js.map → p-9ae68e86.js.map} +0 -0
  682. /package/dist/atomic/{p-00a6ab8c.entry.js.map → p-a0ebbbdf.entry.js.map} +0 -0
  683. /package/dist/atomic/{p-7fd5b6ac.entry.js.map → p-a1798150.entry.js.map} +0 -0
  684. /package/dist/atomic/{p-9239be63.entry.js.map → p-a54f3f24.entry.js.map} +0 -0
  685. /package/dist/atomic/{p-24fd7df6.entry.js.map → p-a6dde0f6.entry.js.map} +0 -0
  686. /package/dist/atomic/{p-a1e5f767.entry.js.map → p-a78cbb80.entry.js.map} +0 -0
  687. /package/dist/atomic/{p-59b15bd6.entry.js.map → p-ae69f519.entry.js.map} +0 -0
  688. /package/dist/atomic/{p-98dd6df1.entry.js.map → p-b06de6f8.entry.js.map} +0 -0
  689. /package/dist/atomic/{p-fdd0aa42.entry.js.map → p-b1b583a0.entry.js.map} +0 -0
  690. /package/dist/atomic/{p-3c9289b5.js.map → p-b29d121c.js.map} +0 -0
  691. /package/dist/atomic/{p-cb3fd0f4.entry.js.map → p-b84108f3.entry.js.map} +0 -0
  692. /package/dist/atomic/{p-fb1a1e2e.entry.js.map → p-b85c2c46.entry.js.map} +0 -0
  693. /package/dist/atomic/{p-9260dd7d.entry.js.map → p-b9eeac20.entry.js.map} +0 -0
  694. /package/dist/atomic/{p-b2b9e83f.entry.js.map → p-bc43df67.entry.js.map} +0 -0
  695. /package/dist/atomic/{p-93601dc0.entry.js.map → p-bd01acd5.entry.js.map} +0 -0
  696. /package/dist/atomic/{p-416d088e.entry.js.map → p-be011bd1.entry.js.map} +0 -0
  697. /package/dist/atomic/{p-4f4c9a03.entry.js.map → p-c2a5dac0.entry.js.map} +0 -0
  698. /package/dist/atomic/{p-93f1d551.entry.js.map → p-c5164dbf.entry.js.map} +0 -0
  699. /package/dist/atomic/{p-3622ed6c.js.map → p-c619df9b.js.map} +0 -0
  700. /package/dist/atomic/{p-1bbaf206.entry.js.map → p-c8190eb9.entry.js.map} +0 -0
  701. /package/dist/atomic/{p-5ca21deb.js.map → p-ca37969c.js.map} +0 -0
  702. /package/dist/atomic/{p-7cced247.entry.js.map → p-d0ab0125.entry.js.map} +0 -0
  703. /package/dist/atomic/{p-2fb49fe8.entry.js.map → p-d8caa4d8.entry.js.map} +0 -0
  704. /package/dist/atomic/{p-62e85c20.entry.js.map → p-da87ef51.entry.js.map} +0 -0
  705. /package/dist/atomic/{p-367ec37d.entry.js.map → p-db2d92c5.entry.js.map} +0 -0
  706. /package/dist/atomic/{p-dbf0c5a3.entry.js.map → p-db3b11ca.entry.js.map} +0 -0
  707. /package/dist/atomic/{p-20b33c18.entry.js.map → p-dd24c66a.entry.js.map} +0 -0
  708. /package/dist/atomic/{p-0f39889d.entry.js.map → p-dea22a8d.entry.js.map} +0 -0
  709. /package/dist/atomic/{p-bbfe727a.entry.js.map → p-df8d38ca.entry.js.map} +0 -0
  710. /package/dist/atomic/{p-f9608731.entry.js.map → p-e276c7e0.entry.js.map} +0 -0
  711. /package/dist/atomic/{p-ce5b896e.entry.js.map → p-e455330c.entry.js.map} +0 -0
  712. /package/dist/atomic/{p-59f043a0.entry.js.map → p-e49ad083.entry.js.map} +0 -0
  713. /package/dist/atomic/{p-30c09377.entry.js.map → p-e6871a3f.entry.js.map} +0 -0
  714. /package/dist/atomic/{p-c9f1790d.entry.js.map → p-e6dc9de7.entry.js.map} +0 -0
  715. /package/dist/atomic/{p-331ad989.entry.js.map → p-ed413091.entry.js.map} +0 -0
  716. /package/dist/atomic/{p-3549a469.entry.js.map → p-f0c657f4.entry.js.map} +0 -0
  717. /package/dist/atomic/{p-f936f55e.entry.js.map → p-f1241140.entry.js.map} +0 -0
  718. /package/dist/atomic/{p-c2b4b401.entry.js.map → p-f4818e53.entry.js.map} +0 -0
  719. /package/dist/atomic/{p-dd35e7ad.entry.js.map → p-f65ca329.entry.js.map} +0 -0
  720. /package/dist/atomic/{p-6f34dd3a.entry.js.map → p-f800678c.entry.js.map} +0 -0
  721. /package/dist/atomic/{p-e7a25b00.entry.js.map → p-fb517fba.entry.js.map} +0 -0
  722. /package/dist/atomic/{p-97829295.entry.js.map → p-fc71835d.entry.js.map} +0 -0
  723. /package/dist/atomic/{p-a5f66ecd.entry.js.map → p-fd1ef9e3.entry.js.map} +0 -0
@@ -13,19 +13,24 @@ export const getPartialSearchBoxSuggestionElement = (suggestion, i18n) => {
13
13
  };
14
14
  export const renderQuerySuggestion = ({ icon, hasQuery, suggestion, hasMultipleKindOfSuggestions, }) => {
15
15
  const template = html `
16
- <div part="query-suggestion-content" class="flex items-center">${hasMultipleKindOfSuggestions
16
+ <div part="query-suggestion-content" class="flex items-center">
17
+ ${hasMultipleKindOfSuggestions
17
18
  ? html `<atomic-icon
18
- part="query-suggestion-icon"
19
- icon=${icon}
20
- class="mr-2 h-4 w-4 shrink-0"
21
- ></atomic-icon>`
22
- : nothing}${hasQuery
19
+ part="query-suggestion-icon"
20
+ icon=${icon}
21
+ class="mr-2 h-4 w-4 shrink-0"
22
+ ></atomic-icon>`
23
+ : nothing}
24
+ ${hasQuery
23
25
  ? html `<span
24
- part="query-suggestion-text"
25
- class="line-clamp-2 break-all"
26
- .innerHTML=${suggestion.highlightedValue}
27
- ></span>`
28
- : html `<span part="query-suggestion-text" class="line-clamp-2 break-all">${suggestion.rawValue}</span>`}</div>
26
+ part="query-suggestion-text"
27
+ class="line-clamp-2 break-all"
28
+ .innerHTML=${suggestion.highlightedValue}
29
+ ></span>`
30
+ : html `<span part="query-suggestion-text" class="line-clamp-2 break-all"
31
+ >${suggestion.rawValue}</span
32
+ >`}
33
+ </div>
29
34
  `;
30
35
  const container = document.createElement('div');
31
36
  render(template, container);
@@ -0,0 +1,31 @@
1
+ import { augmentAnalyticsWithAtomicVersion, augmentWithExternalMiddleware, getNextAnalyticsConfig, } from '../../common/interface/analytics-config';
2
+ export function getAnalyticsConfig(searchEngineConfig, enabled) {
3
+ switch (searchEngineConfig.analytics?.analyticsMode) {
4
+ case 'next':
5
+ return getNextAnalyticsConfig(searchEngineConfig, enabled);
6
+ default:
7
+ return getLegacyAnalyticsConfig(searchEngineConfig, enabled);
8
+ }
9
+ }
10
+ function getLegacyAnalyticsConfig(searchEngineConfig, enabled) {
11
+ const analyticsClientMiddleware = (event, payload) => augmentAnalytics(event, payload, searchEngineConfig);
12
+ const defaultConfiguration = {
13
+ analyticsClientMiddleware,
14
+ enabled,
15
+ documentLocation: document.location.href,
16
+ ...(document.referrer && { originLevel3: document.referrer }),
17
+ };
18
+ if (searchEngineConfig.analytics) {
19
+ return {
20
+ ...defaultConfiguration,
21
+ ...searchEngineConfig.analytics,
22
+ analyticsClientMiddleware,
23
+ };
24
+ }
25
+ return defaultConfiguration;
26
+ }
27
+ function augmentAnalytics(event, payload, config) {
28
+ let result = augmentWithExternalMiddleware(event, payload, config);
29
+ result = augmentAnalyticsWithAtomicVersion(result);
30
+ return result;
31
+ }
@@ -0,0 +1,258 @@
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 { VERSION as HEADLESS_VERSION } from '@coveo/headless'; // TODO - KIT-4886 import from @coveo/headless/insight
8
+ import { buildInsightEngine, buildResultsPerPage as buildInsightResultsPerPage, loadFieldActions, } from '@coveo/headless/insight';
9
+ import { provide } from '@lit/context';
10
+ import i18next from 'i18next';
11
+ import { css, html, LitElement } from 'lit';
12
+ import { customElement, property, state } from 'lit/decorators.js';
13
+ import { InterfaceController, } from "../../common/interface/interface-controller";
14
+ import { bindingsContext } from "../../context/bindings-context";
15
+ import { booleanConverter } from "../../../converters/boolean-converter";
16
+ import { errorGuard } from "../../../decorators/error-guard";
17
+ import { watch } from "../../../decorators/watch";
18
+ import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
19
+ import { ChildrenUpdateCompleteMixin } from "../../../mixins/children-update-complete-mixin";
20
+ import { markParentAsReady } from "../../../utils/init-queue";
21
+ import { getAnalyticsConfig } from './analytics-config.js';
22
+ import { createInsightStore } from './store.js';
23
+ const FirstInsightRequestExecutedFlag = 'firstInsightRequestExecuted';
24
+ /**
25
+ * The `atomic-insight-interface` component is the parent to all other atomic insight components in an insight page.
26
+ * It handles the headless insight engine and localization configurations.
27
+ *
28
+ * @slot default - The default slot where you can add child components to the interface.
29
+ * @slot full-search - A slot for components that should be positioned absolutely in the top-right corner.
30
+ */
31
+ let AtomicInsightInterface = class AtomicInsightInterface extends ChildrenUpdateCompleteMixin(LitElement) {
32
+ constructor() {
33
+ super();
34
+ this.bindings = {};
35
+ this.initialized = false;
36
+ this.interfaceController = new InterfaceController(this, 'CoveoAtomic', HEADLESS_VERSION);
37
+ // TODO - KIT-4994: add disableAnalytics prop
38
+ // TODO - KIT-4994: deprecate in favor of disableAnalytics
39
+ // TODO - KIT-4990: remove
40
+ /**
41
+ * Whether analytics should be enabled.
42
+ */
43
+ this.analytics = true;
44
+ /**
45
+ * The service insight interface language.
46
+ */
47
+ this.language = 'en';
48
+ /**
49
+ * The language assets path. By default, this will be a relative URL pointing to `./lang`.
50
+ *
51
+ * Example: "/mypublicpath/languages"
52
+ *
53
+ */
54
+ this.languageAssetsPath = './lang';
55
+ /**
56
+ * The icon assets path. By default, this will be a relative URL pointing to `./assets`.
57
+ *
58
+ * Example: "/mypublicpath/icons"
59
+ *
60
+ */
61
+ this.iconAssetsPath = './assets';
62
+ /**
63
+ * A list of non-default fields to include in the query results.
64
+ *
65
+ * Specify the property as an array using a JSON string representation:
66
+ * ```html
67
+ * <atomic-insight-interface fields-to-include='["fieldA", "fieldB"]'></atomic-insight-interface>
68
+ * ```
69
+ */
70
+ this.fieldsToInclude = [];
71
+ /**
72
+ * The number of results per page. By default, this is set to `5`.
73
+ */
74
+ this.resultsPerPage = 5;
75
+ this.handleInitialization = (event) => {
76
+ this.interfaceController.onComponentInitializing(event);
77
+ };
78
+ this.store = createInsightStore();
79
+ const { promise, resolve } = Promise.withResolvers();
80
+ this.i18Initialized = promise;
81
+ this.i18n = i18next.createInstance(undefined, resolve);
82
+ }
83
+ connectedCallback() {
84
+ super.connectedCallback();
85
+ this.store.setLoadingFlag(FirstInsightRequestExecutedFlag);
86
+ this.addEventListener('atomic/initializeComponent', this.handleInitialization);
87
+ }
88
+ /**
89
+ * Initializes the connection with the headless insight engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.
90
+ */
91
+ initialize(options) {
92
+ return this.internalInitialization(() => this.initEngine(options));
93
+ }
94
+ /**
95
+ * Initializes the connection with an already preconfigured headless insight engine.
96
+ */
97
+ initializeWithInsightEngine(engine) {
98
+ return this.internalInitialization(() => {
99
+ this.engine = engine;
100
+ });
101
+ }
102
+ /**
103
+ * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.
104
+ */
105
+ async executeFirstSearch() {
106
+ if (!this.interfaceController.engineIsCreated(this.engine)) {
107
+ return;
108
+ }
109
+ if (!this.initialized) {
110
+ console.error('You have to wait until the "initialize" promise is fulfilled before executing a search.', this);
111
+ return;
112
+ }
113
+ this.engine.executeFirstSearch();
114
+ }
115
+ // TODO - KIT-4994 / KIT-4990: adjust
116
+ toggleAnalytics() {
117
+ this.interfaceController.onAnalyticsChange();
118
+ }
119
+ updateIconAssetsPath() {
120
+ this.store.state.iconAssetsPath = this.iconAssetsPath;
121
+ }
122
+ updateLanguage() {
123
+ return this.interfaceController.onLanguageChange();
124
+ }
125
+ disconnectedCallback() {
126
+ super.disconnectedCallback();
127
+ this.removeEventListener('atomic/initializeComponent', this.handleInitialization);
128
+ }
129
+ render() {
130
+ return html `
131
+ <slot name="full-search"></slot>
132
+ <slot></slot>
133
+ `;
134
+ }
135
+ getBindings() {
136
+ return {
137
+ engine: this.engine,
138
+ i18n: this.i18n,
139
+ store: this.store,
140
+ interfaceElement: this,
141
+ // TODO - KIT-4839: Remove once atomic-insight-layout migration is complete.
142
+ createStyleElement: () => {
143
+ const styleTag = document.createElement('style');
144
+ return styleTag;
145
+ },
146
+ // TODO - KIT-4839: Remove once atomic-insight-layout migration is complete.
147
+ createScriptElement: () => {
148
+ const scriptTag = document.createElement('script');
149
+ return scriptTag;
150
+ },
151
+ };
152
+ }
153
+ // TODO - KIT-4994 / KIT-4990: adjust
154
+ initEngine(options) {
155
+ const analyticsConfig = getAnalyticsConfig(options, this.analytics);
156
+ try {
157
+ this.engine = buildInsightEngine({
158
+ configuration: {
159
+ ...options,
160
+ analytics: analyticsConfig,
161
+ },
162
+ loggerOptions: {
163
+ level: this.logLevel,
164
+ },
165
+ });
166
+ }
167
+ catch (error) {
168
+ this.error = error;
169
+ throw error;
170
+ }
171
+ }
172
+ initResultsPerPage() {
173
+ if (!this.interfaceController.engineIsCreated(this.engine)) {
174
+ return;
175
+ }
176
+ buildInsightResultsPerPage(this.bindings.engine, {
177
+ initialState: { numberOfResults: this.resultsPerPage },
178
+ });
179
+ }
180
+ async internalInitialization(initEngine) {
181
+ await Promise.all([
182
+ this.interfaceController.onInitialization(initEngine),
183
+ this.i18Initialized,
184
+ ]);
185
+ this.updateLanguage();
186
+ this.bindings = this.getBindings();
187
+ markParentAsReady(this);
188
+ this.initResultsPerPage();
189
+ this.registerFieldsToInclude();
190
+ this.store.unsetLoadingFlag(FirstInsightRequestExecutedFlag);
191
+ await this.getUpdateComplete();
192
+ this.initialized = true;
193
+ }
194
+ // TODO - (v4) KIT-5008: Make private
195
+ registerFieldsToInclude() {
196
+ if (this.fieldsToInclude.length) {
197
+ this.engine.dispatch(loadFieldActions(this.engine).registerFieldsToInclude([
198
+ ...this.fieldsToInclude,
199
+ ]));
200
+ }
201
+ }
202
+ };
203
+ AtomicInsightInterface.styles = css`:host{position:relative}slot[name=full-search]{display:block;position:absolute;right:0;top:0}`;
204
+ __decorate([
205
+ state(),
206
+ provide({ context: bindingsContext })
207
+ ], AtomicInsightInterface.prototype, "bindings", void 0);
208
+ __decorate([
209
+ state()
210
+ ], AtomicInsightInterface.prototype, "error", void 0);
211
+ __decorate([
212
+ property({ type: Object })
213
+ ], AtomicInsightInterface.prototype, "engine", void 0);
214
+ __decorate([
215
+ property({
216
+ type: Boolean,
217
+ converter: booleanConverter,
218
+ reflect: true,
219
+ })
220
+ ], AtomicInsightInterface.prototype, "analytics", void 0);
221
+ __decorate([
222
+ property({ type: Object })
223
+ ], AtomicInsightInterface.prototype, "i18n", void 0);
224
+ __decorate([
225
+ property({ type: String, attribute: 'log-level', reflect: true })
226
+ ], AtomicInsightInterface.prototype, "logLevel", void 0);
227
+ __decorate([
228
+ property({ type: String, attribute: 'language', reflect: true })
229
+ ], AtomicInsightInterface.prototype, "language", void 0);
230
+ __decorate([
231
+ property({ type: String, attribute: 'language-assets-path', reflect: true })
232
+ ], AtomicInsightInterface.prototype, "languageAssetsPath", void 0);
233
+ __decorate([
234
+ property({ type: String, attribute: 'icon-assets-path', reflect: true })
235
+ ], AtomicInsightInterface.prototype, "iconAssetsPath", void 0);
236
+ __decorate([
237
+ property({ type: Array, attribute: 'fields-to-include' })
238
+ ], AtomicInsightInterface.prototype, "fieldsToInclude", void 0);
239
+ __decorate([
240
+ property({ type: Number, attribute: 'results-per-page', reflect: true })
241
+ ], AtomicInsightInterface.prototype, "resultsPerPage", void 0);
242
+ __decorate([
243
+ watch('analytics')
244
+ ], AtomicInsightInterface.prototype, "toggleAnalytics", null);
245
+ __decorate([
246
+ watch('iconAssetsPath')
247
+ ], AtomicInsightInterface.prototype, "updateIconAssetsPath", null);
248
+ __decorate([
249
+ watch('language')
250
+ ], AtomicInsightInterface.prototype, "updateLanguage", null);
251
+ __decorate([
252
+ errorGuard()
253
+ ], AtomicInsightInterface.prototype, "render", null);
254
+ AtomicInsightInterface = __decorate([
255
+ customElement('atomic-insight-interface'),
256
+ withTailwindStyles
257
+ ], AtomicInsightInterface);
258
+ export { AtomicInsightInterface };
@@ -1 +1,2 @@
1
- export {};
1
+ // Auto-generated file
2
+ export { AtomicInsightInterface } from './atomic-insight-interface/atomic-insight-interface.js';
@@ -1,2 +1,4 @@
1
1
  // Auto-generated file
2
- export default {};
2
+ export default {
3
+ 'atomic-insight-interface': async () => await import('./atomic-insight-interface/atomic-insight-interface.js'),
4
+ };
@@ -3,7 +3,6 @@ export { AtomicPager } from './atomic-pager/atomic-pager.js';
3
3
  export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
4
4
  export { AtomicRelevanceInspector } from './atomic-relevance-inspector/atomic-relevance-inspector.js';
5
5
  export { AtomicResultsPerPage } from './atomic-results-per-page/atomic-results-per-page.js';
6
- export { AtomicSearchBoxQuerySuggestions } from './atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js';
7
6
  export { AtomicSearchBoxRecentQueries } from './atomic-search-box-recent-queries/atomic-search-box-recent-queries.js';
8
7
  export { AtomicSearchInterface } from './atomic-search-interface/atomic-search-interface.js';
9
8
  export { AtomicSearchLayout } from './atomic-search-layout/atomic-search-layout.js';
@@ -4,7 +4,6 @@ export default {
4
4
  'atomic-query-summary': async () => await import('./atomic-query-summary/atomic-query-summary.js'),
5
5
  'atomic-relevance-inspector': async () => await import('./atomic-relevance-inspector/atomic-relevance-inspector.js'),
6
6
  'atomic-results-per-page': async () => await import('./atomic-results-per-page/atomic-results-per-page.js'),
7
- 'atomic-search-box-query-suggestions': async () => await import('./atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js'),
8
7
  'atomic-search-box-recent-queries': async () => await import('./atomic-search-box-recent-queries/atomic-search-box-recent-queries.js'),
9
8
  'atomic-search-interface': async () => await import('./atomic-search-interface/atomic-search-interface.js'),
10
9
  'atomic-search-layout': async () => await import('./atomic-search-layout/atomic-search-layout.js'),
@@ -42,11 +42,11 @@ const FacetNumberInput = /*@__PURE__*/ proxyCustomElement(class FacetNumberInput
42
42
  const inputClasses = 'p-2.5 input-primary placeholder-neutral-dark min-w-0 mr-1';
43
43
  const labelClasses = 'text-neutral-dark text-sm';
44
44
  const step = this.type === 'integer' ? '1' : 'any';
45
- return (h("form", { key: '3afc8c27aad7fc2f3f280a8e5305dfdbc5291f74', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
45
+ return (h("form", { key: '50b7dee0d6dc358f1ab54f485605f674f4b4f086', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
46
46
  e.preventDefault();
47
47
  this.apply();
48
48
  return false;
49
- } }, h("label", { key: '9749444397b017e575f1cbc598ef8d4e440dc8b0', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '94b1e3e64ec6ef14aff52ecf8e18c52bc987c7a7', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: '89da4fb4747fb9d0cba5251dd3972677867301de', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: '17813e5183986382376d765716ed60bff74de98c', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: 'a98a7d0b356bb5c3eeec2512d96fd5bedc3605a6', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
49
+ } }, h("label", { key: '1e27929ca1ea2ffe616377bba78c0394028ff3a2', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: 'a179aa5b898e60b38d0eb15977f23cdcf9f7c31d', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: 'd77ef3eaf1ad74999e5793e072037ffc4d35cd89', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: '147793a1619dcb567febe7ed1583642e68edcf2b', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: '283c333fd999fb87f0080e45182a1c0e5fd7832d', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
50
50
  }
51
51
  static get style() { return AtomicFacetNumberInputStyle0; }
52
52
  }, [0, "atomic-facet-number-input", {
@@ -3,7 +3,7 @@ function getWindow() {
3
3
  }
4
4
  export function getAtomicEnvironment(headlessVersion) {
5
5
  return {
6
- version: "3.34.0-pre.60b218fb89",
6
+ version: "3.34.0-pre.61b8e221e3",
7
7
  headlessVersion,
8
8
  };
9
9
  }
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;MCHa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/commerce/product-template-component-utils/stencil-product-template-decorators.tsx","src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/decorators/commerce/product-template-decorators.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;MCHa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/commerce/product-template-component-utils/stencil-product-template-decorators.tsx","src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/decorators/commerce/product-template-decorators.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { u as containsVisualElement } from './utils.js';
1
+ import { q as containsVisualElement } from './utils.js';
2
2
 
3
3
  function hideEmptySection(element) {
4
4
  element.style.display = containsVisualElement(element) ? '' : 'none';
@@ -36,6 +36,6 @@ function updateBreakpoints(element) {
36
36
  replateStyleContent(element, layout.mobileBreakpoint);
37
37
  }
38
38
 
39
- export { DEFAULT_MOBILE_BREAKPOINT as D, updateBreakpoints as u };
39
+ export { updateBreakpoints as u };
40
40
 
41
41
  //# sourceMappingURL=replace-breakpoint-utils.js.map
@@ -1 +1 @@
1
- {"file":"replace-breakpoint-utils.js","mappings":";;MAEa,yBAAyB,GAAG,SAAS;AAElD,SAAS,iBAAiB,CAAC,KAAa,EAAE,gBAAwB;IAChE,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,iBAAiB,yBAAyB,mBAAmB,yBAAyB,KAAK,EAC3F,GAAG,CACJ,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,gBAAgB,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAoB,EAAE,gBAAwB;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAC3D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvC,OAAO;KACR;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC7C,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAoB,EAAE,UAAkB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,QAAQ,CAAC,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAY,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;SAElD,iBAAiB,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAyB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE;QAC7B,OAAO;KACR;IAED,IAAI,MAAM,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;QACzD,OAAO;KACR;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/utils/replace-breakpoint-utils.ts"],"sourcesContent":["import {closest} from './dom-utils';\n\nexport const DEFAULT_MOBILE_BREAKPOINT = '1024px';\n\nfunction replaceMediaQuery(style: string, mobileBreakpoint: string) {\n const regex = new RegExp(\n `\\\\(min-width: ${DEFAULT_MOBILE_BREAKPOINT}\\\\)|\\\\(width >= ${DEFAULT_MOBILE_BREAKPOINT}\\\\)`,\n 'g'\n );\n return style.replace(regex, `(width >= ${mobileBreakpoint})`);\n}\n\nfunction replaceStyleSheet(element: HTMLElement, mobileBreakpoint: string) {\n const stylesheets = element.shadowRoot?.adoptedStyleSheets;\n if (!stylesheets || !stylesheets.length) {\n return;\n }\n\n const stylesheet = stylesheets[0];\n const style = Object.values(stylesheet.cssRules)\n .map((rule) => rule.cssText)\n .join('');\n stylesheet.replaceSync(replaceMediaQuery(style, mobileBreakpoint));\n}\n\nfunction replateStyleContent(element: HTMLElement, breakpoint: string) {\n const styleTag = element.shadowRoot?.querySelector('style');\n if (!styleTag) {\n return;\n }\n\n styleTag.textContent = replaceMediaQuery(styleTag.textContent!, breakpoint);\n}\n\nconst layouts = ['atomic-search-layout', 'atomic-insight-layout'];\ntype LayoutElement = HTMLElement & {mobileBreakpoint: string};\nexport function updateBreakpoints(element: HTMLElement) {\n const layout: LayoutElement | null = closest(element, layouts.join(', '));\n\n if (!layout?.mobileBreakpoint) {\n return;\n }\n\n if (layout.mobileBreakpoint === DEFAULT_MOBILE_BREAKPOINT) {\n return;\n }\n\n replaceStyleSheet(element, layout.mobileBreakpoint);\n replateStyleContent(element, layout.mobileBreakpoint);\n}\n"],"version":3}
1
+ {"file":"replace-breakpoint-utils.js","mappings":";;AAEO,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAElD,SAAS,iBAAiB,CAAC,KAAa,EAAE,gBAAwB;IAChE,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,iBAAiB,yBAAyB,mBAAmB,yBAAyB,KAAK,EAC3F,GAAG,CACJ,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,gBAAgB,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAoB,EAAE,gBAAwB;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAC3D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvC,OAAO;KACR;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC7C,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAoB,EAAE,UAAkB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,QAAQ,CAAC,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAY,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;SAElD,iBAAiB,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAyB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE;QAC7B,OAAO;KACR;IAED,IAAI,MAAM,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;QACzD,OAAO;KACR;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/utils/replace-breakpoint-utils.ts"],"sourcesContent":["import {closest} from './dom-utils';\n\nexport const DEFAULT_MOBILE_BREAKPOINT = '1024px';\n\nfunction replaceMediaQuery(style: string, mobileBreakpoint: string) {\n const regex = new RegExp(\n `\\\\(min-width: ${DEFAULT_MOBILE_BREAKPOINT}\\\\)|\\\\(width >= ${DEFAULT_MOBILE_BREAKPOINT}\\\\)`,\n 'g'\n );\n return style.replace(regex, `(width >= ${mobileBreakpoint})`);\n}\n\nfunction replaceStyleSheet(element: HTMLElement, mobileBreakpoint: string) {\n const stylesheets = element.shadowRoot?.adoptedStyleSheets;\n if (!stylesheets || !stylesheets.length) {\n return;\n }\n\n const stylesheet = stylesheets[0];\n const style = Object.values(stylesheet.cssRules)\n .map((rule) => rule.cssText)\n .join('');\n stylesheet.replaceSync(replaceMediaQuery(style, mobileBreakpoint));\n}\n\nfunction replateStyleContent(element: HTMLElement, breakpoint: string) {\n const styleTag = element.shadowRoot?.querySelector('style');\n if (!styleTag) {\n return;\n }\n\n styleTag.textContent = replaceMediaQuery(styleTag.textContent!, breakpoint);\n}\n\nconst layouts = ['atomic-search-layout', 'atomic-insight-layout'];\ntype LayoutElement = HTMLElement & {mobileBreakpoint: string};\nexport function updateBreakpoints(element: HTMLElement) {\n const layout: LayoutElement | null = closest(element, layouts.join(', '));\n\n if (!layout?.mobileBreakpoint) {\n return;\n }\n\n if (layout.mobileBreakpoint === DEFAULT_MOBILE_BREAKPOINT) {\n return;\n }\n\n replaceStyleSheet(element, layout.mobileBreakpoint);\n replateStyleContent(element, layout.mobileBreakpoint);\n}\n"],"version":3}
@@ -0,0 +1,33 @@
1
+ import { h } from '@stencil/core/internal/client';
2
+ import { e as encodeForDomAttribute } from './string-utils.js';
3
+
4
+ const getPartialSearchBoxSuggestionElement = (suggestion, i18n) => {
5
+ return {
6
+ part: 'query-suggestion-item',
7
+ key: `qs-${encodeForDomAttribute(suggestion.rawValue)}`,
8
+ query: suggestion.rawValue,
9
+ ariaLabel: i18n.t('query-suggestion-label', {
10
+ query: suggestion.rawValue,
11
+ interpolation: { escapeValue: false },
12
+ }),
13
+ };
14
+ };
15
+ const QuerySuggestionContainer = (_, children) => {
16
+ return (h("div", { part: "query-suggestion-content", class: "flex items-center" }, children));
17
+ };
18
+ const QuerySuggestionIcon = ({ icon, hasSuggestion }) => {
19
+ if (!hasSuggestion) {
20
+ return;
21
+ }
22
+ return (h("atomic-icon", { part: "query-suggestion-icon", icon: icon, class: "mr-2 h-4 w-4 shrink-0" }));
23
+ };
24
+ const QuerySuggestionText = ({ suggestion, hasQuery }) => {
25
+ if (hasQuery) {
26
+ return (h("span", { part: "query-suggestion-text", class: "line-clamp-2 break-all", innerHTML: suggestion.highlightedValue }));
27
+ }
28
+ return (h("span", { part: "query-suggestion-text", class: "line-clamp-2 break-all" }, suggestion.rawValue));
29
+ };
30
+
31
+ export { QuerySuggestionContainer as Q, QuerySuggestionIcon as a, QuerySuggestionText as b, getPartialSearchBoxSuggestionElement as g };
32
+
33
+ //# sourceMappingURL=stencil-query-suggestions.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-query-suggestions.js","mappings":";;;MAUa,oCAAoC,GAAG,CAClD,UAAsB,EACtB,IAAU;IAEV,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,MAAM,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACvD,KAAK,EAAE,UAAU,CAAC,QAAQ;QAC1B,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE;YAC1C,KAAK,EAAE,UAAU,CAAC,QAAQ;YAC1B,aAAa,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC;SACpC,CAAC;KACH,CAAC;AACJ,EAAE;MAEW,wBAAwB,GAAwB,CAAC,CAAC,EAAE,QAAQ;IACvE,QACE,WAAK,IAAI,EAAC,0BAA0B,EAAC,KAAK,EAAC,mBAAmB,IAC3D,QAAQ,CACL,EACN;AACJ,EAAE;MAOW,mBAAmB,GAE5B,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC;IACxB,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IAED,QACE,mBACE,IAAI,EAAC,uBAAuB,EAC5B,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,uBAAuB,GAChB,EACf;AACJ,EAAE;MAOW,mBAAmB,GAE5B,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAC;IACzB,IAAI,QAAQ,EAAE;QACZ,QACE,YACE,IAAI,EAAC,uBAAuB,EAC5B,KAAK,EAAC,wBAAwB,EAC9B,SAAS,EAAE,UAAU,CAAC,gBAAgB,GAChC,EACR;KACH;IAED,QACE,YAAM,IAAI,EAAC,uBAAuB,EAAC,KAAK,EAAC,wBAAwB,IAC9D,UAAU,CAAC,QAAQ,CACf,EACP;AACJ;;;;","names":[],"sources":["src/components/common/suggestions/stencil-query-suggestions.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils.js';\nimport {SearchBoxSuggestionElement} from './suggestions-types.js';\n\ninterface Suggestion {\n highlightedValue: string;\n rawValue: string;\n}\n\nexport const getPartialSearchBoxSuggestionElement = (\n suggestion: Suggestion,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'query-suggestion-item',\n key: `qs-${encodeForDomAttribute(suggestion.rawValue)}`,\n query: suggestion.rawValue,\n ariaLabel: i18n.t('query-suggestion-label', {\n query: suggestion.rawValue,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const QuerySuggestionContainer: FunctionalComponent = (_, children) => {\n return (\n <div part=\"query-suggestion-content\" class=\"flex items-center\">\n {children}\n </div>\n );\n};\n\ninterface QuerySuggestionIconProps {\n icon: string;\n hasSuggestion: boolean;\n}\n\nexport const QuerySuggestionIcon: FunctionalComponent<\n QuerySuggestionIconProps\n> = ({icon, hasSuggestion}) => {\n if (!hasSuggestion) {\n return;\n }\n\n return (\n <atomic-icon\n part=\"query-suggestion-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface QuerySuggestionTextProps {\n suggestion: Suggestion;\n hasQuery: boolean;\n}\n\nexport const QuerySuggestionText: FunctionalComponent<\n QuerySuggestionTextProps\n> = ({suggestion, hasQuery}) => {\n if (hasQuery) {\n return (\n <span\n part=\"query-suggestion-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={suggestion.highlightedValue}\n ></span>\n );\n }\n\n return (\n <span part=\"query-suggestion-text\" class=\"line-clamp-2 break-all\">\n {suggestion.rawValue}\n </span>\n );\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { q as isInDocument } from './utils.js';
1
+ import './purify.js';
2
2
 
3
3
  const isRefineModalFacet = 'is-refine-modal';
4
4
  function createAppLoadedListener(store, callback) {
@@ -18,19 +18,6 @@ function createBaseStore(initialState) {
18
18
  },
19
19
  };
20
20
  }
21
- function registerFacet(store, facetType, data) {
22
- const clearExistingFacetElement = (facetType, facetId) => {
23
- if (store.state[facetType][facetId]) {
24
- store.state.facetElements = store.state.facetElements.filter((facetElement) => facetElement.getAttribute('facet-id') !== facetId);
25
- }
26
- };
27
- if (data.element.getAttribute(isRefineModalFacet) !== null) {
28
- return;
29
- }
30
- clearExistingFacetElement(facetType, data.facetId);
31
- store.state.facetElements.push(data.element);
32
- store.state[facetType][data.facetId] = data;
33
- }
34
21
  function setLoadingFlag(store, loadingFlag) {
35
22
  const flags = store.state.loadingFlags;
36
23
  store.state.loadingFlags = flags.concat(loadingFlag);
@@ -39,21 +26,6 @@ function unsetLoadingFlag(store, loadingFlag) {
39
26
  const flags = store.state.loadingFlags;
40
27
  store.state.loadingFlags = flags.filter((value) => value !== loadingFlag);
41
28
  }
42
- function getFacetElements(store) {
43
- return store.state.facetElements.filter((element) => isInDocument(element));
44
- }
45
- function waitUntilAppLoaded(store, callback) {
46
- if (!store.state.loadingFlags.length) {
47
- callback();
48
- }
49
- else {
50
- store.onChange('loadingFlags', (flags) => {
51
- if (!flags.length) {
52
- callback();
53
- }
54
- });
55
- }
56
- }
57
29
  function createStore(initialState) {
58
30
  const listeners = new Map();
59
31
  const state = new Proxy(initialState, {
@@ -96,6 +68,6 @@ function createStore(initialState) {
96
68
  };
97
69
  }
98
70
 
99
- export { createBaseStore as a, createAppLoadedListener as c, getFacetElements as g, isRefineModalFacet as i, registerFacet as r, setLoadingFlag as s, unsetLoadingFlag as u, waitUntilAppLoaded as w };
71
+ export { createBaseStore as a, createAppLoadedListener as c, isRefineModalFacet as i, setLoadingFlag as s, unsetLoadingFlag as u };
100
72
 
101
73
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"file":"store.js","mappings":";;MAUa,kBAAkB,GAAG,kBAAkB;SAWpC,uBAAuB,CACrC,KAA4C,EAC5C,QAAwC;IAExC,MAAM,iBAAiB,GAAG;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;QAC1D,QAAQ,CAAC,WAAW,CAAC,CAAC;KACvB,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC;AACtB,CAAC;SAEe,eAAe,CAAe,YAAe;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAmB,CAAC;IAE1D,OAAO;QACL,GAAG,KAAK;QAER,qBAAqB,CAAC,OAAsB;YAC1C,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;SACH;KACF,CAAC;AACJ,CAAC;SAEe,aAAa,CAC3B,KAA0B,EAC1B,SAAY,EACZ,IAAuD;IAEvD,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAE,OAAe;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE;YACnC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC1D,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,OAAO,CACpE,CAAC;SACH;KACF,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;QAC1D,OAAO;KACR;IAED,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC9C,CAAC;SAEe,cAAc,CAC5B,KAA4C,EAC5C,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACvC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvD,CAAC;SAEe,gBAAgB,CAC9B,KAA4C,EAC5C,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACvC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,WAAW,CAAC,CAAC;AAC5E,CAAC;SAEe,gBAAgB,CAAC,KAA0B;IACzD,OAAO,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC;SAEe,kBAAkB,CAChC,KAA4C,EAC5C,QAAoB;IAEpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE;QACpC,QAAQ,EAAE,CAAC;KACZ;SAAM;QACL,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACjB,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAyBD,SAAS,WAAW,CAClB,YAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE;QACpC,GAAG,CAAC,MAAM,EAAE,IAAY,EAAE,KAAK;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,QAAQ,KAAK,KAAK,EAAE;gBACrB,MAAkC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAElD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACvB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE;wBACrC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACX;iBACF;aACF;YACD,OAAO,IAAI,CAAC;SACb;KACF,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CACV,QAAkB;QAElB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KACxB,CAAC;IAEF,MAAM,GAAG,GAAG,CACV,QAAkB,EAClB,KAA0B;QAE1B,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,CACf,QAAkB,EAClB,QAAiD;QAEjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;SACpC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,QAAuC,CAAC,CAAC;QAEtE,OAAO;YACL,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC5B;SACF,CAAC;KACH,CAAC;IAEF,OAAO;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,QAAQ;KACT,CAAC;AACJ;;;;","names":[],"sources":["src/components/common/interface/store.ts"],"sourcesContent":["import type {DateFacetValue, NumericFacetValue} from '@coveo/headless';\nimport {isInDocument} from '../../../utils/utils';\nimport type {\n FacetInfo,\n FacetStore,\n FacetType,\n FacetValueFormat,\n} from '../facets/facet-common-store';\nimport type {AnyEngineType} from './bindings';\n\nexport const isRefineModalFacet = 'is-refine-modal';\n\nexport type BaseStore<T> = CommonStore<T> & {\n getUniqueIDFromEngine(engine: unknown): string | undefined;\n};\n\nexport interface ResultListInfo {\n focusOnNextNewResult(): void;\n focusOnFirstResultAfterNextSearch(): Promise<void>;\n}\n\nexport function createAppLoadedListener(\n store: CommonStore<{loadingFlags: string[]}>,\n callback: (isAppLoaded: boolean) => void\n) {\n const updateIsAppLoaded = () => {\n const isAppLoaded = store.state.loadingFlags.length === 0;\n callback(isAppLoaded);\n };\n\n store.onChange('loadingFlags', updateIsAppLoaded);\n updateIsAppLoaded();\n}\n\nexport function createBaseStore<T extends {}>(initialState: T): BaseStore<T> {\n const store = createStore(initialState) as CommonStore<T>;\n\n return {\n ...store,\n\n getUniqueIDFromEngine(_engine: AnyEngineType) {\n throw new Error(\n 'getUniqueIDFromEngine not implemented at the base store level.'\n );\n },\n };\n}\n\nexport function registerFacet<T extends FacetType, U extends string>(\n store: CommonStore<Facets>,\n facetType: T,\n data: Facets[T][U] & {facetId: U; element: HTMLElement}\n) {\n const clearExistingFacetElement = (facetType: FacetType, facetId: string) => {\n if (store.state[facetType][facetId]) {\n store.state.facetElements = store.state.facetElements.filter(\n (facetElement) => facetElement.getAttribute('facet-id') !== facetId\n );\n }\n };\n\n if (data.element.getAttribute(isRefineModalFacet) !== null) {\n return;\n }\n\n clearExistingFacetElement(facetType, data.facetId);\n store.state.facetElements.push(data.element);\n store.state[facetType][data.facetId] = data;\n}\n\nexport function setLoadingFlag(\n store: CommonStore<{loadingFlags: string[]}>,\n loadingFlag: string\n) {\n const flags = store.state.loadingFlags;\n store.state.loadingFlags = flags.concat(loadingFlag);\n}\n\nexport function unsetLoadingFlag(\n store: CommonStore<{loadingFlags: string[]}>,\n loadingFlag: string\n) {\n const flags = store.state.loadingFlags;\n store.state.loadingFlags = flags.filter((value) => value !== loadingFlag);\n}\n\nexport function getFacetElements(store: CommonStore<Facets>) {\n return store.state.facetElements.filter((element) => isInDocument(element));\n}\n\nexport function waitUntilAppLoaded(\n store: CommonStore<{loadingFlags: string[]}>,\n callback: () => void\n) {\n if (!store.state.loadingFlags.length) {\n callback();\n } else {\n store.onChange('loadingFlags', (flags) => {\n if (!flags.length) {\n callback();\n }\n });\n }\n}\n\ninterface CommonStore<StoreData> {\n state: StoreData;\n get: <PropName extends keyof StoreData>(\n propName: PropName\n ) => StoreData[PropName];\n set: <PropName extends keyof StoreData>(\n propName: PropName,\n value: StoreData[PropName]\n ) => void;\n onChange: <PropName extends keyof StoreData>(\n propName: PropName,\n cb: (newValue: StoreData[PropName]) => void\n ) => () => void;\n}\n\ninterface Facets {\n facets: FacetStore<FacetInfo>;\n numericFacets: FacetStore<FacetInfo & FacetValueFormat<NumericFacetValue>>;\n dateFacets: FacetStore<FacetInfo & FacetValueFormat<DateFacetValue>>;\n categoryFacets: FacetStore<FacetInfo>;\n facetElements: HTMLElement[];\n}\n\nfunction createStore<StoreData extends Record<string, unknown>>(\n initialState: StoreData\n): CommonStore<StoreData> {\n const listeners = new Map<\n keyof StoreData,\n Set<(newValue: unknown) => void>\n >();\n\n const state = new Proxy(initialState, {\n set(target, prop: string, value) {\n const oldValue = target[prop];\n if (oldValue !== value) {\n (target as Record<string, unknown>)[prop] = value;\n\n if (listeners.has(prop)) {\n for (const cb of listeners.get(prop)!) {\n cb(value);\n }\n }\n }\n return true;\n },\n });\n\n const get = <PropName extends keyof StoreData>(\n propName: PropName\n ): StoreData[PropName] => {\n return state[propName];\n };\n\n const set = <PropName extends keyof StoreData>(\n propName: PropName,\n value: StoreData[PropName]\n ): void => {\n state[propName] = value;\n };\n\n const onChange = <PropName extends keyof StoreData>(\n propName: PropName,\n callback: (newValue: StoreData[PropName]) => void\n ): (() => void) => {\n if (!listeners.has(propName)) {\n listeners.set(propName, new Set());\n }\n listeners.get(propName)!.add(callback as (newValue: unknown) => void);\n\n return () => {\n listeners.get(propName)!.delete(callback as (newValue: unknown) => void);\n if (listeners.get(propName)!.size === 0) {\n listeners.delete(propName);\n }\n };\n };\n\n return {\n state,\n get,\n set,\n onChange,\n };\n}\n"],"version":3}
1
+ {"file":"store.js","mappings":";;MAUa,kBAAkB,GAAG,kBAAkB;SAWpC,uBAAuB,CACrC,KAA4C,EAC5C,QAAwC;IAExC,MAAM,iBAAiB,GAAG;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;QAC1D,QAAQ,CAAC,WAAW,CAAC,CAAC;KACvB,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC;AACtB,CAAC;SAEe,eAAe,CAAe,YAAe;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAmB,CAAC;IAE1D,OAAO;QACL,GAAG,KAAK;QAER,qBAAqB,CAAC,OAAsB;YAC1C,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;SACH;KACF,CAAC;AACJ,CAAC;SAwBe,cAAc,CAC5B,KAA4C,EAC5C,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACvC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvD,CAAC;SAEe,gBAAgB,CAC9B,KAA4C,EAC5C,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IACvC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,WAAW,CAAC,CAAC;AAC5E,CAAC;AA4CD,SAAS,WAAW,CAClB,YAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE;QACpC,GAAG,CAAC,MAAM,EAAE,IAAY,EAAE,KAAK;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,QAAQ,KAAK,KAAK,EAAE;gBACrB,MAAkC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAElD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACvB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE;wBACrC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACX;iBACF;aACF;YACD,OAAO,IAAI,CAAC;SACb;KACF,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CACV,QAAkB;QAElB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KACxB,CAAC;IAEF,MAAM,GAAG,GAAG,CACV,QAAkB,EAClB,KAA0B;QAE1B,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,CACf,QAAkB,EAClB,QAAiD;QAEjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;SACpC;QACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,QAAuC,CAAC,CAAC;QAEtE,OAAO;YACL,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC5B;SACF,CAAC;KACH,CAAC;IAEF,OAAO;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,QAAQ;KACT,CAAC;AACJ;;;;","names":[],"sources":["src/components/common/interface/store.ts"],"sourcesContent":["import type {DateFacetValue, NumericFacetValue} from '@coveo/headless';\nimport {isInDocument} from '../../../utils/utils';\nimport type {\n FacetInfo,\n FacetStore,\n FacetType,\n FacetValueFormat,\n} from '../facets/facet-common-store';\nimport type {AnyEngineType} from './bindings';\n\nexport const isRefineModalFacet = 'is-refine-modal';\n\nexport type BaseStore<T> = CommonStore<T> & {\n getUniqueIDFromEngine(engine: unknown): string | undefined;\n};\n\nexport interface ResultListInfo {\n focusOnNextNewResult(): void;\n focusOnFirstResultAfterNextSearch(): Promise<void>;\n}\n\nexport function createAppLoadedListener(\n store: CommonStore<{loadingFlags: string[]}>,\n callback: (isAppLoaded: boolean) => void\n) {\n const updateIsAppLoaded = () => {\n const isAppLoaded = store.state.loadingFlags.length === 0;\n callback(isAppLoaded);\n };\n\n store.onChange('loadingFlags', updateIsAppLoaded);\n updateIsAppLoaded();\n}\n\nexport function createBaseStore<T extends {}>(initialState: T): BaseStore<T> {\n const store = createStore(initialState) as CommonStore<T>;\n\n return {\n ...store,\n\n getUniqueIDFromEngine(_engine: AnyEngineType) {\n throw new Error(\n 'getUniqueIDFromEngine not implemented at the base store level.'\n );\n },\n };\n}\n\nexport function registerFacet<T extends FacetType, U extends string>(\n store: CommonStore<Facets>,\n facetType: T,\n data: Facets[T][U] & {facetId: U; element: HTMLElement}\n) {\n const clearExistingFacetElement = (facetType: FacetType, facetId: string) => {\n if (store.state[facetType][facetId]) {\n store.state.facetElements = store.state.facetElements.filter(\n (facetElement) => facetElement.getAttribute('facet-id') !== facetId\n );\n }\n };\n\n if (data.element.getAttribute(isRefineModalFacet) !== null) {\n return;\n }\n\n clearExistingFacetElement(facetType, data.facetId);\n store.state.facetElements.push(data.element);\n store.state[facetType][data.facetId] = data;\n}\n\nexport function setLoadingFlag(\n store: CommonStore<{loadingFlags: string[]}>,\n loadingFlag: string\n) {\n const flags = store.state.loadingFlags;\n store.state.loadingFlags = flags.concat(loadingFlag);\n}\n\nexport function unsetLoadingFlag(\n store: CommonStore<{loadingFlags: string[]}>,\n loadingFlag: string\n) {\n const flags = store.state.loadingFlags;\n store.state.loadingFlags = flags.filter((value) => value !== loadingFlag);\n}\n\nexport function getFacetElements(store: CommonStore<Facets>) {\n return store.state.facetElements.filter((element) => isInDocument(element));\n}\n\nexport function waitUntilAppLoaded(\n store: CommonStore<{loadingFlags: string[]}>,\n callback: () => void\n) {\n if (!store.state.loadingFlags.length) {\n callback();\n } else {\n store.onChange('loadingFlags', (flags) => {\n if (!flags.length) {\n callback();\n }\n });\n }\n}\n\ninterface CommonStore<StoreData> {\n state: StoreData;\n get: <PropName extends keyof StoreData>(\n propName: PropName\n ) => StoreData[PropName];\n set: <PropName extends keyof StoreData>(\n propName: PropName,\n value: StoreData[PropName]\n ) => void;\n onChange: <PropName extends keyof StoreData>(\n propName: PropName,\n cb: (newValue: StoreData[PropName]) => void\n ) => () => void;\n}\n\ninterface Facets {\n facets: FacetStore<FacetInfo>;\n numericFacets: FacetStore<FacetInfo & FacetValueFormat<NumericFacetValue>>;\n dateFacets: FacetStore<FacetInfo & FacetValueFormat<DateFacetValue>>;\n categoryFacets: FacetStore<FacetInfo>;\n facetElements: HTMLElement[];\n}\n\nfunction createStore<StoreData extends Record<string, unknown>>(\n initialState: StoreData\n): CommonStore<StoreData> {\n const listeners = new Map<\n keyof StoreData,\n Set<(newValue: unknown) => void>\n >();\n\n const state = new Proxy(initialState, {\n set(target, prop: string, value) {\n const oldValue = target[prop];\n if (oldValue !== value) {\n (target as Record<string, unknown>)[prop] = value;\n\n if (listeners.has(prop)) {\n for (const cb of listeners.get(prop)!) {\n cb(value);\n }\n }\n }\n return true;\n },\n });\n\n const get = <PropName extends keyof StoreData>(\n propName: PropName\n ): StoreData[PropName] => {\n return state[propName];\n };\n\n const set = <PropName extends keyof StoreData>(\n propName: PropName,\n value: StoreData[PropName]\n ): void => {\n state[propName] = value;\n };\n\n const onChange = <PropName extends keyof StoreData>(\n propName: PropName,\n callback: (newValue: StoreData[PropName]) => void\n ): (() => void) => {\n if (!listeners.has(propName)) {\n listeners.set(propName, new Set());\n }\n listeners.get(propName)!.add(callback as (newValue: unknown) => void);\n\n return () => {\n listeners.get(propName)!.delete(callback as (newValue: unknown) => void);\n if (listeners.get(propName)!.size === 0) {\n listeners.delete(propName);\n }\n };\n };\n\n return {\n state,\n get,\n set,\n onChange,\n };\n}\n"],"version":3}