@coveo/atomic 3.33.8-pre.f62f2d7753 → 3.33.8-pre.f660526fae

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 (354) 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 -0
  4. package/dist/atomic/components/_index.js +20 -19
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-field-condition.js +1 -1
  7. package/dist/atomic/components/atomic-field-condition.js.map +1 -1
  8. package/dist/atomic/components/atomic-insight-result-action.js +2 -2
  9. package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
  10. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
  11. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
  12. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +2 -2
  13. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js.map +1 -1
  14. package/dist/atomic/components/atomic-insight-result-quickview-action.js +2 -2
  15. package/dist/atomic/components/atomic-insight-result-quickview-action.js.map +1 -1
  16. package/dist/atomic/components/atomic-insight-search-box.js +2 -29
  17. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  18. package/dist/atomic/components/atomic-ipx-result-link.js +2 -2
  19. package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
  20. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  21. package/dist/atomic/components/atomic-quickview.js +2 -2
  22. package/dist/atomic/components/atomic-quickview.js.map +1 -1
  23. package/dist/atomic/components/atomic-result-badge.js +1 -1
  24. package/dist/atomic/components/atomic-result-badge.js.map +1 -1
  25. package/dist/atomic/components/atomic-result-children.js +2 -2
  26. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  27. package/dist/atomic/components/atomic-result-date.js +1 -1
  28. package/dist/atomic/components/atomic-result-date.js.map +1 -1
  29. package/dist/atomic/components/atomic-result-fields-list.js +2 -2
  30. package/dist/atomic/components/atomic-result-fields-list.js.map +1 -1
  31. package/dist/atomic/components/atomic-result-html.js +1 -1
  32. package/dist/atomic/components/atomic-result-html.js.map +1 -1
  33. package/dist/atomic/components/atomic-result-icon.js +1 -1
  34. package/dist/atomic/components/atomic-result-icon.js.map +1 -1
  35. package/dist/atomic/components/atomic-result-image.js +1 -1
  36. package/dist/atomic/components/atomic-result-image.js.map +1 -1
  37. package/dist/atomic/components/atomic-result-link.js +2 -2
  38. package/dist/atomic/components/atomic-result-link.js.map +1 -1
  39. package/dist/atomic/components/atomic-result-localized-text.js +1 -1
  40. package/dist/atomic/components/atomic-result-localized-text.js.map +1 -1
  41. package/dist/atomic/components/atomic-result-multi-value-text.js +1 -1
  42. package/dist/atomic/components/atomic-result-multi-value-text.js.map +1 -1
  43. package/dist/atomic/components/atomic-result-number.js +1 -1
  44. package/dist/atomic/components/atomic-result-number.js.map +1 -1
  45. package/dist/atomic/components/atomic-result-printable-uri.js +1 -1
  46. package/dist/atomic/components/atomic-result-printable-uri.js.map +1 -1
  47. package/dist/atomic/components/atomic-result-rating.js +1 -1
  48. package/dist/atomic/components/atomic-result-rating.js.map +1 -1
  49. package/dist/atomic/components/atomic-result-text2.js +1 -1
  50. package/dist/atomic/components/atomic-result-text2.js.map +1 -1
  51. package/dist/atomic/components/atomic-result-timespan.js +1 -1
  52. package/dist/atomic/components/atomic-result-timespan.js.map +1 -1
  53. package/dist/atomic/components/atomic-result2.js.map +1 -1
  54. package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +11 -0
  55. package/dist/atomic/components/atomic-search-box-query-suggestions.js +8 -0
  56. package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +1 -0
  57. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +89 -0
  58. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +1 -0
  59. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  60. package/dist/atomic/components/atomic-search-box.js +7 -1
  61. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  62. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  63. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  64. package/dist/atomic/components/atomic-smart-snippet-source2.js.map +1 -1
  65. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  66. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +18 -11
  67. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +51 -14
  68. package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +19 -10
  69. package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +2 -2
  70. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
  71. package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +1 -1
  72. package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +1 -1
  73. package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +1 -1
  74. package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +1 -1
  75. package/dist/atomic/components/components/commerce/atomic-product-image/atomic-product-image.js +1 -1
  76. package/dist/atomic/components/components/commerce/atomic-product-link/atomic-product-link.js +1 -1
  77. package/dist/atomic/components/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.js +1 -1
  78. package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +1 -1
  79. package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +1 -1
  80. package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js +1 -1
  81. package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +1 -1
  82. package/dist/atomic/components/{decorators/commerce/product-template-decorators.js → components/commerce/product-template-component-utils/product-template-controllers.js} +3 -3
  83. package/dist/atomic/components/components/common/atomic-modal/atomic-modal.js +2 -0
  84. package/dist/atomic/components/components/common/layout/layout-styles-controller.js +40 -0
  85. package/dist/atomic/components/components/common/layout/mobile-breakpoint-controller.js +26 -0
  86. package/dist/atomic/components/components/search/index.js +0 -1
  87. package/dist/atomic/components/components/search/lazy-index.js +0 -1
  88. package/dist/atomic/components/global/environment.js +1 -1
  89. package/dist/atomic/components/index.js.map +1 -1
  90. package/dist/atomic/components/stencil-query-suggestions.js +33 -0
  91. package/dist/atomic/components/stencil-query-suggestions.js.map +1 -0
  92. package/dist/atomic/components/{result-template-decorators.js → stencil-result-template-decorators.js} +6 -2
  93. package/dist/atomic/components/stencil-result-template-decorators.js.map +1 -0
  94. package/dist/atomic/index.esm.js +1 -1
  95. package/dist/atomic/index.esm.js.map +1 -1
  96. package/dist/atomic/{p-a3f27d57.entry.js → p-1b498edf.entry.js} +2 -2
  97. package/dist/atomic/p-1b498edf.entry.js.map +1 -0
  98. package/dist/atomic/{p-a760d9f9.entry.js → p-1eca284d.entry.js} +2 -2
  99. package/dist/atomic/p-1eca284d.entry.js.map +1 -0
  100. package/dist/atomic/p-26a51a77.entry.js +2 -0
  101. package/dist/atomic/p-26a51a77.entry.js.map +1 -0
  102. package/dist/atomic/p-31f1e44e.entry.js +2 -0
  103. package/dist/atomic/p-31f1e44e.entry.js.map +1 -0
  104. package/dist/atomic/{p-e9dc8e90.entry.js → p-327e060b.entry.js} +2 -2
  105. package/dist/atomic/p-327e060b.entry.js.map +1 -0
  106. package/dist/atomic/{p-b3f6561d.entry.js → p-354c8c6d.entry.js} +2 -2
  107. package/dist/atomic/p-354c8c6d.entry.js.map +1 -0
  108. package/dist/atomic/{p-18684d4c.js → p-38f38674.js} +1 -1
  109. package/dist/atomic/p-38f38674.js.map +1 -0
  110. package/dist/atomic/{p-bc0d6d3d.entry.js → p-4ad216aa.entry.js} +2 -2
  111. package/dist/atomic/p-4ad216aa.entry.js.map +1 -0
  112. package/dist/atomic/{p-31aa052e.entry.js → p-4fc59a3d.entry.js} +2 -2
  113. package/dist/atomic/p-4fc59a3d.entry.js.map +1 -0
  114. package/dist/atomic/p-508b63e7.entry.js.map +1 -1
  115. package/dist/atomic/{p-1ff7a9da.entry.js → p-544ed45f.entry.js} +2 -2
  116. package/dist/atomic/p-544ed45f.entry.js.map +1 -0
  117. package/dist/atomic/{p-4b3d253b.entry.js → p-5aea1924.entry.js} +2 -2
  118. package/dist/atomic/p-5aea1924.entry.js.map +1 -0
  119. package/dist/atomic/{p-a4d277c7.entry.js → p-5dc90111.entry.js} +2 -2
  120. package/dist/atomic/p-5dc90111.entry.js.map +1 -0
  121. package/dist/atomic/{p-0c8e7d5f.entry.js → p-5ed9530e.entry.js} +2 -2
  122. package/dist/atomic/p-5ed9530e.entry.js.map +1 -0
  123. package/dist/atomic/{p-c7800a24.entry.js → p-755b5686.entry.js} +2 -2
  124. package/dist/atomic/p-755b5686.entry.js.map +1 -0
  125. package/dist/atomic/{p-ae98c582.entry.js → p-7a625c7e.entry.js} +2 -2
  126. package/dist/atomic/{p-52ba404c.entry.js → p-7e9eaccb.entry.js} +2 -2
  127. package/dist/atomic/p-7e9eaccb.entry.js.map +1 -0
  128. package/dist/atomic/{p-9d6b988d.entry.js → p-8099221a.entry.js} +2 -2
  129. package/dist/atomic/{p-b28011e6.entry.js → p-887b1c08.entry.js} +2 -2
  130. package/dist/atomic/{p-78427c6a.entry.js → p-91b40354.entry.js} +2 -2
  131. package/dist/atomic/p-91b40354.entry.js.map +1 -0
  132. package/dist/atomic/{p-190ddaca.entry.js → p-98276779.entry.js} +2 -2
  133. package/dist/atomic/p-98276779.entry.js.map +1 -0
  134. package/dist/atomic/{p-e162805d.entry.js → p-a4d6fd2c.entry.js} +2 -2
  135. package/dist/atomic/{p-e162805d.entry.js.map → p-a4d6fd2c.entry.js.map} +1 -1
  136. package/dist/atomic/{p-39e63678.entry.js → p-aa2a81fd.entry.js} +2 -2
  137. package/dist/atomic/{p-c9f1790d.entry.js → p-adcfce31.entry.js} +2 -2
  138. package/dist/atomic/p-adcfce31.entry.js.map +1 -0
  139. package/dist/atomic/p-af93b44c.js +2 -0
  140. package/dist/atomic/p-af93b44c.js.map +1 -0
  141. package/dist/atomic/{p-b87dbae7.js → p-b4b27aa2.js} +2 -2
  142. package/dist/atomic/{p-1ef658d8.entry.js → p-b7bff15f.entry.js} +2 -2
  143. package/dist/atomic/p-b7bff15f.entry.js.map +1 -0
  144. package/dist/atomic/{p-b24d432b.entry.js → p-c309eb0f.entry.js} +2 -2
  145. package/dist/atomic/{p-604c4085.entry.js → p-c567fcdb.entry.js} +2 -2
  146. package/dist/atomic/p-c567fcdb.entry.js.map +1 -0
  147. package/dist/atomic/{p-75e00690.entry.js → p-d1d4fc60.entry.js} +2 -2
  148. package/dist/atomic/p-d1d4fc60.entry.js.map +1 -0
  149. package/dist/atomic/{p-945ddd53.entry.js → p-d49328d9.entry.js} +2 -2
  150. package/dist/atomic/p-d49328d9.entry.js.map +1 -0
  151. package/dist/atomic/{p-3a2c900c.entry.js → p-f3bea093.entry.js} +2 -2
  152. package/dist/atomic/p-f3bea093.entry.js.map +1 -0
  153. package/dist/atomic/{p-e5352270.entry.js → p-f6c5957e.entry.js} +2 -2
  154. package/dist/atomic/{p-dbf0c5a3.entry.js → p-f70d8cdf.entry.js} +2 -2
  155. package/dist/atomic/{p-dbf0c5a3.entry.js.map → p-f70d8cdf.entry.js.map} +1 -1
  156. package/dist/atomic/{p-8a00adbe.entry.js → p-fd99979c.entry.js} +2 -2
  157. package/dist/atomic/p-fd99979c.entry.js.map +1 -0
  158. package/dist/cjs/_index.cjs.js +20 -20
  159. package/dist/cjs/_loader.cjs.js +1 -1
  160. package/dist/cjs/{analytics-config-de93a689.js → analytics-config-57e2d9c2.js} +2 -2
  161. package/dist/cjs/{analytics-config-de93a689.js.map → analytics-config-57e2d9c2.js.map} +1 -1
  162. package/dist/cjs/atomic-field-condition.cjs.entry.js +2 -2
  163. package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
  164. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  165. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +3 -3
  166. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  167. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +3 -3
  168. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  169. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +3 -3
  170. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
  171. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +3 -3
  172. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
  173. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +4 -30
  174. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  175. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +4 -4
  176. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  177. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  178. package/dist/cjs/atomic-quickview.cjs.entry.js +3 -3
  179. package/dist/cjs/atomic-quickview.cjs.entry.js.map +1 -1
  180. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  181. package/dist/cjs/atomic-result-badge.cjs.entry.js +2 -2
  182. package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
  183. package/dist/cjs/atomic-result-children.cjs.entry.js +3 -3
  184. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  185. package/dist/cjs/atomic-result-date.cjs.entry.js +2 -2
  186. package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
  187. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +3 -3
  188. package/dist/cjs/atomic-result-fields-list.cjs.entry.js.map +1 -1
  189. package/dist/cjs/atomic-result-html.cjs.entry.js +2 -2
  190. package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
  191. package/dist/cjs/atomic-result-icon.cjs.entry.js +2 -2
  192. package/dist/cjs/atomic-result-icon.cjs.entry.js.map +1 -1
  193. package/dist/cjs/atomic-result-image.cjs.entry.js +2 -2
  194. package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
  195. package/dist/cjs/atomic-result-link.cjs.entry.js +4 -4
  196. package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
  197. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +3 -3
  198. package/dist/cjs/atomic-result-localized-text.cjs.entry.js.map +1 -1
  199. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +2 -2
  200. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js.map +1 -1
  201. package/dist/cjs/atomic-result-number.cjs.entry.js +2 -2
  202. package/dist/cjs/atomic-result-number.cjs.entry.js.map +1 -1
  203. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -2
  204. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js.map +1 -1
  205. package/dist/cjs/atomic-result-rating.cjs.entry.js +2 -2
  206. package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
  207. package/dist/cjs/atomic-result-text_2.cjs.entry.js +2 -2
  208. package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
  209. package/dist/cjs/atomic-result-timespan.cjs.entry.js +2 -2
  210. package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
  211. package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
  212. package/dist/cjs/{atomic-search-box-recent-queries.cjs.entry.js → atomic-search-box-query-suggestions_2.cjs.entry.js} +68 -5
  213. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +1 -0
  214. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  215. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js.map +1 -1
  217. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  218. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  219. package/dist/cjs/atomic.cjs.js +1 -1
  220. package/dist/cjs/index-757bc886.js +2 -2
  221. package/dist/cjs/index.cjs.js.map +1 -1
  222. package/dist/cjs/stencil-query-suggestions-03268ecc.js +38 -0
  223. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +1 -0
  224. package/dist/cjs/{result-template-decorators-432d11a9.js → stencil-result-template-decorators-5cb5b6e3.js} +6 -2
  225. package/dist/cjs/stencil-result-template-decorators-5cb5b6e3.js.map +1 -0
  226. package/dist/cjs/version.cjs.js +2 -2
  227. package/dist/esm/_index.js +19 -19
  228. package/dist/esm/_loader.js +1 -1
  229. package/dist/esm/{analytics-config-018337bf.js → analytics-config-3127413c.js} +2 -2
  230. package/dist/esm/{analytics-config-018337bf.js.map → analytics-config-3127413c.js.map} +1 -1
  231. package/dist/esm/atomic-field-condition.entry.js +1 -1
  232. package/dist/esm/atomic-field-condition.entry.js.map +1 -1
  233. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  234. package/dist/esm/atomic-insight-result-action.entry.js +2 -2
  235. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  236. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +2 -2
  237. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  238. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +2 -2
  239. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
  240. package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -2
  241. package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
  242. package/dist/esm/atomic-insight-search-box.entry.js +3 -29
  243. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  244. package/dist/esm/atomic-ipx-result-link.entry.js +2 -2
  245. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  246. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  247. package/dist/esm/atomic-quickview.entry.js +2 -2
  248. package/dist/esm/atomic-quickview.entry.js.map +1 -1
  249. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  250. package/dist/esm/atomic-result-badge.entry.js +1 -1
  251. package/dist/esm/atomic-result-badge.entry.js.map +1 -1
  252. package/dist/esm/atomic-result-children.entry.js +2 -2
  253. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  254. package/dist/esm/atomic-result-date.entry.js +1 -1
  255. package/dist/esm/atomic-result-date.entry.js.map +1 -1
  256. package/dist/esm/atomic-result-fields-list.entry.js +2 -2
  257. package/dist/esm/atomic-result-fields-list.entry.js.map +1 -1
  258. package/dist/esm/atomic-result-html.entry.js +1 -1
  259. package/dist/esm/atomic-result-html.entry.js.map +1 -1
  260. package/dist/esm/atomic-result-icon.entry.js +1 -1
  261. package/dist/esm/atomic-result-icon.entry.js.map +1 -1
  262. package/dist/esm/atomic-result-image.entry.js +1 -1
  263. package/dist/esm/atomic-result-image.entry.js.map +1 -1
  264. package/dist/esm/atomic-result-link.entry.js +2 -2
  265. package/dist/esm/atomic-result-link.entry.js.map +1 -1
  266. package/dist/esm/atomic-result-localized-text.entry.js +2 -2
  267. package/dist/esm/atomic-result-localized-text.entry.js.map +1 -1
  268. package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
  269. package/dist/esm/atomic-result-multi-value-text.entry.js.map +1 -1
  270. package/dist/esm/atomic-result-number.entry.js +1 -1
  271. package/dist/esm/atomic-result-number.entry.js.map +1 -1
  272. package/dist/esm/atomic-result-printable-uri.entry.js +1 -1
  273. package/dist/esm/atomic-result-printable-uri.entry.js.map +1 -1
  274. package/dist/esm/atomic-result-rating.entry.js +1 -1
  275. package/dist/esm/atomic-result-rating.entry.js.map +1 -1
  276. package/dist/esm/atomic-result-text_2.entry.js +1 -1
  277. package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
  278. package/dist/esm/atomic-result-timespan.entry.js +1 -1
  279. package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
  280. package/dist/esm/atomic-result.entry.js.map +1 -1
  281. package/dist/esm/{atomic-search-box-recent-queries.entry.js → atomic-search-box-query-suggestions_2.entry.js} +70 -8
  282. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +1 -0
  283. package/dist/esm/atomic-search-interface.entry.js +1 -1
  284. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +1 -1
  285. package/dist/esm/atomic-smart-snippet-answer_2.entry.js.map +1 -1
  286. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  287. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  288. package/dist/esm/atomic.js +1 -1
  289. package/dist/esm/index-3f35faca.js +2 -2
  290. package/dist/esm/index.js.map +1 -1
  291. package/dist/esm/stencil-query-suggestions-5d6a46d7.js +33 -0
  292. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +1 -0
  293. package/dist/esm/{result-template-decorators-2ed76ea9.js → stencil-result-template-decorators-b48247e4.js} +6 -2
  294. package/dist/esm/stencil-result-template-decorators-b48247e4.js.map +1 -0
  295. package/dist/esm/version.js +2 -2
  296. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +2 -1
  297. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +29 -2
  298. package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
  299. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
  300. package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +1 -1
  301. package/dist/types/{decorators/commerce/product-template-decorators.d.ts → components/commerce/product-template-component-utils/product-template-controllers.d.ts} +2 -2
  302. package/dist/types/components/commerce/product-template-component-utils/stencil-product-template-decorators.d.ts +1 -1
  303. package/dist/types/components/common/layout/layout-styles-controller.d.ts +22 -0
  304. package/dist/types/components/common/layout/mobile-breakpoint-controller.d.ts +18 -0
  305. package/dist/types/components/common/smart-snippets/atomic-smart-snippet-source.d.ts +1 -1
  306. package/dist/types/components/search/atomic-result/atomic-result.d.ts +1 -1
  307. package/dist/types/components/search/index.d.ts +0 -1
  308. package/dist/types/components/search/result-template-component-utils/result-template-controllers.d.ts +34 -0
  309. package/dist/types/components/search/{result-template-components/result-template-decorators.d.ts → result-template-component-utils/stencil-result-template-decorators.d.ts} +5 -1
  310. package/dist/types/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts +29 -0
  311. package/dist/types/components.d.ts +49 -0
  312. package/dist/types/index.d.ts +2 -2
  313. package/docs/atomic-docs.json +102 -3
  314. package/package.json +3 -3
  315. package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +0 -111
  316. package/dist/atomic/components/result-template-decorators.js.map +0 -1
  317. package/dist/atomic/p-0c8e7d5f.entry.js.map +0 -1
  318. package/dist/atomic/p-18684d4c.js.map +0 -1
  319. package/dist/atomic/p-190ddaca.entry.js.map +0 -1
  320. package/dist/atomic/p-1ef658d8.entry.js.map +0 -1
  321. package/dist/atomic/p-1ff7a9da.entry.js.map +0 -1
  322. package/dist/atomic/p-31aa052e.entry.js.map +0 -1
  323. package/dist/atomic/p-3a2c900c.entry.js.map +0 -1
  324. package/dist/atomic/p-4b3d253b.entry.js.map +0 -1
  325. package/dist/atomic/p-52ba404c.entry.js.map +0 -1
  326. package/dist/atomic/p-604c4085.entry.js.map +0 -1
  327. package/dist/atomic/p-75e00690.entry.js.map +0 -1
  328. package/dist/atomic/p-78427c6a.entry.js.map +0 -1
  329. package/dist/atomic/p-7a06a356.entry.js +0 -2
  330. package/dist/atomic/p-7a06a356.entry.js.map +0 -1
  331. package/dist/atomic/p-8a00adbe.entry.js.map +0 -1
  332. package/dist/atomic/p-945ddd53.entry.js.map +0 -1
  333. package/dist/atomic/p-a3f27d57.entry.js.map +0 -1
  334. package/dist/atomic/p-a4d277c7.entry.js.map +0 -1
  335. package/dist/atomic/p-a760d9f9.entry.js.map +0 -1
  336. package/dist/atomic/p-b3f6561d.entry.js.map +0 -1
  337. package/dist/atomic/p-bc0d6d3d.entry.js.map +0 -1
  338. package/dist/atomic/p-c7800a24.entry.js.map +0 -1
  339. package/dist/atomic/p-c9f1790d.entry.js.map +0 -1
  340. package/dist/atomic/p-d2b14ff1.entry.js +0 -2
  341. package/dist/atomic/p-d2b14ff1.entry.js.map +0 -1
  342. package/dist/atomic/p-e9dc8e90.entry.js.map +0 -1
  343. package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js.map +0 -1
  344. package/dist/cjs/result-template-decorators-432d11a9.js.map +0 -1
  345. package/dist/esm/atomic-search-box-recent-queries.entry.js.map +0 -1
  346. package/dist/esm/result-template-decorators-2ed76ea9.js.map +0 -1
  347. package/dist/types/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts +0 -38
  348. /package/dist/atomic/{p-ae98c582.entry.js.map → p-7a625c7e.entry.js.map} +0 -0
  349. /package/dist/atomic/{p-9d6b988d.entry.js.map → p-8099221a.entry.js.map} +0 -0
  350. /package/dist/atomic/{p-b28011e6.entry.js.map → p-887b1c08.entry.js.map} +0 -0
  351. /package/dist/atomic/{p-39e63678.entry.js.map → p-aa2a81fd.entry.js.map} +0 -0
  352. /package/dist/atomic/{p-b87dbae7.js.map → p-b4b27aa2.js.map} +0 -0
  353. /package/dist/atomic/{p-b24d432b.entry.js.map → p-c309eb0f.entry.js.map} +0 -0
  354. /package/dist/atomic/{p-e5352270.entry.js.map → p-f6c5957e.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-insight-search-box.entry.cjs.js","mappings":"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","names":["encodeForDomAttribute","h","randomID","loadInsightSearchActions","buildInsightSearchBox","SuggestionManager","index","SearchSlimIcon","isMacOS","hasKeyboard","elementHasQuery","SearchBoxWrapper","isFocusingOut","SearchTextArea","InitializeBindings","BindStateToController","AriaLiveRegion"],"sources":["src/components/common/suggestions/stencil-query-suggestions.tsx","src/components/insight/atomic-insight-search-box/atomic-insight-search-box.pcss?tag=atomic-insight-search-box&encapsulation=shadow","src/components/insight/atomic-insight-search-box/atomic-insight-search-box.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","@import '../../../global/global.pcss';\n@import '../../common/search-box/search-box.pcss';\n\n[part='wrapper'] {\n @apply z-10;\n}\n\n:host {\n position: relative;\n}\n\n[part='input'] {\n padding-top: 0.675rem;\n padding-bottom: 0.675rem;\n}\n\n[part='submit-icon'] {\n @apply text-on-background;\n}\n\n[part='submit-button'] {\n @apply flex w-10 items-center justify-center;\n}\n\n.loading::after {\n content: '';\n @apply bg-background absolute h-5/6 w-5/6 rounded-full;\n}\n\n[part='clear-button-wrapper'] {\n @apply mr-2 py-0;\n}\n\n[part='clear-icon'] {\n @apply h-3 w-3;\n}\n\n[part='textarea-expander'] {\n &::after {\n @apply p-2 px-4;\n }\n}\n\n[part='textarea-expander'] {\n [part='textarea'] {\n @apply p-2 px-4;\n }\n}\n","import {loadInsightSearchActions} from '@coveo/headless/insight';\nimport {\n buildSearchBox as buildInsightSearchBox,\n SearchBox as InsightSearchBox,\n SearchBoxState as InsightSearchBoxState,\n Suggestion as InsightSuggestion,\n} from '@coveo/headless/insight';\nimport {Component, Element, h, Prop, State} from '@stencil/core';\nimport SearchSlimIcon from '../../../images/search-slim.svg';\nimport {hasKeyboard, isMacOS} from '../../../utils/device-utils';\nimport {\n BindStateToController,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {isFocusingOut, randomID} from '../../../utils/utils';\nimport {SearchBoxWrapper} from '../../common/search-box/stencil-search-box-wrapper';\nimport {SearchTextArea} from '../../common/search-box/stencil-search-text-area';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../common/suggestions/stencil-query-suggestions';\nimport {SuggestionManager} from '../../common/suggestions/stencil-suggestion-manager';\nimport {\n elementHasQuery,\n} from '../../common/suggestions/suggestions-utils';\nimport {\n SearchBoxSuggestionElement,\n} from '../../common/suggestions/suggestions-types';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-search-box',\n styleUrl: 'atomic-insight-search-box.pcss',\n shadow: true,\n})\nexport class AtomicInsightSearchBox {\n @InitializeBindings() public bindings!: InsightBindings;\n\n private searchBox!: InsightSearchBox;\n private id!: string;\n private textAreaRef!: HTMLTextAreaElement;\n private suggestionManager!: SuggestionManager<InsightSearchBox>;\n\n @Element() private host!: HTMLElement;\n\n @BindStateToController('searchBox')\n @State()\n private searchBoxState!: InsightSearchBoxState;\n @State() public error!: Error;\n @State() private isExpanded = false;\n\n /**\n * Whether to prevent the user from triggering a search from the component.\n * Perfect for use cases where you need to disable the search conditionally, like when the input is empty.\n */\n @Prop({reflect: true}) public disableSearch = false;\n /**\n * The number of query suggestions to display when interacting with the search box.\n */\n @Prop({reflect: true}) public numberOfSuggestions = 5;\n\n @AriaLiveRegion('search-box')\n protected searchBoxAriaMessage!: string;\n\n @AriaLiveRegion('search-suggestions', true)\n protected suggestionsAriaMessage!: string;\n\n public initialize() {\n this.id = randomID('atomic-search-box-');\n\n const searchBoxOptions = {\n id: this.id,\n numberOfSuggestions: 0,\n highlightOptions: {\n notMatchDelimiters: {\n open: '<span class=\"font-bold\">',\n close: '</span>',\n },\n correctionDelimiters: {\n open: '<span class=\"font-normal\">',\n close: '</span>',\n },\n },\n };\n\n const {fetchQuerySuggestions, registerQuerySuggest} =\n loadInsightSearchActions(this.bindings.engine);\n\n this.searchBox = buildInsightSearchBox(this.bindings.engine, {\n options: searchBoxOptions,\n });\n\n this.bindings.engine.dispatch(\n registerQuerySuggest({id: this.id, count: this.numberOfSuggestions})\n );\n\n this.suggestionManager = new SuggestionManager({\n getNumberOfSuggestionsToDisplay: () => this.numberOfSuggestions,\n updateQuery: (query) => this.searchBox.updateText(query),\n getSearchBoxValue: () => this.searchBoxState.value,\n getSuggestionTimeout: () => 500,\n getSuggestionDelay: () => 0,\n getHost: () => this.host,\n getLogger: () => this.bindings.engine.logger,\n });\n\n this.suggestionManager.registerSuggestions({\n position: 0,\n renderItems: () =>\n this.searchBox.state.suggestions.map((suggestion) =>\n this.renderSuggestionItem(suggestion)\n ),\n onInput: () => this.bindings.engine.dispatch(fetchQuerySuggestions({id: this.id})),\n panel: 'left',\n });\n }\n\n private onSubmit() {\n if (this.suggestionManager.activeDescendantElement) {\n this.suggestionManager.clickOnActiveElement();\n return;\n }\n\n this.searchBox.submit();\n this.suggestionManager.clearSuggestions();\n }\n\n private async onKeyDown(e: KeyboardEvent) {\n if (this.disableSearch) {\n return;\n }\n\n switch (e.key) {\n case 'Enter':\n this.onSubmit();\n break;\n case 'Escape':\n this.suggestionManager.clearSuggestions();\n break;\n case 'ArrowDown':\n e.preventDefault();\n await this.suggestionManager.focusNextValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'ArrowUp':\n e.preventDefault();\n await this.suggestionManager.focusPreviousValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'Tab':\n this.suggestionManager.clearSuggestions();\n break;\n }\n }\n\n private triggerTextAreaChange(value: string) {\n this.textAreaRef.value = value;\n this.textAreaRef.dispatchEvent(new window.Event('change'));\n }\n\n private renderSuggestion(\n item: SearchBoxSuggestionElement,\n index: number,\n lastIndex: number\n ) {\n const id = `${this.id}-suggestion-${item.key}`;\n\n const isSelected =\n id === this.suggestionManager.activeDescendant ||\n this.suggestionManager.suggestedQuery === item.query;\n\n if (index === lastIndex && item.hideIfLast) {\n return null;\n }\n\n return (\n <atomic-suggestion-renderer\n i18n={this.bindings.i18n}\n id={id}\n suggestion={item}\n isSelected={isSelected}\n side={'left'}\n index={index}\n lastIndex={lastIndex}\n isDoubleList={false}\n onClick={(e: Event) => {\n this.suggestionManager.onSuggestionClick(item, e);\n }}\n onMouseOver={() => {\n this.suggestionManager.onSuggestionMouseOver(item, 'left', id);\n }}\n ></atomic-suggestion-renderer>\n );\n }\n\n private renderSuggestionItem(\n suggestion: InsightSuggestion\n ): SearchBoxSuggestionElement {\n const hasQuery = this.searchBox.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={SearchSlimIcon}\n hasSuggestion={this.searchBoxState.suggestions.length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.searchBox.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n private renderPanel(\n elements: SearchBoxSuggestionElement[],\n setRef: (el: HTMLElement | undefined) => void,\n getRef: () => HTMLElement | undefined\n ) {\n if (!elements.length) {\n return null;\n }\n\n return (\n <div\n part={'suggestions'}\n ref={setRef}\n class=\"flex grow basis-1/2 flex-col\"\n onMouseDown={(e) => {\n if (e.target === getRef()) {\n e.preventDefault();\n }\n }}\n >\n {elements.map((suggestion, index) =>\n this.renderSuggestion(suggestion, index, elements.length - 1)\n )}\n </div>\n );\n }\n\n private renderSuggestions() {\n if (!this.suggestionManager.hasSuggestions) {\n this.suggestionManager.updateActiveDescendant();\n return null;\n }\n\n return (\n <div\n id={`${this.id}-popup`}\n part=\"suggestions-wrapper\"\n class={`bg-background border-neutral absolute top-full left-0 z-10 flex w-full rounded-md border ${\n this.suggestionManager.hasSuggestions && this.isExpanded\n ? ''\n : 'hidden'\n }`}\n role=\"application\"\n aria-label={this.bindings.i18n.t('search-suggestions-single-list')}\n {...(this.suggestionManager.activeDescendant && {\n 'aria-activedescendant': this.suggestionManager.activeDescendant,\n })}\n >\n {this.renderPanel(\n this.suggestionManager.allSuggestionElements,\n (el) => (this.suggestionManager.leftPanel = el),\n () => this.suggestionManager.leftPanel\n )}\n </div>\n );\n }\n\n private getSearchInputLabel() {\n if (isMacOS()) {\n return this.bindings.i18n.t('search-box-with-suggestions-macos');\n }\n if (!hasKeyboard()) {\n return this.bindings.i18n.t('search-box-with-suggestions-keyboardless');\n }\n return this.bindings.i18n.t('search-box-with-suggestions');\n }\n\n private async onFocus() {\n if (this.isExpanded) {\n return;\n }\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private async onInput(value: string) {\n this.searchBox.updateText(value);\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private announceNewActiveSuggestionToScreenReader() {\n const ariaLabel = this.suggestionManager.activeDescendantElement?.ariaLabel;\n if (isMacOS() && ariaLabel) {\n this.suggestionsAriaMessage = ariaLabel;\n }\n }\n\n private announceNewSuggestionsToScreenReader() {\n const numberOfSuggestionsToAnnounce =\n this.suggestionManager.allSuggestionElements.filter(\n elementHasQuery\n ).length;\n this.searchBoxAriaMessage = numberOfSuggestionsToAnnounce\n ? this.bindings.i18n.t(\n this.searchBoxState.value\n ? 'query-suggestions-available'\n : 'query-suggestions-available-no-query',\n {\n count: numberOfSuggestionsToAnnounce,\n query: this.searchBoxState.value,\n }\n )\n : this.bindings.i18n.t('query-suggestions-unavailable');\n }\n\n public render() {\n return (\n <SearchBoxWrapper\n disabled={this.disableSearch}\n onFocusout={(event) => {\n if (!isFocusingOut(event)) {\n return;\n }\n this.suggestionManager.clearSuggestions();\n this.isExpanded = false;\n }}\n >\n <atomic-icon\n part=\"submit-icon\"\n icon={SearchSlimIcon}\n class=\"my-auto mr-0 ml-4 h-4 w-4\"\n />\n <SearchTextArea\n textAreaRef={this.textAreaRef}\n loading={this.searchBoxState.isLoading}\n ref={(el) => el && (this.textAreaRef = el)}\n bindings={this.bindings}\n value={this.searchBoxState.value}\n ariaLabel={this.getSearchInputLabel()}\n placeholder={this.bindings.i18n.t('search-ellipsis')}\n onFocus={() => this.onFocus()}\n onKeyDown={(e) => this.onKeyDown(e)}\n onClear={() => {\n this.searchBox.clear();\n this.triggerTextAreaChange('');\n }}\n onInput={(e) => this.onInput((e.target as HTMLInputElement).value)}\n />\n {this.renderSuggestions()}\n </SearchBoxWrapper>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-insight-search-box.entry.cjs.js","mappings":"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","names":["randomID","loadInsightSearchActions","buildInsightSearchBox","SuggestionManager","index","h","getPartialSearchBoxSuggestionElement","QuerySuggestionContainer","QuerySuggestionIcon","SearchSlimIcon","QuerySuggestionText","isMacOS","hasKeyboard","elementHasQuery","SearchBoxWrapper","isFocusingOut","SearchTextArea","InitializeBindings","BindStateToController","AriaLiveRegion"],"sources":["src/components/insight/atomic-insight-search-box/atomic-insight-search-box.pcss?tag=atomic-insight-search-box&encapsulation=shadow","src/components/insight/atomic-insight-search-box/atomic-insight-search-box.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n@import '../../common/search-box/search-box.pcss';\n\n[part='wrapper'] {\n @apply z-10;\n}\n\n:host {\n position: relative;\n}\n\n[part='input'] {\n padding-top: 0.675rem;\n padding-bottom: 0.675rem;\n}\n\n[part='submit-icon'] {\n @apply text-on-background;\n}\n\n[part='submit-button'] {\n @apply flex w-10 items-center justify-center;\n}\n\n.loading::after {\n content: '';\n @apply bg-background absolute h-5/6 w-5/6 rounded-full;\n}\n\n[part='clear-button-wrapper'] {\n @apply mr-2 py-0;\n}\n\n[part='clear-icon'] {\n @apply h-3 w-3;\n}\n\n[part='textarea-expander'] {\n &::after {\n @apply p-2 px-4;\n }\n}\n\n[part='textarea-expander'] {\n [part='textarea'] {\n @apply p-2 px-4;\n }\n}\n","import {loadInsightSearchActions} from '@coveo/headless/insight';\nimport {\n buildSearchBox as buildInsightSearchBox,\n SearchBox as InsightSearchBox,\n SearchBoxState as InsightSearchBoxState,\n Suggestion as InsightSuggestion,\n} from '@coveo/headless/insight';\nimport {Component, Element, h, Prop, State} from '@stencil/core';\nimport SearchSlimIcon from '../../../images/search-slim.svg';\nimport {hasKeyboard, isMacOS} from '../../../utils/device-utils';\nimport {\n BindStateToController,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {isFocusingOut, randomID} from '../../../utils/utils';\nimport {SearchBoxWrapper} from '../../common/search-box/stencil-search-box-wrapper';\nimport {SearchTextArea} from '../../common/search-box/stencil-search-text-area';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../common/suggestions/stencil-query-suggestions';\nimport {SuggestionManager} from '../../common/suggestions/stencil-suggestion-manager';\nimport {\n elementHasQuery,\n} from '../../common/suggestions/suggestions-utils';\nimport {\n SearchBoxSuggestionElement,\n} from '../../common/suggestions/suggestions-types';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-search-box',\n styleUrl: 'atomic-insight-search-box.pcss',\n shadow: true,\n})\nexport class AtomicInsightSearchBox {\n @InitializeBindings() public bindings!: InsightBindings;\n\n private searchBox!: InsightSearchBox;\n private id!: string;\n private textAreaRef!: HTMLTextAreaElement;\n private suggestionManager!: SuggestionManager<InsightSearchBox>;\n\n @Element() private host!: HTMLElement;\n\n @BindStateToController('searchBox')\n @State()\n private searchBoxState!: InsightSearchBoxState;\n @State() public error!: Error;\n @State() private isExpanded = false;\n\n /**\n * Whether to prevent the user from triggering a search from the component.\n * Perfect for use cases where you need to disable the search conditionally, like when the input is empty.\n */\n @Prop({reflect: true}) public disableSearch = false;\n /**\n * The number of query suggestions to display when interacting with the search box.\n */\n @Prop({reflect: true}) public numberOfSuggestions = 5;\n\n @AriaLiveRegion('search-box')\n protected searchBoxAriaMessage!: string;\n\n @AriaLiveRegion('search-suggestions', true)\n protected suggestionsAriaMessage!: string;\n\n public initialize() {\n this.id = randomID('atomic-search-box-');\n\n const searchBoxOptions = {\n id: this.id,\n numberOfSuggestions: 0,\n highlightOptions: {\n notMatchDelimiters: {\n open: '<span class=\"font-bold\">',\n close: '</span>',\n },\n correctionDelimiters: {\n open: '<span class=\"font-normal\">',\n close: '</span>',\n },\n },\n };\n\n const {fetchQuerySuggestions, registerQuerySuggest} =\n loadInsightSearchActions(this.bindings.engine);\n\n this.searchBox = buildInsightSearchBox(this.bindings.engine, {\n options: searchBoxOptions,\n });\n\n this.bindings.engine.dispatch(\n registerQuerySuggest({id: this.id, count: this.numberOfSuggestions})\n );\n\n this.suggestionManager = new SuggestionManager({\n getNumberOfSuggestionsToDisplay: () => this.numberOfSuggestions,\n updateQuery: (query) => this.searchBox.updateText(query),\n getSearchBoxValue: () => this.searchBoxState.value,\n getSuggestionTimeout: () => 500,\n getSuggestionDelay: () => 0,\n getHost: () => this.host,\n getLogger: () => this.bindings.engine.logger,\n });\n\n this.suggestionManager.registerSuggestions({\n position: 0,\n renderItems: () =>\n this.searchBox.state.suggestions.map((suggestion) =>\n this.renderSuggestionItem(suggestion)\n ),\n onInput: () => this.bindings.engine.dispatch(fetchQuerySuggestions({id: this.id})),\n panel: 'left',\n });\n }\n\n private onSubmit() {\n if (this.suggestionManager.activeDescendantElement) {\n this.suggestionManager.clickOnActiveElement();\n return;\n }\n\n this.searchBox.submit();\n this.suggestionManager.clearSuggestions();\n }\n\n private async onKeyDown(e: KeyboardEvent) {\n if (this.disableSearch) {\n return;\n }\n\n switch (e.key) {\n case 'Enter':\n this.onSubmit();\n break;\n case 'Escape':\n this.suggestionManager.clearSuggestions();\n break;\n case 'ArrowDown':\n e.preventDefault();\n await this.suggestionManager.focusNextValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'ArrowUp':\n e.preventDefault();\n await this.suggestionManager.focusPreviousValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'Tab':\n this.suggestionManager.clearSuggestions();\n break;\n }\n }\n\n private triggerTextAreaChange(value: string) {\n this.textAreaRef.value = value;\n this.textAreaRef.dispatchEvent(new window.Event('change'));\n }\n\n private renderSuggestion(\n item: SearchBoxSuggestionElement,\n index: number,\n lastIndex: number\n ) {\n const id = `${this.id}-suggestion-${item.key}`;\n\n const isSelected =\n id === this.suggestionManager.activeDescendant ||\n this.suggestionManager.suggestedQuery === item.query;\n\n if (index === lastIndex && item.hideIfLast) {\n return null;\n }\n\n return (\n <atomic-suggestion-renderer\n i18n={this.bindings.i18n}\n id={id}\n suggestion={item}\n isSelected={isSelected}\n side={'left'}\n index={index}\n lastIndex={lastIndex}\n isDoubleList={false}\n onClick={(e: Event) => {\n this.suggestionManager.onSuggestionClick(item, e);\n }}\n onMouseOver={() => {\n this.suggestionManager.onSuggestionMouseOver(item, 'left', id);\n }}\n ></atomic-suggestion-renderer>\n );\n }\n\n private renderSuggestionItem(\n suggestion: InsightSuggestion\n ): SearchBoxSuggestionElement {\n const hasQuery = this.searchBox.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={SearchSlimIcon}\n hasSuggestion={this.searchBoxState.suggestions.length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.searchBox.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n private renderPanel(\n elements: SearchBoxSuggestionElement[],\n setRef: (el: HTMLElement | undefined) => void,\n getRef: () => HTMLElement | undefined\n ) {\n if (!elements.length) {\n return null;\n }\n\n return (\n <div\n part={'suggestions'}\n ref={setRef}\n class=\"flex grow basis-1/2 flex-col\"\n onMouseDown={(e) => {\n if (e.target === getRef()) {\n e.preventDefault();\n }\n }}\n >\n {elements.map((suggestion, index) =>\n this.renderSuggestion(suggestion, index, elements.length - 1)\n )}\n </div>\n );\n }\n\n private renderSuggestions() {\n if (!this.suggestionManager.hasSuggestions) {\n this.suggestionManager.updateActiveDescendant();\n return null;\n }\n\n return (\n <div\n id={`${this.id}-popup`}\n part=\"suggestions-wrapper\"\n class={`bg-background border-neutral absolute top-full left-0 z-10 flex w-full rounded-md border ${\n this.suggestionManager.hasSuggestions && this.isExpanded\n ? ''\n : 'hidden'\n }`}\n role=\"application\"\n aria-label={this.bindings.i18n.t('search-suggestions-single-list')}\n {...(this.suggestionManager.activeDescendant && {\n 'aria-activedescendant': this.suggestionManager.activeDescendant,\n })}\n >\n {this.renderPanel(\n this.suggestionManager.allSuggestionElements,\n (el) => (this.suggestionManager.leftPanel = el),\n () => this.suggestionManager.leftPanel\n )}\n </div>\n );\n }\n\n private getSearchInputLabel() {\n if (isMacOS()) {\n return this.bindings.i18n.t('search-box-with-suggestions-macos');\n }\n if (!hasKeyboard()) {\n return this.bindings.i18n.t('search-box-with-suggestions-keyboardless');\n }\n return this.bindings.i18n.t('search-box-with-suggestions');\n }\n\n private async onFocus() {\n if (this.isExpanded) {\n return;\n }\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private async onInput(value: string) {\n this.searchBox.updateText(value);\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private announceNewActiveSuggestionToScreenReader() {\n const ariaLabel = this.suggestionManager.activeDescendantElement?.ariaLabel;\n if (isMacOS() && ariaLabel) {\n this.suggestionsAriaMessage = ariaLabel;\n }\n }\n\n private announceNewSuggestionsToScreenReader() {\n const numberOfSuggestionsToAnnounce =\n this.suggestionManager.allSuggestionElements.filter(\n elementHasQuery\n ).length;\n this.searchBoxAriaMessage = numberOfSuggestionsToAnnounce\n ? this.bindings.i18n.t(\n this.searchBoxState.value\n ? 'query-suggestions-available'\n : 'query-suggestions-available-no-query',\n {\n count: numberOfSuggestionsToAnnounce,\n query: this.searchBoxState.value,\n }\n )\n : this.bindings.i18n.t('query-suggestions-unavailable');\n }\n\n public render() {\n return (\n <SearchBoxWrapper\n disabled={this.disableSearch}\n onFocusout={(event) => {\n if (!isFocusingOut(event)) {\n return;\n }\n this.suggestionManager.clearSuggestions();\n this.isExpanded = false;\n }}\n >\n <atomic-icon\n part=\"submit-icon\"\n icon={SearchSlimIcon}\n class=\"my-auto mr-0 ml-4 h-4 w-4\"\n />\n <SearchTextArea\n textAreaRef={this.textAreaRef}\n loading={this.searchBoxState.isLoading}\n ref={(el) => el && (this.textAreaRef = el)}\n bindings={this.bindings}\n value={this.searchBoxState.value}\n ariaLabel={this.getSearchInputLabel()}\n placeholder={this.bindings.i18n.t('search-ellipsis')}\n onFocus={() => this.onFocus()}\n onKeyDown={(e) => this.onKeyDown(e)}\n onClear={() => {\n this.searchBox.clear();\n this.triggerTextAreaChange('');\n }}\n onInput={(e) => this.onInput((e.target as HTMLInputElement).value)}\n />\n {this.renderSuggestions()}\n </SearchBoxWrapper>\n );\n }\n}\n"],"version":3}
@@ -11,7 +11,7 @@ const resultUtils = require('./result-utils-3313d650.js');
11
11
  const slotUtils = require('./slot-utils-a30cb814.js');
12
12
  const attributesSlot = require('./attributes-slot-4e7d7a75.js');
13
13
  const stencilItemLink = require('./stencil-item-link-9feaef61.js');
14
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
14
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
15
15
  require('./dom-utils-d4790328.js');
16
16
  require('./init-queue-a18aa323.js');
17
17
  require('./initialization-lit-stencil-common-utils-730030b0.js');
@@ -59,7 +59,7 @@ const AtomicIPXResultLink = class {
59
59
  const href = bueno.isUndefined(this.hrefTemplate)
60
60
  ? this.result.clickUri
61
61
  : resultUtils.buildStringTemplateFromResult(this.hrefTemplate, this.result, this.bindings);
62
- return (index.h(stencilItemLink.LinkWithItemAnalytics, { key: '668d329350b8674927b50f6aa2e4d25365d21bb5', href: href, onSelect: () => this.onSelect(), onBeginDelayedSelect: () => this.interactiveResult.beginDelayedSelect(), onCancelPendingSelect: () => this.interactiveResult.cancelPendingSelect(), attributes: this.linkAttributes, stopPropagation: this.stopPropagation }, this.hasDefaultSlot ? (index.h("slot", null)) : (index.h("atomic-result-text", { field: "title", default: "no-title" }))));
62
+ return (index.h(stencilItemLink.LinkWithItemAnalytics, { key: 'df7098332d6115aa82b4b1bf6755348b5cb69985', href: href, onSelect: () => this.onSelect(), onBeginDelayedSelect: () => this.interactiveResult.beginDelayedSelect(), onCancelPendingSelect: () => this.interactiveResult.cancelPendingSelect(), attributes: this.linkAttributes, stopPropagation: this.stopPropagation }, this.hasDefaultSlot ? (index.h("slot", null)) : (index.h("atomic-result-text", { field: "title", default: "no-title" }))));
63
63
  }
64
64
  get host() { return index.getElement(this); }
65
65
  };
@@ -67,10 +67,10 @@ __decorate([
67
67
  initializationUtils.InitializeBindings()
68
68
  ], AtomicIPXResultLink.prototype, "bindings", void 0);
69
69
  __decorate([
70
- resultTemplateDecorators.ResultContext()
70
+ stencilResultTemplateDecorators.ResultContext()
71
71
  ], AtomicIPXResultLink.prototype, "result", void 0);
72
72
  __decorate([
73
- resultTemplateDecorators.InteractiveResultContext()
73
+ stencilResultTemplateDecorators.InteractiveResultContext()
74
74
  ], AtomicIPXResultLink.prototype, "interactiveResult", void 0);
75
75
  AtomicIPXResultLink.style = AtomicIpxResultLinkStyle0;
76
76
 
@@ -1 +1 @@
1
- {"file":"atomic-ipx-result-link.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,+plEAA+plE,CAAC;AAC/rlE,kCAAe,sBAAsB;;;;;;;;;;;;MCiCxB,mBAAmB;;;;;IA6BvB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrBA,2BAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAGC,qCAA4B,CACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAACC,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAGC,wCAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM,QAAQ;QACnB,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACtD,IAAI,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACnD,MAAM,MAAM,GACV,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CACzD,iBAAiB,CAClB,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;KACjC;IAEM,MAAM;QACX,MAAM,IAAI,GAAGC,iBAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpBC,yCAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACEC,QAACC,qCAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC/B,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClBD,qBAAQ,KAERA,gCACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;AAxF4B;IAA5BE,sCAAkB,EAAE;qDAAgC;AAG5B;IAAxBC,sCAAa,EAAE;mDAAkC;AACd;IAAnCC,iDAAwB,EAAE;8DAA+C;;;;;","names":["buildCustomEvent","loadIPXActionsHistoryActions","getDefaultSlotFromHost","getAttributesFromLinkSlot","isUndefined","buildStringTemplateFromResult","h","LinkWithItemAnalytics","InitializeBindings","ResultContext","InteractiveResultContext"],"sources":["src/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.pcss?tag=atomic-ipx-result-link","src/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n@reference '../../../utils/tailwind-utilities/link-style.css';\n\natomic-ipx-result-link {\n a {\n @apply link-style;\n }\n}\n","import {isUndefined} from '@coveo/bueno';\nimport {\n IPXActionsHistoryActionCreators,\n InteractiveResult,\n loadIPXActionsHistoryActions,\n} from '@coveo/headless';\nimport {Component, h, Prop, Element} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {buildStringTemplateFromResult} from '../../../utils/result-utils';\nimport {getDefaultSlotFromHost} from '../../../utils/slot-utils';\nimport {AnyUnfoldedItem} from '../../common/item-list/unfolded-item';\nimport {getAttributesFromLinkSlot} from '../../common/item-link/attributes-slot';\nimport {LinkWithItemAnalytics} from '../../common/item-link/stencil-item-link';\nimport {RecsBindings} from '../../recommendations/atomic-recs-interface/atomic-recs-interface';\nimport {\n ResultContext,\n InteractiveResultContext,\n} from '../../search/result-template-components/result-template-decorators';\n\n/**\n * The `atomic-ipx-result-link` component automatically transforms a search result title into a clickable link that points to the original item. It is an experimental internal component not intended for general use.\n * @slot default - Lets you display alternative content inside the link\n * @slot attributes - Lets you pass [attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes) down to the link element, overriding other attributes, to be used exclusively with an \"a\" tag such as `<a slot=\"attributes\" target=\"_blank\" download></a>`.\n * @internal\n */\n@Component({\n tag: 'atomic-ipx-result-link',\n styleUrl: 'atomic-ipx-result-link.pcss',\n shadow: false,\n})\nexport class AtomicIPXResultLink\n implements InitializableComponent<RecsBindings>\n{\n @InitializeBindings() public bindings!: RecsBindings;\n public error!: Error;\n\n @ResultContext() private result!: AnyUnfoldedItem;\n @InteractiveResultContext() private interactiveResult!: InteractiveResult;\n\n @Element() private host!: HTMLElement;\n\n /**\n * Specifies a template literal from which to generate the `href` attribute value (see\n * [Template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)).\n *\n * The template literal can reference any number of result properties from the parent result. It can also reference the window object.\n *\n * For example, the following markup generates an `href` value such as `http://uri.com?id=itemTitle`, using the result's `clickUri` and `itemtitle` fields.\n * ```html\n * <atomic-ipx-result-link href-template='${clickUri}?id=${raw.itemtitle}'></atomic-ipx-result-link>\n * ```\n */\n @Prop({reflect: true}) hrefTemplate?: string;\n\n private hasDefaultSlot!: boolean;\n private linkAttributes?: Attr[];\n private stopPropagation?: boolean;\n private actionsHistoryActions?: IPXActionsHistoryActionCreators;\n\n public initialize() {\n this.host.dispatchEvent(\n buildCustomEvent(\n 'atomic/resolveStopPropagation',\n (stopPropagation: boolean) => {\n this.stopPropagation = stopPropagation;\n }\n )\n );\n this.actionsHistoryActions = loadIPXActionsHistoryActions(\n this.bindings.engine\n );\n }\n\n public connectedCallback() {\n const slotName = 'attributes';\n this.hasDefaultSlot = !!getDefaultSlotFromHost(this.host);\n this.linkAttributes = getAttributesFromLinkSlot(this.host, slotName);\n }\n\n public async onSelect() {\n const resultPermanentId = this.result.raw.permanentid;\n if (resultPermanentId && this.actionsHistoryActions) {\n const action =\n this.actionsHistoryActions.addPageViewEntryInActionsHistory(\n resultPermanentId\n );\n this.bindings.engine.dispatch(action);\n }\n this.interactiveResult.select();\n }\n\n public render() {\n const href = isUndefined(this.hrefTemplate)\n ? this.result.clickUri\n : buildStringTemplateFromResult(\n this.hrefTemplate,\n this.result,\n this.bindings\n );\n\n return (\n <LinkWithItemAnalytics\n href={href}\n onSelect={() => this.onSelect()}\n onBeginDelayedSelect={() => this.interactiveResult.beginDelayedSelect()}\n onCancelPendingSelect={() =>\n this.interactiveResult.cancelPendingSelect()\n }\n attributes={this.linkAttributes}\n stopPropagation={this.stopPropagation}\n >\n {this.hasDefaultSlot ? (\n <slot />\n ) : (\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n ></atomic-result-text>\n )}\n </LinkWithItemAnalytics>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-ipx-result-link.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,+plEAA+plE,CAAC;AAC/rlE,kCAAe,sBAAsB;;;;;;;;;;;;MCiCxB,mBAAmB;;;;;IA6BvB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrBA,2BAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAGC,qCAA4B,CACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAACC,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAGC,wCAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM,QAAQ;QACnB,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACtD,IAAI,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACnD,MAAM,MAAM,GACV,IAAI,CAAC,qBAAqB,CAAC,gCAAgC,CACzD,iBAAiB,CAClB,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;KACjC;IAEM,MAAM;QACX,MAAM,IAAI,GAAGC,iBAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpBC,yCAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACEC,QAACC,qCAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC/B,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClBD,qBAAQ,KAERA,gCACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;AAxF4B;IAA5BE,sCAAkB,EAAE;qDAAgC;AAG5B;IAAxBC,6CAAa,EAAE;mDAAkC;AACd;IAAnCC,wDAAwB,EAAE;8DAA+C;;;;;","names":["buildCustomEvent","loadIPXActionsHistoryActions","getDefaultSlotFromHost","getAttributesFromLinkSlot","isUndefined","buildStringTemplateFromResult","h","LinkWithItemAnalytics","InitializeBindings","ResultContext","InteractiveResultContext"],"sources":["src/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.pcss?tag=atomic-ipx-result-link","src/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n@reference '../../../utils/tailwind-utilities/link-style.css';\n\natomic-ipx-result-link {\n a {\n @apply link-style;\n }\n}\n","import {isUndefined} from '@coveo/bueno';\nimport {\n IPXActionsHistoryActionCreators,\n InteractiveResult,\n loadIPXActionsHistoryActions,\n} from '@coveo/headless';\nimport {Component, h, Prop, Element} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {buildStringTemplateFromResult} from '../../../utils/result-utils';\nimport {getDefaultSlotFromHost} from '../../../utils/slot-utils';\nimport {AnyUnfoldedItem} from '../../common/item-list/unfolded-item';\nimport {getAttributesFromLinkSlot} from '../../common/item-link/attributes-slot';\nimport {LinkWithItemAnalytics} from '../../common/item-link/stencil-item-link';\nimport {RecsBindings} from '../../recommendations/atomic-recs-interface/atomic-recs-interface';\nimport {\n ResultContext,\n InteractiveResultContext,\n} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\n/**\n * The `atomic-ipx-result-link` component automatically transforms a search result title into a clickable link that points to the original item. It is an experimental internal component not intended for general use.\n * @slot default - Lets you display alternative content inside the link\n * @slot attributes - Lets you pass [attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes) down to the link element, overriding other attributes, to be used exclusively with an \"a\" tag such as `<a slot=\"attributes\" target=\"_blank\" download></a>`.\n * @internal\n */\n@Component({\n tag: 'atomic-ipx-result-link',\n styleUrl: 'atomic-ipx-result-link.pcss',\n shadow: false,\n})\nexport class AtomicIPXResultLink\n implements InitializableComponent<RecsBindings>\n{\n @InitializeBindings() public bindings!: RecsBindings;\n public error!: Error;\n\n @ResultContext() private result!: AnyUnfoldedItem;\n @InteractiveResultContext() private interactiveResult!: InteractiveResult;\n\n @Element() private host!: HTMLElement;\n\n /**\n * Specifies a template literal from which to generate the `href` attribute value (see\n * [Template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)).\n *\n * The template literal can reference any number of result properties from the parent result. It can also reference the window object.\n *\n * For example, the following markup generates an `href` value such as `http://uri.com?id=itemTitle`, using the result's `clickUri` and `itemtitle` fields.\n * ```html\n * <atomic-ipx-result-link href-template='${clickUri}?id=${raw.itemtitle}'></atomic-ipx-result-link>\n * ```\n */\n @Prop({reflect: true}) hrefTemplate?: string;\n\n private hasDefaultSlot!: boolean;\n private linkAttributes?: Attr[];\n private stopPropagation?: boolean;\n private actionsHistoryActions?: IPXActionsHistoryActionCreators;\n\n public initialize() {\n this.host.dispatchEvent(\n buildCustomEvent(\n 'atomic/resolveStopPropagation',\n (stopPropagation: boolean) => {\n this.stopPropagation = stopPropagation;\n }\n )\n );\n this.actionsHistoryActions = loadIPXActionsHistoryActions(\n this.bindings.engine\n );\n }\n\n public connectedCallback() {\n const slotName = 'attributes';\n this.hasDefaultSlot = !!getDefaultSlotFromHost(this.host);\n this.linkAttributes = getAttributesFromLinkSlot(this.host, slotName);\n }\n\n public async onSelect() {\n const resultPermanentId = this.result.raw.permanentid;\n if (resultPermanentId && this.actionsHistoryActions) {\n const action =\n this.actionsHistoryActions.addPageViewEntryInActionsHistory(\n resultPermanentId\n );\n this.bindings.engine.dispatch(action);\n }\n this.interactiveResult.select();\n }\n\n public render() {\n const href = isUndefined(this.hrefTemplate)\n ? this.result.clickUri\n : buildStringTemplateFromResult(\n this.hrefTemplate,\n this.result,\n this.bindings\n );\n\n return (\n <LinkWithItemAnalytics\n href={href}\n onSelect={() => this.onSelect()}\n onBeginDelayedSelect={() => this.interactiveResult.beginDelayedSelect()}\n onCancelPendingSelect={() =>\n this.interactiveResult.cancelPendingSelect()\n }\n attributes={this.linkAttributes}\n stopPropagation={this.stopPropagation}\n >\n {this.hasDefaultSlot ? (\n <slot />\n ) : (\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n ></atomic-result-text>\n )}\n </LinkWithItemAnalytics>\n );\n }\n}\n"],"version":3}
@@ -590,7 +590,7 @@ const AtomicQuickviewModal = class {
590
590
  });
591
591
  }
592
592
  render() {
593
- return (index.h("atomic-modal", { key: '39961d2d82abff5de836cc62847719c3c8e42a8a', fullscreen: this.bindings.store.isMobile(), class: 'atomic-quickview-modal', isOpen: this.isOpen, close: () => this.onClose(), exportparts: exportParts.ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
593
+ return (index.h("atomic-modal", { key: 'b80396367b49760cc969a1d75f427796e8fc3a2d', fullscreen: this.bindings.store.isMobile(), class: 'atomic-quickview-modal', isOpen: this.isOpen, close: () => this.onClose(), exportparts: exportParts.ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
594
594
  }
595
595
  static get watchers() { return {
596
596
  "highlightKeywords": ["watchHighlightKeywords"]
@@ -9,7 +9,7 @@ const quickview = require('./quickview-b74d3d85.js');
9
9
  const initializationUtils = require('./initialization-utils-92f1b080.js');
10
10
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
11
11
  const stencilButton = require('./stencil-button-94b89acc.js');
12
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
12
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
13
13
  require('./dom-utils-d4790328.js');
14
14
  require('./event-utils-9bfcf3c5.js');
15
15
  require('./init-queue-a18aa323.js');
@@ -116,7 +116,7 @@ const AtomicQuickview = class {
116
116
  }
117
117
  render() {
118
118
  if (this.quickviewState.resultHasPreview) {
119
- return (index.h(stencilButton.Button, { key: 'e764a4103dfec30f0fc15ad4237aaa64a2db267c', part: "button", title: this.bindings.i18n.t('quickview'), style: "outline-primary", class: "p-2", onClick: (event) => this.onClick(event), ref: this.focusTarget.setTarget }, index.h("atomic-icon", { key: '5df8ef61e0138ba63512897f99364391e5c5be14', part: "icon", class: "flex w-5 justify-center", icon: quickview.QuickviewIcon })));
119
+ return (index.h(stencilButton.Button, { key: 'c07bdc5580ed24a8c2ab594c174293655ec3da99', part: "button", title: this.bindings.i18n.t('quickview'), style: "outline-primary", class: "p-2", onClick: (event) => this.onClick(event), ref: this.focusTarget.setTarget }, index.h("atomic-icon", { key: '0822bb40d68a3d7691b4a50f12452d96a8263328', part: "icon", class: "flex w-5 justify-center", icon: quickview.QuickviewIcon })));
120
120
  }
121
121
  }
122
122
  };
@@ -124,7 +124,7 @@ __decorate([
124
124
  initializationUtils.InitializeBindings()
125
125
  ], AtomicQuickview.prototype, "bindings", void 0);
126
126
  __decorate([
127
- resultTemplateDecorators.ResultContext()
127
+ stencilResultTemplateDecorators.ResultContext()
128
128
  ], AtomicQuickview.prototype, "result", void 0);
129
129
  __decorate([
130
130
  initializationUtils.BindStateToController('quickview')
@@ -1 +1 @@
1
- {"file":"atomic-quickview.entry.cjs.js","mappings":"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","names":["FocusTargetController","buildQuickview","Schema","StringValue","h","Button","QuickviewIcon","InitializeBindings","ResultContext","BindStateToController","AriaLiveRegion"],"sources":["src/components/search/result-template-components/atomic-quickview/atomic-quickview.pcss?tag=atomic-quickview&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview/atomic-quickview.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Result,\n buildQuickview,\n Quickview,\n QuickviewState,\n} from '@coveo/headless';\nimport {Component, h, Listen, Prop, State} from '@stencil/core';\nimport QuickviewIcon from '../../../../images/quickview.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {\n AriaLiveRegion,\n FocusTargetController,\n} from '../../../../utils/stencil-accessibility-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../result-template-decorators';\n\n/**\n * The `atomic-quickview` component renders a button which the end user can click to open a modal box containing a preview\n * about a result.\n *\n * The `atomic-quickview` is not meant to replace the `atomic-result-link` to access an item in a result template; it has certain limitations (e.g., custom styles and embedded\n * images/links may not work as expected in an `atomic-quickview`).\n *\n * @part button - The button that opens the quickview modal on click.\n * @part icon - The icon for the quickview button.\n */\n@Component({\n tag: 'atomic-quickview',\n styleUrl: 'atomic-quickview.pcss',\n shadow: true,\n})\nexport class AtomicQuickview implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n private buttonFocusTarget?: FocusTargetController;\n\n @State() public error!: Error;\n\n public quickview!: Quickview;\n\n @BindStateToController('quickview')\n @State()\n public quickviewState!: QuickviewState;\n\n /**\n * The `sandbox` attribute to apply to the quickview iframe.\n *\n * The quickview is loaded inside an iframe with a [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox) attribute for security reasons.\n *\n * This attribute exists primarily to protect against potential XSS attacks that could originate from the document being displayed.\n *\n * By default, the sandbox attributes are: `allow-popups allow-top-navigation allow-same-origin`.\n *\n * `allow-same-origin` is not optional, and must always be included in the list of allowed capabilities for the component to function properly.\n */\n @Prop() public sandbox =\n 'allow-popups allow-top-navigation allow-same-origin';\n\n @AriaLiveRegion('quickview')\n protected quickviewAriaMessage!: string;\n\n @Listen('atomic/quickview/next', {target: 'body'})\n public onNextQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.next();\n }\n\n @Listen('atomic/quickview/previous', {target: 'body'})\n public onPreviousQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.previous();\n }\n\n private quickviewModalRef?: HTMLAtomicQuickviewModalElement;\n\n public get focusTarget() {\n if (!this.buttonFocusTarget) {\n this.buttonFocusTarget = new FocusTargetController(this);\n }\n return this.buttonFocusTarget;\n }\n\n public initialize() {\n this.quickview = buildQuickview(this.bindings.engine, {\n options: {result: this.result},\n });\n new Schema({\n sandbox: new StringValue({\n required: true,\n regex: /allow-same-origin/,\n }),\n }).validate({sandbox: this.sandbox});\n }\n\n private addQuickviewModalIfNeeded() {\n if (this.quickviewModalRef) {\n return;\n }\n\n const quickviewModal = this.bindings.interfaceElement.querySelector(\n 'atomic-quickview-modal'\n );\n if (quickviewModal) {\n this.quickviewModalRef = quickviewModal;\n return;\n }\n this.quickviewModalRef = document.createElement('atomic-quickview-modal');\n this.quickviewModalRef.setAttribute('sandbox', this.sandbox);\n this.bindings.interfaceElement.appendChild(this.quickviewModalRef);\n }\n\n private updateModalContent() {\n if (this.quickviewModalRef && this.quickview.state.content) {\n this.quickviewModalRef.content = this.quickview.state.content;\n this.quickviewModalRef.result = this.result;\n this.quickviewModalRef.total = this.quickviewState.totalResults;\n this.quickviewModalRef.current = this.quickviewState.currentResult;\n this.quickviewModalRef.modalCloseCallback = () =>\n this.focusTarget.focus();\n\n this.quickviewAriaMessage = this.quickviewState.isLoading\n ? this.bindings.i18n.t('quickview-loading')\n : this.bindings.i18n.t('quickview-loaded', {\n first: this.quickviewState.currentResult,\n last: this.quickviewState.totalResults,\n title: this.result.title,\n });\n }\n }\n\n private onClick(event?: MouseEvent) {\n event?.stopPropagation();\n this.quickview.fetchResultContent();\n }\n\n componentWillUpdate(): void {\n this.addQuickviewModalIfNeeded();\n this.updateModalContent();\n }\n\n public render() {\n if (this.quickviewState.resultHasPreview) {\n return (\n <Button\n part=\"button\"\n title={this.bindings.i18n.t('quickview')}\n style=\"outline-primary\"\n class=\"p-2\"\n onClick={(event) => this.onClick(event)}\n ref={this.focusTarget.setTarget}\n >\n <atomic-icon\n part=\"icon\"\n class=\"flex w-5 justify-center\"\n icon={QuickviewIcon}\n ></atomic-icon>\n </Button>\n );\n }\n }\n}\n"],"version":3}
1
+ {"file":"atomic-quickview.entry.cjs.js","mappings":"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","names":["FocusTargetController","buildQuickview","Schema","StringValue","h","Button","QuickviewIcon","InitializeBindings","ResultContext","BindStateToController","AriaLiveRegion"],"sources":["src/components/search/result-template-components/atomic-quickview/atomic-quickview.pcss?tag=atomic-quickview&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview/atomic-quickview.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Result,\n buildQuickview,\n Quickview,\n QuickviewState,\n} from '@coveo/headless';\nimport {Component, h, Listen, Prop, State} from '@stencil/core';\nimport QuickviewIcon from '../../../../images/quickview.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {\n AriaLiveRegion,\n FocusTargetController,\n} from '../../../../utils/stencil-accessibility-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\n/**\n * The `atomic-quickview` component renders a button which the end user can click to open a modal box containing a preview\n * about a result.\n *\n * The `atomic-quickview` is not meant to replace the `atomic-result-link` to access an item in a result template; it has certain limitations (e.g., custom styles and embedded\n * images/links may not work as expected in an `atomic-quickview`).\n *\n * @part button - The button that opens the quickview modal on click.\n * @part icon - The icon for the quickview button.\n */\n@Component({\n tag: 'atomic-quickview',\n styleUrl: 'atomic-quickview.pcss',\n shadow: true,\n})\nexport class AtomicQuickview implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n private buttonFocusTarget?: FocusTargetController;\n\n @State() public error!: Error;\n\n public quickview!: Quickview;\n\n @BindStateToController('quickview')\n @State()\n public quickviewState!: QuickviewState;\n\n /**\n * The `sandbox` attribute to apply to the quickview iframe.\n *\n * The quickview is loaded inside an iframe with a [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox) attribute for security reasons.\n *\n * This attribute exists primarily to protect against potential XSS attacks that could originate from the document being displayed.\n *\n * By default, the sandbox attributes are: `allow-popups allow-top-navigation allow-same-origin`.\n *\n * `allow-same-origin` is not optional, and must always be included in the list of allowed capabilities for the component to function properly.\n */\n @Prop() public sandbox =\n 'allow-popups allow-top-navigation allow-same-origin';\n\n @AriaLiveRegion('quickview')\n protected quickviewAriaMessage!: string;\n\n @Listen('atomic/quickview/next', {target: 'body'})\n public onNextQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.next();\n }\n\n @Listen('atomic/quickview/previous', {target: 'body'})\n public onPreviousQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.previous();\n }\n\n private quickviewModalRef?: HTMLAtomicQuickviewModalElement;\n\n public get focusTarget() {\n if (!this.buttonFocusTarget) {\n this.buttonFocusTarget = new FocusTargetController(this);\n }\n return this.buttonFocusTarget;\n }\n\n public initialize() {\n this.quickview = buildQuickview(this.bindings.engine, {\n options: {result: this.result},\n });\n new Schema({\n sandbox: new StringValue({\n required: true,\n regex: /allow-same-origin/,\n }),\n }).validate({sandbox: this.sandbox});\n }\n\n private addQuickviewModalIfNeeded() {\n if (this.quickviewModalRef) {\n return;\n }\n\n const quickviewModal = this.bindings.interfaceElement.querySelector(\n 'atomic-quickview-modal'\n );\n if (quickviewModal) {\n this.quickviewModalRef = quickviewModal;\n return;\n }\n this.quickviewModalRef = document.createElement('atomic-quickview-modal');\n this.quickviewModalRef.setAttribute('sandbox', this.sandbox);\n this.bindings.interfaceElement.appendChild(this.quickviewModalRef);\n }\n\n private updateModalContent() {\n if (this.quickviewModalRef && this.quickview.state.content) {\n this.quickviewModalRef.content = this.quickview.state.content;\n this.quickviewModalRef.result = this.result;\n this.quickviewModalRef.total = this.quickviewState.totalResults;\n this.quickviewModalRef.current = this.quickviewState.currentResult;\n this.quickviewModalRef.modalCloseCallback = () =>\n this.focusTarget.focus();\n\n this.quickviewAriaMessage = this.quickviewState.isLoading\n ? this.bindings.i18n.t('quickview-loading')\n : this.bindings.i18n.t('quickview-loaded', {\n first: this.quickviewState.currentResult,\n last: this.quickviewState.totalResults,\n title: this.result.title,\n });\n }\n }\n\n private onClick(event?: MouseEvent) {\n event?.stopPropagation();\n this.quickview.fetchResultContent();\n }\n\n componentWillUpdate(): void {\n this.addQuickviewModalIfNeeded();\n this.updateModalContent();\n }\n\n public render() {\n if (this.quickviewState.resultHasPreview) {\n return (\n <Button\n part=\"button\"\n title={this.bindings.i18n.t('quickview')}\n style=\"outline-primary\"\n class=\"p-2\"\n onClick={(event) => this.onClick(event)}\n ref={this.focusTarget.setTarget}\n >\n <atomic-icon\n part=\"icon\"\n class=\"flex w-5 justify-center\"\n icon={QuickviewIcon}\n ></atomic-icon>\n </Button>\n );\n }\n }\n}\n"],"version":3}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const initQueue = require('./init-queue-a18aa323.js');
7
7
  const recommendation = require('@coveo/headless/recommendation');
8
- const analyticsConfig = require('./analytics-config-de93a689.js');
8
+ const analyticsConfig = require('./analytics-config-57e2d9c2.js');
9
9
  const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const store = require('./store-82abd941.js');
11
11
  require('./dayjs.min-8b80e6d1.js');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
6
  const headless = require('@coveo/headless');
7
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
7
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
8
8
  require('./stencil-item-decorators-43a96f33.js');
9
9
  require('./dom-utils-d4790328.js');
10
10
  require('./event-utils-9bfcf3c5.js');
@@ -62,7 +62,7 @@ const AtomicResultBadge = class {
62
62
  get host() { return index.getElement(this); }
63
63
  };
64
64
  __decorate([
65
- resultTemplateDecorators.ResultContext()
65
+ stencilResultTemplateDecorators.ResultContext()
66
66
  ], AtomicResultBadge.prototype, "result", void 0);
67
67
  AtomicResultBadge.style = AtomicResultBadgeStyle0;
68
68
 
@@ -1 +1 @@
1
- {"file":"atomic-result-badge.entry.cjs.js","mappings":";;;;;;;;;;;AAAA,MAAM,oBAAoB,GAAG,qyjEAAqyjE,CAAC;AACn0jE,gCAAe,oBAAoB;;;;;;;;;;;;MC2CtB,iBAAiB;;;;;;;IA2BpB,UAAU;QAChB,QACEA,yBACE,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAE,IAAI,CAAC,IAAK,EAChB,KAAK,EAAC,sBAAsB,GACf,EACf;KACH;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAOA,gCAAoB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAuB,CAAC;SACrE;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAOA,yBAAa,KAAK,EAAE,IAAI,CAAC,KAAK,GAAgB,CAAC;SACvD;QACD,OAAOA,qBAAa,CAAC;KACtB;IAEO,UAAU;QAChB,OAAOA,kBAAM,IAAI,EAAC,oBAAoB,IAAE,IAAI,CAAC,cAAc,EAAE,CAAQ,CAAC;KACvE;IAEO,WAAW;QACjB,QACEA,iBACE,IAAI,EAAC,sBAAsB,EAC3B,KAAK,EAAC,wGAAwG,IAE7G,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,EAC9B,IAAI,CAAC,UAAU,EAAE,CACd,EACN;KACH;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,QAAQ,GACZC,+BAAsB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;gBACjE,IAAI,CAAC;YACP,IAAI,CAAC,QAAQ,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACpB;SACF;KACF;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;;;AA3EwB;IAAxBC,sCAAa,EAAE;iDAAyB;;;;;","names":["h","ResultTemplatesHelpers","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-badge/atomic-result-badge.pcss?tag=atomic-result-badge&encapsulation=shadow","src/components/search/result-template-components/atomic-result-badge/atomic-result-badge.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n:host {\n display: inline-flex;\n place-items: center;\n height: var(--row-height, auto);\n word-break: break-word;\n}\n","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, Element, Prop, h} from '@stencil/core';\nimport {ResultContext} from '../result-template-decorators';\n\n/**\n * The `atomic-result-badge` element renders a badge to highlight special features of a result.\n *\n * A badge can either display:\n * * Text:\n * ```html\n * <atomic-result-badge label=\"trending\"></atomic-result-badge>\n * ```\n * * The contents of a single-value field:\n * ```html\n * <atomic-result-badge field=\"objecttype\"></atomic-result-badge>\n * ```\n * * An icon:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/star.svg\"></atomic-result-badge>\n * ```\n * * Slotted elements:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/stopwatch.svg\">\n * Deal ends in <my-dynamic-countdown></my-dynamic-countdown>\n * </atomic-result-badge>\n * ```\n *\n * The contents of a multi-value field can be displayed as in the following example:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/language.svg\">\n * <atomic-result-multi-value-text field=\"language\"></atomic-result-multi-value-text>\n * </atomic-result-badge>\n * ```\n *\n * @part result-badge-element - The decorative outer-most element with the background color and text color.\n * @part result-badge-icon - The icon displayed at the left-end of the badge, if present.\n * @part result-badge-label - The wrapper around the contents at the right-end of the badge. This may be text, a field or slotted elements depending on which was configured.\n * @slot default - The element(s) to display inside the badge, instead of a field or label.\n */\n@Component({\n tag: 'atomic-result-badge',\n styleUrl: 'atomic-result-badge.pcss',\n shadow: true,\n})\nexport class AtomicResultBadge {\n @ResultContext() private result!: Result;\n @Element() host!: HTMLElement;\n /**\n * The field to display in the badge.\n *\n * Not compatible with `label`, slotted elements nor multi-value fields.\n */\n @Prop({reflect: true}) public field?: string;\n\n /**\n * The text to display in the badge.\n *\n * Not compatible with `field` nor slotted elements.\n */\n @Prop({reflect: true}) public label?: string;\n\n /**\n * Specifies an icon to display at the left-end of the badge.\n * This can be used in conjunction with `field`, `label` or slotted elements.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly\n */\n @Prop({reflect: true}) public icon?: string;\n\n private renderIcon() {\n return (\n <atomic-icon\n part=\"result-badge-icon\"\n icon={this.icon!}\n class=\"h-3 w-3 fill-current\"\n ></atomic-icon>\n );\n }\n\n private getTextContent() {\n if (this.field !== undefined) {\n return <atomic-result-text field={this.field}></atomic-result-text>;\n }\n if (this.label !== undefined) {\n return <atomic-text value={this.label}></atomic-text>;\n }\n return <slot></slot>;\n }\n\n private renderText() {\n return <span part=\"result-badge-label\">{this.getTextContent()}</span>;\n }\n\n private renderBadge() {\n return (\n <div\n part=\"result-badge-element\"\n class=\"bg-neutral-light text-neutral-dark inline-flex h-full place-items-center space-x-1.5 rounded-full px-3\"\n >\n {this.icon && this.renderIcon()}\n {this.renderText()}\n </div>\n );\n }\n\n componentWillRender() {\n if (this.field) {\n const hasValue =\n ResultTemplatesHelpers.getResultProperty(this.result, this.field) !==\n null;\n if (!hasValue) {\n this.host.remove();\n }\n }\n }\n\n render() {\n return this.renderBadge();\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-badge.entry.cjs.js","mappings":";;;;;;;;;;;AAAA,MAAM,oBAAoB,GAAG,qyjEAAqyjE,CAAC;AACn0jE,gCAAe,oBAAoB;;;;;;;;;;;;MC2CtB,iBAAiB;;;;;;;IA2BpB,UAAU;QAChB,QACEA,yBACE,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAE,IAAI,CAAC,IAAK,EAChB,KAAK,EAAC,sBAAsB,GACf,EACf;KACH;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAOA,gCAAoB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAuB,CAAC;SACrE;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAOA,yBAAa,KAAK,EAAE,IAAI,CAAC,KAAK,GAAgB,CAAC;SACvD;QACD,OAAOA,qBAAa,CAAC;KACtB;IAEO,UAAU;QAChB,OAAOA,kBAAM,IAAI,EAAC,oBAAoB,IAAE,IAAI,CAAC,cAAc,EAAE,CAAQ,CAAC;KACvE;IAEO,WAAW;QACjB,QACEA,iBACE,IAAI,EAAC,sBAAsB,EAC3B,KAAK,EAAC,wGAAwG,IAE7G,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,EAC9B,IAAI,CAAC,UAAU,EAAE,CACd,EACN;KACH;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,QAAQ,GACZC,+BAAsB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;gBACjE,IAAI,CAAC;YACP,IAAI,CAAC,QAAQ,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACpB;SACF;KACF;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;;;AA3EwB;IAAxBC,6CAAa,EAAE;iDAAyB;;;;;","names":["h","ResultTemplatesHelpers","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-badge/atomic-result-badge.pcss?tag=atomic-result-badge&encapsulation=shadow","src/components/search/result-template-components/atomic-result-badge/atomic-result-badge.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n:host {\n display: inline-flex;\n place-items: center;\n height: var(--row-height, auto);\n word-break: break-word;\n}\n","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, Element, Prop, h} from '@stencil/core';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\n/**\n * The `atomic-result-badge` element renders a badge to highlight special features of a result.\n *\n * A badge can either display:\n * * Text:\n * ```html\n * <atomic-result-badge label=\"trending\"></atomic-result-badge>\n * ```\n * * The contents of a single-value field:\n * ```html\n * <atomic-result-badge field=\"objecttype\"></atomic-result-badge>\n * ```\n * * An icon:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/star.svg\"></atomic-result-badge>\n * ```\n * * Slotted elements:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/stopwatch.svg\">\n * Deal ends in <my-dynamic-countdown></my-dynamic-countdown>\n * </atomic-result-badge>\n * ```\n *\n * The contents of a multi-value field can be displayed as in the following example:\n * ```html\n * <atomic-result-badge icon=\"https://my-website.fake/language.svg\">\n * <atomic-result-multi-value-text field=\"language\"></atomic-result-multi-value-text>\n * </atomic-result-badge>\n * ```\n *\n * @part result-badge-element - The decorative outer-most element with the background color and text color.\n * @part result-badge-icon - The icon displayed at the left-end of the badge, if present.\n * @part result-badge-label - The wrapper around the contents at the right-end of the badge. This may be text, a field or slotted elements depending on which was configured.\n * @slot default - The element(s) to display inside the badge, instead of a field or label.\n */\n@Component({\n tag: 'atomic-result-badge',\n styleUrl: 'atomic-result-badge.pcss',\n shadow: true,\n})\nexport class AtomicResultBadge {\n @ResultContext() private result!: Result;\n @Element() host!: HTMLElement;\n /**\n * The field to display in the badge.\n *\n * Not compatible with `label`, slotted elements nor multi-value fields.\n */\n @Prop({reflect: true}) public field?: string;\n\n /**\n * The text to display in the badge.\n *\n * Not compatible with `field` nor slotted elements.\n */\n @Prop({reflect: true}) public label?: string;\n\n /**\n * Specifies an icon to display at the left-end of the badge.\n * This can be used in conjunction with `field`, `label` or slotted elements.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly\n */\n @Prop({reflect: true}) public icon?: string;\n\n private renderIcon() {\n return (\n <atomic-icon\n part=\"result-badge-icon\"\n icon={this.icon!}\n class=\"h-3 w-3 fill-current\"\n ></atomic-icon>\n );\n }\n\n private getTextContent() {\n if (this.field !== undefined) {\n return <atomic-result-text field={this.field}></atomic-result-text>;\n }\n if (this.label !== undefined) {\n return <atomic-text value={this.label}></atomic-text>;\n }\n return <slot></slot>;\n }\n\n private renderText() {\n return <span part=\"result-badge-label\">{this.getTextContent()}</span>;\n }\n\n private renderBadge() {\n return (\n <div\n part=\"result-badge-element\"\n class=\"bg-neutral-light text-neutral-dark inline-flex h-full place-items-center space-x-1.5 rounded-full px-3\"\n >\n {this.icon && this.renderIcon()}\n {this.renderText()}\n </div>\n );\n }\n\n componentWillRender() {\n if (this.field) {\n const hasValue =\n ResultTemplatesHelpers.getResultProperty(this.result, this.field) !==\n null;\n if (!hasValue) {\n this.host.remove();\n }\n }\n }\n\n render() {\n return this.renderBadge();\n }\n}\n"],"version":3}
@@ -11,7 +11,7 @@ const unfoldedItem = require('./unfolded-item-148d21d6.js');
11
11
  const showHideButton = require('./show-hide-button-c4717f52.js');
12
12
  const itemTemplateProvider = require('./item-template-provider-470c1774.js');
13
13
  const stencilItemDecorators = require('./stencil-item-decorators-43a96f33.js');
14
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
14
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
15
15
  require('./dom-utils-d4790328.js');
16
16
  require('./init-queue-a18aa323.js');
17
17
  require('./initialization-lit-stencil-common-utils-730030b0.js');
@@ -139,7 +139,7 @@ const AtomicResultChildren = class {
139
139
  return (index.h(showHideButton.ChildrenWrapper, { hasChildren: children.length > 0 }, children.map((child, i) => this.renderChild(child, i === children.length - 1))));
140
140
  }
141
141
  render() {
142
- return (index.h(showHideButton.ResultChildrenGuard, { key: '28a209dcfc87da57c297a1a5fe5a06877311eaf7', inheritTemplates: this.inheritTemplates, resultTemplateRegistered: this.resultTemplateRegistered, templateHasError: this.templateHasError }, this.collection ? this.renderCollection() : this.renderFoldedResult()));
142
+ return (index.h(showHideButton.ResultChildrenGuard, { key: '7c7450158f2d6dfca8207fff72a72b4281cb5b5b', inheritTemplates: this.inheritTemplates, resultTemplateRegistered: this.resultTemplateRegistered, templateHasError: this.templateHasError }, this.collection ? this.renderCollection() : this.renderFoldedResult()));
143
143
  }
144
144
  get host() { return index.getElement(this); }
145
145
  };
@@ -153,7 +153,7 @@ __decorate([
153
153
  showHideButton.FoldedItemListContext()
154
154
  ], AtomicResultChildren.prototype, "foldedResultList", void 0);
155
155
  __decorate([
156
- resultTemplateDecorators.ResultContext({ folded: true })
156
+ stencilResultTemplateDecorators.ResultContext({ folded: true })
157
157
  ], AtomicResultChildren.prototype, "result", void 0);
158
158
  __decorate([
159
159
  stencilItemDecorators.ItemDisplayConfigContext()
@@ -1 +1 @@
1
- {"file":"atomic-result-children.entry.cjs.js","mappings":"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","names":["elementHasAncestorTag","ItemTemplateProvider","h","buildInteractiveResult","extractUnfoldedItem","buildCustomEvent","Fragment","ShowHideButton","CollectionGuard","ChildrenWrapper","ResultChildrenGuard","InitializeBindings","ChildTemplatesContext","FoldedItemListContext","ResultContext","ItemDisplayConfigContext","FoldedItemListStateContext"],"sources":["src/components/search/result-lists/atomic-result-children/atomic-result-children.pcss?tag=atomic-result-children&encapsulation=shadow","src/components/search/result-lists/atomic-result-children/atomic-result-children.tsx"],"sourcesContent":["@import '../../../../components/common/result-children/result-children.pcss';\n","import {\n buildInteractiveResult,\n FoldedResult,\n FoldedResultList,\n FoldedResultListState,\n} from '@coveo/headless';\nimport {\n Component,\n Element,\n State,\n h,\n Listen,\n Prop,\n Fragment,\n} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {elementHasAncestorTag} from '../../../../utils/utils';\nimport {extractUnfoldedItem} from '../../../common/item-list/unfolded-item';\nimport {\n FoldedItemListContext,\n FoldedItemListStateContext,\n} from '../../../common/item-list/item-list-decorators';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {\n ChildTemplatesContext,\n ChildTemplatesContextEvent,\n DisplayConfig,\n ItemDisplayConfigContext,\n} from '../../../common/item-list/stencil-item-decorators';\nimport {ItemDisplayImageSize} from '../../../common/layout/display-options';\nimport {ChildrenWrapper} from '../../../common/result-children/children-wrapper';\nimport {CollectionGuard} from '../../../common/result-children/collection-guard';\nimport {ResultChildrenGuard} from '../../../common/result-children/guard';\nimport {ShowHideButton} from '../../../common/result-children/show-hide-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../../result-template-components/result-template-decorators';\n\nconst childTemplateComponent = 'atomic-result-children-template';\nconst componentTag = 'atomic-result-children';\n\n/**\n * The `atomic-result-children` component is responsible for displaying child results by applying one or more child result templates.\n * Includes two slots, \"before-children\" and \"after-children\", which allow for rendering content before and after the list of children,\n * only when children exist.\n * @part children-root - The wrapper for the message when there are child results\n * @part no-result-root - The wrapper for the message when there are no results.\n * @part show-hide-button - The button that allows to collapse or show all child results.\n * @slot before-children - Slot that allows rendering content before the list of children, only when children exist.\n * @slot after-children - Slot that allows rendering content after the list of children, only when children exist.\n */\n@Component({\n tag: 'atomic-result-children',\n styleUrl: 'atomic-result-children.pcss',\n shadow: true,\n})\nexport class AtomicResultChildren implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ChildTemplatesContext()\n public itemTemplateProvider?: ItemTemplateProvider;\n @FoldedItemListContext()\n private foldedResultList!: FoldedResultList;\n @ResultContext({folded: true})\n private result!: FoldedResult;\n @ItemDisplayConfigContext()\n private displayConfig!: DisplayConfig;\n private initialChildren!: FoldedResult[];\n\n @Element() public host!: HTMLDivElement;\n @State() public error!: Error;\n @State() private resultTemplateRegistered = false;\n @State() private templateHasError = false;\n @FoldedItemListStateContext()\n @State()\n private foldedResultListState!: FoldedResultListState;\n @State()\n private showInitialChildren = false;\n\n /**\n * Whether to inherit templates defined in a parent atomic-result-children. Only works for the second level of child nesting.\n */\n @Prop() inheritTemplates = false;\n /**\n * The expected size of the image displayed in the children results.\n */\n @Prop({reflect: true}) imageSize?: ItemDisplayImageSize;\n /**\n * The non-localized copy for an empty result state. An empty string will result in the component being hidden.\n */\n @Prop() public noResultText = 'no-documents-related';\n\n @Listen('atomic/resolveChildTemplates')\n public resolveChildTemplates(event: ChildTemplatesContextEvent) {\n event.preventDefault();\n event.detail(this.itemTemplateProvider);\n }\n\n public initialize() {\n if (this.inheritTemplates) {\n return;\n }\n\n const childrenTemplates = Array.from(\n this.host.querySelectorAll(childTemplateComponent)\n ).filter(\n (template) => !elementHasAncestorTag(template, childTemplateComponent)\n );\n\n if (!childrenTemplates.length) {\n this.error = new Error(\n `The \"${componentTag}\" component requires at least one \"${childTemplateComponent}\" component.`\n );\n return;\n }\n\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: false,\n templateElements: childrenTemplates,\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n }\n\n private renderChild(child: FoldedResult, isLast: boolean) {\n const content = this.itemTemplateProvider?.getTemplateContent(child.result);\n\n if (!content) {\n return;\n }\n\n const key =\n child.result.uniqueId +\n child.children.map((child) => child.result.uniqueId);\n return (\n <atomic-result\n key={key}\n content={content}\n result={child}\n interactiveResult={buildInteractiveResult(this.bindings.engine, {\n options: {result: extractUnfoldedItem(child)},\n })}\n store={this.bindings.store}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n classes={`child-result ${isLast ? 'last-child' : ''}`.trim()}\n ></atomic-result>\n );\n }\n\n public componentWillRender() {\n if (this.initialChildren || !this.collection) {\n return;\n }\n\n this.initialChildren = this.collection.children;\n }\n\n private get collection() {\n return this.foldedResultListState.results.find((r) => {\n return r.result.uniqueId === this.result.result.uniqueId;\n });\n }\n private loadFullCollection() {\n this.loadedFullCollection = true;\n this.host.dispatchEvent(\n buildCustomEvent('atomic/loadCollection', this.collection)\n );\n }\n private toggleShowInitialChildren = () => {\n if (this.showInitialChildren) {\n this.foldedResultList.logShowMoreFoldedResults(this.result.result);\n } else {\n this.foldedResultList.logShowLessFoldedResults();\n }\n\n this.showInitialChildren = !this.showInitialChildren;\n };\n\n @State() private loadedFullCollection = false;\n\n private renderCollection() {\n const collection = this.collection!;\n\n const children = this.showInitialChildren\n ? this.initialChildren\n : collection.children;\n\n const showShouldButtons =\n this.loadedFullCollection || collection.moreResultsAvailable;\n\n return (\n <Fragment>\n {showShouldButtons && (\n <ShowHideButton\n moreResultsAvailable={collection.moreResultsAvailable}\n loadFullCollection={() => this.loadFullCollection()}\n showInitialChildren={this.showInitialChildren}\n toggleShowInitialChildren={this.toggleShowInitialChildren}\n loadAllResults={this.bindings.i18n.t('load-all-results')}\n collapseResults={this.bindings.i18n.t('collapse-results')}\n />\n )}\n\n <CollectionGuard\n isLoadingMoreResults={collection.isLoadingMoreResults}\n moreResultsAvailable={collection.moreResultsAvailable}\n hasChildren={collection.children.length > 0}\n numberOfChildren={collection.children.length}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n noResultText={this.bindings.i18n.t(this.noResultText)}\n >\n <ChildrenWrapper hasChildren={collection.children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n </CollectionGuard>\n </Fragment>\n );\n }\n\n private renderFoldedResult() {\n if (this.result.children.length === 0) {\n return;\n }\n\n const children = this.result.children;\n\n return (\n <ChildrenWrapper hasChildren={children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n );\n }\n\n public render() {\n return (\n <ResultChildrenGuard\n inheritTemplates={this.inheritTemplates}\n resultTemplateRegistered={this.resultTemplateRegistered}\n templateHasError={this.templateHasError}\n >\n {this.collection ? this.renderCollection() : this.renderFoldedResult()}\n </ResultChildrenGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-children.entry.cjs.js","mappings":"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","names":["elementHasAncestorTag","ItemTemplateProvider","h","buildInteractiveResult","extractUnfoldedItem","buildCustomEvent","Fragment","ShowHideButton","CollectionGuard","ChildrenWrapper","ResultChildrenGuard","InitializeBindings","ChildTemplatesContext","FoldedItemListContext","ResultContext","ItemDisplayConfigContext","FoldedItemListStateContext"],"sources":["src/components/search/result-lists/atomic-result-children/atomic-result-children.pcss?tag=atomic-result-children&encapsulation=shadow","src/components/search/result-lists/atomic-result-children/atomic-result-children.tsx"],"sourcesContent":["@import '../../../../components/common/result-children/result-children.pcss';\n","import {\n buildInteractiveResult,\n FoldedResult,\n FoldedResultList,\n FoldedResultListState,\n} from '@coveo/headless';\nimport {\n Component,\n Element,\n State,\n h,\n Listen,\n Prop,\n Fragment,\n} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {elementHasAncestorTag} from '../../../../utils/utils';\nimport {extractUnfoldedItem} from '../../../common/item-list/unfolded-item';\nimport {\n FoldedItemListContext,\n FoldedItemListStateContext,\n} from '../../../common/item-list/item-list-decorators';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {\n ChildTemplatesContext,\n ChildTemplatesContextEvent,\n DisplayConfig,\n ItemDisplayConfigContext,\n} from '../../../common/item-list/stencil-item-decorators';\nimport {ItemDisplayImageSize} from '../../../common/layout/display-options';\nimport {ChildrenWrapper} from '../../../common/result-children/children-wrapper';\nimport {CollectionGuard} from '../../../common/result-children/collection-guard';\nimport {ResultChildrenGuard} from '../../../common/result-children/guard';\nimport {ShowHideButton} from '../../../common/result-children/show-hide-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\nconst childTemplateComponent = 'atomic-result-children-template';\nconst componentTag = 'atomic-result-children';\n\n/**\n * The `atomic-result-children` component is responsible for displaying child results by applying one or more child result templates.\n * Includes two slots, \"before-children\" and \"after-children\", which allow for rendering content before and after the list of children,\n * only when children exist.\n * @part children-root - The wrapper for the message when there are child results\n * @part no-result-root - The wrapper for the message when there are no results.\n * @part show-hide-button - The button that allows to collapse or show all child results.\n * @slot before-children - Slot that allows rendering content before the list of children, only when children exist.\n * @slot after-children - Slot that allows rendering content after the list of children, only when children exist.\n */\n@Component({\n tag: 'atomic-result-children',\n styleUrl: 'atomic-result-children.pcss',\n shadow: true,\n})\nexport class AtomicResultChildren implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ChildTemplatesContext()\n public itemTemplateProvider?: ItemTemplateProvider;\n @FoldedItemListContext()\n private foldedResultList!: FoldedResultList;\n @ResultContext({folded: true})\n private result!: FoldedResult;\n @ItemDisplayConfigContext()\n private displayConfig!: DisplayConfig;\n private initialChildren!: FoldedResult[];\n\n @Element() public host!: HTMLDivElement;\n @State() public error!: Error;\n @State() private resultTemplateRegistered = false;\n @State() private templateHasError = false;\n @FoldedItemListStateContext()\n @State()\n private foldedResultListState!: FoldedResultListState;\n @State()\n private showInitialChildren = false;\n\n /**\n * Whether to inherit templates defined in a parent atomic-result-children. Only works for the second level of child nesting.\n */\n @Prop() inheritTemplates = false;\n /**\n * The expected size of the image displayed in the children results.\n */\n @Prop({reflect: true}) imageSize?: ItemDisplayImageSize;\n /**\n * The non-localized copy for an empty result state. An empty string will result in the component being hidden.\n */\n @Prop() public noResultText = 'no-documents-related';\n\n @Listen('atomic/resolveChildTemplates')\n public resolveChildTemplates(event: ChildTemplatesContextEvent) {\n event.preventDefault();\n event.detail(this.itemTemplateProvider);\n }\n\n public initialize() {\n if (this.inheritTemplates) {\n return;\n }\n\n const childrenTemplates = Array.from(\n this.host.querySelectorAll(childTemplateComponent)\n ).filter(\n (template) => !elementHasAncestorTag(template, childTemplateComponent)\n );\n\n if (!childrenTemplates.length) {\n this.error = new Error(\n `The \"${componentTag}\" component requires at least one \"${childTemplateComponent}\" component.`\n );\n return;\n }\n\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: false,\n templateElements: childrenTemplates,\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n }\n\n private renderChild(child: FoldedResult, isLast: boolean) {\n const content = this.itemTemplateProvider?.getTemplateContent(child.result);\n\n if (!content) {\n return;\n }\n\n const key =\n child.result.uniqueId +\n child.children.map((child) => child.result.uniqueId);\n return (\n <atomic-result\n key={key}\n content={content}\n result={child}\n interactiveResult={buildInteractiveResult(this.bindings.engine, {\n options: {result: extractUnfoldedItem(child)},\n })}\n store={this.bindings.store}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n classes={`child-result ${isLast ? 'last-child' : ''}`.trim()}\n ></atomic-result>\n );\n }\n\n public componentWillRender() {\n if (this.initialChildren || !this.collection) {\n return;\n }\n\n this.initialChildren = this.collection.children;\n }\n\n private get collection() {\n return this.foldedResultListState.results.find((r) => {\n return r.result.uniqueId === this.result.result.uniqueId;\n });\n }\n private loadFullCollection() {\n this.loadedFullCollection = true;\n this.host.dispatchEvent(\n buildCustomEvent('atomic/loadCollection', this.collection)\n );\n }\n private toggleShowInitialChildren = () => {\n if (this.showInitialChildren) {\n this.foldedResultList.logShowMoreFoldedResults(this.result.result);\n } else {\n this.foldedResultList.logShowLessFoldedResults();\n }\n\n this.showInitialChildren = !this.showInitialChildren;\n };\n\n @State() private loadedFullCollection = false;\n\n private renderCollection() {\n const collection = this.collection!;\n\n const children = this.showInitialChildren\n ? this.initialChildren\n : collection.children;\n\n const showShouldButtons =\n this.loadedFullCollection || collection.moreResultsAvailable;\n\n return (\n <Fragment>\n {showShouldButtons && (\n <ShowHideButton\n moreResultsAvailable={collection.moreResultsAvailable}\n loadFullCollection={() => this.loadFullCollection()}\n showInitialChildren={this.showInitialChildren}\n toggleShowInitialChildren={this.toggleShowInitialChildren}\n loadAllResults={this.bindings.i18n.t('load-all-results')}\n collapseResults={this.bindings.i18n.t('collapse-results')}\n />\n )}\n\n <CollectionGuard\n isLoadingMoreResults={collection.isLoadingMoreResults}\n moreResultsAvailable={collection.moreResultsAvailable}\n hasChildren={collection.children.length > 0}\n numberOfChildren={collection.children.length}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n noResultText={this.bindings.i18n.t(this.noResultText)}\n >\n <ChildrenWrapper hasChildren={collection.children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n </CollectionGuard>\n </Fragment>\n );\n }\n\n private renderFoldedResult() {\n if (this.result.children.length === 0) {\n return;\n }\n\n const children = this.result.children;\n\n return (\n <ChildrenWrapper hasChildren={children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n );\n }\n\n public render() {\n return (\n <ResultChildrenGuard\n inheritTemplates={this.inheritTemplates}\n resultTemplateRegistered={this.resultTemplateRegistered}\n templateHasError={this.templateHasError}\n >\n {this.collection ? this.renderCollection() : this.renderFoldedResult()}\n </ResultChildrenGuard>\n );\n }\n}\n"],"version":3}
@@ -8,7 +8,7 @@ const dayjs_min = require('./dayjs.min-8b80e6d1.js');
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-b3309d7b.js');
9
9
  const dateUtils = require('./date-utils-f0803dd3.js');
10
10
  const initializationUtils = require('./initialization-utils-92f1b080.js');
11
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
11
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
12
12
  require('./dom-utils-d4790328.js');
13
13
  require('./event-utils-9bfcf3c5.js');
14
14
  require('./init-queue-a18aa323.js');
@@ -107,7 +107,7 @@ __decorate([
107
107
  initializationUtils.InitializeBindings()
108
108
  ], AtomicResultDate.prototype, "bindings", void 0);
109
109
  __decorate([
110
- resultTemplateDecorators.ResultContext()
110
+ stencilResultTemplateDecorators.ResultContext()
111
111
  ], AtomicResultDate.prototype, "result", void 0);
112
112
 
113
113
  exports.atomic_result_date = AtomicResultDate;
@@ -1 +1 @@
1
- {"file":"atomic-result-date.entry.cjs.js","mappings":"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","names":["this","dayjs","ResultTemplatesHelpers","parseDate","InitializeBindings","ResultContext"],"sources":["../../node_modules/dayjs/plugin/calendar.js","../../node_modules/dayjs/plugin/updateLocale.js","src/components/search/result-template-components/atomic-result-date/atomic-result-date.tsx"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_calendar=t()}(this,(function(){\"use strict\";return function(e,t,a){var n=\"h:mm A\",d={lastDay:\"[Yesterday at] \"+n,sameDay:\"[Today at] \"+n,nextDay:\"[Tomorrow at] \"+n,nextWeek:\"dddd [at] \"+n,lastWeek:\"[Last] dddd [at] \"+n,sameElse:\"MM/DD/YYYY\"};t.prototype.calendar=function(e,t){var n=t||this.$locale().calendar||d,o=a(e||void 0).startOf(\"d\"),s=this.diff(o,\"d\",!0),i=\"sameElse\",f=s<-6?i:s<-1?\"lastWeek\":s<0?\"lastDay\":s<1?\"sameDay\":s<2?\"nextDay\":s<7?\"nextWeek\":i,l=n[f]||d[f];return\"function\"==typeof l?l.call(this,a()):this.format(l)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, Prop, Element, State} from '@stencil/core';\nimport dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport {parseDate} from '../../../../utils/date-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../result-template-decorators';\n\ndayjs.extend(calendar);\ndayjs.extend(updateLocale);\n\n/**\n * The `atomic-result-date` component renders the value of a date result field.\n */\n@Component({\n tag: 'atomic-result-date',\n shadow: false,\n})\nexport class AtomicResultDate implements InitializableComponent {\n @InitializeBindings()\n public bindings!: Bindings;\n\n @ResultContext() private result!: Result;\n\n @Element() host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The result field which the component should use.\n * This will look for the field in the Result object first, and then in the Result.raw object.\n * It is important to include the necessary field in the `atomic-search-interface` component.\n */\n @Prop({reflect: true}) field = 'date';\n /**\n * Available formats: https://day.js.org/docs/en/display/format\n */\n @Prop({reflect: true}) format = 'D/M/YYYY';\n\n /**\n * Whether the date should display in the [relative time format](https://day.js.org/docs/en/plugin/calendar).\n *\n * To modify the relative time string, use the [localization feature](https://docs.coveo.com/en/atomic/latest/usage/atomic-localization/).\n */\n @Prop({reflect: true}) relativeTime?: boolean;\n\n private dateToRender: string | null = null;\n\n private updateDateToRender() {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.field\n );\n\n if (value === null) {\n this.dateToRender = null;\n return;\n }\n\n const parsedValue = parseDate(value as never);\n if (!parsedValue.isValid()) {\n this.error = new Error(\n `Field \"${this.field}\" does not contain a valid date.`\n );\n this.dateToRender = null;\n return;\n }\n\n if (this.relativeTime) {\n dayjs.updateLocale(this.bindings.interfaceElement.language, {\n calendar: {\n sameDay: this.bindings.i18n.t('calendar-same-day'),\n nextDay: this.bindings.i18n.t('calendar-next-day'),\n nextWeek: this.bindings.i18n.t('calendar-next-week'),\n lastDay: this.bindings.i18n.t('calendar-last-day'),\n lastWeek: this.bindings.i18n.t('calendar-last-week'),\n sameElse: this.format,\n },\n });\n this.dateToRender = parsedValue.calendar();\n } else {\n this.dateToRender = parsedValue.format(this.format);\n }\n }\n\n public componentWillRender() {\n this.updateDateToRender();\n }\n\n public render() {\n if (this.dateToRender === null) {\n this.host.remove();\n return;\n }\n return this.dateToRender;\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-date.entry.cjs.js","mappings":"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","names":["this","dayjs","ResultTemplatesHelpers","parseDate","InitializeBindings","ResultContext"],"sources":["../../node_modules/dayjs/plugin/calendar.js","../../node_modules/dayjs/plugin/updateLocale.js","src/components/search/result-template-components/atomic-result-date/atomic-result-date.tsx"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_calendar=t()}(this,(function(){\"use strict\";return function(e,t,a){var n=\"h:mm A\",d={lastDay:\"[Yesterday at] \"+n,sameDay:\"[Today at] \"+n,nextDay:\"[Tomorrow at] \"+n,nextWeek:\"dddd [at] \"+n,lastWeek:\"[Last] dddd [at] \"+n,sameElse:\"MM/DD/YYYY\"};t.prototype.calendar=function(e,t){var n=t||this.$locale().calendar||d,o=a(e||void 0).startOf(\"d\"),s=this.diff(o,\"d\",!0),i=\"sameElse\",f=s<-6?i:s<-1?\"lastWeek\":s<0?\"lastDay\":s<1?\"sameDay\":s<2?\"nextDay\":s<7?\"nextWeek\":i,l=n[f]||d[f];return\"function\"==typeof l?l.call(this,a()):this.format(l)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, Prop, Element, State} from '@stencil/core';\nimport dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport {parseDate} from '../../../../utils/date-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\ndayjs.extend(calendar);\ndayjs.extend(updateLocale);\n\n/**\n * The `atomic-result-date` component renders the value of a date result field.\n */\n@Component({\n tag: 'atomic-result-date',\n shadow: false,\n})\nexport class AtomicResultDate implements InitializableComponent {\n @InitializeBindings()\n public bindings!: Bindings;\n\n @ResultContext() private result!: Result;\n\n @Element() host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The result field which the component should use.\n * This will look for the field in the Result object first, and then in the Result.raw object.\n * It is important to include the necessary field in the `atomic-search-interface` component.\n */\n @Prop({reflect: true}) field = 'date';\n /**\n * Available formats: https://day.js.org/docs/en/display/format\n */\n @Prop({reflect: true}) format = 'D/M/YYYY';\n\n /**\n * Whether the date should display in the [relative time format](https://day.js.org/docs/en/plugin/calendar).\n *\n * To modify the relative time string, use the [localization feature](https://docs.coveo.com/en/atomic/latest/usage/atomic-localization/).\n */\n @Prop({reflect: true}) relativeTime?: boolean;\n\n private dateToRender: string | null = null;\n\n private updateDateToRender() {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.field\n );\n\n if (value === null) {\n this.dateToRender = null;\n return;\n }\n\n const parsedValue = parseDate(value as never);\n if (!parsedValue.isValid()) {\n this.error = new Error(\n `Field \"${this.field}\" does not contain a valid date.`\n );\n this.dateToRender = null;\n return;\n }\n\n if (this.relativeTime) {\n dayjs.updateLocale(this.bindings.interfaceElement.language, {\n calendar: {\n sameDay: this.bindings.i18n.t('calendar-same-day'),\n nextDay: this.bindings.i18n.t('calendar-next-day'),\n nextWeek: this.bindings.i18n.t('calendar-next-week'),\n lastDay: this.bindings.i18n.t('calendar-last-day'),\n lastWeek: this.bindings.i18n.t('calendar-last-week'),\n sameElse: this.format,\n },\n });\n this.dateToRender = parsedValue.calendar();\n } else {\n this.dateToRender = parsedValue.format(this.format);\n }\n }\n\n public componentWillRender() {\n this.updateDateToRender();\n }\n\n public render() {\n if (this.dateToRender === null) {\n this.host.remove();\n return;\n }\n return this.dateToRender;\n }\n}\n"],"version":3}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
6
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
7
7
  require('./stencil-item-decorators-43a96f33.js');
8
8
  require('./dom-utils-d4790328.js');
9
9
  require('./event-utils-9bfcf3c5.js');
@@ -104,12 +104,12 @@ const AtomicResultFieldsList = class {
104
104
  }
105
105
  }
106
106
  render() {
107
- return index.h(index.Host, { key: '7206c67fd17f812fdf7a5aaf9429af162907677e' });
107
+ return index.h(index.Host, { key: '7ab9009e5f5c6df7200fa4f55e4384fbb8d25650' });
108
108
  }
109
109
  get host() { return index.getElement(this); }
110
110
  };
111
111
  __decorate([
112
- resultTemplateDecorators.ResultContext()
112
+ stencilResultTemplateDecorators.ResultContext()
113
113
  ], AtomicResultFieldsList.prototype, "result", void 0);
114
114
  AtomicResultFieldsList.style = AtomicResultFieldsListStyle0;
115
115
 
@@ -1 +1 @@
1
- {"file":"atomic-result-fields-list.entry.cjs.js","mappings":"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","names":["h","Host","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-fields-list/atomic-result-fields-list.pcss?tag=atomic-result-fields-list","src/components/search/result-template-components/atomic-result-fields-list/atomic-result-fields-list.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\natomic-result-fields-list {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n height: 100%;\n\n > * {\n &::after {\n display: block;\n content: ' ';\n width: 1px;\n height: 1rem;\n margin: 0 1rem;\n @apply bg-neutral;\n vertical-align: middle;\n }\n\n &.hide-divider::after {\n visibility: hidden;\n }\n }\n}\n","import {Result} from '@coveo/headless';\nimport {Component, h, Element, Host} from '@stencil/core';\nimport {ResultContext} from '../result-template-decorators';\n\n/**\n * The `atomic-result-fields-list` component selectively renders its children to ensure they fit the parent element and adds dividers between them.\n * @slot default - The children to render.\n */\n@Component({\n tag: 'atomic-result-fields-list',\n styleUrl: 'atomic-result-fields-list.pcss',\n shadow: false,\n})\nexport class AtomicResultFieldsList {\n @ResultContext()\n protected result!: Result;\n\n private resizeObserver?: ResizeObserver;\n\n private updatingChildren = false;\n private rows: number[] = [];\n @Element() private host!: HTMLElement;\n\n public connectedCallback() {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => this.update());\n this.resizeObserver.observe(this.host.parentElement!);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n public componentDidRender() {\n this.update();\n }\n\n public update() {\n if (this.updatingChildren) {\n return;\n }\n this.updatingChildren = true;\n this.showDividers();\n this.showChildren();\n this.hideChildrenToFit();\n this.hideDividersAtEndOfRows();\n this.updatingChildren = false;\n }\n\n private get hostChildren() {\n return Array.from(this.host.children) as HTMLElement[];\n }\n\n private get isOverflowing() {\n return (\n this.host.scrollWidth > this.host.clientWidth ||\n this.host.scrollHeight > this.host.clientHeight\n );\n }\n\n private getSortedChildrenBySize() {\n return this.hostChildren.sort((a, b) => a.offsetWidth - b.offsetWidth);\n }\n\n private hide(element: HTMLElement) {\n element.style.display = 'none';\n }\n\n private show(element: HTMLElement) {\n element.style.display = '';\n }\n\n private isChildHidden(element: HTMLElement) {\n return element.style.display === 'none';\n }\n\n private setHideDivider(element: HTMLElement, hideDivider: boolean) {\n element.classList.toggle('hide-divider', hideDivider);\n }\n\n private showChildren() {\n this.hostChildren.forEach((child) => this.show(child));\n }\n\n private showDividers() {\n this.hostChildren.forEach((child) => this.setHideDivider(child, false));\n }\n\n private hideChildrenToFit() {\n const children = this.getSortedChildrenBySize();\n for (let i = children.length - 1; this.isOverflowing && i >= 0; i--) {\n this.hide(children[i]);\n }\n }\n\n private hideDividersAtEndOfRows() {\n this.rows = [];\n let previousChild: HTMLElement | null = null;\n this.hostChildren\n .filter((child) => !this.isChildHidden(child))\n .forEach((child) => {\n const row = child.offsetTop;\n if (this.rows.indexOf(row) === -1) {\n this.rows.push(row);\n if (previousChild) {\n this.setHideDivider(previousChild, true);\n }\n }\n previousChild = child;\n });\n if (previousChild) {\n this.setHideDivider(previousChild, true);\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-fields-list.entry.cjs.js","mappings":"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","names":["h","Host","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-fields-list/atomic-result-fields-list.pcss?tag=atomic-result-fields-list","src/components/search/result-template-components/atomic-result-fields-list/atomic-result-fields-list.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\natomic-result-fields-list {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n height: 100%;\n\n > * {\n &::after {\n display: block;\n content: ' ';\n width: 1px;\n height: 1rem;\n margin: 0 1rem;\n @apply bg-neutral;\n vertical-align: middle;\n }\n\n &.hide-divider::after {\n visibility: hidden;\n }\n }\n}\n","import {Result} from '@coveo/headless';\nimport {Component, h, Element, Host} from '@stencil/core';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\n/**\n * The `atomic-result-fields-list` component selectively renders its children to ensure they fit the parent element and adds dividers between them.\n * @slot default - The children to render.\n */\n@Component({\n tag: 'atomic-result-fields-list',\n styleUrl: 'atomic-result-fields-list.pcss',\n shadow: false,\n})\nexport class AtomicResultFieldsList {\n @ResultContext()\n protected result!: Result;\n\n private resizeObserver?: ResizeObserver;\n\n private updatingChildren = false;\n private rows: number[] = [];\n @Element() private host!: HTMLElement;\n\n public connectedCallback() {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => this.update());\n this.resizeObserver.observe(this.host.parentElement!);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n public componentDidRender() {\n this.update();\n }\n\n public update() {\n if (this.updatingChildren) {\n return;\n }\n this.updatingChildren = true;\n this.showDividers();\n this.showChildren();\n this.hideChildrenToFit();\n this.hideDividersAtEndOfRows();\n this.updatingChildren = false;\n }\n\n private get hostChildren() {\n return Array.from(this.host.children) as HTMLElement[];\n }\n\n private get isOverflowing() {\n return (\n this.host.scrollWidth > this.host.clientWidth ||\n this.host.scrollHeight > this.host.clientHeight\n );\n }\n\n private getSortedChildrenBySize() {\n return this.hostChildren.sort((a, b) => a.offsetWidth - b.offsetWidth);\n }\n\n private hide(element: HTMLElement) {\n element.style.display = 'none';\n }\n\n private show(element: HTMLElement) {\n element.style.display = '';\n }\n\n private isChildHidden(element: HTMLElement) {\n return element.style.display === 'none';\n }\n\n private setHideDivider(element: HTMLElement, hideDivider: boolean) {\n element.classList.toggle('hide-divider', hideDivider);\n }\n\n private showChildren() {\n this.hostChildren.forEach((child) => this.show(child));\n }\n\n private showDividers() {\n this.hostChildren.forEach((child) => this.setHideDivider(child, false));\n }\n\n private hideChildrenToFit() {\n const children = this.getSortedChildrenBySize();\n for (let i = children.length - 1; this.isOverflowing && i >= 0; i--) {\n this.hide(children[i]);\n }\n }\n\n private hideDividersAtEndOfRows() {\n this.rows = [];\n let previousChild: HTMLElement | null = null;\n this.hostChildren\n .filter((child) => !this.isChildHidden(child))\n .forEach((child) => {\n const row = child.offsetTop;\n if (this.rows.indexOf(row) === -1) {\n this.rows.push(row);\n if (previousChild) {\n this.setHideDivider(previousChild, true);\n }\n }\n previousChild = child;\n });\n if (previousChild) {\n this.setHideDivider(previousChild, true);\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"version":3}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const initializationUtils = require('./initialization-utils-92f1b080.js');
7
7
  const resultUtils = require('./result-utils-3313d650.js');
8
- const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
8
+ const stencilResultTemplateDecorators = require('./stencil-result-template-decorators-5cb5b6e3.js');
9
9
  require('./dom-utils-d4790328.js');
10
10
  require('./event-utils-9bfcf3c5.js');
11
11
  require('./init-queue-a18aa323.js');
@@ -48,7 +48,7 @@ __decorate([
48
48
  initializationUtils.InitializeBindings()
49
49
  ], AtomicResultHtml.prototype, "bindings", void 0);
50
50
  __decorate([
51
- resultTemplateDecorators.ResultContext()
51
+ stencilResultTemplateDecorators.ResultContext()
52
52
  ], AtomicResultHtml.prototype, "result", void 0);
53
53
 
54
54
  exports.atomic_result_html = AtomicResultHtml;
@@ -1 +1 @@
1
- {"file":"atomic-result-html.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAqBa,gBAAgB;;;;;;QAkBG,aAAQ,GAAG,IAAI,CAAC;;;wBAAL,IAAI;;IAEtC,MAAM;QACX,MAAM,WAAW,GAAGA,0CAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;SACR;QAED,QACEC,yBAAa,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAgB,EACxE;KACH;;;AA7B4B;IAA5BC,sCAAkB,EAAE;kDAA4B;AACxB;IAAxBC,sCAAa,EAAE;gDAAyB;;;;","names":["getStringValueFromResultOrNull","h","InitializeBindings","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-html/atomic-result-html.tsx"],"sourcesContent":["import {Result} from '@coveo/headless';\nimport {Component, Prop, h, Element, State} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {getStringValueFromResultOrNull} from '../../../../utils/result-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../result-template-decorators';\n\n/**\n * The `atomic-result-html` component renders the HTML value of a string result field.\n *\n * There is an inherent XSS security concern associated with the usage of this component.\n *\n * Use only with fields for which you are certain the data is harmless.\n */\n@Component({\n tag: 'atomic-result-html',\n shadow: false,\n})\nexport class AtomicResultHtml implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The result field which the component should use.\n * If set, Atomic searches for the specified field in the `Result` object first.\n * If there's no such a field, Atomic searches through the `Result.raw` object.\n * It's important to include the necessary field in the `ResultList` component.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * Specify if the content should be sanitized, using [`DOMPurify`](https://www.npmjs.com/package/dompurify).\n */\n @Prop({reflect: true}) public sanitize = true;\n\n public render() {\n const resultValue = getStringValueFromResultOrNull(this.result, this.field);\n if (!resultValue) {\n this.host.remove();\n return;\n }\n\n return (\n <atomic-html value={resultValue} sanitize={this.sanitize}></atomic-html>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-html.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAqBa,gBAAgB;;;;;;QAkBG,aAAQ,GAAG,IAAI,CAAC;;;wBAAL,IAAI;;IAEtC,MAAM;QACX,MAAM,WAAW,GAAGA,0CAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;SACR;QAED,QACEC,yBAAa,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAgB,EACxE;KACH;;;AA7B4B;IAA5BC,sCAAkB,EAAE;kDAA4B;AACxB;IAAxBC,6CAAa,EAAE;gDAAyB;;;;","names":["getStringValueFromResultOrNull","h","InitializeBindings","ResultContext"],"sources":["src/components/search/result-template-components/atomic-result-html/atomic-result-html.tsx"],"sourcesContent":["import {Result} from '@coveo/headless';\nimport {Component, Prop, h, Element, State} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {getStringValueFromResultOrNull} from '../../../../utils/result-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '@/src/components/search/result-template-component-utils/stencil-result-template-decorators';\n\n/**\n * The `atomic-result-html` component renders the HTML value of a string result field.\n *\n * There is an inherent XSS security concern associated with the usage of this component.\n *\n * Use only with fields for which you are certain the data is harmless.\n */\n@Component({\n tag: 'atomic-result-html',\n shadow: false,\n})\nexport class AtomicResultHtml implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The result field which the component should use.\n * If set, Atomic searches for the specified field in the `Result` object first.\n * If there's no such a field, Atomic searches through the `Result.raw` object.\n * It's important to include the necessary field in the `ResultList` component.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * Specify if the content should be sanitized, using [`DOMPurify`](https://www.npmjs.com/package/dompurify).\n */\n @Prop({reflect: true}) public sanitize = true;\n\n public render() {\n const resultValue = getStringValueFromResultOrNull(this.result, this.field);\n if (!resultValue) {\n this.host.remove();\n return;\n }\n\n return (\n <atomic-html value={resultValue} sanitize={this.sanitize}></atomic-html>\n );\n }\n}\n"],"version":3}