@coveo/atomic 3.38.0 → 3.39.0

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 (1131) hide show
  1. package/README.md +14 -0
  2. package/dist/atomic/_atomic.esm.js +1 -1
  3. package/dist/atomic/atomic.esm.js.map +1 -1
  4. package/dist/atomic/components/_index.d.ts +0 -4
  5. package/dist/atomic/components/_index.js +0 -2
  6. package/dist/atomic/components/atomic-breadbox.js.map +1 -1
  7. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  8. package/dist/atomic/components/atomic-insight-result-children.js.map +1 -1
  9. package/dist/atomic/components/atomic-popover.js +1 -7
  10. package/dist/atomic/components/atomic-popover.js.map +1 -1
  11. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  12. package/dist/atomic/components/atomic-result-children.js +1 -1
  13. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  14. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  15. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  16. package/dist/atomic/components/atomic-suggestion-renderer2.js.map +1 -1
  17. package/dist/atomic/components/components/common/atomic-focus-trap/atomic-focus-trap.js +160 -0
  18. package/dist/atomic/components/components/common/index.js +1 -0
  19. package/dist/atomic/components/components/common/lazy-index.js +1 -0
  20. package/dist/atomic/components/components/common/suggestions/instant-item.js +1 -1
  21. package/dist/atomic/components/components/common/suggestions/query-suggestions.js +1 -1
  22. package/dist/atomic/components/components/common/suggestions/recent-queries.js +2 -2
  23. package/dist/atomic/components/components/common/validate-props-controller/validate-props-controller.js +15 -6
  24. package/dist/atomic/components/components/search/atomic-facet/atomic-facet.js +65 -2
  25. package/dist/atomic/components/components/search/atomic-result-html/atomic-result-html.js +97 -0
  26. package/dist/atomic/components/components/search/atomic-result-list/atomic-result-list.js +4 -2
  27. package/dist/atomic/components/components/search/index.js +1 -0
  28. package/dist/atomic/components/components/search/lazy-index.js +1 -0
  29. package/dist/atomic/components/global/environment.js +1 -1
  30. package/dist/atomic/components/index.js.map +1 -1
  31. package/dist/atomic/components/item-layout-sections.js +1 -1
  32. package/dist/atomic/components/props-utils.js +1 -1
  33. package/dist/atomic/components/result-utils.js +2 -9
  34. package/dist/atomic/components/result-utils.js.map +1 -1
  35. package/dist/atomic/components/show-hide-button.js.map +1 -1
  36. package/dist/atomic/components/stencil-accessibility-utils.js +1 -1
  37. package/dist/atomic/components/stencil-item-list-common.js +1 -1
  38. package/dist/atomic/components/stencil-result-template-common.js +1 -1
  39. package/dist/atomic/components/utils.js +1 -29
  40. package/dist/atomic/components/utils.js.map +1 -1
  41. package/dist/atomic/index.esm.js +1 -1
  42. package/dist/atomic/p-00b8b2e8.entry.js +2 -0
  43. package/dist/atomic/p-02893e42.entry.js +2 -0
  44. package/dist/atomic/p-0757f396.js +2 -0
  45. package/dist/atomic/p-0b1d29ae.entry.js +2 -0
  46. package/dist/atomic/p-0cf53453.entry.js +2 -0
  47. package/dist/atomic/p-0f01f086.entry.js +2 -0
  48. package/dist/atomic/p-0f6d1893.entry.js +2 -0
  49. package/dist/atomic/p-0fb30fdd.entry.js +2 -0
  50. package/dist/atomic/p-12e5e56c.js +2 -0
  51. package/dist/atomic/p-1522b928.entry.js +2 -0
  52. package/dist/atomic/p-15fc97ac.entry.js +2 -0
  53. package/dist/atomic/p-176d0477.entry.js +2 -0
  54. package/dist/atomic/p-1b2f375c.entry.js +2 -0
  55. package/dist/atomic/p-1c70d4a8.entry.js +2 -0
  56. package/dist/atomic/p-1c92fc2a.js +2 -0
  57. package/dist/atomic/p-1cfe9a6d.js +2 -0
  58. package/dist/atomic/p-1e3242c4.js +2 -0
  59. package/dist/atomic/p-20a02cb8.js +2 -0
  60. package/dist/atomic/p-21b1ef92.entry.js +2 -0
  61. package/dist/atomic/p-24a2db99.entry.js +2 -0
  62. package/dist/atomic/p-24e0f33d.entry.js +2 -0
  63. package/dist/atomic/p-250e3ba6.entry.js +2 -0
  64. package/dist/atomic/p-28683ceb.js +2 -0
  65. package/dist/atomic/p-297a186f.js +2 -0
  66. package/dist/atomic/p-29a42d73.entry.js +2 -0
  67. package/dist/atomic/p-2b2db1db.entry.js +2 -0
  68. package/dist/atomic/p-2b2db1db.entry.js.map +1 -0
  69. package/dist/atomic/p-2b3c7256.js +2 -0
  70. package/dist/atomic/p-2dbac3f0.entry.js +2 -0
  71. package/dist/atomic/p-2e21c2be.entry.js +2 -0
  72. package/dist/atomic/p-2e97cbb5.entry.js +2 -0
  73. package/dist/atomic/p-2ea4b61d.js +2 -0
  74. package/dist/atomic/p-3004da84.js +2 -0
  75. package/dist/atomic/p-308ea344.entry.js +2 -0
  76. package/dist/atomic/p-31b2e659.entry.js +2 -0
  77. package/dist/atomic/p-37b37610.entry.js +2 -0
  78. package/dist/atomic/p-39f99214.entry.js +2 -0
  79. package/dist/atomic/p-3a8ce5ea.entry.js +2 -0
  80. package/dist/atomic/p-3b5643b9.entry.js +2 -0
  81. package/dist/atomic/p-41788181.entry.js +2 -0
  82. package/dist/atomic/p-42327028.entry.js +2 -0
  83. package/dist/atomic/p-42a151a2.entry.js +2 -0
  84. package/dist/atomic/p-46412741.entry.js +2 -0
  85. package/dist/atomic/p-4683e572.js +2 -0
  86. package/dist/atomic/p-47c87f08.entry.js +2 -0
  87. package/dist/atomic/p-4a6458ad.js +2 -0
  88. package/dist/atomic/p-4f66e259.js +2 -0
  89. package/dist/atomic/p-4f6c469f.entry.js +2 -0
  90. package/dist/atomic/p-503d8e4c.entry.js +2 -0
  91. package/dist/atomic/p-51243c0a.entry.js +2 -0
  92. package/dist/atomic/p-52064d8c.entry.js +2 -0
  93. package/dist/atomic/p-525e09b0.js +2 -0
  94. package/dist/atomic/p-52e16718.entry.js +2 -0
  95. package/dist/atomic/p-5450d59f.entry.js +2 -0
  96. package/dist/atomic/p-554e903c.entry.js +2 -0
  97. package/dist/atomic/p-56a21ae7.js +2 -0
  98. package/dist/atomic/p-5a161f56.entry.js +2 -0
  99. package/dist/atomic/p-5a52dc4f.entry.js +2 -0
  100. package/dist/atomic/p-5a8c8608.js +2 -0
  101. package/dist/atomic/p-61c19a04.entry.js +2 -0
  102. package/dist/atomic/p-64cc0214.js +2 -0
  103. package/dist/atomic/p-694af29d.entry.js +2 -0
  104. package/dist/atomic/p-6a5a366c.js +2 -0
  105. package/dist/atomic/p-6e8f6c4e.entry.js +2 -0
  106. package/dist/atomic/p-7148b295.entry.js +2 -0
  107. package/dist/atomic/p-74975270.js +2 -0
  108. package/dist/atomic/p-74975270.js.map +1 -0
  109. package/dist/atomic/p-78ff2358.entry.js +2 -0
  110. package/dist/atomic/p-7aa80b40.entry.js +2 -0
  111. package/dist/atomic/p-7b8020dd.entry.js +2 -0
  112. package/dist/atomic/p-7c6cded8.entry.js +2 -0
  113. package/dist/atomic/p-7da807d6.entry.js +2 -0
  114. package/dist/atomic/p-81ead125.entry.js +2 -0
  115. package/dist/atomic/p-81ffbea0.js +2 -0
  116. package/dist/atomic/p-846ef8c9.entry.js +2 -0
  117. package/dist/atomic/p-84aada47.entry.js +2 -0
  118. package/dist/atomic/p-8a471188.js +2 -0
  119. package/dist/atomic/p-8b3b87e9.entry.js +2 -0
  120. package/dist/atomic/p-8e0a3de9.js +2 -0
  121. package/dist/atomic/p-8f7b6eb3.js +2 -0
  122. package/dist/atomic/p-8f870628.js +2 -0
  123. package/dist/atomic/p-8fdda5c6.js +2 -0
  124. package/dist/atomic/p-91350669.entry.js +2 -0
  125. package/dist/atomic/p-925df073.js +2 -0
  126. package/dist/atomic/p-92db698d.entry.js +2 -0
  127. package/dist/atomic/p-944fe2ca.entry.js +2 -0
  128. package/dist/atomic/p-945533bd.js +2 -0
  129. package/dist/atomic/p-95649dfe.entry.js +2 -0
  130. package/dist/atomic/p-97bf5db6.entry.js +2 -0
  131. package/dist/atomic/p-98ee46c3.entry.js +2 -0
  132. package/dist/atomic/p-9c34e291.entry.js +2 -0
  133. package/dist/atomic/p-9c875991.entry.js +2 -0
  134. package/dist/atomic/p-9c875991.entry.js.map +1 -0
  135. package/dist/atomic/p-9cb00233.entry.js +2 -0
  136. package/dist/atomic/p-9cb00233.entry.js.map +1 -0
  137. package/dist/atomic/p-9d89f16e.entry.js +2 -0
  138. package/dist/atomic/p-9e262d4f.entry.js +2 -0
  139. package/dist/atomic/p-9e84fd28.entry.js +2 -0
  140. package/dist/atomic/p-9f127a00.entry.js +2 -0
  141. package/dist/atomic/p-9f17aac0.entry.js +2 -0
  142. package/dist/atomic/p-a17b8ffc.js +2 -0
  143. package/dist/atomic/p-a3ab554e.entry.js +2 -0
  144. package/dist/atomic/p-a86ffd12.entry.js +2 -0
  145. package/dist/atomic/p-a8c7f34f.entry.js +2 -0
  146. package/dist/atomic/p-a9ed505a.js +2 -0
  147. package/dist/atomic/p-aaf864d7.js +2 -0
  148. package/dist/atomic/p-ab304a67.entry.js +2 -0
  149. package/dist/atomic/p-ac7abbae.entry.js +2 -0
  150. package/dist/atomic/p-acbd51dd.js +2 -0
  151. package/dist/atomic/p-ad38e363.entry.js +2 -0
  152. package/dist/atomic/p-ad908a26.js +2 -0
  153. package/dist/atomic/p-ad908a26.js.map +1 -0
  154. package/dist/atomic/p-adad4020.js +2 -0
  155. package/dist/atomic/p-b125e5e5.entry.js +2 -0
  156. package/dist/atomic/p-b160be42.js +2 -0
  157. package/dist/atomic/p-b19ad4bc.entry.js +2 -0
  158. package/dist/atomic/p-b416f690.entry.js +2 -0
  159. package/dist/atomic/p-b597d76c.entry.js +2 -0
  160. package/dist/atomic/p-b6b48649.entry.js +2 -0
  161. package/dist/atomic/p-b7f5fdab.js +2 -0
  162. package/dist/atomic/p-b7f9420d.entry.js +2 -0
  163. package/dist/atomic/p-b97a773c.entry.js +2 -0
  164. package/dist/atomic/p-ba021837.js +2 -0
  165. package/dist/atomic/p-bc0fc584.entry.js +2 -0
  166. package/dist/atomic/p-bd1aa6bb.entry.js +2 -0
  167. package/dist/atomic/p-bdfc3cc7.js +3 -0
  168. package/dist/atomic/p-bdfc3cc7.js.map +1 -0
  169. package/dist/atomic/p-bec7e50a.entry.js +2 -0
  170. package/dist/atomic/p-c566543b.entry.js +2 -0
  171. package/dist/atomic/p-c5ec8f79.js +9 -0
  172. package/dist/atomic/p-c6986525.entry.js +2 -0
  173. package/dist/atomic/p-c7072c4d.entry.js +2 -0
  174. package/dist/atomic/p-c7072c4d.entry.js.map +1 -0
  175. package/dist/atomic/p-c953f644.entry.js +2 -0
  176. package/dist/atomic/p-d0294026.js +2 -0
  177. package/dist/atomic/p-d2bb57da.entry.js +2 -0
  178. package/dist/atomic/p-d45776b3.js +2 -0
  179. package/dist/atomic/p-d967e926.js +2 -0
  180. package/dist/atomic/p-e03f245b.entry.js +2 -0
  181. package/dist/atomic/p-e19ef4be.entry.js +2 -0
  182. package/dist/atomic/p-e2088f9e.entry.js +2 -0
  183. package/dist/atomic/p-e4553b03.entry.js +2 -0
  184. package/dist/atomic/p-e4e22ca4.entry.js +2 -0
  185. package/dist/atomic/p-e4e22ca4.entry.js.map +1 -0
  186. package/dist/atomic/p-e5546bea.entry.js +2 -0
  187. package/dist/atomic/p-e5f356ca.entry.js +2 -0
  188. package/dist/atomic/p-e614add9.js +2 -0
  189. package/dist/atomic/p-e86a9dcb.entry.js +2 -0
  190. package/dist/atomic/p-e8befabf.entry.js +2 -0
  191. package/dist/atomic/p-efff4455.entry.js +2 -0
  192. package/dist/atomic/p-f00a245c.js +2 -0
  193. package/dist/atomic/p-f0f67cf4.js +2 -0
  194. package/dist/atomic/p-f1997c74.entry.js +2 -0
  195. package/dist/atomic/p-f2aebada.entry.js +2 -0
  196. package/dist/atomic/p-f312f600.entry.js +2 -0
  197. package/dist/atomic/p-fa867de1.entry.js +2 -0
  198. package/dist/atomic/p-fc4761d1.entry.js +2 -0
  199. package/dist/atomic/p-fd610816.entry.js +2 -0
  200. package/dist/atomic/p-fdb1a985.js +2 -0
  201. package/dist/atomic/p-fdb1a985.js.map +1 -0
  202. package/dist/cjs/_index.cjs.js +4 -4
  203. package/dist/cjs/_loader.cjs.js +2 -2
  204. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +12 -12
  205. package/dist/cjs/atomic-breadbox.cjs.entry.js +5 -5
  206. package/dist/cjs/atomic-breadbox.cjs.entry.js.map +1 -1
  207. package/dist/cjs/atomic-category-facet.cjs.entry.js +15 -15
  208. package/dist/cjs/atomic-citation.cjs.entry.js +3 -3
  209. package/dist/cjs/atomic-color-facet.cjs.entry.js +14 -14
  210. package/dist/cjs/atomic-did-you-mean.cjs.entry.js +3 -3
  211. package/dist/cjs/atomic-facet-manager.cjs.entry.js +2 -2
  212. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  213. package/dist/cjs/atomic-field-condition.cjs.entry.js +7 -7
  214. package/dist/cjs/atomic-folded-result-list.cjs.entry.js +11 -11
  215. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  217. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  218. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +7 -7
  219. package/dist/cjs/atomic-generated-answer.cjs.entry.js +8 -8
  220. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +3 -3
  221. package/dist/cjs/atomic-insight-facet.cjs.entry.js +16 -16
  222. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +10 -10
  223. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +4 -4
  224. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +7 -7
  225. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +3 -3
  226. package/dist/cjs/atomic-insight-layout.cjs.entry.js +3 -3
  227. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +7 -7
  228. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +16 -16
  229. package/dist/cjs/atomic-insight-pager.cjs.entry.js +5 -5
  230. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +6 -6
  231. package/dist/cjs/atomic-insight-query-summary.cjs.entry.js +5 -5
  232. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +4 -4
  233. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +4 -4
  234. package/dist/cjs/atomic-insight-result-action-bar.cjs.entry.js +2 -2
  235. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +6 -6
  236. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +6 -6
  237. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +4 -4
  238. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +5 -5
  239. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +8 -8
  240. package/dist/cjs/atomic-insight-result-children.cjs.entry.js.map +1 -1
  241. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +10 -10
  242. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +8 -8
  243. package/dist/cjs/atomic-insight-result-template.cjs.entry.js +5 -5
  244. package/dist/cjs/atomic-insight-result.cjs.entry.js +6 -6
  245. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +6 -6
  246. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +5 -5
  247. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +6 -6
  248. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js +7 -7
  249. package/dist/cjs/atomic-insight-tab.cjs.entry.js +4 -4
  250. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +2 -2
  251. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +13 -13
  252. package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js +3 -3
  253. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +4 -4
  254. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +4 -4
  255. package/dist/cjs/atomic-ipx-body.cjs.entry.js +3 -3
  256. package/dist/cjs/atomic-ipx-button.cjs.entry.js +3 -3
  257. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +3 -3
  258. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +3 -3
  259. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +12 -12
  260. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +4 -4
  261. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +4 -4
  262. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +6 -6
  263. package/dist/cjs/atomic-ipx-tab.cjs.entry.js +3 -3
  264. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +2 -2
  265. package/dist/cjs/atomic-no-results.cjs.entry.js +8 -8
  266. package/dist/cjs/atomic-notifications.cjs.entry.js +5 -5
  267. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +16 -16
  268. package/dist/cjs/atomic-popover.cjs.entry.js +3 -3
  269. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +7 -7
  270. package/dist/cjs/atomic-quickview.cjs.entry.js +7 -7
  271. package/dist/cjs/atomic-rating-facet.cjs.entry.js +14 -14
  272. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +12 -12
  273. package/dist/cjs/atomic-recs-error.cjs.entry.js +6 -6
  274. package/dist/cjs/atomic-recs-list.cjs.entry.js +12 -12
  275. package/dist/cjs/atomic-recs-result-template.cjs.entry.js +5 -5
  276. package/dist/cjs/atomic-recs-result.cjs.entry.js +6 -6
  277. package/dist/cjs/atomic-refine-modal.cjs.entry.js +5 -5
  278. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +3 -3
  279. package/dist/cjs/atomic-result-badge.cjs.entry.js +3 -3
  280. package/dist/cjs/atomic-result-children.cjs.entry.js +9 -9
  281. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  282. package/dist/cjs/atomic-result-date.cjs.entry.js +4 -4
  283. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +3 -3
  284. package/dist/cjs/atomic-result-icon.cjs.entry.js +4 -4
  285. package/dist/cjs/atomic-result-image.cjs.entry.js +4 -4
  286. package/dist/cjs/atomic-result-link.cjs.entry.js +6 -6
  287. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +6 -6
  288. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +5 -5
  289. package/dist/cjs/atomic-result-placeholder_2.cjs.entry.js +4 -4
  290. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +7 -7
  291. package/dist/cjs/atomic-result-rating.cjs.entry.js +5 -5
  292. package/dist/cjs/atomic-result-timespan.cjs.entry.js +4 -4
  293. package/dist/cjs/atomic-search-box.cjs.entry.js +6 -6
  294. package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js +3 -3
  295. package/dist/cjs/atomic-segmented-facet.cjs.entry.js +7 -7
  296. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +4 -4
  297. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +2 -2
  298. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +5 -5
  299. package/dist/cjs/atomic-smart-snippet-suggestions.cjs.entry.js +6 -6
  300. package/dist/cjs/atomic-smart-snippet.cjs.entry.js +8 -8
  301. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +3 -3
  302. package/dist/cjs/atomic-sort-expression.cjs.entry.js +3 -3
  303. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +2 -2
  304. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +2 -2
  305. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js.map +1 -1
  306. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +3 -3
  307. package/dist/cjs/atomic-tab-button.cjs.entry.js +2 -2
  308. package/dist/cjs/atomic-tab-manager.cjs.entry.js +2 -2
  309. package/dist/cjs/atomic-tab.cjs.entry.js +1 -1
  310. package/dist/cjs/atomic-table-element.cjs.entry.js +1 -1
  311. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +13 -13
  312. package/dist/cjs/atomic-timeframe.cjs.entry.js +1 -1
  313. package/dist/cjs/atomic.cjs.js +2 -2
  314. package/dist/cjs/display-options-95d91e1f.js +107 -0
  315. package/dist/cjs/display-options-95d91e1f.js.map +1 -0
  316. package/dist/cjs/generated-answer-common-18cb54a4.js +2955 -0
  317. package/dist/cjs/generated-answer-common-18cb54a4.js.map +1 -0
  318. package/dist/cjs/index-8fc6356e.js +2132 -0
  319. package/dist/cjs/index-8fc6356e.js.map +1 -0
  320. package/dist/cjs/initialization-utils-4c473e81.js +149 -0
  321. package/dist/cjs/initialization-utils-4c473e81.js.map +1 -0
  322. package/dist/cjs/item-layout-sections-bfa10d7e.js +44 -0
  323. package/dist/cjs/item-layout-sections-bfa10d7e.js.map +1 -0
  324. package/dist/cjs/jsx-utils-5f15d1a3.js +31 -0
  325. package/dist/cjs/jsx-utils-5f15d1a3.js.map +1 -0
  326. package/dist/cjs/props-utils-758bc114.js +89 -0
  327. package/dist/cjs/props-utils-758bc114.js.map +1 -0
  328. package/dist/cjs/result-template-provider-92566b56.js +103 -0
  329. package/dist/cjs/result-template-provider-92566b56.js.map +1 -0
  330. package/dist/cjs/result-utils-30919a35.js +67 -0
  331. package/dist/cjs/result-utils-30919a35.js.map +1 -0
  332. package/dist/cjs/show-hide-button-884d4c71.js +115 -0
  333. package/dist/cjs/show-hide-button-884d4c71.js.map +1 -0
  334. package/dist/cjs/smart-snippet-common-402a565a.js +75 -0
  335. package/dist/cjs/smart-snippet-common-402a565a.js.map +1 -0
  336. package/dist/cjs/smart-snippet-feedback-modal-common-e3d0d94c.js +87 -0
  337. package/dist/cjs/smart-snippet-feedback-modal-common-e3d0d94c.js.map +1 -0
  338. package/dist/cjs/smart-snippet-suggestions-common-158c812f.js +54 -0
  339. package/dist/cjs/smart-snippet-suggestions-common-158c812f.js.map +1 -0
  340. package/dist/cjs/stencil-accessibility-utils-c3f70190.js +164 -0
  341. package/dist/cjs/stencil-accessibility-utils-c3f70190.js.map +1 -0
  342. package/dist/cjs/stencil-button-78d3c7fa.js +133 -0
  343. package/dist/cjs/stencil-button-78d3c7fa.js.map +1 -0
  344. package/dist/cjs/stencil-carousel-59e6b944.js +53 -0
  345. package/dist/cjs/stencil-carousel-59e6b944.js.map +1 -0
  346. package/dist/cjs/stencil-checkbox-a6d3d019.js +45 -0
  347. package/dist/cjs/stencil-checkbox-a6d3d019.js.map +1 -0
  348. package/dist/cjs/stencil-display-wrapper-825efc8b.js +32 -0
  349. package/dist/cjs/stencil-display-wrapper-825efc8b.js.map +1 -0
  350. package/dist/cjs/stencil-facet-guard-51e3398d.js +18 -0
  351. package/dist/cjs/stencil-facet-guard-51e3398d.js.map +1 -0
  352. package/dist/cjs/stencil-facet-placeholder-8036fef5.js +56 -0
  353. package/dist/cjs/stencil-facet-placeholder-8036fef5.js.map +1 -0
  354. package/dist/cjs/stencil-facet-search-matches-3574c7c7.js +65 -0
  355. package/dist/cjs/stencil-facet-search-matches-3574c7c7.js.map +1 -0
  356. package/dist/cjs/stencil-facet-show-more-less-bf925f8d.js +58 -0
  357. package/dist/cjs/stencil-facet-show-more-less-bf925f8d.js.map +1 -0
  358. package/dist/cjs/stencil-facet-value-box-eaa3a71c.js +29 -0
  359. package/dist/cjs/stencil-facet-value-box-eaa3a71c.js.map +1 -0
  360. package/dist/cjs/stencil-facet-value-checkbox-66eb2424.js +109 -0
  361. package/dist/cjs/stencil-facet-value-checkbox-66eb2424.js.map +1 -0
  362. package/dist/cjs/stencil-facet-value-label-highlight-90627d64.js +132 -0
  363. package/dist/cjs/stencil-facet-value-label-highlight-90627d64.js.map +1 -0
  364. package/dist/cjs/stencil-facet-value-link-8cb66a55.js +32 -0
  365. package/dist/cjs/stencil-facet-value-link-8cb66a55.js.map +1 -0
  366. package/dist/cjs/stencil-facet-values-group-d86904b1.js +25 -0
  367. package/dist/cjs/stencil-facet-values-group-d86904b1.js.map +1 -0
  368. package/dist/cjs/stencil-fieldset-group-30862e5d.js +14 -0
  369. package/dist/cjs/stencil-fieldset-group-30862e5d.js.map +1 -0
  370. package/dist/cjs/stencil-heading-a61236c4.js +15 -0
  371. package/dist/cjs/stencil-heading-a61236c4.js.map +1 -0
  372. package/dist/cjs/stencil-iconButton-301ff09c.js +18 -0
  373. package/dist/cjs/stencil-iconButton-301ff09c.js.map +1 -0
  374. package/dist/cjs/stencil-item-decorators-23b99719.js +148 -0
  375. package/dist/cjs/stencil-item-decorators-23b99719.js.map +1 -0
  376. package/dist/cjs/stencil-item-link-e53257e6.js +55 -0
  377. package/dist/cjs/stencil-item-link-e53257e6.js.map +1 -0
  378. package/dist/cjs/stencil-item-list-common-fbb4799f.js +67 -0
  379. package/dist/cjs/stencil-item-list-common-fbb4799f.js.map +1 -0
  380. package/dist/cjs/stencil-item-list-guard-98f90b70.js +19 -0
  381. package/dist/cjs/stencil-item-list-guard-98f90b70.js.map +1 -0
  382. package/dist/cjs/stencil-link-daa827da.js +927 -0
  383. package/dist/cjs/stencil-link-daa827da.js.map +1 -0
  384. package/dist/cjs/stencil-magnifying-glass-621948b7.js +147 -0
  385. package/dist/cjs/stencil-magnifying-glass-621948b7.js.map +1 -0
  386. package/dist/cjs/stencil-modal-f1f60bac.js +41 -0
  387. package/dist/cjs/stencil-modal-f1f60bac.js.map +1 -0
  388. package/dist/cjs/stencil-radio-button-c0917654.js +77 -0
  389. package/dist/cjs/stencil-radio-button-c0917654.js.map +1 -0
  390. package/dist/cjs/stencil-rating-5f80dc89.js +68 -0
  391. package/dist/cjs/stencil-rating-5f80dc89.js.map +1 -0
  392. package/dist/cjs/stencil-result-template-common-a50a4cce.js +120 -0
  393. package/dist/cjs/stencil-result-template-common-a50a4cce.js.map +1 -0
  394. package/dist/cjs/stencil-result-template-decorators-2c160319.js +42 -0
  395. package/dist/cjs/stencil-result-template-decorators-2c160319.js.map +1 -0
  396. package/dist/cjs/stencil-suggestion-manager-74cc3a8f.js +428 -0
  397. package/dist/cjs/stencil-suggestion-manager-74cc3a8f.js.map +1 -0
  398. package/dist/cjs/stencil-tips-cab94195.js +38 -0
  399. package/dist/cjs/stencil-tips-cab94195.js.map +1 -0
  400. package/dist/cjs/stencil-values-container-4e035c52.js +63 -0
  401. package/dist/cjs/stencil-values-container-4e035c52.js.map +1 -0
  402. package/dist/cjs/timeframe-facet-common-212f8cce.js +214 -0
  403. package/dist/cjs/timeframe-facet-common-212f8cce.js.map +1 -0
  404. package/dist/cjs/utils-1b5df839.js +142 -0
  405. package/dist/cjs/utils-1b5df839.js.map +1 -0
  406. package/dist/cjs/version.cjs.js +1 -1
  407. package/dist/esm/_index.js +4 -4
  408. package/dist/esm/_loader.js +3 -3
  409. package/dist/esm/atomic-automatic-facet_2.entry.js +12 -12
  410. package/dist/esm/atomic-breadbox.entry.js +5 -5
  411. package/dist/esm/atomic-breadbox.entry.js.map +1 -1
  412. package/dist/esm/atomic-category-facet.entry.js +15 -15
  413. package/dist/esm/atomic-citation.entry.js +3 -3
  414. package/dist/esm/atomic-color-facet.entry.js +14 -14
  415. package/dist/esm/atomic-did-you-mean.entry.js +3 -3
  416. package/dist/esm/atomic-facet-manager.entry.js +2 -2
  417. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  418. package/dist/esm/atomic-field-condition.entry.js +7 -7
  419. package/dist/esm/atomic-folded-result-list.entry.js +11 -11
  420. package/dist/esm/atomic-format-currency.entry.js +1 -1
  421. package/dist/esm/atomic-format-number.entry.js +1 -1
  422. package/dist/esm/atomic-format-unit.entry.js +1 -1
  423. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +7 -7
  424. package/dist/esm/atomic-generated-answer.entry.js +8 -8
  425. package/dist/esm/atomic-insight-edit-toggle.entry.js +3 -3
  426. package/dist/esm/atomic-insight-facet.entry.js +16 -16
  427. package/dist/esm/atomic-insight-folded-result-list.entry.js +10 -10
  428. package/dist/esm/atomic-insight-full-search-button.entry.js +4 -4
  429. package/dist/esm/atomic-insight-generated-answer.entry.js +7 -7
  430. package/dist/esm/atomic-insight-history-toggle.entry.js +3 -3
  431. package/dist/esm/atomic-insight-layout.entry.js +3 -3
  432. package/dist/esm/atomic-insight-no-results.entry.js +7 -7
  433. package/dist/esm/atomic-insight-numeric-facet.entry.js +16 -16
  434. package/dist/esm/atomic-insight-pager.entry.js +5 -5
  435. package/dist/esm/atomic-insight-query-error.entry.js +6 -6
  436. package/dist/esm/atomic-insight-query-summary.entry.js +5 -5
  437. package/dist/esm/atomic-insight-refine-modal.entry.js +4 -4
  438. package/dist/esm/atomic-insight-refine-toggle.entry.js +4 -4
  439. package/dist/esm/atomic-insight-result-action-bar.entry.js +2 -2
  440. package/dist/esm/atomic-insight-result-action.entry.js +6 -6
  441. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +6 -6
  442. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +4 -4
  443. package/dist/esm/atomic-insight-result-children-template.entry.js +5 -5
  444. package/dist/esm/atomic-insight-result-children.entry.js +8 -8
  445. package/dist/esm/atomic-insight-result-children.entry.js.map +1 -1
  446. package/dist/esm/atomic-insight-result-list.entry.js +10 -10
  447. package/dist/esm/atomic-insight-result-quickview-action.entry.js +8 -8
  448. package/dist/esm/atomic-insight-result-template.entry.js +5 -5
  449. package/dist/esm/atomic-insight-result.entry.js +6 -6
  450. package/dist/esm/atomic-insight-search-box.entry.js +6 -6
  451. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +5 -5
  452. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +6 -6
  453. package/dist/esm/atomic-insight-smart-snippet.entry.js +7 -7
  454. package/dist/esm/atomic-insight-tab.entry.js +4 -4
  455. package/dist/esm/atomic-insight-tabs.entry.js +2 -2
  456. package/dist/esm/atomic-insight-timeframe-facet.entry.js +13 -13
  457. package/dist/esm/atomic-insight-user-actions-modal.entry.js +3 -3
  458. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +4 -4
  459. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +4 -4
  460. package/dist/esm/atomic-ipx-body.entry.js +3 -3
  461. package/dist/esm/atomic-ipx-button.entry.js +3 -3
  462. package/dist/esm/atomic-ipx-embedded.entry.js +3 -3
  463. package/dist/esm/atomic-ipx-modal.entry.js +3 -3
  464. package/dist/esm/atomic-ipx-recs-list.entry.js +12 -12
  465. package/dist/esm/atomic-ipx-refine-modal.entry.js +4 -4
  466. package/dist/esm/atomic-ipx-refine-toggle.entry.js +4 -4
  467. package/dist/esm/atomic-ipx-result-link.entry.js +6 -6
  468. package/dist/esm/atomic-ipx-tab.entry.js +3 -3
  469. package/dist/esm/atomic-ipx-tabs.entry.js +2 -2
  470. package/dist/esm/atomic-no-results.entry.js +8 -8
  471. package/dist/esm/atomic-notifications.entry.js +5 -5
  472. package/dist/esm/atomic-numeric-facet.entry.js +16 -16
  473. package/dist/esm/atomic-popover.entry.js +3 -3
  474. package/dist/esm/atomic-quickview-modal.entry.js +7 -7
  475. package/dist/esm/atomic-quickview.entry.js +7 -7
  476. package/dist/esm/atomic-rating-facet.entry.js +14 -14
  477. package/dist/esm/atomic-rating-range-facet.entry.js +12 -12
  478. package/dist/esm/atomic-recs-error.entry.js +6 -6
  479. package/dist/esm/atomic-recs-list.entry.js +12 -12
  480. package/dist/esm/atomic-recs-result-template.entry.js +5 -5
  481. package/dist/esm/atomic-recs-result.entry.js +6 -6
  482. package/dist/esm/atomic-refine-modal.entry.js +5 -5
  483. package/dist/esm/atomic-refine-toggle.entry.js +3 -3
  484. package/dist/esm/atomic-result-badge.entry.js +3 -3
  485. package/dist/esm/atomic-result-children.entry.js +9 -9
  486. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  487. package/dist/esm/atomic-result-date.entry.js +4 -4
  488. package/dist/esm/atomic-result-fields-list.entry.js +3 -3
  489. package/dist/esm/atomic-result-icon.entry.js +4 -4
  490. package/dist/esm/atomic-result-image.entry.js +4 -4
  491. package/dist/esm/atomic-result-link.entry.js +6 -6
  492. package/dist/esm/atomic-result-localized-text.entry.js +6 -6
  493. package/dist/esm/atomic-result-multi-value-text.entry.js +5 -5
  494. package/dist/esm/atomic-result-placeholder_2.entry.js +4 -4
  495. package/dist/esm/atomic-result-printable-uri.entry.js +7 -7
  496. package/dist/esm/atomic-result-rating.entry.js +5 -5
  497. package/dist/esm/atomic-result-timespan.entry.js +4 -4
  498. package/dist/esm/atomic-search-box.entry.js +6 -6
  499. package/dist/esm/atomic-segmented-facet-scrollable.entry.js +3 -3
  500. package/dist/esm/atomic-segmented-facet.entry.js +7 -7
  501. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +4 -4
  502. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +2 -2
  503. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +5 -5
  504. package/dist/esm/atomic-smart-snippet-suggestions.entry.js +6 -6
  505. package/dist/esm/atomic-smart-snippet.entry.js +8 -8
  506. package/dist/esm/atomic-sort-dropdown.entry.js +3 -3
  507. package/dist/esm/atomic-sort-expression.entry.js +3 -3
  508. package/dist/esm/atomic-stencil-facet-date-input.entry.js +2 -2
  509. package/dist/esm/atomic-suggestion-renderer.entry.js +2 -2
  510. package/dist/esm/atomic-suggestion-renderer.entry.js.map +1 -1
  511. package/dist/esm/atomic-tab-bar_2.entry.js +3 -3
  512. package/dist/esm/atomic-tab-button.entry.js +2 -2
  513. package/dist/esm/atomic-tab-manager.entry.js +2 -2
  514. package/dist/esm/atomic-tab.entry.js +1 -1
  515. package/dist/esm/atomic-table-element.entry.js +1 -1
  516. package/dist/esm/atomic-timeframe-facet.entry.js +13 -13
  517. package/dist/esm/atomic-timeframe.entry.js +1 -1
  518. package/dist/esm/atomic.js +3 -3
  519. package/dist/esm/display-options-abcc4ce4.js +103 -0
  520. package/dist/esm/display-options-abcc4ce4.js.map +1 -0
  521. package/dist/esm/generated-answer-common-3e329773.js +2953 -0
  522. package/dist/esm/generated-answer-common-3e329773.js.map +1 -0
  523. package/dist/esm/index-62c2216d.js +2101 -0
  524. package/dist/esm/index-62c2216d.js.map +1 -0
  525. package/dist/esm/initialization-utils-de209ce3.js +145 -0
  526. package/dist/esm/initialization-utils-de209ce3.js.map +1 -0
  527. package/dist/esm/item-layout-sections-4f105293.js +41 -0
  528. package/dist/esm/item-layout-sections-4f105293.js.map +1 -0
  529. package/dist/esm/jsx-utils-60f0f9d1.js +29 -0
  530. package/dist/esm/jsx-utils-60f0f9d1.js.map +1 -0
  531. package/dist/esm/props-utils-e04e8ad0.js +86 -0
  532. package/dist/esm/props-utils-e04e8ad0.js.map +1 -0
  533. package/dist/esm/result-template-provider-7edb85e2.js +99 -0
  534. package/dist/esm/result-template-provider-7edb85e2.js.map +1 -0
  535. package/dist/esm/result-utils-8978d15e.js +64 -0
  536. package/dist/esm/result-utils-8978d15e.js.map +1 -0
  537. package/dist/esm/show-hide-button-0668507e.js +108 -0
  538. package/dist/esm/show-hide-button-0668507e.js.map +1 -0
  539. package/dist/esm/smart-snippet-common-03e33c52.js +69 -0
  540. package/dist/esm/smart-snippet-common-03e33c52.js.map +1 -0
  541. package/dist/esm/smart-snippet-feedback-modal-common-9f6df720.js +79 -0
  542. package/dist/esm/smart-snippet-feedback-modal-common-9f6df720.js.map +1 -0
  543. package/dist/esm/smart-snippet-suggestions-common-cedd543e.js +47 -0
  544. package/dist/esm/smart-snippet-suggestions-common-cedd543e.js.map +1 -0
  545. package/dist/esm/stencil-accessibility-utils-de708162.js +160 -0
  546. package/dist/esm/stencil-accessibility-utils-de708162.js.map +1 -0
  547. package/dist/esm/stencil-button-fe58a18a.js +128 -0
  548. package/dist/esm/stencil-button-fe58a18a.js.map +1 -0
  549. package/dist/esm/stencil-carousel-61529bf9.js +50 -0
  550. package/dist/esm/stencil-carousel-61529bf9.js.map +1 -0
  551. package/dist/esm/stencil-checkbox-55f8e00f.js +42 -0
  552. package/dist/esm/stencil-checkbox-55f8e00f.js.map +1 -0
  553. package/dist/esm/stencil-display-wrapper-c7ff2cb7.js +29 -0
  554. package/dist/esm/stencil-display-wrapper-c7ff2cb7.js.map +1 -0
  555. package/dist/esm/stencil-facet-guard-09dee581.js +16 -0
  556. package/dist/esm/stencil-facet-guard-09dee581.js.map +1 -0
  557. package/dist/esm/stencil-facet-placeholder-cfcb96f1.js +52 -0
  558. package/dist/esm/stencil-facet-placeholder-cfcb96f1.js.map +1 -0
  559. package/dist/esm/stencil-facet-search-matches-0fea85dc.js +62 -0
  560. package/dist/esm/stencil-facet-search-matches-0fea85dc.js.map +1 -0
  561. package/dist/esm/stencil-facet-show-more-less-82b0340f.js +55 -0
  562. package/dist/esm/stencil-facet-show-more-less-82b0340f.js.map +1 -0
  563. package/dist/esm/stencil-facet-value-box-1f8e3463.js +27 -0
  564. package/dist/esm/stencil-facet-value-box-1f8e3463.js.map +1 -0
  565. package/dist/esm/stencil-facet-value-checkbox-ea5ed2bd.js +107 -0
  566. package/dist/esm/stencil-facet-value-checkbox-ea5ed2bd.js.map +1 -0
  567. package/dist/esm/stencil-facet-value-label-highlight-20a0e20f.js +127 -0
  568. package/dist/esm/stencil-facet-value-label-highlight-20a0e20f.js.map +1 -0
  569. package/dist/esm/stencil-facet-value-link-a9e7db04.js +30 -0
  570. package/dist/esm/stencil-facet-value-link-a9e7db04.js.map +1 -0
  571. package/dist/esm/stencil-facet-values-group-20b78f40.js +23 -0
  572. package/dist/esm/stencil-facet-values-group-20b78f40.js.map +1 -0
  573. package/dist/esm/stencil-fieldset-group-21792d47.js +12 -0
  574. package/dist/esm/stencil-fieldset-group-21792d47.js.map +1 -0
  575. package/dist/esm/stencil-heading-b741d578.js +13 -0
  576. package/dist/esm/stencil-heading-b741d578.js.map +1 -0
  577. package/dist/esm/stencil-iconButton-c5dbe68b.js +16 -0
  578. package/dist/esm/stencil-iconButton-c5dbe68b.js.map +1 -0
  579. package/dist/esm/stencil-item-decorators-28845d2c.js +142 -0
  580. package/dist/esm/stencil-item-decorators-28845d2c.js.map +1 -0
  581. package/dist/esm/stencil-item-link-18b01efa.js +52 -0
  582. package/dist/esm/stencil-item-link-18b01efa.js.map +1 -0
  583. package/dist/esm/stencil-item-list-common-355d92bd.js +64 -0
  584. package/dist/esm/stencil-item-list-common-355d92bd.js.map +1 -0
  585. package/dist/esm/stencil-item-list-guard-8adba804.js +17 -0
  586. package/dist/esm/stencil-item-list-guard-8adba804.js.map +1 -0
  587. package/dist/esm/stencil-link-46d22c3f.js +917 -0
  588. package/dist/esm/stencil-link-46d22c3f.js.map +1 -0
  589. package/dist/esm/stencil-magnifying-glass-d4b6425b.js +144 -0
  590. package/dist/esm/stencil-magnifying-glass-d4b6425b.js.map +1 -0
  591. package/dist/esm/stencil-modal-e0ab916e.js +39 -0
  592. package/dist/esm/stencil-modal-e0ab916e.js.map +1 -0
  593. package/dist/esm/stencil-radio-button-bd9a5704.js +75 -0
  594. package/dist/esm/stencil-radio-button-bd9a5704.js.map +1 -0
  595. package/dist/esm/stencil-rating-95f6b53e.js +64 -0
  596. package/dist/esm/stencil-rating-95f6b53e.js.map +1 -0
  597. package/dist/esm/stencil-result-template-common-3ed9087d.js +116 -0
  598. package/dist/esm/stencil-result-template-common-3ed9087d.js.map +1 -0
  599. package/dist/esm/stencil-result-template-decorators-b54ccebe.js +38 -0
  600. package/dist/esm/stencil-result-template-decorators-b54ccebe.js.map +1 -0
  601. package/dist/esm/stencil-suggestion-manager-f7d2bb62.js +423 -0
  602. package/dist/esm/stencil-suggestion-manager-f7d2bb62.js.map +1 -0
  603. package/dist/esm/stencil-tips-4be36dd1.js +34 -0
  604. package/dist/esm/stencil-tips-4be36dd1.js.map +1 -0
  605. package/dist/esm/stencil-values-container-9eef93e1.js +59 -0
  606. package/dist/esm/stencil-values-container-9eef93e1.js.map +1 -0
  607. package/dist/esm/timeframe-facet-common-cefe1400.js +212 -0
  608. package/dist/esm/timeframe-facet-common-cefe1400.js.map +1 -0
  609. package/dist/esm/utils-730e6154.js +124 -0
  610. package/dist/esm/utils-730e6154.js.map +1 -0
  611. package/dist/esm/version.js +1 -1
  612. package/dist/types/components/common/atomic-focus-trap/atomic-focus-trap.d.ts +52 -0
  613. package/dist/types/components/common/index.d.ts +1 -0
  614. package/dist/types/components/common/result-children/collection-guard.d.ts +3 -7
  615. package/dist/types/components/common/result-children/stencil-collection-guard.d.ts +16 -0
  616. package/dist/types/components/common/validate-props-controller/validate-props-controller.d.ts +6 -3
  617. package/dist/types/components/search/atomic-breadbox/atomic-breadbox.d.ts +4 -1
  618. package/dist/types/components/search/atomic-facet/atomic-facet.d.ts +3 -2
  619. package/dist/types/components/search/atomic-result-html/atomic-result-html.d.ts +41 -0
  620. package/dist/types/components/search/index.d.ts +1 -0
  621. package/dist/types/components.d.ts +16 -100
  622. package/docs/atomic-docs.json +4 -72
  623. package/package.json +2 -1
  624. package/dist/atomic/components/atomic-focus-trap.d.ts +0 -11
  625. package/dist/atomic/components/atomic-focus-trap.js +0 -8
  626. package/dist/atomic/components/atomic-focus-trap.js.map +0 -1
  627. package/dist/atomic/components/atomic-focus-trap2.js +0 -148
  628. package/dist/atomic/components/atomic-focus-trap2.js.map +0 -1
  629. package/dist/atomic/components/atomic-result-html.d.ts +0 -11
  630. package/dist/atomic/components/atomic-result-html.js +0 -67
  631. package/dist/atomic/components/atomic-result-html.js.map +0 -1
  632. package/dist/atomic/p-04d56bcb.js +0 -2
  633. package/dist/atomic/p-053f5cb1.entry.js +0 -2
  634. package/dist/atomic/p-08ce68cd.entry.js +0 -2
  635. package/dist/atomic/p-08dfc93e.js +0 -2
  636. package/dist/atomic/p-0ace4e44.entry.js +0 -2
  637. package/dist/atomic/p-0fded72d.entry.js +0 -2
  638. package/dist/atomic/p-1293a9d8.js +0 -2
  639. package/dist/atomic/p-151392e0.entry.js +0 -2
  640. package/dist/atomic/p-169136cc.entry.js +0 -2
  641. package/dist/atomic/p-1746e396.entry.js +0 -2
  642. package/dist/atomic/p-17c46f6c.entry.js +0 -2
  643. package/dist/atomic/p-190bca88.js +0 -2
  644. package/dist/atomic/p-19dfc5d6.entry.js +0 -2
  645. package/dist/atomic/p-1bb8fd49.js +0 -2
  646. package/dist/atomic/p-1be5a1ac.js +0 -2
  647. package/dist/atomic/p-1c3c00a1.entry.js +0 -2
  648. package/dist/atomic/p-1d1c0c3b.js +0 -2
  649. package/dist/atomic/p-1d2317fa.js +0 -2
  650. package/dist/atomic/p-1f86745f.entry.js +0 -2
  651. package/dist/atomic/p-21d3d698.entry.js +0 -2
  652. package/dist/atomic/p-21d3d698.entry.js.map +0 -1
  653. package/dist/atomic/p-240b5a52.entry.js +0 -2
  654. package/dist/atomic/p-249b16d9.entry.js +0 -2
  655. package/dist/atomic/p-2545de3a.entry.js +0 -2
  656. package/dist/atomic/p-292292b4.entry.js +0 -2
  657. package/dist/atomic/p-2a3044e3.entry.js +0 -2
  658. package/dist/atomic/p-303657e2.entry.js +0 -2
  659. package/dist/atomic/p-30b1a8e0.js +0 -2
  660. package/dist/atomic/p-32275553.entry.js +0 -2
  661. package/dist/atomic/p-37dd7d31.entry.js +0 -2
  662. package/dist/atomic/p-385d4e0d.js +0 -2
  663. package/dist/atomic/p-39e091d5.entry.js +0 -2
  664. package/dist/atomic/p-3c50b839.entry.js +0 -2
  665. package/dist/atomic/p-3c5d36b6.entry.js +0 -2
  666. package/dist/atomic/p-40702c80.entry.js +0 -2
  667. package/dist/atomic/p-40b4b588.entry.js +0 -2
  668. package/dist/atomic/p-41427eea.js +0 -2
  669. package/dist/atomic/p-416d5f3e.entry.js +0 -2
  670. package/dist/atomic/p-4243bce0.entry.js +0 -2
  671. package/dist/atomic/p-4252b62a.entry.js +0 -2
  672. package/dist/atomic/p-43a78770.entry.js +0 -2
  673. package/dist/atomic/p-475f9931.entry.js +0 -2
  674. package/dist/atomic/p-4835a7b4.entry.js +0 -2
  675. package/dist/atomic/p-4b2f412f.js +0 -2
  676. package/dist/atomic/p-4c9eb083.entry.js +0 -2
  677. package/dist/atomic/p-4dc45ad2.entry.js +0 -2
  678. package/dist/atomic/p-4e0a485b.entry.js +0 -2
  679. package/dist/atomic/p-4f184c34.entry.js +0 -2
  680. package/dist/atomic/p-4f184c34.entry.js.map +0 -1
  681. package/dist/atomic/p-5061c7d9.entry.js +0 -2
  682. package/dist/atomic/p-52713305.js +0 -2
  683. package/dist/atomic/p-5474f931.entry.js +0 -2
  684. package/dist/atomic/p-572811d4.entry.js +0 -2
  685. package/dist/atomic/p-57aec054.entry.js +0 -2
  686. package/dist/atomic/p-57aec054.entry.js.map +0 -1
  687. package/dist/atomic/p-5e0d4f30.entry.js +0 -2
  688. package/dist/atomic/p-5ecaedd9.entry.js +0 -2
  689. package/dist/atomic/p-638a624e.entry.js +0 -2
  690. package/dist/atomic/p-64e38158.entry.js +0 -2
  691. package/dist/atomic/p-6885acd3.entry.js +0 -2
  692. package/dist/atomic/p-6a61dd78.js +0 -2
  693. package/dist/atomic/p-6baaaab1.entry.js +0 -2
  694. package/dist/atomic/p-6bf0d9bf.entry.js +0 -2
  695. package/dist/atomic/p-6dd3a7be.js +0 -2
  696. package/dist/atomic/p-6ea6fde1.entry.js +0 -2
  697. package/dist/atomic/p-716136ae.entry.js +0 -2
  698. package/dist/atomic/p-74928a89.entry.js +0 -2
  699. package/dist/atomic/p-7cc0b600.entry.js +0 -2
  700. package/dist/atomic/p-7f783c5b.js +0 -2
  701. package/dist/atomic/p-806d2145.entry.js +0 -2
  702. package/dist/atomic/p-81a2b7f5.entry.js +0 -2
  703. package/dist/atomic/p-82608edd.entry.js +0 -2
  704. package/dist/atomic/p-843e0545.entry.js +0 -2
  705. package/dist/atomic/p-85196468.js +0 -2
  706. package/dist/atomic/p-8543f60a.entry.js +0 -2
  707. package/dist/atomic/p-85b7825e.entry.js +0 -2
  708. package/dist/atomic/p-862769b9.entry.js +0 -2
  709. package/dist/atomic/p-893c53d3.entry.js +0 -2
  710. package/dist/atomic/p-90f2e96a.entry.js +0 -2
  711. package/dist/atomic/p-91fabc48.js +0 -2
  712. package/dist/atomic/p-920113d1.js +0 -2
  713. package/dist/atomic/p-967b38dd.js +0 -2
  714. package/dist/atomic/p-969778a1.entry.js +0 -2
  715. package/dist/atomic/p-979b1d38.entry.js +0 -2
  716. package/dist/atomic/p-9a22af0b.entry.js +0 -2
  717. package/dist/atomic/p-9bb3269f.entry.js +0 -2
  718. package/dist/atomic/p-9bf4b689.js +0 -2
  719. package/dist/atomic/p-9c71c564.entry.js +0 -2
  720. package/dist/atomic/p-9cf54848.js +0 -2
  721. package/dist/atomic/p-9dc331b3.entry.js +0 -2
  722. package/dist/atomic/p-9ec08fc1.entry.js +0 -2
  723. package/dist/atomic/p-a132b44f.js +0 -2
  724. package/dist/atomic/p-a598dc5b.js +0 -2
  725. package/dist/atomic/p-a60ad537.entry.js +0 -2
  726. package/dist/atomic/p-a6bbb030.js +0 -2
  727. package/dist/atomic/p-a7064c41.entry.js +0 -2
  728. package/dist/atomic/p-a810d6ad.entry.js +0 -2
  729. package/dist/atomic/p-a9f165e5.entry.js +0 -2
  730. package/dist/atomic/p-aa18c0ea.js +0 -2
  731. package/dist/atomic/p-ab3fafb5.js +0 -2
  732. package/dist/atomic/p-ab3fafb5.js.map +0 -1
  733. package/dist/atomic/p-acf4faf8.js +0 -2
  734. package/dist/atomic/p-b09ebe95.js +0 -2
  735. package/dist/atomic/p-b201b267.js +0 -3
  736. package/dist/atomic/p-b201b267.js.map +0 -1
  737. package/dist/atomic/p-b39f31df.entry.js +0 -2
  738. package/dist/atomic/p-b6266855.entry.js +0 -2
  739. package/dist/atomic/p-b66057f2.entry.js +0 -2
  740. package/dist/atomic/p-b9984629.entry.js +0 -2
  741. package/dist/atomic/p-bbe35bc8.entry.js +0 -2
  742. package/dist/atomic/p-bbe35bc8.entry.js.map +0 -1
  743. package/dist/atomic/p-bdec46c1.entry.js +0 -2
  744. package/dist/atomic/p-bdec46c1.entry.js.map +0 -1
  745. package/dist/atomic/p-c375d8ab.js +0 -2
  746. package/dist/atomic/p-c3b72efb.entry.js +0 -2
  747. package/dist/atomic/p-c3cb3e0c.js +0 -2
  748. package/dist/atomic/p-c3cb3e0c.js.map +0 -1
  749. package/dist/atomic/p-c4701592.entry.js +0 -2
  750. package/dist/atomic/p-c8de91c6.entry.js +0 -2
  751. package/dist/atomic/p-ca775fe9.js +0 -2
  752. package/dist/atomic/p-cdbfd6d3.js +0 -2
  753. package/dist/atomic/p-d02fe58f.entry.js +0 -2
  754. package/dist/atomic/p-d0b814b3.entry.js +0 -2
  755. package/dist/atomic/p-d11c4053.entry.js +0 -2
  756. package/dist/atomic/p-d245416e.js +0 -2
  757. package/dist/atomic/p-d2738b20.entry.js +0 -2
  758. package/dist/atomic/p-d275f338.js +0 -2
  759. package/dist/atomic/p-d279ff6c.entry.js +0 -2
  760. package/dist/atomic/p-d495c40e.entry.js +0 -2
  761. package/dist/atomic/p-d573be8c.entry.js +0 -2
  762. package/dist/atomic/p-d7e6e377.js +0 -2
  763. package/dist/atomic/p-d860463a.js +0 -2
  764. package/dist/atomic/p-daa8d439.entry.js +0 -2
  765. package/dist/atomic/p-db3aa7c0.entry.js +0 -2
  766. package/dist/atomic/p-dd3d6b89.entry.js +0 -2
  767. package/dist/atomic/p-ded35c53.js +0 -9
  768. package/dist/atomic/p-df18119c.entry.js +0 -2
  769. package/dist/atomic/p-df4ce223.entry.js +0 -2
  770. package/dist/atomic/p-e22088e4.entry.js +0 -2
  771. package/dist/atomic/p-e382b288.entry.js +0 -2
  772. package/dist/atomic/p-e3d30753.entry.js +0 -2
  773. package/dist/atomic/p-e3d30753.entry.js.map +0 -1
  774. package/dist/atomic/p-e5b29430.entry.js +0 -2
  775. package/dist/atomic/p-e6f5b0eb.js +0 -2
  776. package/dist/atomic/p-e89123f7.js +0 -2
  777. package/dist/atomic/p-e89123f7.js.map +0 -1
  778. package/dist/atomic/p-e8e041cb.entry.js +0 -2
  779. package/dist/atomic/p-e9391c7b.entry.js +0 -2
  780. package/dist/atomic/p-e9e3e909.js +0 -2
  781. package/dist/atomic/p-edd94929.entry.js +0 -2
  782. package/dist/atomic/p-ee43c7de.entry.js +0 -2
  783. package/dist/atomic/p-ee735a07.js +0 -2
  784. package/dist/atomic/p-f07098d4.entry.js +0 -2
  785. package/dist/atomic/p-f5b94d26.entry.js +0 -2
  786. package/dist/atomic/p-f6bb2489.entry.js +0 -2
  787. package/dist/atomic/p-f6bb2489.entry.js.map +0 -1
  788. package/dist/atomic/p-f7f58b7c.entry.js +0 -2
  789. package/dist/atomic/p-f8a051d0.entry.js +0 -2
  790. package/dist/atomic/p-f8e16ee9.js +0 -2
  791. package/dist/atomic/p-fa0866da.entry.js +0 -2
  792. package/dist/atomic/p-fa7c9052.js +0 -2
  793. package/dist/atomic/p-fbbf4344.entry.js +0 -2
  794. package/dist/atomic/p-fd7d815c.js +0 -2
  795. package/dist/atomic/p-ff4eadc8.entry.js +0 -2
  796. package/dist/cjs/atomic-focus-trap.cjs.entry.js +0 -133
  797. package/dist/cjs/atomic-focus-trap.cjs.entry.js.map +0 -1
  798. package/dist/cjs/atomic-result-html.cjs.entry.js +0 -55
  799. package/dist/cjs/atomic-result-html.cjs.entry.js.map +0 -1
  800. package/dist/cjs/display-options-4361ede7.js +0 -107
  801. package/dist/cjs/display-options-4361ede7.js.map +0 -1
  802. package/dist/cjs/generated-answer-common-927e3ee0.js +0 -2955
  803. package/dist/cjs/generated-answer-common-927e3ee0.js.map +0 -1
  804. package/dist/cjs/index-1df73594.js +0 -2141
  805. package/dist/cjs/index-1df73594.js.map +0 -1
  806. package/dist/cjs/initialization-utils-ec6c0bfb.js +0 -149
  807. package/dist/cjs/initialization-utils-ec6c0bfb.js.map +0 -1
  808. package/dist/cjs/item-layout-sections-1a94d975.js +0 -44
  809. package/dist/cjs/item-layout-sections-1a94d975.js.map +0 -1
  810. package/dist/cjs/jsx-utils-7c4aa880.js +0 -31
  811. package/dist/cjs/jsx-utils-7c4aa880.js.map +0 -1
  812. package/dist/cjs/props-utils-0a4be1ba.js +0 -89
  813. package/dist/cjs/props-utils-0a4be1ba.js.map +0 -1
  814. package/dist/cjs/result-template-provider-c764201d.js +0 -103
  815. package/dist/cjs/result-template-provider-c764201d.js.map +0 -1
  816. package/dist/cjs/result-utils-3313d650.js +0 -75
  817. package/dist/cjs/result-utils-3313d650.js.map +0 -1
  818. package/dist/cjs/show-hide-button-6cda3a22.js +0 -115
  819. package/dist/cjs/show-hide-button-6cda3a22.js.map +0 -1
  820. package/dist/cjs/smart-snippet-common-bfd586a6.js +0 -75
  821. package/dist/cjs/smart-snippet-common-bfd586a6.js.map +0 -1
  822. package/dist/cjs/smart-snippet-feedback-modal-common-f0ee5b23.js +0 -87
  823. package/dist/cjs/smart-snippet-feedback-modal-common-f0ee5b23.js.map +0 -1
  824. package/dist/cjs/smart-snippet-suggestions-common-0288af37.js +0 -54
  825. package/dist/cjs/smart-snippet-suggestions-common-0288af37.js.map +0 -1
  826. package/dist/cjs/stencil-accessibility-utils-6311883f.js +0 -164
  827. package/dist/cjs/stencil-accessibility-utils-6311883f.js.map +0 -1
  828. package/dist/cjs/stencil-button-e9b9fab0.js +0 -133
  829. package/dist/cjs/stencil-button-e9b9fab0.js.map +0 -1
  830. package/dist/cjs/stencil-carousel-72557b3b.js +0 -53
  831. package/dist/cjs/stencil-carousel-72557b3b.js.map +0 -1
  832. package/dist/cjs/stencil-checkbox-ad6eaf80.js +0 -45
  833. package/dist/cjs/stencil-checkbox-ad6eaf80.js.map +0 -1
  834. package/dist/cjs/stencil-display-wrapper-968d88e3.js +0 -32
  835. package/dist/cjs/stencil-display-wrapper-968d88e3.js.map +0 -1
  836. package/dist/cjs/stencil-facet-guard-436f3e55.js +0 -18
  837. package/dist/cjs/stencil-facet-guard-436f3e55.js.map +0 -1
  838. package/dist/cjs/stencil-facet-placeholder-d3c0a675.js +0 -56
  839. package/dist/cjs/stencil-facet-placeholder-d3c0a675.js.map +0 -1
  840. package/dist/cjs/stencil-facet-search-matches-8922dbe6.js +0 -65
  841. package/dist/cjs/stencil-facet-search-matches-8922dbe6.js.map +0 -1
  842. package/dist/cjs/stencil-facet-show-more-less-67bb08ba.js +0 -58
  843. package/dist/cjs/stencil-facet-show-more-less-67bb08ba.js.map +0 -1
  844. package/dist/cjs/stencil-facet-value-box-d882e46f.js +0 -29
  845. package/dist/cjs/stencil-facet-value-box-d882e46f.js.map +0 -1
  846. package/dist/cjs/stencil-facet-value-checkbox-4cc442f8.js +0 -109
  847. package/dist/cjs/stencil-facet-value-checkbox-4cc442f8.js.map +0 -1
  848. package/dist/cjs/stencil-facet-value-label-highlight-69f84bb3.js +0 -132
  849. package/dist/cjs/stencil-facet-value-label-highlight-69f84bb3.js.map +0 -1
  850. package/dist/cjs/stencil-facet-value-link-8a739399.js +0 -32
  851. package/dist/cjs/stencil-facet-value-link-8a739399.js.map +0 -1
  852. package/dist/cjs/stencil-facet-values-group-c74dbb7c.js +0 -25
  853. package/dist/cjs/stencil-facet-values-group-c74dbb7c.js.map +0 -1
  854. package/dist/cjs/stencil-fieldset-group-c5e6860f.js +0 -14
  855. package/dist/cjs/stencil-fieldset-group-c5e6860f.js.map +0 -1
  856. package/dist/cjs/stencil-heading-8a52dac8.js +0 -15
  857. package/dist/cjs/stencil-heading-8a52dac8.js.map +0 -1
  858. package/dist/cjs/stencil-iconButton-a1efe92d.js +0 -18
  859. package/dist/cjs/stencil-iconButton-a1efe92d.js.map +0 -1
  860. package/dist/cjs/stencil-item-decorators-eec1ff80.js +0 -148
  861. package/dist/cjs/stencil-item-decorators-eec1ff80.js.map +0 -1
  862. package/dist/cjs/stencil-item-link-d9d70a88.js +0 -55
  863. package/dist/cjs/stencil-item-link-d9d70a88.js.map +0 -1
  864. package/dist/cjs/stencil-item-list-common-f64da3bd.js +0 -67
  865. package/dist/cjs/stencil-item-list-common-f64da3bd.js.map +0 -1
  866. package/dist/cjs/stencil-item-list-guard-b80d93ea.js +0 -19
  867. package/dist/cjs/stencil-item-list-guard-b80d93ea.js.map +0 -1
  868. package/dist/cjs/stencil-link-20830f66.js +0 -927
  869. package/dist/cjs/stencil-link-20830f66.js.map +0 -1
  870. package/dist/cjs/stencil-magnifying-glass-448b45af.js +0 -147
  871. package/dist/cjs/stencil-magnifying-glass-448b45af.js.map +0 -1
  872. package/dist/cjs/stencil-modal-cc1cad10.js +0 -41
  873. package/dist/cjs/stencil-modal-cc1cad10.js.map +0 -1
  874. package/dist/cjs/stencil-radio-button-a90b0c64.js +0 -77
  875. package/dist/cjs/stencil-radio-button-a90b0c64.js.map +0 -1
  876. package/dist/cjs/stencil-rating-570ba25b.js +0 -68
  877. package/dist/cjs/stencil-rating-570ba25b.js.map +0 -1
  878. package/dist/cjs/stencil-result-template-common-fd442476.js +0 -120
  879. package/dist/cjs/stencil-result-template-common-fd442476.js.map +0 -1
  880. package/dist/cjs/stencil-result-template-decorators-c567887f.js +0 -42
  881. package/dist/cjs/stencil-result-template-decorators-c567887f.js.map +0 -1
  882. package/dist/cjs/stencil-suggestion-manager-c7b54239.js +0 -428
  883. package/dist/cjs/stencil-suggestion-manager-c7b54239.js.map +0 -1
  884. package/dist/cjs/stencil-tips-05c5f756.js +0 -38
  885. package/dist/cjs/stencil-tips-05c5f756.js.map +0 -1
  886. package/dist/cjs/stencil-values-container-4c64bc4b.js +0 -63
  887. package/dist/cjs/stencil-values-container-4c64bc4b.js.map +0 -1
  888. package/dist/cjs/timeframe-facet-common-03f90c44.js +0 -214
  889. package/dist/cjs/timeframe-facet-common-03f90c44.js.map +0 -1
  890. package/dist/cjs/utils-39abd753.js +0 -173
  891. package/dist/cjs/utils-39abd753.js.map +0 -1
  892. package/dist/esm/atomic-focus-trap.entry.js +0 -129
  893. package/dist/esm/atomic-focus-trap.entry.js.map +0 -1
  894. package/dist/esm/atomic-result-html.entry.js +0 -51
  895. package/dist/esm/atomic-result-html.entry.js.map +0 -1
  896. package/dist/esm/display-options-c671da15.js +0 -103
  897. package/dist/esm/display-options-c671da15.js.map +0 -1
  898. package/dist/esm/generated-answer-common-88cdefec.js +0 -2953
  899. package/dist/esm/generated-answer-common-88cdefec.js.map +0 -1
  900. package/dist/esm/index-a59c51bd.js +0 -2110
  901. package/dist/esm/index-a59c51bd.js.map +0 -1
  902. package/dist/esm/initialization-utils-fff1cf59.js +0 -145
  903. package/dist/esm/initialization-utils-fff1cf59.js.map +0 -1
  904. package/dist/esm/item-layout-sections-d694a4b6.js +0 -41
  905. package/dist/esm/item-layout-sections-d694a4b6.js.map +0 -1
  906. package/dist/esm/jsx-utils-6d1b227a.js +0 -29
  907. package/dist/esm/jsx-utils-6d1b227a.js.map +0 -1
  908. package/dist/esm/props-utils-2cf5bd96.js +0 -86
  909. package/dist/esm/props-utils-2cf5bd96.js.map +0 -1
  910. package/dist/esm/result-template-provider-ce19144a.js +0 -99
  911. package/dist/esm/result-template-provider-ce19144a.js.map +0 -1
  912. package/dist/esm/result-utils-7e9b6b5c.js +0 -71
  913. package/dist/esm/result-utils-7e9b6b5c.js.map +0 -1
  914. package/dist/esm/show-hide-button-d9230b9e.js +0 -108
  915. package/dist/esm/show-hide-button-d9230b9e.js.map +0 -1
  916. package/dist/esm/smart-snippet-common-a49d332d.js +0 -69
  917. package/dist/esm/smart-snippet-common-a49d332d.js.map +0 -1
  918. package/dist/esm/smart-snippet-feedback-modal-common-cebe3ffd.js +0 -79
  919. package/dist/esm/smart-snippet-feedback-modal-common-cebe3ffd.js.map +0 -1
  920. package/dist/esm/smart-snippet-suggestions-common-cec2c1d8.js +0 -47
  921. package/dist/esm/smart-snippet-suggestions-common-cec2c1d8.js.map +0 -1
  922. package/dist/esm/stencil-accessibility-utils-3639e3bd.js +0 -160
  923. package/dist/esm/stencil-accessibility-utils-3639e3bd.js.map +0 -1
  924. package/dist/esm/stencil-button-d6e06ca8.js +0 -128
  925. package/dist/esm/stencil-button-d6e06ca8.js.map +0 -1
  926. package/dist/esm/stencil-carousel-a9540851.js +0 -50
  927. package/dist/esm/stencil-carousel-a9540851.js.map +0 -1
  928. package/dist/esm/stencil-checkbox-7198404a.js +0 -42
  929. package/dist/esm/stencil-checkbox-7198404a.js.map +0 -1
  930. package/dist/esm/stencil-display-wrapper-ad2cc011.js +0 -29
  931. package/dist/esm/stencil-display-wrapper-ad2cc011.js.map +0 -1
  932. package/dist/esm/stencil-facet-guard-23f22272.js +0 -16
  933. package/dist/esm/stencil-facet-guard-23f22272.js.map +0 -1
  934. package/dist/esm/stencil-facet-placeholder-8201b5c9.js +0 -52
  935. package/dist/esm/stencil-facet-placeholder-8201b5c9.js.map +0 -1
  936. package/dist/esm/stencil-facet-search-matches-4b67ae11.js +0 -62
  937. package/dist/esm/stencil-facet-search-matches-4b67ae11.js.map +0 -1
  938. package/dist/esm/stencil-facet-show-more-less-35014a2f.js +0 -55
  939. package/dist/esm/stencil-facet-show-more-less-35014a2f.js.map +0 -1
  940. package/dist/esm/stencil-facet-value-box-47df7df4.js +0 -27
  941. package/dist/esm/stencil-facet-value-box-47df7df4.js.map +0 -1
  942. package/dist/esm/stencil-facet-value-checkbox-c4d0f0ca.js +0 -107
  943. package/dist/esm/stencil-facet-value-checkbox-c4d0f0ca.js.map +0 -1
  944. package/dist/esm/stencil-facet-value-label-highlight-3d1f6b62.js +0 -127
  945. package/dist/esm/stencil-facet-value-label-highlight-3d1f6b62.js.map +0 -1
  946. package/dist/esm/stencil-facet-value-link-5507b3b2.js +0 -30
  947. package/dist/esm/stencil-facet-value-link-5507b3b2.js.map +0 -1
  948. package/dist/esm/stencil-facet-values-group-c33807e6.js +0 -23
  949. package/dist/esm/stencil-facet-values-group-c33807e6.js.map +0 -1
  950. package/dist/esm/stencil-fieldset-group-815bae1e.js +0 -12
  951. package/dist/esm/stencil-fieldset-group-815bae1e.js.map +0 -1
  952. package/dist/esm/stencil-heading-6a4bdf4c.js +0 -13
  953. package/dist/esm/stencil-heading-6a4bdf4c.js.map +0 -1
  954. package/dist/esm/stencil-iconButton-f8789d6f.js +0 -16
  955. package/dist/esm/stencil-iconButton-f8789d6f.js.map +0 -1
  956. package/dist/esm/stencil-item-decorators-15de590b.js +0 -142
  957. package/dist/esm/stencil-item-decorators-15de590b.js.map +0 -1
  958. package/dist/esm/stencil-item-link-e368ed65.js +0 -52
  959. package/dist/esm/stencil-item-link-e368ed65.js.map +0 -1
  960. package/dist/esm/stencil-item-list-common-9c81b381.js +0 -64
  961. package/dist/esm/stencil-item-list-common-9c81b381.js.map +0 -1
  962. package/dist/esm/stencil-item-list-guard-efdff3f6.js +0 -17
  963. package/dist/esm/stencil-item-list-guard-efdff3f6.js.map +0 -1
  964. package/dist/esm/stencil-link-7146fbbd.js +0 -917
  965. package/dist/esm/stencil-link-7146fbbd.js.map +0 -1
  966. package/dist/esm/stencil-magnifying-glass-b878a911.js +0 -144
  967. package/dist/esm/stencil-magnifying-glass-b878a911.js.map +0 -1
  968. package/dist/esm/stencil-modal-b9d6d845.js +0 -39
  969. package/dist/esm/stencil-modal-b9d6d845.js.map +0 -1
  970. package/dist/esm/stencil-radio-button-51ac04fd.js +0 -75
  971. package/dist/esm/stencil-radio-button-51ac04fd.js.map +0 -1
  972. package/dist/esm/stencil-rating-ca172ca6.js +0 -64
  973. package/dist/esm/stencil-rating-ca172ca6.js.map +0 -1
  974. package/dist/esm/stencil-result-template-common-41400f1e.js +0 -116
  975. package/dist/esm/stencil-result-template-common-41400f1e.js.map +0 -1
  976. package/dist/esm/stencil-result-template-decorators-ed23985d.js +0 -38
  977. package/dist/esm/stencil-result-template-decorators-ed23985d.js.map +0 -1
  978. package/dist/esm/stencil-suggestion-manager-0f37f08b.js +0 -423
  979. package/dist/esm/stencil-suggestion-manager-0f37f08b.js.map +0 -1
  980. package/dist/esm/stencil-tips-b2cdf4f8.js +0 -34
  981. package/dist/esm/stencil-tips-b2cdf4f8.js.map +0 -1
  982. package/dist/esm/stencil-values-container-fb9e63c6.js +0 -59
  983. package/dist/esm/stencil-values-container-fb9e63c6.js.map +0 -1
  984. package/dist/esm/timeframe-facet-common-57a927da.js +0 -212
  985. package/dist/esm/timeframe-facet-common-57a927da.js.map +0 -1
  986. package/dist/esm/utils-5372e188.js +0 -152
  987. package/dist/esm/utils-5372e188.js.map +0 -1
  988. package/dist/types/components/common/atomic-focus-trap.d.ts +0 -36
  989. package/dist/types/components/search/result-template-components/atomic-result-html/atomic-result-html.d.ts +0 -27
  990. /package/dist/atomic/{p-d495c40e.entry.js.map → p-00b8b2e8.entry.js.map} +0 -0
  991. /package/dist/atomic/{p-d0b814b3.entry.js.map → p-02893e42.entry.js.map} +0 -0
  992. /package/dist/atomic/{p-04d56bcb.js.map → p-0757f396.js.map} +0 -0
  993. /package/dist/atomic/{p-fa0866da.entry.js.map → p-0b1d29ae.entry.js.map} +0 -0
  994. /package/dist/atomic/{p-f07098d4.entry.js.map → p-0cf53453.entry.js.map} +0 -0
  995. /package/dist/atomic/{p-9bb3269f.entry.js.map → p-0f01f086.entry.js.map} +0 -0
  996. /package/dist/atomic/{p-240b5a52.entry.js.map → p-0f6d1893.entry.js.map} +0 -0
  997. /package/dist/atomic/{p-d02fe58f.entry.js.map → p-0fb30fdd.entry.js.map} +0 -0
  998. /package/dist/atomic/{p-967b38dd.js.map → p-12e5e56c.js.map} +0 -0
  999. /package/dist/atomic/{p-572811d4.entry.js.map → p-1522b928.entry.js.map} +0 -0
  1000. /package/dist/atomic/{p-ee43c7de.entry.js.map → p-15fc97ac.entry.js.map} +0 -0
  1001. /package/dist/atomic/{p-a9f165e5.entry.js.map → p-176d0477.entry.js.map} +0 -0
  1002. /package/dist/atomic/{p-6baaaab1.entry.js.map → p-1b2f375c.entry.js.map} +0 -0
  1003. /package/dist/atomic/{p-b9984629.entry.js.map → p-1c70d4a8.entry.js.map} +0 -0
  1004. /package/dist/atomic/{p-85196468.js.map → p-1c92fc2a.js.map} +0 -0
  1005. /package/dist/atomic/{p-7f783c5b.js.map → p-1cfe9a6d.js.map} +0 -0
  1006. /package/dist/atomic/{p-e9e3e909.js.map → p-1e3242c4.js.map} +0 -0
  1007. /package/dist/atomic/{p-385d4e0d.js.map → p-20a02cb8.js.map} +0 -0
  1008. /package/dist/atomic/{p-979b1d38.entry.js.map → p-21b1ef92.entry.js.map} +0 -0
  1009. /package/dist/atomic/{p-edd94929.entry.js.map → p-24a2db99.entry.js.map} +0 -0
  1010. /package/dist/atomic/{p-64e38158.entry.js.map → p-24e0f33d.entry.js.map} +0 -0
  1011. /package/dist/atomic/{p-5e0d4f30.entry.js.map → p-250e3ba6.entry.js.map} +0 -0
  1012. /package/dist/atomic/{p-d7e6e377.js.map → p-28683ceb.js.map} +0 -0
  1013. /package/dist/atomic/{p-fd7d815c.js.map → p-297a186f.js.map} +0 -0
  1014. /package/dist/atomic/{p-c8de91c6.entry.js.map → p-29a42d73.entry.js.map} +0 -0
  1015. /package/dist/atomic/{p-1d1c0c3b.js.map → p-2b3c7256.js.map} +0 -0
  1016. /package/dist/atomic/{p-17c46f6c.entry.js.map → p-2dbac3f0.entry.js.map} +0 -0
  1017. /package/dist/atomic/{p-4243bce0.entry.js.map → p-2e21c2be.entry.js.map} +0 -0
  1018. /package/dist/atomic/{p-c3b72efb.entry.js.map → p-2e97cbb5.entry.js.map} +0 -0
  1019. /package/dist/atomic/{p-aa18c0ea.js.map → p-2ea4b61d.js.map} +0 -0
  1020. /package/dist/atomic/{p-ca775fe9.js.map → p-3004da84.js.map} +0 -0
  1021. /package/dist/atomic/{p-9c71c564.entry.js.map → p-308ea344.entry.js.map} +0 -0
  1022. /package/dist/atomic/{p-82608edd.entry.js.map → p-31b2e659.entry.js.map} +0 -0
  1023. /package/dist/atomic/{p-90f2e96a.entry.js.map → p-37b37610.entry.js.map} +0 -0
  1024. /package/dist/atomic/{p-5ecaedd9.entry.js.map → p-39f99214.entry.js.map} +0 -0
  1025. /package/dist/atomic/{p-40702c80.entry.js.map → p-3a8ce5ea.entry.js.map} +0 -0
  1026. /package/dist/atomic/{p-4dc45ad2.entry.js.map → p-3b5643b9.entry.js.map} +0 -0
  1027. /package/dist/atomic/{p-40b4b588.entry.js.map → p-41788181.entry.js.map} +0 -0
  1028. /package/dist/atomic/{p-6ea6fde1.entry.js.map → p-42327028.entry.js.map} +0 -0
  1029. /package/dist/atomic/{p-3c5d36b6.entry.js.map → p-42a151a2.entry.js.map} +0 -0
  1030. /package/dist/atomic/{p-f7f58b7c.entry.js.map → p-46412741.entry.js.map} +0 -0
  1031. /package/dist/atomic/{p-9bf4b689.js.map → p-4683e572.js.map} +0 -0
  1032. /package/dist/atomic/{p-f8a051d0.entry.js.map → p-47c87f08.entry.js.map} +0 -0
  1033. /package/dist/atomic/{p-a598dc5b.js.map → p-4a6458ad.js.map} +0 -0
  1034. /package/dist/atomic/{p-920113d1.js.map → p-4f66e259.js.map} +0 -0
  1035. /package/dist/atomic/{p-0fded72d.entry.js.map → p-4f6c469f.entry.js.map} +0 -0
  1036. /package/dist/atomic/{p-4c9eb083.entry.js.map → p-503d8e4c.entry.js.map} +0 -0
  1037. /package/dist/atomic/{p-19dfc5d6.entry.js.map → p-51243c0a.entry.js.map} +0 -0
  1038. /package/dist/atomic/{p-249b16d9.entry.js.map → p-52064d8c.entry.js.map} +0 -0
  1039. /package/dist/atomic/{p-41427eea.js.map → p-525e09b0.js.map} +0 -0
  1040. /package/dist/atomic/{p-4835a7b4.entry.js.map → p-52e16718.entry.js.map} +0 -0
  1041. /package/dist/atomic/{p-81a2b7f5.entry.js.map → p-5450d59f.entry.js.map} +0 -0
  1042. /package/dist/atomic/{p-d279ff6c.entry.js.map → p-554e903c.entry.js.map} +0 -0
  1043. /package/dist/atomic/{p-6a61dd78.js.map → p-56a21ae7.js.map} +0 -0
  1044. /package/dist/atomic/{p-fbbf4344.entry.js.map → p-5a161f56.entry.js.map} +0 -0
  1045. /package/dist/atomic/{p-d11c4053.entry.js.map → p-5a52dc4f.entry.js.map} +0 -0
  1046. /package/dist/atomic/{p-e6f5b0eb.js.map → p-5a8c8608.js.map} +0 -0
  1047. /package/dist/atomic/{p-475f9931.entry.js.map → p-61c19a04.entry.js.map} +0 -0
  1048. /package/dist/atomic/{p-4b2f412f.js.map → p-64cc0214.js.map} +0 -0
  1049. /package/dist/atomic/{p-39e091d5.entry.js.map → p-694af29d.entry.js.map} +0 -0
  1050. /package/dist/atomic/{p-c375d8ab.js.map → p-6a5a366c.js.map} +0 -0
  1051. /package/dist/atomic/{p-638a624e.entry.js.map → p-6e8f6c4e.entry.js.map} +0 -0
  1052. /package/dist/atomic/{p-df18119c.entry.js.map → p-7148b295.entry.js.map} +0 -0
  1053. /package/dist/atomic/{p-1c3c00a1.entry.js.map → p-78ff2358.entry.js.map} +0 -0
  1054. /package/dist/atomic/{p-3c50b839.entry.js.map → p-7aa80b40.entry.js.map} +0 -0
  1055. /package/dist/atomic/{p-df4ce223.entry.js.map → p-7b8020dd.entry.js.map} +0 -0
  1056. /package/dist/atomic/{p-dd3d6b89.entry.js.map → p-7c6cded8.entry.js.map} +0 -0
  1057. /package/dist/atomic/{p-e9391c7b.entry.js.map → p-7da807d6.entry.js.map} +0 -0
  1058. /package/dist/atomic/{p-e22088e4.entry.js.map → p-81ead125.entry.js.map} +0 -0
  1059. /package/dist/atomic/{p-ee735a07.js.map → p-81ffbea0.js.map} +0 -0
  1060. /package/dist/atomic/{p-4e0a485b.entry.js.map → p-846ef8c9.entry.js.map} +0 -0
  1061. /package/dist/atomic/{p-b39f31df.entry.js.map → p-84aada47.entry.js.map} +0 -0
  1062. /package/dist/atomic/{p-d860463a.js.map → p-8a471188.js.map} +0 -0
  1063. /package/dist/atomic/{p-716136ae.entry.js.map → p-8b3b87e9.entry.js.map} +0 -0
  1064. /package/dist/atomic/{p-a6bbb030.js.map → p-8e0a3de9.js.map} +0 -0
  1065. /package/dist/atomic/{p-91fabc48.js.map → p-8f7b6eb3.js.map} +0 -0
  1066. /package/dist/atomic/{p-d275f338.js.map → p-8f870628.js.map} +0 -0
  1067. /package/dist/atomic/{p-f8e16ee9.js.map → p-8fdda5c6.js.map} +0 -0
  1068. /package/dist/atomic/{p-1f86745f.entry.js.map → p-91350669.entry.js.map} +0 -0
  1069. /package/dist/atomic/{p-9cf54848.js.map → p-925df073.js.map} +0 -0
  1070. /package/dist/atomic/{p-74928a89.entry.js.map → p-92db698d.entry.js.map} +0 -0
  1071. /package/dist/atomic/{p-6885acd3.entry.js.map → p-944fe2ca.entry.js.map} +0 -0
  1072. /package/dist/atomic/{p-6dd3a7be.js.map → p-945533bd.js.map} +0 -0
  1073. /package/dist/atomic/{p-2545de3a.entry.js.map → p-95649dfe.entry.js.map} +0 -0
  1074. /package/dist/atomic/{p-a60ad537.entry.js.map → p-97bf5db6.entry.js.map} +0 -0
  1075. /package/dist/atomic/{p-ff4eadc8.entry.js.map → p-98ee46c3.entry.js.map} +0 -0
  1076. /package/dist/atomic/{p-9a22af0b.entry.js.map → p-9c34e291.entry.js.map} +0 -0
  1077. /package/dist/atomic/{p-b66057f2.entry.js.map → p-9d89f16e.entry.js.map} +0 -0
  1078. /package/dist/atomic/{p-893c53d3.entry.js.map → p-9e262d4f.entry.js.map} +0 -0
  1079. /package/dist/atomic/{p-5061c7d9.entry.js.map → p-9e84fd28.entry.js.map} +0 -0
  1080. /package/dist/atomic/{p-169136cc.entry.js.map → p-9f127a00.entry.js.map} +0 -0
  1081. /package/dist/atomic/{p-053f5cb1.entry.js.map → p-9f17aac0.entry.js.map} +0 -0
  1082. /package/dist/atomic/{p-b09ebe95.js.map → p-a17b8ffc.js.map} +0 -0
  1083. /package/dist/atomic/{p-843e0545.entry.js.map → p-a3ab554e.entry.js.map} +0 -0
  1084. /package/dist/atomic/{p-5474f931.entry.js.map → p-a86ffd12.entry.js.map} +0 -0
  1085. /package/dist/atomic/{p-6bf0d9bf.entry.js.map → p-a8c7f34f.entry.js.map} +0 -0
  1086. /package/dist/atomic/{p-1d2317fa.js.map → p-a9ed505a.js.map} +0 -0
  1087. /package/dist/atomic/{p-fa7c9052.js.map → p-aaf864d7.js.map} +0 -0
  1088. /package/dist/atomic/{p-c4701592.entry.js.map → p-ab304a67.entry.js.map} +0 -0
  1089. /package/dist/atomic/{p-08ce68cd.entry.js.map → p-ac7abbae.entry.js.map} +0 -0
  1090. /package/dist/atomic/{p-acf4faf8.js.map → p-acbd51dd.js.map} +0 -0
  1091. /package/dist/atomic/{p-db3aa7c0.entry.js.map → p-ad38e363.entry.js.map} +0 -0
  1092. /package/dist/atomic/{p-08dfc93e.js.map → p-adad4020.js.map} +0 -0
  1093. /package/dist/atomic/{p-d2738b20.entry.js.map → p-b125e5e5.entry.js.map} +0 -0
  1094. /package/dist/atomic/{p-190bca88.js.map → p-b160be42.js.map} +0 -0
  1095. /package/dist/atomic/{p-8543f60a.entry.js.map → p-b19ad4bc.entry.js.map} +0 -0
  1096. /package/dist/atomic/{p-303657e2.entry.js.map → p-b416f690.entry.js.map} +0 -0
  1097. /package/dist/atomic/{p-e5b29430.entry.js.map → p-b597d76c.entry.js.map} +0 -0
  1098. /package/dist/atomic/{p-85b7825e.entry.js.map → p-b6b48649.entry.js.map} +0 -0
  1099. /package/dist/atomic/{p-a132b44f.js.map → p-b7f5fdab.js.map} +0 -0
  1100. /package/dist/atomic/{p-0ace4e44.entry.js.map → p-b7f9420d.entry.js.map} +0 -0
  1101. /package/dist/atomic/{p-37dd7d31.entry.js.map → p-b97a773c.entry.js.map} +0 -0
  1102. /package/dist/atomic/{p-cdbfd6d3.js.map → p-ba021837.js.map} +0 -0
  1103. /package/dist/atomic/{p-e382b288.entry.js.map → p-bc0fc584.entry.js.map} +0 -0
  1104. /package/dist/atomic/{p-a7064c41.entry.js.map → p-bd1aa6bb.entry.js.map} +0 -0
  1105. /package/dist/atomic/{p-2a3044e3.entry.js.map → p-bec7e50a.entry.js.map} +0 -0
  1106. /package/dist/atomic/{p-e8e041cb.entry.js.map → p-c566543b.entry.js.map} +0 -0
  1107. /package/dist/atomic/{p-ded35c53.js.map → p-c5ec8f79.js.map} +0 -0
  1108. /package/dist/atomic/{p-f5b94d26.entry.js.map → p-c6986525.entry.js.map} +0 -0
  1109. /package/dist/atomic/{p-151392e0.entry.js.map → p-c953f644.entry.js.map} +0 -0
  1110. /package/dist/atomic/{p-52713305.js.map → p-d0294026.js.map} +0 -0
  1111. /package/dist/atomic/{p-4252b62a.entry.js.map → p-d2bb57da.entry.js.map} +0 -0
  1112. /package/dist/atomic/{p-30b1a8e0.js.map → p-d45776b3.js.map} +0 -0
  1113. /package/dist/atomic/{p-1bb8fd49.js.map → p-d967e926.js.map} +0 -0
  1114. /package/dist/atomic/{p-1746e396.entry.js.map → p-e03f245b.entry.js.map} +0 -0
  1115. /package/dist/atomic/{p-43a78770.entry.js.map → p-e19ef4be.entry.js.map} +0 -0
  1116. /package/dist/atomic/{p-862769b9.entry.js.map → p-e2088f9e.entry.js.map} +0 -0
  1117. /package/dist/atomic/{p-9ec08fc1.entry.js.map → p-e4553b03.entry.js.map} +0 -0
  1118. /package/dist/atomic/{p-d573be8c.entry.js.map → p-e5546bea.entry.js.map} +0 -0
  1119. /package/dist/atomic/{p-969778a1.entry.js.map → p-e5f356ca.entry.js.map} +0 -0
  1120. /package/dist/atomic/{p-d245416e.js.map → p-e614add9.js.map} +0 -0
  1121. /package/dist/atomic/{p-a810d6ad.entry.js.map → p-e86a9dcb.entry.js.map} +0 -0
  1122. /package/dist/atomic/{p-806d2145.entry.js.map → p-e8befabf.entry.js.map} +0 -0
  1123. /package/dist/atomic/{p-416d5f3e.entry.js.map → p-efff4455.entry.js.map} +0 -0
  1124. /package/dist/atomic/{p-1293a9d8.js.map → p-f00a245c.js.map} +0 -0
  1125. /package/dist/atomic/{p-1be5a1ac.js.map → p-f0f67cf4.js.map} +0 -0
  1126. /package/dist/atomic/{p-daa8d439.entry.js.map → p-f1997c74.entry.js.map} +0 -0
  1127. /package/dist/atomic/{p-7cc0b600.entry.js.map → p-f2aebada.entry.js.map} +0 -0
  1128. /package/dist/atomic/{p-9dc331b3.entry.js.map → p-f312f600.entry.js.map} +0 -0
  1129. /package/dist/atomic/{p-32275553.entry.js.map → p-fa867de1.entry.js.map} +0 -0
  1130. /package/dist/atomic/{p-292292b4.entry.js.map → p-fc4761d1.entry.js.map} +0 -0
  1131. /package/dist/atomic/{p-b6266855.entry.js.map → p-fd610816.entry.js.map} +0 -0
@@ -7,7 +7,8 @@ import { deepEqual } from "../../../utils/compare-utils";
7
7
  * the host updates, revalidating only if the props have changed since the last
8
8
  * validation.
9
9
  *
10
- * If validation fails, the controller sets the `error` property on the host.
10
+ * If validation fails, the controller either sets the `error` property on the host
11
+ * or logs a warning, depending on the `throwOnError` configuration.
11
12
  */
12
13
  export class ValidatePropsController {
13
14
  /**
@@ -16,11 +17,13 @@ export class ValidatePropsController {
16
17
  * @param host The host element.
17
18
  * @param getProps A function that returns the current props to validate.
18
19
  * @param schema The Bueno schema to validate the props against.
20
+ * @param throwOnError Whether to throw an error (true) or log a warning (false) when validation fails. Defaults to true.
19
21
  */
20
- constructor(host, getProps, schema) {
22
+ constructor(host, getProps, schema, throwOnError = true) {
21
23
  this.host = host;
22
24
  this.getProps = getProps;
23
25
  this.schema = schema;
26
+ this.throwOnError = throwOnError;
24
27
  host.addController(this);
25
28
  }
26
29
  hostConnected() {
@@ -29,7 +32,7 @@ export class ValidatePropsController {
29
32
  // @ts-expect-error: we need to set the error to undefined if it was null.
30
33
  this.host.error = undefined;
31
34
  }
32
- this._validateProps();
35
+ this.validateProps();
33
36
  }
34
37
  hostUpdate() {
35
38
  this.currentProps = this.getProps();
@@ -38,14 +41,20 @@ export class ValidatePropsController {
38
41
  }
39
42
  // @ts-expect-error: we need to clear the error.
40
43
  this.host.error = undefined;
41
- this._validateProps();
44
+ this.validateProps();
42
45
  }
43
- _validateProps() {
46
+ validateProps() {
44
47
  try {
45
48
  this.schema.validate(this.currentProps);
46
49
  }
47
50
  catch (error) {
48
- this.host.error = error;
51
+ if (this.throwOnError) {
52
+ this.host.error = error;
53
+ }
54
+ else {
55
+ const message = `Prop validation failed for component ${this.host.tagName?.toLowerCase()}: ${error.message}`;
56
+ console.warn(message, this.host);
57
+ }
49
58
  }
50
59
  finally {
51
60
  this.previousProps = this.currentProps;
@@ -4,6 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import { ArrayValue, NumberValue, Schema, StringValue } from '@coveo/bueno';
7
8
  import { buildFacet, buildFacetConditionsManager, buildSearchStatus, buildTabManager, } from '@coveo/headless';
8
9
  import { html, LitElement, nothing } from 'lit';
9
10
  import { customElement, property, state } from 'lit/decorators.js';
@@ -28,6 +29,7 @@ import { renderFacetValue, } from '../../common/facets/facet-value/facet-value';
28
29
  import { renderFacetValuesGroup } from '../../common/facets/facet-values-group/facet-values-group';
29
30
  import { initializePopover } from '../../common/facets/popover/popover-type';
30
31
  import '../../common/atomic-facet-placeholder/atomic-facet-placeholder';
32
+ import { arrayConverter } from "../../../converters/array-converter";
31
33
  import { booleanConverter } from "../../../converters/boolean-converter";
32
34
  import { bindings } from "../../../decorators/bindings";
33
35
  import { InitializeBindingsMixin } from "../../../mixins/bindings-mixin";
@@ -36,6 +38,7 @@ import facetSearchStyles from '../../common/facets/facet-search/facet-search.tw.
36
38
  import facetValueBoxStyles from '../../common/facets/facet-value-box/facet-value-box.tw.css';
37
39
  import facetValueCheckboxStyles from '../../common/facets/facet-value-checkbox/facet-value-checkbox.tw.css';
38
40
  import facetValueExcludeStyles from '../../common/facets/facet-value-exclude/facet-value-exclude.tw.css';
41
+ import { ValidatePropsController } from '../../common/validate-props-controller/validate-props-controller';
39
42
  /**
40
43
  * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (for example, number of occurrences).
41
44
  * An `atomic-facet` displays a facet of the results for the current query.
@@ -77,7 +80,7 @@ import facetValueExcludeStyles from '../../common/facets/facet-value-exclude/fac
77
80
  */
78
81
  let AtomicFacet = class AtomicFacet extends InitializeBindingsMixin(LitElement) {
79
82
  constructor() {
80
- super(...arguments);
83
+ super();
81
84
  /**
82
85
  * The non-localized label for the facet.
83
86
  * Used in the `atomic-breadbox` component through the bindings store.
@@ -197,6 +200,64 @@ let AtomicFacet = class AtomicFacet extends InitializeBindingsMixin(LitElement)
197
200
  * The default value is `undefined`, and the facet values will be sorted using only the `sortCriteria`.
198
201
  */
199
202
  this.customSort = [];
203
+ new ValidatePropsController(this, () => ({
204
+ field: this.field,
205
+ numberOfValues: this.numberOfValues,
206
+ headingLevel: this.headingLevel,
207
+ injectionDepth: this.injectionDepth,
208
+ sortCriteria: this.sortCriteria,
209
+ resultsMustMatch: this.resultsMustMatch,
210
+ displayValuesAs: this.displayValuesAs,
211
+ allowedValues: Array.isArray(this.allowedValues)
212
+ ? this.allowedValues
213
+ : [],
214
+ customSort: Array.isArray(this.customSort) ? this.customSort : [],
215
+ tabsExcluded: this.tabsExcluded,
216
+ tabsIncluded: this.tabsIncluded,
217
+ }), new Schema({
218
+ field: new StringValue({ required: true, emptyAllowed: false }),
219
+ numberOfValues: new NumberValue({ min: 1, required: false }),
220
+ headingLevel: new NumberValue({ min: 0, max: 6, required: false }),
221
+ injectionDepth: new NumberValue({ min: 0, required: false }),
222
+ sortCriteria: new StringValue({
223
+ constrainTo: [
224
+ 'score',
225
+ 'alphanumeric',
226
+ 'alphanumericDescending',
227
+ 'occurrences',
228
+ 'alphanumericNatural',
229
+ 'alphanumericNaturalDescending',
230
+ 'automatic',
231
+ ],
232
+ required: false,
233
+ }),
234
+ resultsMustMatch: new StringValue({
235
+ constrainTo: ['atLeastOneValue', 'allValues'],
236
+ required: false,
237
+ }),
238
+ displayValuesAs: new StringValue({
239
+ constrainTo: ['checkbox', 'link', 'box'],
240
+ required: false,
241
+ }),
242
+ allowedValues: new ArrayValue({
243
+ each: new StringValue({ emptyAllowed: false }),
244
+ max: 25,
245
+ required: false,
246
+ }),
247
+ customSort: new ArrayValue({
248
+ each: new StringValue({ emptyAllowed: false }),
249
+ max: 25,
250
+ required: false,
251
+ }),
252
+ tabsExcluded: new ArrayValue({
253
+ each: new StringValue({ emptyAllowed: false }),
254
+ required: false,
255
+ }),
256
+ tabsIncluded: new ArrayValue({
257
+ each: new StringValue({ emptyAllowed: false }),
258
+ required: false,
259
+ }),
260
+ }));
200
261
  }
201
262
  initialize() {
202
263
  if ([...this.tabsIncluded].length > 0 &&
@@ -507,6 +568,7 @@ __decorate([
507
568
  property({
508
569
  type: Array,
509
570
  attribute: 'tabs-included',
571
+ converter: arrayConverter,
510
572
  reflect: true,
511
573
  })
512
574
  ], AtomicFacet.prototype, "tabsIncluded", void 0);
@@ -514,6 +576,7 @@ __decorate([
514
576
  property({
515
577
  type: Array,
516
578
  attribute: 'tabs-excluded',
579
+ converter: arrayConverter,
517
580
  reflect: true,
518
581
  })
519
582
  ], AtomicFacet.prototype, "tabsExcluded", void 0);
@@ -546,7 +609,7 @@ __decorate([
546
609
  })
547
610
  ], AtomicFacet.prototype, "isCollapsed", void 0);
548
611
  __decorate([
549
- property({ type: Number, attribute: 'heading-level', reflect: true })
612
+ property({ type: Number, attribute: 'heading-level' })
550
613
  ], AtomicFacet.prototype, "headingLevel", void 0);
551
614
  __decorate([
552
615
  property({
@@ -0,0 +1,97 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BooleanValue, Schema, StringValue } from '@coveo/bueno';
8
+ import { html, LitElement, nothing } from 'lit';
9
+ import { customElement, property, state } from 'lit/decorators.js';
10
+ import { when } from 'lit/directives/when.js';
11
+ import { ValidatePropsController } from "../../common/validate-props-controller/validate-props-controller";
12
+ import { createResultContextController } from "../result-template-component-utils/context/result-context-controller";
13
+ import { booleanConverter } from "../../../converters/boolean-converter";
14
+ import { bindingGuard } from "../../../decorators/binding-guard";
15
+ import { bindings } from "../../../decorators/bindings";
16
+ import { errorGuard } from "../../../decorators/error-guard";
17
+ import { LightDomMixin } from "../../../mixins/light-dom";
18
+ import { getStringValueFromResultOrNull } from "../../../utils/result-utils";
19
+ import '../atomic-html/atomic-html';
20
+ /**
21
+ * The `atomic-result-html` component renders the HTML value of a string result field.
22
+ *
23
+ * There is an inherent XSS security concern associated with the usage of this component.
24
+ *
25
+ * Use only with fields for which you are certain the data is harmless.
26
+ */
27
+ let AtomicResultHtml = class AtomicResultHtml extends LightDomMixin(LitElement) {
28
+ constructor() {
29
+ super();
30
+ /**
31
+ * Specify if the content should be sanitized, using [`DOMPurify`](https://www.npmjs.com/package/dompurify).
32
+ */
33
+ this.sanitize = true;
34
+ this.resultController = createResultContextController(this);
35
+ new ValidatePropsController(this, () => ({
36
+ field: this.field,
37
+ sanitize: this.sanitize,
38
+ }), new Schema({
39
+ field: new StringValue({ required: true, emptyAllowed: false }),
40
+ sanitize: new BooleanValue(),
41
+ }));
42
+ }
43
+ initialize() {
44
+ if (!this.result && this.resultController.item) {
45
+ const item = this.resultController.item;
46
+ if ('result' in item) {
47
+ this.result = item.result;
48
+ }
49
+ else {
50
+ this.result = item;
51
+ }
52
+ }
53
+ }
54
+ render() {
55
+ return html `
56
+ ${when(this.result && this.field, () => this.renderResultHtml(), () => nothing)}
57
+ `;
58
+ }
59
+ renderResultHtml() {
60
+ const resultValue = getStringValueFromResultOrNull(this.result, this.field);
61
+ if (!resultValue) {
62
+ this.remove();
63
+ return nothing;
64
+ }
65
+ return html `
66
+ <atomic-html value=${resultValue} ?sanitize=${this.sanitize}></atomic-html>
67
+ `;
68
+ }
69
+ };
70
+ __decorate([
71
+ property({ type: String, reflect: true })
72
+ ], AtomicResultHtml.prototype, "field", void 0);
73
+ __decorate([
74
+ property({
75
+ type: Boolean,
76
+ reflect: true,
77
+ converter: booleanConverter,
78
+ })
79
+ ], AtomicResultHtml.prototype, "sanitize", void 0);
80
+ __decorate([
81
+ state()
82
+ ], AtomicResultHtml.prototype, "result", void 0);
83
+ __decorate([
84
+ state()
85
+ ], AtomicResultHtml.prototype, "bindings", void 0);
86
+ __decorate([
87
+ state()
88
+ ], AtomicResultHtml.prototype, "error", void 0);
89
+ __decorate([
90
+ bindingGuard(),
91
+ errorGuard()
92
+ ], AtomicResultHtml.prototype, "render", null);
93
+ AtomicResultHtml = __decorate([
94
+ customElement('atomic-result-html'),
95
+ bindings()
96
+ ], AtomicResultHtml);
97
+ export { AtomicResultHtml };
@@ -118,7 +118,9 @@ let AtomicResultList = class AtomicResultList extends ChildrenUpdateCompleteMixi
118
118
  each: new StringValue({}),
119
119
  required: false,
120
120
  }),
121
- }));
121
+ }),
122
+ // TODO V4: KIT-5197 - Remove false
123
+ false);
122
124
  }
123
125
  /**
124
126
  * Sets a rendering function to bypass the standard HTML template mechanism for rendering results.
@@ -201,7 +203,7 @@ let AtomicResultList = class AtomicResultList extends ChildrenUpdateCompleteMixi
201
203
  listClasses: resultClasses,
202
204
  display: this.display,
203
205
  },
204
- })(html `${when(this.display === 'grid', () => this.renderGrid(), () => html `${when(this.display === 'list', () => this.renderList(), () => this.renderTable())}`)}`))}
206
+ })(html `${when(this.display === 'grid', () => this.renderGrid(), () => html `${when(this.display === 'table', () => this.renderTable(), () => this.renderList())}`)}`))}
205
207
  ${when(!this.isEveryResultReady, () => renderDisplayWrapper({
206
208
  props: { listClasses, display: this.display },
207
209
  })(renderItemPlaceholders({
@@ -9,6 +9,7 @@ export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.
9
9
  export { AtomicRelevanceInspector } from './atomic-relevance-inspector/atomic-relevance-inspector.js';
10
10
  export { AtomicResult } from './atomic-result/atomic-result.js';
11
11
  export { AtomicResultChildrenTemplate } from './atomic-result-children-template/atomic-result-children-template.js';
12
+ export { AtomicResultHtml } from './atomic-result-html/atomic-result-html.js';
12
13
  export { AtomicResultList } from './atomic-result-list/atomic-result-list.js';
13
14
  export { AtomicResultNumber } from './atomic-result-number/atomic-result-number.js';
14
15
  export { AtomicResultSectionActions } from './atomic-result-section-actions/atomic-result-section-actions.js';
@@ -10,6 +10,7 @@ export default {
10
10
  'atomic-relevance-inspector': async () => await import('./atomic-relevance-inspector/atomic-relevance-inspector.js'),
11
11
  'atomic-result': async () => await import('./atomic-result/atomic-result.js'),
12
12
  'atomic-result-children-template': async () => await import('./atomic-result-children-template/atomic-result-children-template.js'),
13
+ 'atomic-result-html': async () => await import('./atomic-result-html/atomic-result-html.js'),
13
14
  'atomic-result-list': async () => await import('./atomic-result-list/atomic-result-list.js'),
14
15
  'atomic-result-number': async () => await import('./atomic-result-number/atomic-result-number.js'),
15
16
  'atomic-result-section-actions': async () => await import('./atomic-result-section-actions/atomic-result-section-actions.js'),
@@ -3,7 +3,7 @@ function getWindow() {
3
3
  }
4
4
  export function getAtomicEnvironment(headlessVersion) {
5
5
  return {
6
- version: "3.38.0",
6
+ version: "3.39.0",
7
7
  headlessVersion,
8
8
  };
9
9
  }
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACrBA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;ACZA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;ACVA;;;;;;;;;MASa,iCAAiC,GAAG,CAI/C,KAA+D,EAC/D,OAAoB,EACpB,2BAA0E,iBAAiB;IAE3F,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,QAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,gFAAgF,wBAAwB,CAAC,IAAI,CACjJ,IAAI,CACL,EAAE,CACJ,CAAC;KACH;IACD,KAAK,2CAA2C,CAC9C,gBAAgB,EAChB,OAAO,EACP,KAAK,CACN,CAAC;AACJ,EAAE;AAEF,MAAM,iBAAiB,GAAG;IACxB,mBAAmB;IACnB,2BAA2B;IAC3B,4BAA4B;CACpB,CAAC;AAEX,MAAM,mBAAmB,GAAG,CAAC,SAAkB,KAC7C,gBAAgB,IAAK,SAAwB;IAC5C,SAAwB,CAAC,cAAc,YAAY,OAAO,CAAC;AAE9D,MAAM,2CAA2C,GAAG,OAIlD,gBAAyB,EACzB,OAAoB,EACpB,KAA+D;IAE/D,MAAM,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,EAAE;QACzC,MAAM,gBAAgB,CAAC,cAAc,CAAC;KACvC;SAAM,IAAI,kBAAkB,IAAI,gBAAgB,EAAE;QACjD,MAAO,gBAAuC,CAAC,gBAAgB,EAAE,CAAC;KACnE;IACD,OAAO,CAAC,aAAa,CACnB,gBAAgB,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAC/D,CAAC;AACJ,CAAC;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/components/commerce/product-template-component-utils/context/fetch-product-context.ts","src/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.tsx","src/components/common/suggestions/suggestions-events.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {Product} from '@coveo/headless/commerce';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n","import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {HTMLStencilElement} from '@stencil/core/internal';\nimport type {LitElement} from 'lit';\nimport {closest} from '../../../utils/dom-utils';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport type {AnyBindings} from '../interface/bindings';\nimport type {SearchBoxSuggestionsEvent} from './suggestions-types';\n\n/**\n * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.\n *\n * @param event Event sent from the registered query suggestions to the parent search box\n * @param element Element on which to dispatch the event, which must be the child of a configured search box\n * @param allowedSearchBoxElements Optional array of allowed search box element selectors\n *\n * @throws Error if the element is not a child of an allowed search box element\n */\nexport const dispatchSearchBoxSuggestionsEvent = <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>,\n element: HTMLElement,\n allowedSearchBoxElements: readonly (typeof searchBoxElements)[number][] = searchBoxElements\n) => {\n const interfaceElement = closest(element, searchBoxElements.join(', '));\n if (!interfaceElement) {\n throw new Error(\n `The \"${element.nodeName.toLowerCase()}\" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(\n ', '\n )}`\n );\n }\n void dispatchSearchBoxSuggestionsEventEventually(\n interfaceElement,\n element,\n event\n );\n};\n\nconst searchBoxElements = [\n 'atomic-search-box',\n 'atomic-insight-search-box',\n 'atomic-commerce-search-box',\n] as const;\n\nconst isLitElementLoosely = (candidate: unknown): candidate is LitElement =>\n 'updateComplete' in (candidate as LitElement) &&\n (candidate as LitElement).updateComplete instanceof Promise;\n\nconst dispatchSearchBoxSuggestionsEventEventually = async <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n interfaceElement: Element,\n element: HTMLElement,\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>\n) => {\n await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());\n if (isLitElementLoosely(interfaceElement)) {\n await interfaceElement.updateComplete;\n } else if ('componentOnReady' in interfaceElement) {\n await (interfaceElement as HTMLStencilElement).componentOnReady();\n }\n element.dispatchEvent(\n buildCustomEvent('atomic/searchBoxSuggestion/register', event)\n );\n};\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACrBA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;ACZA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;ACVA;;;;;;;;;MASa,iCAAiC,GAAG,CAI/C,KAA+D,EAC/D,OAAoB,EACpB,2BAA0E,iBAAiB;IAE3F,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,QAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,gFAAgF,wBAAwB,CAAC,IAAI,CACjJ,IAAI,CACL,EAAE,CACJ,CAAC;KACH;IACD,KAAK,2CAA2C,CAC9C,gBAAgB,EAChB,OAAO,EACP,KAAK,CACN,CAAC;AACJ,EAAE;AAEF,MAAM,iBAAiB,GAAG;IACxB,mBAAmB;IACnB,2BAA2B;IAC3B,4BAA4B;CACpB,CAAC;AAEX,MAAM,mBAAmB,GAAG,CAAC,SAAkB,KAC7C,gBAAgB,IAAK,SAAwB;IAC5C,SAAwB,CAAC,cAAc,YAAY,OAAO,CAAC;AAE9D,MAAM,2CAA2C,GAAG,OAIlD,gBAAyB,EACzB,OAAoB,EACpB,KAA+D;IAE/D,MAAM,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,EAAE;QACzC,MAAM,gBAAgB,CAAC,cAAc,CAAC;KACvC;SAAM,IAAI,kBAAkB,IAAI,gBAAgB,EAAE;QACjD,MAAO,gBAAuC,CAAC,gBAAgB,EAAE,CAAC;KACnE;IACD,OAAO,CAAC,aAAa,CACnB,gBAAgB,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAC/D,CAAC;AACJ,CAAC;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/components/commerce/product-template-component-utils/context/fetch-product-context.ts","src/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.tsx","src/components/common/suggestions/suggestions-events.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {Product} from '@coveo/headless/commerce';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n","import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {HTMLStencilElement} from '@stencil/core/internal';\nimport type {LitElement} from 'lit';\nimport {closest} from '../../../utils/dom-utils';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport type {AnyBindings} from '../interface/bindings';\nimport type {SearchBoxSuggestionsEvent} from './suggestions-types';\n\n/**\n * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.\n *\n * @param event Event sent from the registered query suggestions to the parent search box\n * @param element Element on which to dispatch the event, which must be the child of a configured search box\n * @param allowedSearchBoxElements Optional array of allowed search box element selectors\n *\n * @throws Error if the element is not a child of an allowed search box element\n */\nexport const dispatchSearchBoxSuggestionsEvent = <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>,\n element: HTMLElement,\n allowedSearchBoxElements: readonly (typeof searchBoxElements)[number][] = searchBoxElements\n) => {\n const interfaceElement = closest(element, searchBoxElements.join(', '));\n if (!interfaceElement) {\n throw new Error(\n `The \"${element.nodeName.toLowerCase()}\" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(\n ', '\n )}`\n );\n }\n void dispatchSearchBoxSuggestionsEventEventually(\n interfaceElement,\n element,\n event\n );\n};\n\nconst searchBoxElements = [\n 'atomic-search-box',\n 'atomic-insight-search-box',\n 'atomic-commerce-search-box',\n] as const;\n\nconst isLitElementLoosely = (candidate: unknown): candidate is LitElement =>\n 'updateComplete' in (candidate as LitElement) &&\n (candidate as LitElement).updateComplete instanceof Promise;\n\nconst dispatchSearchBoxSuggestionsEventEventually = async <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n interfaceElement: Element,\n element: HTMLElement,\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>\n) => {\n await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());\n if (isLitElementLoosely(interfaceElement)) {\n await interfaceElement.updateComplete;\n } else if ('componentOnReady' in interfaceElement) {\n await (interfaceElement as HTMLStencilElement).componentOnReady();\n }\n element.dispatchEvent(\n buildCustomEvent('atomic/searchBoxSuggestion/register', event)\n );\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { q as isElementNode } from './utils.js';
1
+ import { l as isElementNode } from './utils.js';
2
2
 
3
3
  const resultSectionTags = new Set([
4
4
  'atomic-result-section-visual',
@@ -1,6 +1,6 @@
1
1
  import { isArray } from '@coveo/bueno';
2
2
  import { getElement } from '@stencil/core/internal/client';
3
- import { k as camelToKebab, l as kebabToCamel } from './utils.js';
3
+ import { g as camelToKebab, k as kebabToCamel } from './utils.js';
4
4
 
5
5
  /**
6
6
  * @deprecated Use the `mapProperty` decorator instead.
@@ -1,4 +1,4 @@
1
- import { buildInteractiveResult, ResultTemplatesHelpers } from '@coveo/headless';
1
+ import { buildInteractiveResult } from '@coveo/headless';
2
2
 
3
3
  function readFromObject(object, key) {
4
4
  const keys = key.split('.');
@@ -58,14 +58,7 @@ function buildStringTemplateFromResult(template, result, bindings) {
58
58
  return newValue;
59
59
  });
60
60
  }
61
- function getStringValueFromResultOrNull(result, field) {
62
- const value = ResultTemplatesHelpers.getResultProperty(result, field);
63
- if (typeof value !== 'string' || value.trim() === '') {
64
- return null;
65
- }
66
- return value;
67
- }
68
61
 
69
- export { buildStringTemplateFromResult as a, bindLogDocumentOpenOnResult as b, getStringValueFromResultOrNull as g };
62
+ export { buildStringTemplateFromResult as a, bindLogDocumentOpenOnResult as b };
70
63
 
71
64
  //# sourceMappingURL=result-utils.js.map
@@ -1 +1 @@
1
- {"file":"result-utils.js","mappings":"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","names":[],"sources":["src/utils/object-utils.ts","src/utils/result-utils.ts"],"sourcesContent":["export function readFromObject<T extends object>(\n object: T,\n key: string\n): string | undefined {\n const keys = key.split('.');\n let current: unknown = object;\n\n for (const k of keys) {\n if (current && typeof current === 'object' && k in current) {\n current = (current as Record<string, unknown>)[k];\n } else {\n return undefined;\n }\n }\n\n return typeof current === 'string' ? current : undefined;\n}\n","import {\n buildInteractiveResult,\n type Result,\n ResultTemplatesHelpers,\n type SearchEngine,\n} from '@coveo/headless';\nimport type {RecsBindings} from '../components/recommendations/atomic-recs-interface/interfaces';\nimport type {Bindings} from '../components/search/atomic-search-interface/atomic-search-interface';\nimport {readFromObject} from './object-utils';\n\n/**\n * Binds the logging of document\n * @returns An unbind function for the events\n * @param engine A headless search engine instance.\n * @param result The result object\n * @param resultElement Parent result element\n * @param selector Optional. Css selector that selects all links to the document. Default: \"a\" tags with the clickUri as \"href\" parameter.\n */\nexport function bindLogDocumentOpenOnResult(\n engine: SearchEngine,\n result: Result,\n resultElement: Element | ShadowRoot,\n selector?: string\n) {\n const interactiveResult = buildInteractiveResult(engine, {\n options: {result},\n });\n\n const eventsMap: Record<string, EventListenerOrEventListenerObject> = {\n contextmenu: () => interactiveResult.select(),\n click: () => interactiveResult.select(),\n mouseup: () => interactiveResult.select(),\n mousedown: () => interactiveResult.select(),\n touchstart: () => interactiveResult.beginDelayedSelect(),\n touchend: () => interactiveResult.cancelPendingSelect(),\n };\n const elements = resultElement.querySelectorAll(selector || 'a');\n\n elements.forEach((element) => {\n Object.keys(eventsMap).forEach((key) =>\n element.addEventListener(key, eventsMap[key])\n );\n });\n\n return () => {\n elements.forEach((element) => {\n Object.keys(eventsMap).forEach((key) =>\n element.removeEventListener(key, eventsMap[key])\n );\n });\n };\n}\n\nexport function buildStringTemplateFromResult(\n template: string,\n result: Result,\n bindings: Bindings | RecsBindings\n) {\n return template.replace(/\\${(.*?)}/g, (value: string) => {\n const key = value.substring(2, value.length - 1);\n let newValue = readFromObject(result, key);\n if (!newValue && typeof window !== 'undefined') {\n newValue = readFromObject(window, key);\n }\n\n if (!newValue) {\n bindings.engine.logger.warn(\n `${key} used in the href template is undefined for this result: ${result.uniqueId} and could not be found in the window object.`\n );\n return '';\n }\n\n return newValue;\n });\n}\n\nexport function getStringValueFromResultOrNull(result: Result, field: string) {\n const value = ResultTemplatesHelpers.getResultProperty(result, field);\n\n if (typeof value !== 'string' || value.trim() === '') {\n return null;\n }\n\n return value;\n}\n"],"version":3}
1
+ {"file":"result-utils.js","mappings":";;SAAgB,cAAc,CAC5B,MAAS,EACT,GAAW;IAEX,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAY,MAAM,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,OAAO,EAAE;YAC1D,OAAO,GAAI,OAAmC,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;KACF;IAED,OAAO,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAC3D;;ACNA;;;;;;;;SAQgB,2BAA2B,CACzC,MAAoB,EACpB,MAAc,EACd,aAAmC,EACnC,QAAiB;IAEjB,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,MAAM,EAAE;QACvD,OAAO,EAAE,EAAC,MAAM,EAAC;KAClB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAuD;QACpE,WAAW,EAAE,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC7C,KAAK,EAAE,MAAM,iBAAiB,CAAC,MAAM,EAAE;QACvC,OAAO,EAAE,MAAM,iBAAiB,CAAC,MAAM,EAAE;QACzC,SAAS,EAAE,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC3C,UAAU,EAAE,MAAM,iBAAiB,CAAC,kBAAkB,EAAE;QACxD,QAAQ,EAAE,MAAM,iBAAiB,CAAC,mBAAmB,EAAE;KACxD,CAAC;IACF,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IAEjE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO;QACvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KACjC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAC9C,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO;YACvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KACjC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CACjD,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;SAEe,6BAA6B,CAC3C,QAAgB,EAChB,MAAc,EACd,QAAiC;IAEjC,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAa;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC9C,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACzB,GAAG,GAAG,4DAA4D,MAAM,CAAC,QAAQ,+CAA+C,CACjI,CAAC;YACF,OAAO,EAAE,CAAC;SACX;QAED,OAAO,QAAQ,CAAC;KACjB,CAAC,CAAC;AACL;;;;","names":[],"sources":["src/utils/object-utils.ts","src/utils/result-utils.ts"],"sourcesContent":["export function readFromObject<T extends object>(\n object: T,\n key: string\n): string | undefined {\n const keys = key.split('.');\n let current: unknown = object;\n\n for (const k of keys) {\n if (current && typeof current === 'object' && k in current) {\n current = (current as Record<string, unknown>)[k];\n } else {\n return undefined;\n }\n }\n\n return typeof current === 'string' ? current : undefined;\n}\n","import {\n buildInteractiveResult,\n type Result,\n ResultTemplatesHelpers,\n type SearchEngine,\n} from '@coveo/headless';\nimport type {RecsBindings} from '../components/recommendations/atomic-recs-interface/interfaces';\nimport type {Bindings} from '../components/search/atomic-search-interface/atomic-search-interface';\nimport {readFromObject} from './object-utils';\n\n/**\n * Binds the logging of document\n * @returns An unbind function for the events\n * @param engine A headless search engine instance.\n * @param result The result object\n * @param resultElement Parent result element\n * @param selector Optional. Css selector that selects all links to the document. Default: \"a\" tags with the clickUri as \"href\" parameter.\n */\nexport function bindLogDocumentOpenOnResult(\n engine: SearchEngine,\n result: Result,\n resultElement: Element | ShadowRoot,\n selector?: string\n) {\n const interactiveResult = buildInteractiveResult(engine, {\n options: {result},\n });\n\n const eventsMap: Record<string, EventListenerOrEventListenerObject> = {\n contextmenu: () => interactiveResult.select(),\n click: () => interactiveResult.select(),\n mouseup: () => interactiveResult.select(),\n mousedown: () => interactiveResult.select(),\n touchstart: () => interactiveResult.beginDelayedSelect(),\n touchend: () => interactiveResult.cancelPendingSelect(),\n };\n const elements = resultElement.querySelectorAll(selector || 'a');\n\n elements.forEach((element) => {\n Object.keys(eventsMap).forEach((key) =>\n element.addEventListener(key, eventsMap[key])\n );\n });\n\n return () => {\n elements.forEach((element) => {\n Object.keys(eventsMap).forEach((key) =>\n element.removeEventListener(key, eventsMap[key])\n );\n });\n };\n}\n\nexport function buildStringTemplateFromResult(\n template: string,\n result: Result,\n bindings: Bindings | RecsBindings\n) {\n return template.replace(/\\${(.*?)}/g, (value: string) => {\n const key = value.substring(2, value.length - 1);\n let newValue = readFromObject(result, key);\n if (!newValue && typeof window !== 'undefined') {\n newValue = readFromObject(window, key);\n }\n\n if (!newValue) {\n bindings.engine.logger.warn(\n `${key} used in the href template is undefined for this result: ${result.uniqueId} and could not be found in the window object.`\n );\n return '';\n }\n\n return newValue;\n });\n}\n\nexport function getStringValueFromResultOrNull(result: Result, field: string) {\n const value = ResultTemplatesHelpers.getResultProperty(result, field);\n\n if (typeof value !== 'string' || value.trim() === '') {\n return null;\n }\n\n return value;\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"show-hide-button.js","mappings":"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","names":[],"sources":["src/components/common/item-list/item-list-decorators.tsx","src/components/common/result-children/stencil-children-wrapper.tsx","src/components/common/result-children/collection-guard.tsx","src/components/common/result-children/stencil-guard.tsx","src/components/common/result-children/show-hide-button.tsx"],"sourcesContent":["import {ComponentInterface, getElement} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\n\ntype FoldedItemListContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListContextEvent =\n CustomEvent<FoldedItemListContextEventHandler>;\nconst foldedItemListContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListContext() {\n return (component: ComponentInterface, foldedList: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListContextEventName,\n (foldedItemList: unknown) => {\n this[foldedList] = foldedItemList;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n\ntype FoldedItemListStateContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListStateContextEvent =\n CustomEvent<FoldedItemListStateContextEventHandler>;\nconst foldedItemListStateContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListStateContext() {\n return (component: ComponentInterface, foldedListState: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListStateContextEventName,\n (foldedItemList: {\n subscribe: (callback: () => void) => unknown;\n state: unknown;\n }) => {\n foldedItemList?.subscribe(() => {\n this[foldedListState] = foldedItemList.state;\n });\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\ninterface ChildrenWrapperProps {\n hasChildren: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ChildrenWrapper: FunctionalComponent<ChildrenWrapperProps> = (\n {hasChildren},\n children\n) => {\n return (\n <div part=\"children-root\">\n {hasChildren && <slot name=\"before-children\"></slot>}\n {children}\n {hasChildren && <slot name=\"after-children\"></slot>}\n </div>\n );\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {ResultsPlaceholder} from '../atomic-result-placeholder/stencil-placeholders';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\nimport {ChildrenWrapper} from './stencil-children-wrapper';\n\ninterface CollectionGuardProps {\n isLoadingMoreResults: boolean;\n moreResultsAvailable: boolean;\n hasChildren: boolean;\n numberOfChildren: number;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n noResultText: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const CollectionGuard: FunctionalComponent<CollectionGuardProps> = (\n {\n isLoadingMoreResults,\n moreResultsAvailable,\n hasChildren,\n numberOfChildren,\n density,\n imageSize,\n noResultText,\n },\n children\n) => {\n if (isLoadingMoreResults) {\n return (\n <ChildrenWrapper hasChildren={hasChildren}>\n <ResultsPlaceholder\n numberOfPlaceholders={numberOfChildren}\n density={density}\n display={'list'}\n imageSize={imageSize}\n />\n </ChildrenWrapper>\n );\n }\n\n if (!moreResultsAvailable && !hasChildren) {\n return noResultText.trim().length ? (\n <p part=\"no-result-root\" class=\"no-result-root my-3\">\n {noResultText}\n </p>\n ) : null;\n }\n\n if (!hasChildren) {\n return;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\n\ninterface ResultChildrenGuardProps {\n inheritTemplates: boolean;\n resultTemplateRegistered: boolean;\n templateHasError: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ResultChildrenGuard: FunctionalComponent<\n ResultChildrenGuardProps\n> = (\n {inheritTemplates, resultTemplateRegistered, templateHasError},\n children\n) => {\n if (!inheritTemplates && !resultTemplateRegistered) {\n return;\n }\n\n if (!inheritTemplates && templateHasError) {\n return <slot></slot>;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {Button} from '../stencil-button';\n\ninterface ShowHideButtonProps {\n moreResultsAvailable: boolean;\n loadFullCollection: () => void;\n showInitialChildren: boolean;\n toggleShowInitialChildren: () => void;\n loadAllResults: string;\n collapseResults: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ShowHideButton: FunctionalComponent<ShowHideButtonProps> = ({\n moreResultsAvailable,\n loadFullCollection,\n showInitialChildren,\n toggleShowInitialChildren,\n loadAllResults,\n collapseResults,\n}) => {\n return (\n <Button\n part=\"show-hide-button\"\n class=\"show-hide-button\"\n style=\"text-primary\"\n onClick={() => {\n if (moreResultsAvailable) {\n loadFullCollection();\n toggleShowInitialChildren();\n }\n\n toggleShowInitialChildren();\n }}\n >\n {showInitialChildren || moreResultsAvailable\n ? loadAllResults\n : collapseResults}\n </Button>\n );\n};\n"],"version":3}
1
+ {"file":"show-hide-button.js","mappings":"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","names":[],"sources":["src/components/common/item-list/item-list-decorators.tsx","src/components/common/result-children/stencil-children-wrapper.tsx","src/components/common/result-children/stencil-collection-guard.tsx","src/components/common/result-children/stencil-guard.tsx","src/components/common/result-children/show-hide-button.tsx"],"sourcesContent":["import {ComponentInterface, getElement} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\n\ntype FoldedItemListContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListContextEvent =\n CustomEvent<FoldedItemListContextEventHandler>;\nconst foldedItemListContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListContext() {\n return (component: ComponentInterface, foldedList: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListContextEventName,\n (foldedItemList: unknown) => {\n this[foldedList] = foldedItemList;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n\ntype FoldedItemListStateContextEventHandler = (foldedItemList: unknown) => void;\nexport type FoldedItemListStateContextEvent =\n CustomEvent<FoldedItemListStateContextEventHandler>;\nconst foldedItemListStateContextEventName = 'atomic/resolveFoldedResultList';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for elements nested within a folded item list.\n * This allows the Stencil component to modify the folded item list rendered levels.\n */\nexport function FoldedItemListStateContext() {\n return (component: ComponentInterface, foldedListState: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n foldedItemListStateContextEventName,\n (foldedItemList: {\n subscribe: (callback: () => void) => unknown;\n state: unknown;\n }) => {\n foldedItemList?.subscribe(() => {\n this[foldedListState] = foldedItemList.state;\n });\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n","import {FunctionalComponent, h} from '@stencil/core';\n\ninterface ChildrenWrapperProps {\n hasChildren: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ChildrenWrapper: FunctionalComponent<ChildrenWrapperProps> = (\n {hasChildren},\n children\n) => {\n return (\n <div part=\"children-root\">\n {hasChildren && <slot name=\"before-children\"></slot>}\n {children}\n {hasChildren && <slot name=\"after-children\"></slot>}\n </div>\n );\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {ResultsPlaceholder} from '../atomic-result-placeholder/stencil-placeholders';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\nimport {ChildrenWrapper} from './stencil-children-wrapper';\n\ninterface CollectionGuardProps {\n isLoadingMoreResults: boolean;\n moreResultsAvailable: boolean;\n hasChildren: boolean;\n numberOfChildren: number;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n noResultText: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const CollectionGuard: FunctionalComponent<CollectionGuardProps> = (\n {\n isLoadingMoreResults,\n moreResultsAvailable,\n hasChildren,\n numberOfChildren,\n density,\n imageSize,\n noResultText,\n },\n children\n) => {\n if (isLoadingMoreResults) {\n return (\n <ChildrenWrapper hasChildren={hasChildren}>\n <ResultsPlaceholder\n numberOfPlaceholders={numberOfChildren}\n density={density}\n display={'list'}\n imageSize={imageSize}\n />\n </ChildrenWrapper>\n );\n }\n\n if (!moreResultsAvailable && !hasChildren) {\n return noResultText.trim().length ? (\n <p part=\"no-result-root\" class=\"no-result-root my-3\">\n {noResultText}\n </p>\n ) : null;\n }\n\n if (!hasChildren) {\n return;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\n\ninterface ResultChildrenGuardProps {\n inheritTemplates: boolean;\n resultTemplateRegistered: boolean;\n templateHasError: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ResultChildrenGuard: FunctionalComponent<\n ResultChildrenGuardProps\n> = (\n {inheritTemplates, resultTemplateRegistered, templateHasError},\n children\n) => {\n if (!inheritTemplates && !resultTemplateRegistered) {\n return;\n }\n\n if (!inheritTemplates && templateHasError) {\n return <slot></slot>;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {Button} from '../stencil-button';\n\ninterface ShowHideButtonProps {\n moreResultsAvailable: boolean;\n loadFullCollection: () => void;\n showInitialChildren: boolean;\n toggleShowInitialChildren: () => void;\n loadAllResults: string;\n collapseResults: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ShowHideButton: FunctionalComponent<ShowHideButtonProps> = ({\n moreResultsAvailable,\n loadFullCollection,\n showInitialChildren,\n toggleShowInitialChildren,\n loadAllResults,\n collapseResults,\n}) => {\n return (\n <Button\n part=\"show-hide-button\"\n class=\"show-hide-button\"\n style=\"text-primary\"\n onClick={() => {\n if (moreResultsAvailable) {\n loadFullCollection();\n toggleShowInitialChildren();\n }\n\n toggleShowInitialChildren();\n }}\n >\n {showInitialChildren || moreResultsAvailable\n ? loadAllResults\n : collapseResults}\n </Button>\n );\n};\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { b as buildCustomEvent } from './event-utils.js';
2
- import { d as defer } from './utils.js';
2
+ import { f as defer } from './utils.js';
3
3
 
4
4
  const findAriaLiveEventName = 'atomic/accessibility/findAriaLive';
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { u as updateBreakpoints } from './replace-breakpoint-utils.js';
2
2
  import { g as getFirstFocusableDescendant } from './stencil-accessibility-utils.js';
3
- import { o as once, d as defer } from './utils.js';
3
+ import { o as once, f as defer } from './utils.js';
4
4
 
5
5
  const resultComponentClass = 'result-component';
6
6
  class ItemListCommon {
@@ -1,6 +1,6 @@
1
1
  import { ResultTemplatesHelpers } from '@coveo/headless';
2
2
  import { h } from '@stencil/core/internal/client';
3
- import { m as aggregate, n as isVisualNode, q as isElementNode } from './utils.js';
3
+ import { h as aggregate, j as isVisualNode, l as isElementNode } from './utils.js';
4
4
  import { i as isResultSectionNode } from './item-layout-sections.js';
5
5
 
6
6
  const tableElementTagName = 'atomic-table-element';
@@ -84,40 +84,12 @@ function sanitizeStyle(style) {
84
84
  wrapperEl.innerHTML = purifiedOuterHTML;
85
85
  return wrapperEl.querySelector('style')?.innerHTML;
86
86
  }
87
- function getFocusedElement(rootElement = document) {
88
- const activeElement = rootElement.activeElement;
89
- if (activeElement?.shadowRoot) {
90
- return getFocusedElement(activeElement.shadowRoot) ?? activeElement;
91
- }
92
- return activeElement;
93
- }
94
87
  function isFocusingOut(event) {
95
88
  return (document.hasFocus() &&
96
89
  (!(event.relatedTarget instanceof Node) ||
97
90
  (event.currentTarget instanceof Node &&
98
91
  !event.currentTarget.contains(event.relatedTarget))));
99
92
  }
100
- function getParent(element) {
101
- if (element.parentNode) {
102
- return element.parentNode;
103
- }
104
- if (element instanceof ShadowRoot) {
105
- return element.host;
106
- }
107
- return null;
108
- }
109
- function isAncestorOf(ancestor, element) {
110
- if (element === ancestor) {
111
- return true;
112
- }
113
- if (element instanceof HTMLElement &&
114
- element.assignedSlot &&
115
- isAncestorOf(ancestor, element.assignedSlot)) {
116
- return true;
117
- }
118
- const parent = getParent(element);
119
- return parent === null ? false : isAncestorOf(ancestor, parent);
120
- }
121
93
  function aggregate(values, getKey) {
122
94
  return values.reduce((aggregatedValues, value, i) => {
123
95
  const key = getKey(value, i);
@@ -147,6 +119,6 @@ async function defer() {
147
119
  return new Promise((resolve) => setTimeout(resolve, 10));
148
120
  }
149
121
 
150
- export { spreadProperties as a, isAncestorOf as b, containsVisualElement as c, defer as d, elementHasAncestorTag as e, getFocusedElement as f, getParent as g, sortByDocumentPosition as h, isFocusingOut as i, sanitizeStyle as j, camelToKebab as k, kebabToCamel as l, aggregate as m, isVisualNode as n, once as o, parseXML as p, isElementNode as q, randomID as r, snakeToCamel as s, titleToKebab as t };
122
+ export { spreadProperties as a, sortByDocumentPosition as b, containsVisualElement as c, sanitizeStyle as d, elementHasAncestorTag as e, defer as f, camelToKebab as g, aggregate as h, isFocusingOut as i, isVisualNode as j, kebabToCamel as k, isElementNode as l, once as o, parseXML as p, randomID as r, snakeToCamel as s, titleToKebab as t };
151
123
 
152
124
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"file":"utils.js","mappings":"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","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import DOMPurify from 'dompurify';\n\n/**\n * Returns a function that can be executed only once\n */\nexport function once<T extends unknown[]>(fn: (...args: T) => unknown) {\n let result: unknown;\n return function (this: unknown, ...args: T) {\n if (fn) {\n result = fn.apply(this, args);\n fn = () => {};\n }\n return result;\n };\n}\n\nexport function camelToKebab(value: string) {\n return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function kebabToCamel(value: string) {\n return value.replace(/-./g, (x) => x[1].toUpperCase());\n}\n\nexport function snakeToCamel(value: string) {\n return value\n .toLowerCase()\n .replace(/([_][a-z])/g, (group) => group.toUpperCase().replace('_', ''));\n}\n\nexport function titleToKebab(value: string) {\n return value.replace(/\\s/g, '-').toLowerCase();\n}\n\nexport function randomID(prepend?: string, length = 5) {\n const randomStr = Math.random()\n .toString(36)\n .substring(2, 2 + length);\n if (!prepend) {\n return randomStr;\n }\n return prepend + randomStr;\n}\n\nexport function getRandomArbitrary(min: number, max: number) {\n return Math.random() * (max - min) + min;\n}\n\nexport function parseXML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/xml');\n}\n\nexport function parseHTML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/html');\n}\n\nexport function isElementNode(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nexport function isVisualNode(node: Node) {\n if (isElementNode(node)) {\n return !(node instanceof HTMLStyleElement);\n }\n if (isTextNode(node)) {\n return !!node.textContent?.trim();\n }\n return false;\n}\n\nexport function containsVisualElement(node: Node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isVisualNode(child)) {\n return true;\n }\n }\n return false;\n}\n\nexport function elementHasAncestorTag(\n el: HTMLElement,\n tagName: string\n): boolean {\n const parentElement = el.parentElement;\n if (!parentElement) {\n return false;\n }\n if (parentElement.tagName === tagName.toUpperCase()) {\n return true;\n }\n return elementHasAncestorTag(parentElement, tagName);\n}\n\nexport function sanitizeStyle(style: string) {\n const purifiedOuterHTML = DOMPurify.sanitize(`<style>${style}</style>`, {\n ALLOWED_TAGS: ['style'],\n ALLOWED_ATTR: [],\n FORCE_BODY: true,\n });\n const wrapperEl = document.createElement('div');\n // deepcode ignore ReactSetInnerHtml: sanitized by dompurify\n wrapperEl.innerHTML = purifiedOuterHTML;\n return wrapperEl.querySelector('style')?.innerHTML;\n}\n\nexport function getFocusedElement(\n rootElement: Document | ShadowRoot = document\n): Element | null {\n const activeElement = rootElement.activeElement;\n if (activeElement?.shadowRoot) {\n return getFocusedElement(activeElement.shadowRoot) ?? activeElement;\n }\n return activeElement;\n}\n\nexport function isFocusingOut(event: FocusEvent) {\n return (\n document.hasFocus() &&\n (!(event.relatedTarget instanceof Node) ||\n (event.currentTarget instanceof Node &&\n !event.currentTarget.contains(event.relatedTarget)))\n );\n}\n\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nexport function isInDocument(element: Node) {\n let currentElement = element;\n while (currentElement?.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = currentElement.parentNode.host;\n } else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n\nexport function isPropValuesEqual<ObjectWithProperties extends object>(\n subject: ObjectWithProperties,\n target: ObjectWithProperties,\n propNames: (keyof ObjectWithProperties)[]\n) {\n return propNames.every((propName) => subject[propName] === target[propName]);\n}\n\nexport function getParent(element: Element | ShadowRoot) {\n if (element.parentNode) {\n return element.parentNode as Element | ShadowRoot;\n }\n if (element instanceof ShadowRoot) {\n return element.host;\n }\n return null;\n}\n\nexport function isAncestorOf(\n ancestor: Element | ShadowRoot,\n element: Element | ShadowRoot\n): boolean {\n if (element === ancestor) {\n return true;\n }\n if (\n element instanceof HTMLElement &&\n element.assignedSlot &&\n isAncestorOf(ancestor, element.assignedSlot)\n ) {\n return true;\n }\n const parent = getParent(element);\n return parent === null ? false : isAncestorOf(ancestor, parent);\n}\n\nexport function aggregate<V, K extends PropertyKey>(\n values: readonly V[],\n getKey: (value: V, index: number) => K\n): Record<K, V[] | undefined> {\n return values.reduce(\n (aggregatedValues, value, i) => {\n const key = getKey(value, i);\n if (!(key in aggregatedValues)) {\n aggregatedValues[key] = [];\n }\n aggregatedValues[key]!.push(value);\n return aggregatedValues;\n },\n <Record<K, V[] | undefined>>{}\n );\n}\n\n/**\n * Similar as a classic spread, but preserve all characteristics of properties (e.g. getter/setter).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#description\n * for an explanation why (spread & assign work similarly).\n * @param objects the objects to \"spread\" together\n * @returns the spread result\n */\nexport function spreadProperties<Output extends object = {}>(\n ...objects: object[]\n) {\n const returnObject = {};\n for (const obj of objects) {\n Object.defineProperties(\n returnObject,\n Object.getOwnPropertyDescriptors(obj)\n );\n }\n return returnObject as Output;\n}\n\nexport const sortByDocumentPosition = (a: Node, b: Node): 1 | -1 =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n\nexport async function defer() {\n return new Promise<void>((resolve) => setTimeout(resolve, 10));\n}\n"],"version":3}
1
+ {"file":"utils.js","mappings":"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","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import DOMPurify from 'dompurify';\n\n/**\n * Returns a function that can be executed only once\n */\nexport function once<T extends unknown[]>(fn: (...args: T) => unknown) {\n let result: unknown;\n return function (this: unknown, ...args: T) {\n if (fn) {\n result = fn.apply(this, args);\n fn = () => {};\n }\n return result;\n };\n}\n\nexport function camelToKebab(value: string) {\n return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function kebabToCamel(value: string) {\n return value.replace(/-./g, (x) => x[1].toUpperCase());\n}\n\nexport function snakeToCamel(value: string) {\n return value\n .toLowerCase()\n .replace(/([_][a-z])/g, (group) => group.toUpperCase().replace('_', ''));\n}\n\nexport function titleToKebab(value: string) {\n return value.replace(/\\s/g, '-').toLowerCase();\n}\n\nexport function randomID(prepend?: string, length = 5) {\n const randomStr = Math.random()\n .toString(36)\n .substring(2, 2 + length);\n if (!prepend) {\n return randomStr;\n }\n return prepend + randomStr;\n}\n\nexport function getRandomArbitrary(min: number, max: number) {\n return Math.random() * (max - min) + min;\n}\n\nexport function parseXML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/xml');\n}\n\nexport function parseHTML(string: string) {\n return new window.DOMParser().parseFromString(string, 'text/html');\n}\n\nexport function isElementNode(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nexport function isVisualNode(node: Node) {\n if (isElementNode(node)) {\n return !(node instanceof HTMLStyleElement);\n }\n if (isTextNode(node)) {\n return !!node.textContent?.trim();\n }\n return false;\n}\n\nexport function containsVisualElement(node: Node) {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isVisualNode(child)) {\n return true;\n }\n }\n return false;\n}\n\nexport function elementHasAncestorTag(\n el: HTMLElement,\n tagName: string\n): boolean {\n const parentElement = el.parentElement;\n if (!parentElement) {\n return false;\n }\n if (parentElement.tagName === tagName.toUpperCase()) {\n return true;\n }\n return elementHasAncestorTag(parentElement, tagName);\n}\n\nexport function sanitizeStyle(style: string) {\n const purifiedOuterHTML = DOMPurify.sanitize(`<style>${style}</style>`, {\n ALLOWED_TAGS: ['style'],\n ALLOWED_ATTR: [],\n FORCE_BODY: true,\n });\n const wrapperEl = document.createElement('div');\n // deepcode ignore ReactSetInnerHtml: sanitized by dompurify\n wrapperEl.innerHTML = purifiedOuterHTML;\n return wrapperEl.querySelector('style')?.innerHTML;\n}\n\nexport function getFocusedElement(\n rootElement: Document | ShadowRoot = document\n): Element | null {\n const activeElement = rootElement.activeElement;\n if (activeElement?.shadowRoot) {\n return getFocusedElement(activeElement.shadowRoot) ?? activeElement;\n }\n return activeElement;\n}\n\nexport function isFocusingOut(event: FocusEvent) {\n return (\n document.hasFocus() &&\n (!(event.relatedTarget instanceof Node) ||\n (event.currentTarget instanceof Node &&\n !event.currentTarget.contains(event.relatedTarget)))\n );\n}\n\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nexport function isInDocument(element: Node) {\n let currentElement = element;\n while (currentElement?.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = currentElement.parentNode.host;\n } else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n\nexport function isPropValuesEqual<ObjectWithProperties extends object>(\n subject: ObjectWithProperties,\n target: ObjectWithProperties,\n propNames: (keyof ObjectWithProperties)[]\n) {\n return propNames.every((propName) => subject[propName] === target[propName]);\n}\n\nexport function getParent(element: Element | ShadowRoot) {\n if (element.parentNode) {\n return element.parentNode as Element | ShadowRoot;\n }\n if (element instanceof ShadowRoot) {\n return element.host;\n }\n return null;\n}\n\nexport function isAncestorOf(\n ancestor: Element | ShadowRoot,\n element: Element | ShadowRoot\n): boolean {\n if (element === ancestor) {\n return true;\n }\n if (\n element instanceof HTMLElement &&\n element.assignedSlot &&\n isAncestorOf(ancestor, element.assignedSlot)\n ) {\n return true;\n }\n const parent = getParent(element);\n return parent === null ? false : isAncestorOf(ancestor, parent);\n}\n\nexport function aggregate<V, K extends PropertyKey>(\n values: readonly V[],\n getKey: (value: V, index: number) => K\n): Record<K, V[] | undefined> {\n return values.reduce(\n (aggregatedValues, value, i) => {\n const key = getKey(value, i);\n if (!(key in aggregatedValues)) {\n aggregatedValues[key] = [];\n }\n aggregatedValues[key]!.push(value);\n return aggregatedValues;\n },\n <Record<K, V[] | undefined>>{}\n );\n}\n\n/**\n * Similar as a classic spread, but preserve all characteristics of properties (e.g. getter/setter).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#description\n * for an explanation why (spread & assign work similarly).\n * @param objects the objects to \"spread\" together\n * @returns the spread result\n */\nexport function spreadProperties<Output extends object = {}>(\n ...objects: object[]\n) {\n const returnObject = {};\n for (const obj of objects) {\n Object.defineProperties(\n returnObject,\n Object.getOwnPropertyDescriptors(obj)\n );\n }\n return returnObject as Output;\n}\n\nexport const sortByDocumentPosition = (a: Node, b: Node): 1 | -1 =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n\nexport async function defer() {\n return new Promise<void>((resolve) => setTimeout(resolve, 10));\n}\n"],"version":3}