@coveo/atomic 3.45.1 → 3.46.1

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 (559) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +0 -8
  4. package/dist/atomic/components/_index.js +2 -6
  5. package/dist/atomic/components/arrow-top-rounded.js +3 -3
  6. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  7. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
  8. package/dist/atomic/components/atomic-insight-folded-result-list.js +4 -11
  9. package/dist/atomic/components/atomic-insight-folded-result-list.js.map +1 -1
  10. package/dist/atomic/components/atomic-insight-generated-answer.js +3 -3
  11. package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
  12. package/dist/atomic/components/atomic-insight-refine-modal.js +4 -5
  13. package/dist/atomic/components/atomic-insight-refine-modal.js.map +1 -1
  14. package/dist/atomic/components/atomic-insight-result-action-bar.js +1 -1
  15. package/dist/atomic/components/atomic-insight-result-action-bar.js.map +1 -1
  16. package/dist/atomic/components/atomic-insight-result-action.js +1 -1
  17. package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
  18. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +1 -1
  19. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
  20. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +2 -2
  21. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js.map +1 -1
  22. package/dist/atomic/components/atomic-insight-result-children-template.js +31 -2
  23. package/dist/atomic/components/atomic-insight-result-children-template.js.map +1 -1
  24. package/dist/atomic/components/atomic-insight-result-children.js +3 -9
  25. package/dist/atomic/components/atomic-insight-result-children.js.map +1 -1
  26. package/dist/atomic/components/atomic-insight-result-list.js +4 -11
  27. package/dist/atomic/components/atomic-insight-result-list.js.map +1 -1
  28. package/dist/atomic/components/atomic-insight-result-quickview-action.js +3 -9
  29. package/dist/atomic/components/atomic-insight-result-quickview-action.js.map +1 -1
  30. package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js +1 -1
  31. package/dist/atomic/components/atomic-insight-smart-snippet-suggestions.js.map +1 -1
  32. package/dist/atomic/components/atomic-insight-smart-snippet.js +1 -1
  33. package/dist/atomic/components/atomic-insight-smart-snippet.js.map +1 -1
  34. package/dist/atomic/components/atomic-insight-timeframe-facet.js +278 -3
  35. package/dist/atomic/components/atomic-insight-timeframe-facet.js.map +1 -1
  36. package/dist/atomic/components/atomic-insight-user-actions-modal.js +2 -3
  37. package/dist/atomic/components/atomic-insight-user-actions-modal.js.map +1 -1
  38. package/dist/atomic/components/atomic-insight-user-actions-session2.js +2 -2
  39. package/dist/atomic/components/atomic-insight-user-actions-session2.js.map +1 -1
  40. package/dist/atomic/components/atomic-insight-user-actions-timeline2.js +1 -1
  41. package/dist/atomic/components/atomic-insight-user-actions-timeline2.js.map +1 -1
  42. package/dist/atomic/components/atomic-ipx-body2.js +3 -3
  43. package/dist/atomic/components/atomic-ipx-body2.js.map +1 -1
  44. package/dist/atomic/components/atomic-ipx-embedded.js +2 -2
  45. package/dist/atomic/components/atomic-ipx-embedded.js.map +1 -1
  46. package/dist/atomic/components/atomic-ipx-modal.js +3 -3
  47. package/dist/atomic/components/atomic-ipx-modal.js.map +1 -1
  48. package/dist/atomic/components/atomic-ipx-recs-list.js +3 -4
  49. package/dist/atomic/components/atomic-ipx-recs-list.js.map +1 -1
  50. package/dist/atomic/components/atomic-ipx-refine-modal2.js +2 -2
  51. package/dist/atomic/components/atomic-ipx-refine-modal2.js.map +1 -1
  52. package/dist/atomic/components/atomic-ipx-refine-toggle.js +2 -2
  53. package/dist/atomic/components/atomic-ipx-refine-toggle.js.map +1 -1
  54. package/dist/atomic/components/atomic-ipx-result-link.js +55 -4
  55. package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
  56. package/dist/atomic/components/atomic-recs-list.js +3 -4
  57. package/dist/atomic/components/atomic-recs-list.js.map +1 -1
  58. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -1
  59. package/dist/atomic/components/components/common/atomic-tab-popover/atomic-tab-popover.js +1 -1
  60. package/dist/atomic/components/components/common/facets/timeframe-facet-common.js +1 -0
  61. package/dist/atomic/components/components/common/generated-answer/generated-content-container.js +1 -1
  62. package/dist/atomic/components/components/common/generated-answer/render-answer-content.js +43 -15
  63. package/dist/atomic/components/components/common/generated-answer/render-feedback-and-copy-buttons.js +2 -4
  64. package/dist/atomic/components/components/common/generated-answer/styles/copy-button.tw.css.js +1 -1
  65. package/dist/atomic/components/components/common/generated-answer/styles/generated-answer.tw.css.js +1 -1
  66. package/dist/atomic/components/components/common/layout/item-layout-controller.js +4 -1
  67. package/dist/atomic/components/components/common/validate-props-controller/validate-props-controller.js +4 -2
  68. package/dist/atomic/components/components/insight/atomic-insight-facet/atomic-insight-facet.js +363 -0
  69. package/dist/atomic/components/components/insight/atomic-insight-numeric-facet/atomic-insight-numeric-facet.js +475 -0
  70. package/dist/atomic/components/components/insight/atomic-insight-result/atomic-insight-result.js +190 -0
  71. package/dist/atomic/components/components/insight/atomic-insight-result-template/atomic-insight-result-template.js +1 -0
  72. package/dist/atomic/components/components/insight/index.js +3 -0
  73. package/dist/atomic/components/components/insight/lazy-index.js +3 -0
  74. package/dist/atomic/components/components/search/atomic-generated-answer/atomic-generated-answer.js +3 -2
  75. package/dist/atomic/components/components/search/atomic-quickview-modal/atomic-quickview-modal.js +342 -0
  76. package/dist/atomic/components/components/search/atomic-quickview-modal/highlight-keywords.js +1 -0
  77. package/dist/atomic/components/components/search/atomic-result/atomic-result.js +5 -3
  78. package/dist/atomic/components/components/search/atomic-search-box/atomic-search-box.js +1 -1
  79. package/dist/atomic/components/components/search/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.js +1 -1
  80. package/dist/atomic/components/components/search/atomic-sort-dropdown/atomic-sort-dropdown.js +16 -4
  81. package/dist/atomic/components/components/search/atomic-timeframe-facet/atomic-timeframe-facet.js +1 -1
  82. package/dist/atomic/components/components/search/index.js +1 -0
  83. package/dist/atomic/components/components/search/lazy-index.js +1 -0
  84. package/dist/atomic/components/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.js +51 -0
  85. package/dist/atomic/components/components/search/result-template-components/atomic-quickview-sidebar/highlight-keywords-checkbox.js +27 -0
  86. package/dist/atomic/components/components/search/result-template-components/atomic-quickview-sidebar/keywords.js +110 -0
  87. package/dist/atomic/components/components/search/result-template-components/atomic-quickview-sidebar/minimize-button.js +23 -0
  88. package/dist/atomic/components/components/search/result-template-components/quickview-iframe/quickview-iframe.js +92 -0
  89. package/dist/atomic/components/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.js +51 -0
  90. package/dist/atomic/components/components/search/result-template-components/quickview-word-highlight/color-parser.js +37 -0
  91. package/dist/atomic/components/components/search/result-template-components/quickview-word-highlight/iframe-parser.js +61 -0
  92. package/dist/atomic/components/components/search/result-template-components/quickview-word-highlight/quickview-word-highlight.js +53 -0
  93. package/dist/atomic/components/components/search/result-template-components/quickview-word-highlight/text-parser.js +46 -0
  94. package/dist/atomic/components/display-options.js +27 -41
  95. package/dist/atomic/components/display-options.js.map +1 -1
  96. package/dist/atomic/components/event-utils.js +1 -25
  97. package/dist/atomic/components/event-utils.js.map +1 -1
  98. package/dist/atomic/components/global/environment.js +1 -1
  99. package/dist/atomic/components/index.js.map +1 -1
  100. package/dist/atomic/components/initialization-utils.js +20 -2
  101. package/dist/atomic/components/initialization-utils.js.map +1 -1
  102. package/dist/atomic/components/replace-breakpoint-utils.js +1 -1
  103. package/dist/atomic/components/stencil-item-decorators.js +1 -1
  104. package/dist/atomic/components/utils/color-utils.js +71 -0
  105. package/dist/atomic/components/utils/custom-element-tags.js +4 -0
  106. package/dist/atomic/components/utils/tailwind.global.tw.css.js +1 -1
  107. package/dist/atomic/components/utils.js +1 -1
  108. package/dist/atomic/index.esm.js +1 -1
  109. package/dist/atomic/p-1580513b.js +2 -0
  110. package/dist/atomic/p-1580513b.js.map +1 -0
  111. package/dist/atomic/p-1fd38149.entry.js +2 -0
  112. package/dist/atomic/{p-d33e0ae2.entry.js.map → p-1fd38149.entry.js.map} +1 -1
  113. package/dist/atomic/{p-eb430e57.js → p-3930eb33.js} +2 -2
  114. package/dist/atomic/p-3f48ff91.entry.js +2 -0
  115. package/dist/atomic/{p-068f7167.entry.js.map → p-3f48ff91.entry.js.map} +1 -1
  116. package/dist/atomic/p-406f7e5a.js +2 -0
  117. package/dist/atomic/p-4a1636ae.entry.js +9 -0
  118. package/dist/atomic/p-4a1636ae.entry.js.map +1 -0
  119. package/dist/atomic/{p-d33e0ae2.entry.js → p-4a8bb5ea.entry.js} +2 -2
  120. package/dist/atomic/p-4a8bb5ea.entry.js.map +1 -0
  121. package/dist/atomic/p-4c696ce2.js +2 -0
  122. package/dist/atomic/p-4c696ce2.js.map +1 -0
  123. package/dist/atomic/p-53e0a661.entry.js +2 -0
  124. package/dist/atomic/{p-c0f7eaa4.entry.js.map → p-53e0a661.entry.js.map} +1 -1
  125. package/dist/atomic/{p-ce24b256.entry.js → p-5aadf2ae.entry.js} +2 -2
  126. package/dist/atomic/{p-14185d40.entry.js.map → p-5aadf2ae.entry.js.map} +1 -1
  127. package/dist/atomic/p-5b83e1aa.entry.js +2 -0
  128. package/dist/atomic/{p-a868522c.entry.js.map → p-5b83e1aa.entry.js.map} +1 -1
  129. package/dist/atomic/{p-fc7cf109.js → p-5e83a83d.js} +2 -2
  130. package/dist/atomic/p-608ea23b.entry.js +2 -0
  131. package/dist/atomic/{p-fd620b0f.entry.js.map → p-608ea23b.entry.js.map} +1 -1
  132. package/dist/atomic/{p-b043d6b0.js → p-6d9dcfb7.js} +2 -2
  133. package/dist/atomic/p-7c732c9b.entry.js +2 -0
  134. package/dist/atomic/{p-6138b4fc.entry.js.map → p-7c732c9b.entry.js.map} +1 -1
  135. package/dist/atomic/p-7ca2dce5.entry.js +2 -0
  136. package/dist/atomic/{p-ea761c89.entry.js.map → p-7ca2dce5.entry.js.map} +1 -1
  137. package/dist/atomic/p-8ab3a3e3.js +2 -0
  138. package/dist/atomic/{p-9f3a46b1.js.map → p-8ab3a3e3.js.map} +1 -1
  139. package/dist/atomic/{p-15d2af30.js → p-8f778162.js} +2 -2
  140. package/dist/atomic/{p-28c8ff94.js → p-8f9590f0.js} +2 -2
  141. package/dist/atomic/p-91a9b3f1.js +2 -0
  142. package/dist/atomic/p-91a9b3f1.js.map +1 -0
  143. package/dist/atomic/p-95ad29f3.entry.js +2 -0
  144. package/dist/atomic/{p-ffca7de3.entry.js.map → p-95ad29f3.entry.js.map} +1 -1
  145. package/dist/atomic/{p-cd6373b9.js → p-9748e9a8.js} +2 -2
  146. package/dist/atomic/{p-9e400bc4.entry.js → p-a9719330.entry.js} +2 -2
  147. package/dist/atomic/p-a9719330.entry.js.map +1 -0
  148. package/dist/atomic/p-a97247c4.entry.js +2 -0
  149. package/dist/atomic/{p-fcf299de.entry.js.map → p-a97247c4.entry.js.map} +1 -1
  150. package/dist/atomic/p-a998340c.entry.js +2 -0
  151. package/dist/atomic/{p-9e400bc4.entry.js.map → p-a998340c.entry.js.map} +1 -1
  152. package/dist/atomic/p-abbf4a31.entry.js +2 -0
  153. package/dist/atomic/{p-445d10ac.entry.js.map → p-abbf4a31.entry.js.map} +1 -1
  154. package/dist/atomic/{p-7312bb94.js → p-ae079ccf.js} +2 -2
  155. package/dist/atomic/p-af37130c.entry.js +2 -0
  156. package/dist/atomic/{p-f1e163f6.entry.js.map → p-af37130c.entry.js.map} +1 -1
  157. package/dist/atomic/{p-0e8cf2d4.js → p-b8fb8a69.js} +2 -2
  158. package/dist/atomic/{p-af7f18d4.js → p-d609547d.js} +2 -2
  159. package/dist/atomic/{p-bed4b7fe.js → p-d75a4630.js} +1 -1
  160. package/dist/atomic/{p-c940c4be.js → p-dcd04374.js} +2 -2
  161. package/dist/atomic/p-e041c13c.entry.js +2 -0
  162. package/dist/atomic/{p-ce24b256.entry.js.map → p-e041c13c.entry.js.map} +1 -1
  163. package/dist/atomic/p-e2720a78.entry.js +2 -0
  164. package/dist/atomic/{p-f0dbdace.entry.js.map → p-e2720a78.entry.js.map} +1 -1
  165. package/dist/atomic/p-e4c2823c.entry.js +2 -0
  166. package/dist/atomic/{p-003c01a8.entry.js.map → p-e4c2823c.entry.js.map} +1 -1
  167. package/dist/atomic/p-ec88de2b.entry.js +2 -0
  168. package/dist/atomic/{p-51ea347a.entry.js.map → p-ec88de2b.entry.js.map} +1 -1
  169. package/dist/atomic/{p-b34fdf83.entry.js → p-efdb5e2b.entry.js} +2 -2
  170. package/dist/atomic/p-f647fb7b.entry.js +2 -0
  171. package/dist/atomic/p-f647fb7b.entry.js.map +1 -0
  172. package/dist/atomic/p-f82d4e71.entry.js +2 -0
  173. package/dist/atomic/{p-a06212cc.entry.js.map → p-f82d4e71.entry.js.map} +1 -1
  174. package/dist/atomic/p-f927a418.entry.js +2 -0
  175. package/dist/atomic/{p-7589819b.entry.js.map → p-f927a418.entry.js.map} +1 -1
  176. package/dist/atomic/{p-33dd50ca.js → p-f9e7ea97.js} +2 -2
  177. package/dist/atomic/p-fa7ff7aa.entry.js +2 -0
  178. package/dist/atomic/{p-71b98e69.entry.js.map → p-fa7ff7aa.entry.js.map} +1 -1
  179. package/dist/atomic/p-fb6a5b80.entry.js +2 -0
  180. package/dist/atomic/{p-cc0d69b9.entry.js.map → p-fb6a5b80.entry.js.map} +1 -1
  181. package/dist/atomic/p-fb755797.entry.js +2 -0
  182. package/dist/atomic/{p-17b405c5.entry.js.map → p-fb755797.entry.js.map} +1 -1
  183. package/dist/cjs/_index.cjs.js +7 -8
  184. package/dist/cjs/_loader.cjs.js +1 -1
  185. package/dist/cjs/arrow-top-rounded-885250ea.js +10 -0
  186. package/dist/cjs/arrow-top-rounded-885250ea.js.map +1 -0
  187. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +8 -9
  188. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +1 -1
  189. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +8 -11
  190. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js.map +1 -1
  191. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +8 -9
  192. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  193. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +10 -11
  194. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js.map +1 -1
  195. package/dist/cjs/atomic-insight-result-action-bar.cjs.entry.js +1 -1
  196. package/dist/cjs/atomic-insight-result-action-bar.cjs.entry.js.map +1 -1
  197. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +8 -9
  198. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  199. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +8 -9
  200. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  201. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +7 -8
  202. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
  203. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +31 -2
  204. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js.map +1 -1
  205. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +7 -8
  206. package/dist/cjs/atomic-insight-result-children.cjs.entry.js.map +1 -1
  207. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +8 -11
  208. package/dist/cjs/atomic-insight-result-list.cjs.entry.js.map +1 -1
  209. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +10 -11
  210. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
  211. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +5 -6
  212. package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js.map +1 -1
  213. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js +6 -7
  214. package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js.map +1 -1
  215. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +293 -24
  216. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +1 -1
  217. package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js +6 -7
  218. package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js.map +1 -1
  219. package/dist/cjs/atomic-insight-user-actions-session.cjs.entry.js +6 -7
  220. package/dist/cjs/atomic-insight-user-actions-session.cjs.entry.js.map +1 -1
  221. package/dist/cjs/atomic-insight-user-actions-timeline.cjs.entry.js +5 -6
  222. package/dist/cjs/atomic-insight-user-actions-timeline.cjs.entry.js.map +1 -1
  223. package/dist/cjs/atomic-ipx-body.cjs.entry.js +7 -8
  224. package/dist/cjs/atomic-ipx-body.cjs.entry.js.map +1 -1
  225. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +6 -7
  226. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js.map +1 -1
  227. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +7 -8
  228. package/dist/cjs/atomic-ipx-modal.cjs.entry.js.map +1 -1
  229. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +11 -14
  230. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js.map +1 -1
  231. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +8 -9
  232. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js.map +1 -1
  233. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +7 -8
  234. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +1 -1
  235. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +59 -9
  236. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  237. package/dist/cjs/atomic-recs-list.cjs.entry.js +11 -14
  238. package/dist/cjs/atomic-recs-list.cjs.entry.js.map +1 -1
  239. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +2 -2
  240. package/dist/cjs/atomic.cjs.js +1 -1
  241. package/dist/cjs/{display-options-384d10a5.js → display-options-d5c02917.js} +31 -45
  242. package/dist/cjs/display-options-d5c02917.js.map +1 -0
  243. package/dist/cjs/{event-utils-6ba7f590.js → event-utils-9bfcf3c5.js} +1 -26
  244. package/dist/cjs/event-utils-9bfcf3c5.js.map +1 -0
  245. package/dist/cjs/index-0a91838f.js +0 -16
  246. package/dist/cjs/index.cjs.js.map +1 -1
  247. package/dist/cjs/{initialization-lit-stencil-common-utils-e66ddf82.js → initialization-lit-stencil-common-utils-4ef7bf9c.js} +24 -4
  248. package/dist/cjs/initialization-lit-stencil-common-utils-4ef7bf9c.js.map +1 -0
  249. package/dist/cjs/{initialization-utils-fc17b06d.js → initialization-utils-68064e3c.js} +4 -5
  250. package/dist/cjs/initialization-utils-68064e3c.js.map +1 -0
  251. package/dist/cjs/{popover-type-dfe5ee7d.js → popover-type-b1385b27.js} +2 -2
  252. package/dist/cjs/{popover-type-dfe5ee7d.js.map → popover-type-b1385b27.js.map} +1 -1
  253. package/dist/cjs/{replace-breakpoint-utils-00c32323.js → replace-breakpoint-utils-c365392f.js} +3 -3
  254. package/dist/cjs/{replace-breakpoint-utils-00c32323.js.map → replace-breakpoint-utils-c365392f.js.map} +1 -1
  255. package/dist/cjs/{stencil-accessibility-utils-0c0e88a9.js → stencil-accessibility-utils-8396dad2.js} +2 -2
  256. package/dist/cjs/{stencil-accessibility-utils-0c0e88a9.js.map → stencil-accessibility-utils-8396dad2.js.map} +1 -1
  257. package/dist/cjs/{stencil-button-61811640.js → stencil-button-de162ca7.js} +2 -2
  258. package/dist/cjs/{stencil-button-61811640.js.map → stencil-button-de162ca7.js.map} +1 -1
  259. package/dist/cjs/{stencil-carousel-eef6c01f.js → stencil-carousel-587ae361.js} +2 -2
  260. package/dist/cjs/{stencil-carousel-eef6c01f.js.map → stencil-carousel-587ae361.js.map} +1 -1
  261. package/dist/cjs/{stencil-iconButton-f33f668c.js → stencil-iconButton-3d7f4317.js} +2 -2
  262. package/dist/cjs/{stencil-iconButton-f33f668c.js.map → stencil-iconButton-3d7f4317.js.map} +1 -1
  263. package/dist/cjs/{stencil-item-decorators-60e21571.js → stencil-item-decorators-d2daa144.js} +4 -4
  264. package/dist/cjs/{stencil-item-decorators-60e21571.js.map → stencil-item-decorators-d2daa144.js.map} +1 -1
  265. package/dist/cjs/{stencil-modal-3c66faca.js → stencil-modal-9bafc681.js} +3 -3
  266. package/dist/cjs/{stencil-modal-3c66faca.js.map → stencil-modal-9bafc681.js.map} +1 -1
  267. package/dist/cjs/{stencil-radio-button-bc2441e3.js → stencil-radio-button-3b87d6da.js} +2 -2
  268. package/dist/cjs/{stencil-radio-button-bc2441e3.js.map → stencil-radio-button-3b87d6da.js.map} +1 -1
  269. package/dist/cjs/{stencil-result-template-decorators-b8a9f27d.js → stencil-result-template-decorators-c89c2f24.js} +2 -2
  270. package/dist/cjs/{stencil-result-template-decorators-b8a9f27d.js.map → stencil-result-template-decorators-c89c2f24.js.map} +1 -1
  271. package/dist/cjs/version.cjs.js +2 -2
  272. package/dist/esm/_index.js +5 -5
  273. package/dist/esm/_loader.js +1 -1
  274. package/dist/esm/arrow-top-rounded-745b84a6.js +7 -0
  275. package/dist/esm/arrow-top-rounded-745b84a6.js.map +1 -0
  276. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +9 -10
  277. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +1 -1
  278. package/dist/esm/atomic-insight-folded-result-list.entry.js +9 -12
  279. package/dist/esm/atomic-insight-folded-result-list.entry.js.map +1 -1
  280. package/dist/esm/atomic-insight-generated-answer.entry.js +9 -10
  281. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  282. package/dist/esm/atomic-insight-refine-modal.entry.js +9 -10
  283. package/dist/esm/atomic-insight-refine-modal.entry.js.map +1 -1
  284. package/dist/esm/atomic-insight-result-action-bar.entry.js +2 -2
  285. package/dist/esm/atomic-insight-result-action-bar.entry.js.map +1 -1
  286. package/dist/esm/atomic-insight-result-action.entry.js +8 -9
  287. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  288. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +8 -9
  289. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  290. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +7 -8
  291. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
  292. package/dist/esm/atomic-insight-result-children-template.entry.js +32 -3
  293. package/dist/esm/atomic-insight-result-children-template.entry.js.map +1 -1
  294. package/dist/esm/atomic-insight-result-children.entry.js +8 -9
  295. package/dist/esm/atomic-insight-result-children.entry.js.map +1 -1
  296. package/dist/esm/atomic-insight-result-list.entry.js +9 -12
  297. package/dist/esm/atomic-insight-result-list.entry.js.map +1 -1
  298. package/dist/esm/atomic-insight-result-quickview-action.entry.js +11 -12
  299. package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
  300. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +6 -7
  301. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js.map +1 -1
  302. package/dist/esm/atomic-insight-smart-snippet.entry.js +7 -8
  303. package/dist/esm/atomic-insight-smart-snippet.entry.js.map +1 -1
  304. package/dist/esm/atomic-insight-timeframe-facet.entry.js +285 -16
  305. package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +1 -1
  306. package/dist/esm/atomic-insight-user-actions-modal.entry.js +5 -6
  307. package/dist/esm/atomic-insight-user-actions-modal.entry.js.map +1 -1
  308. package/dist/esm/atomic-insight-user-actions-session.entry.js +6 -7
  309. package/dist/esm/atomic-insight-user-actions-session.entry.js.map +1 -1
  310. package/dist/esm/atomic-insight-user-actions-timeline.entry.js +5 -6
  311. package/dist/esm/atomic-insight-user-actions-timeline.entry.js.map +1 -1
  312. package/dist/esm/atomic-ipx-body.entry.js +8 -9
  313. package/dist/esm/atomic-ipx-body.entry.js.map +1 -1
  314. package/dist/esm/atomic-ipx-embedded.entry.js +7 -8
  315. package/dist/esm/atomic-ipx-embedded.entry.js.map +1 -1
  316. package/dist/esm/atomic-ipx-modal.entry.js +8 -9
  317. package/dist/esm/atomic-ipx-modal.entry.js.map +1 -1
  318. package/dist/esm/atomic-ipx-recs-list.entry.js +11 -14
  319. package/dist/esm/atomic-ipx-recs-list.entry.js.map +1 -1
  320. package/dist/esm/atomic-ipx-refine-modal.entry.js +8 -9
  321. package/dist/esm/atomic-ipx-refine-modal.entry.js.map +1 -1
  322. package/dist/esm/atomic-ipx-refine-toggle.entry.js +7 -8
  323. package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +1 -1
  324. package/dist/esm/atomic-ipx-result-link.entry.js +60 -10
  325. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  326. package/dist/esm/atomic-recs-list.entry.js +11 -14
  327. package/dist/esm/atomic-recs-list.entry.js.map +1 -1
  328. package/dist/esm/atomic-stencil-facet-date-input.entry.js +2 -2
  329. package/dist/esm/atomic.js +1 -1
  330. package/dist/esm/{display-options-793661be.js → display-options-60387cd9.js} +31 -45
  331. package/dist/esm/display-options-60387cd9.js.map +1 -0
  332. package/dist/esm/{event-utils-ca52c462.js → event-utils-8de63ec3.js} +2 -26
  333. package/dist/esm/event-utils-8de63ec3.js.map +1 -0
  334. package/dist/esm/index-d03d85cb.js +0 -16
  335. package/dist/esm/{initialization-lit-stencil-common-utils-58a20779.js → initialization-lit-stencil-common-utils-097c357b.js} +22 -4
  336. package/dist/esm/initialization-lit-stencil-common-utils-097c357b.js.map +1 -0
  337. package/dist/esm/{initialization-utils-651b038f.js → initialization-utils-ed3a5274.js} +3 -4
  338. package/dist/esm/initialization-utils-ed3a5274.js.map +1 -0
  339. package/dist/esm/{popover-type-4a2d4796.js → popover-type-895c0e24.js} +2 -2
  340. package/dist/esm/{popover-type-4a2d4796.js.map → popover-type-895c0e24.js.map} +1 -1
  341. package/dist/esm/{props-utils-3560dc78.js → props-utils-d064c27d.js} +2 -2
  342. package/dist/esm/{props-utils-3560dc78.js.map → props-utils-d064c27d.js.map} +1 -1
  343. package/dist/esm/{replace-breakpoint-utils-f12f6e47.js → replace-breakpoint-utils-2626a500.js} +2 -2
  344. package/dist/esm/{replace-breakpoint-utils-f12f6e47.js.map → replace-breakpoint-utils-2626a500.js.map} +1 -1
  345. package/dist/esm/{stencil-accessibility-utils-347a9222.js → stencil-accessibility-utils-a11075f9.js} +3 -3
  346. package/dist/esm/{stencil-accessibility-utils-347a9222.js.map → stencil-accessibility-utils-a11075f9.js.map} +1 -1
  347. package/dist/esm/{stencil-button-9db0f69f.js → stencil-button-8276f33f.js} +2 -2
  348. package/dist/esm/{stencil-button-9db0f69f.js.map → stencil-button-8276f33f.js.map} +1 -1
  349. package/dist/esm/{stencil-carousel-7856f406.js → stencil-carousel-1f4e780c.js} +2 -2
  350. package/dist/esm/{stencil-carousel-7856f406.js.map → stencil-carousel-1f4e780c.js.map} +1 -1
  351. package/dist/esm/{stencil-iconButton-cf073305.js → stencil-iconButton-95ce8b69.js} +2 -2
  352. package/dist/esm/{stencil-iconButton-cf073305.js.map → stencil-iconButton-95ce8b69.js.map} +1 -1
  353. package/dist/esm/{stencil-item-decorators-a9ef9261.js → stencil-item-decorators-97a4c6a1.js} +3 -3
  354. package/dist/esm/{stencil-item-decorators-a9ef9261.js.map → stencil-item-decorators-97a4c6a1.js.map} +1 -1
  355. package/dist/esm/{stencil-modal-8704f835.js → stencil-modal-da3e4eaa.js} +3 -3
  356. package/dist/esm/{stencil-modal-8704f835.js.map → stencil-modal-da3e4eaa.js.map} +1 -1
  357. package/dist/esm/{stencil-radio-button-04060ca2.js → stencil-radio-button-360a55b4.js} +2 -2
  358. package/dist/esm/{stencil-radio-button-04060ca2.js.map → stencil-radio-button-360a55b4.js.map} +1 -1
  359. package/dist/esm/{stencil-result-template-decorators-92779fb2.js → stencil-result-template-decorators-c244d674.js} +2 -2
  360. package/dist/esm/{stencil-result-template-decorators-92779fb2.js.map → stencil-result-template-decorators-c244d674.js.map} +1 -1
  361. package/dist/esm/{utils-d8fc65c4.js → utils-58ed73e4.js} +2 -2
  362. package/dist/esm/{utils-d8fc65c4.js.map → utils-58ed73e4.js.map} +1 -1
  363. package/dist/esm/version.js +2 -2
  364. package/dist/types/components/common/atomic-tab-popover/atomic-tab-popover.d.ts +1 -1
  365. package/dist/types/components/common/facets/timeframe-facet-common.d.ts +1 -0
  366. package/dist/types/components/common/generated-answer/render-answer-content.d.ts +2 -0
  367. package/dist/types/components/common/generated-answer/render-feedback-and-copy-buttons.d.ts +0 -1
  368. package/dist/types/components/common/layout/item-layout-controller.d.ts +6 -0
  369. package/dist/types/components/common/validate-props-controller/validate-props-controller.d.ts +1 -0
  370. package/dist/types/components/insight/atomic-insight-facet/atomic-insight-facet.d.ts +52 -30
  371. package/dist/types/components/insight/atomic-insight-numeric-facet/atomic-insight-numeric-facet.d.ts +84 -41
  372. package/dist/types/components/insight/atomic-insight-result/atomic-insight-result.d.ts +44 -18
  373. package/dist/types/components/insight/atomic-insight-result-template/atomic-insight-result-template.d.ts +1 -0
  374. package/dist/types/components/insight/index.d.ts +3 -0
  375. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +1 -0
  376. package/dist/types/components/search/atomic-quickview-modal/atomic-quickview-modal.d.ts +92 -0
  377. package/dist/types/components/search/atomic-quickview-modal/highlight-keywords.d.ts +9 -0
  378. package/dist/types/components/search/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.d.ts +1 -1
  379. package/dist/types/components/search/atomic-sort-dropdown/atomic-sort-dropdown.d.ts +3 -1
  380. package/dist/types/components/search/atomic-timeframe-facet/atomic-timeframe-facet.d.ts +1 -1
  381. package/dist/types/components/search/index.d.ts +1 -0
  382. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.d.ts +1 -1
  383. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/highlight-keywords-checkbox.d.ts +1 -1
  384. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/keywords.d.ts +1 -1
  385. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/minimize-button.d.ts +1 -1
  386. package/dist/types/components/search/result-template-components/quickview-preview-bar/quickview-preview-bar.d.ts +2 -2
  387. package/dist/types/components.d.ts +4 -364
  388. package/docs/atomic-docs.json +1 -361
  389. package/package.json +5 -5
  390. package/dist/atomic/components/atomic-insight-facet.d.ts +0 -11
  391. package/dist/atomic/components/atomic-insight-facet.js +0 -374
  392. package/dist/atomic/components/atomic-insight-facet.js.map +0 -1
  393. package/dist/atomic/components/atomic-insight-numeric-facet.d.ts +0 -11
  394. package/dist/atomic/components/atomic-insight-numeric-facet.js +0 -427
  395. package/dist/atomic/components/atomic-insight-numeric-facet.js.map +0 -1
  396. package/dist/atomic/components/atomic-insight-result.d.ts +0 -11
  397. package/dist/atomic/components/atomic-insight-result.js +0 -8
  398. package/dist/atomic/components/atomic-insight-result.js.map +0 -1
  399. package/dist/atomic/components/atomic-insight-result2.js +0 -107
  400. package/dist/atomic/components/atomic-insight-result2.js.map +0 -1
  401. package/dist/atomic/components/atomic-quickview-modal.d.ts +0 -11
  402. package/dist/atomic/components/atomic-quickview-modal.js +0 -8
  403. package/dist/atomic/components/atomic-quickview-modal.js.map +0 -1
  404. package/dist/atomic/components/atomic-quickview-modal2.js +0 -704
  405. package/dist/atomic/components/atomic-quickview-modal2.js.map +0 -1
  406. package/dist/atomic/components/dom-utils.js +0 -22
  407. package/dist/atomic/components/dom-utils.js.map +0 -1
  408. package/dist/atomic/components/item-layout-sections.js +0 -41
  409. package/dist/atomic/components/item-layout-sections.js.map +0 -1
  410. package/dist/atomic/components/stencil-checkbox.js +0 -42
  411. package/dist/atomic/components/stencil-checkbox.js.map +0 -1
  412. package/dist/atomic/components/stencil-display-wrapper.js +0 -29
  413. package/dist/atomic/components/stencil-display-wrapper.js.map +0 -1
  414. package/dist/atomic/components/stencil-facet-common.js +0 -21
  415. package/dist/atomic/components/stencil-facet-common.js.map +0 -1
  416. package/dist/atomic/components/stencil-facet-value-checkbox.js +0 -118
  417. package/dist/atomic/components/stencil-facet-value-checkbox.js.map +0 -1
  418. package/dist/atomic/components/stencil-facet-values-group.js +0 -278
  419. package/dist/atomic/components/stencil-facet-values-group.js.map +0 -1
  420. package/dist/atomic/components/stencil-item-link.js +0 -57
  421. package/dist/atomic/components/stencil-item-link.js.map +0 -1
  422. package/dist/atomic/p-003c01a8.entry.js +0 -2
  423. package/dist/atomic/p-068f7167.entry.js +0 -2
  424. package/dist/atomic/p-14185d40.entry.js +0 -2
  425. package/dist/atomic/p-1648b38d.js +0 -2
  426. package/dist/atomic/p-1648b38d.js.map +0 -1
  427. package/dist/atomic/p-17b405c5.entry.js +0 -2
  428. package/dist/atomic/p-1ab44292.js +0 -2
  429. package/dist/atomic/p-1ab44292.js.map +0 -1
  430. package/dist/atomic/p-1ad6cda9.js +0 -2
  431. package/dist/atomic/p-1ad6cda9.js.map +0 -1
  432. package/dist/atomic/p-25ce51f6.js +0 -2
  433. package/dist/atomic/p-25ce51f6.js.map +0 -1
  434. package/dist/atomic/p-2b79c22a.entry.js +0 -2
  435. package/dist/atomic/p-2b79c22a.entry.js.map +0 -1
  436. package/dist/atomic/p-37eed01f.entry.js +0 -2
  437. package/dist/atomic/p-37eed01f.entry.js.map +0 -1
  438. package/dist/atomic/p-445d10ac.entry.js +0 -2
  439. package/dist/atomic/p-4619d854.js +0 -2
  440. package/dist/atomic/p-4619d854.js.map +0 -1
  441. package/dist/atomic/p-4b3f9949.js +0 -9
  442. package/dist/atomic/p-4b3f9949.js.map +0 -1
  443. package/dist/atomic/p-51ea347a.entry.js +0 -2
  444. package/dist/atomic/p-5266d7aa.entry.js +0 -2
  445. package/dist/atomic/p-5266d7aa.entry.js.map +0 -1
  446. package/dist/atomic/p-5c374d71.js +0 -2
  447. package/dist/atomic/p-5c374d71.js.map +0 -1
  448. package/dist/atomic/p-5c7a3e32.entry.js +0 -2
  449. package/dist/atomic/p-5c7a3e32.entry.js.map +0 -1
  450. package/dist/atomic/p-60d0b592.entry.js +0 -2
  451. package/dist/atomic/p-60d0b592.entry.js.map +0 -1
  452. package/dist/atomic/p-6138b4fc.entry.js +0 -2
  453. package/dist/atomic/p-62a34ad3.js +0 -2
  454. package/dist/atomic/p-7169f45e.js +0 -2
  455. package/dist/atomic/p-7169f45e.js.map +0 -1
  456. package/dist/atomic/p-71b98e69.entry.js +0 -2
  457. package/dist/atomic/p-7589819b.entry.js +0 -2
  458. package/dist/atomic/p-833e29ff.entry.js +0 -2
  459. package/dist/atomic/p-833e29ff.entry.js.map +0 -1
  460. package/dist/atomic/p-8a49c2cf.js +0 -2
  461. package/dist/atomic/p-8a49c2cf.js.map +0 -1
  462. package/dist/atomic/p-8da9af0c.entry.js +0 -2
  463. package/dist/atomic/p-8da9af0c.entry.js.map +0 -1
  464. package/dist/atomic/p-9f3a46b1.js +0 -2
  465. package/dist/atomic/p-a06212cc.entry.js +0 -2
  466. package/dist/atomic/p-a6819371.entry.js +0 -2
  467. package/dist/atomic/p-a6819371.entry.js.map +0 -1
  468. package/dist/atomic/p-a868522c.entry.js +0 -2
  469. package/dist/atomic/p-b0a8207b.js +0 -2
  470. package/dist/atomic/p-b0a8207b.js.map +0 -1
  471. package/dist/atomic/p-c0f7eaa4.entry.js +0 -2
  472. package/dist/atomic/p-cc0d69b9.entry.js +0 -2
  473. package/dist/atomic/p-ea761c89.entry.js +0 -2
  474. package/dist/atomic/p-f0dbdace.entry.js +0 -2
  475. package/dist/atomic/p-f1e163f6.entry.js +0 -2
  476. package/dist/atomic/p-f995ac6a.js +0 -2
  477. package/dist/atomic/p-f995ac6a.js.map +0 -1
  478. package/dist/atomic/p-fcf299de.entry.js +0 -2
  479. package/dist/atomic/p-fd620b0f.entry.js +0 -2
  480. package/dist/atomic/p-ffca7de3.entry.js +0 -2
  481. package/dist/cjs/arrow-top-rounded-74372173.js +0 -10
  482. package/dist/cjs/arrow-top-rounded-74372173.js.map +0 -1
  483. package/dist/cjs/atomic-insight-facet.cjs.entry.js +0 -355
  484. package/dist/cjs/atomic-insight-facet.cjs.entry.js.map +0 -1
  485. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +0 -405
  486. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js.map +0 -1
  487. package/dist/cjs/atomic-insight-result.cjs.entry.js +0 -94
  488. package/dist/cjs/atomic-insight-result.cjs.entry.js.map +0 -1
  489. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +0 -681
  490. package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +0 -1
  491. package/dist/cjs/display-options-384d10a5.js.map +0 -1
  492. package/dist/cjs/dom-utils-cd217508.js +0 -25
  493. package/dist/cjs/dom-utils-cd217508.js.map +0 -1
  494. package/dist/cjs/event-utils-6ba7f590.js.map +0 -1
  495. package/dist/cjs/initialization-lit-stencil-common-utils-e66ddf82.js.map +0 -1
  496. package/dist/cjs/initialization-utils-fc17b06d.js.map +0 -1
  497. package/dist/cjs/item-layout-sections-747c102b.js +0 -44
  498. package/dist/cjs/item-layout-sections-747c102b.js.map +0 -1
  499. package/dist/cjs/stencil-checkbox-193c71a3.js +0 -45
  500. package/dist/cjs/stencil-checkbox-193c71a3.js.map +0 -1
  501. package/dist/cjs/stencil-display-wrapper-b92b15b8.js +0 -32
  502. package/dist/cjs/stencil-display-wrapper-b92b15b8.js.map +0 -1
  503. package/dist/cjs/stencil-facet-common-f66f544b.js +0 -23
  504. package/dist/cjs/stencil-facet-common-f66f544b.js.map +0 -1
  505. package/dist/cjs/stencil-facet-value-checkbox-8aa3f25a.js +0 -121
  506. package/dist/cjs/stencil-facet-value-checkbox-8aa3f25a.js.map +0 -1
  507. package/dist/cjs/stencil-facet-values-group-4941df59.js +0 -288
  508. package/dist/cjs/stencil-facet-values-group-4941df59.js.map +0 -1
  509. package/dist/cjs/stencil-item-link-b6da6d95.js +0 -59
  510. package/dist/cjs/stencil-item-link-b6da6d95.js.map +0 -1
  511. package/dist/esm/arrow-top-rounded-ca47258b.js +0 -7
  512. package/dist/esm/arrow-top-rounded-ca47258b.js.map +0 -1
  513. package/dist/esm/atomic-insight-facet.entry.js +0 -351
  514. package/dist/esm/atomic-insight-facet.entry.js.map +0 -1
  515. package/dist/esm/atomic-insight-numeric-facet.entry.js +0 -401
  516. package/dist/esm/atomic-insight-numeric-facet.entry.js.map +0 -1
  517. package/dist/esm/atomic-insight-result.entry.js +0 -90
  518. package/dist/esm/atomic-insight-result.entry.js.map +0 -1
  519. package/dist/esm/atomic-quickview-modal.entry.js +0 -677
  520. package/dist/esm/atomic-quickview-modal.entry.js.map +0 -1
  521. package/dist/esm/display-options-793661be.js.map +0 -1
  522. package/dist/esm/dom-utils-1543d0e9.js +0 -22
  523. package/dist/esm/dom-utils-1543d0e9.js.map +0 -1
  524. package/dist/esm/event-utils-ca52c462.js.map +0 -1
  525. package/dist/esm/initialization-lit-stencil-common-utils-58a20779.js.map +0 -1
  526. package/dist/esm/initialization-utils-651b038f.js.map +0 -1
  527. package/dist/esm/item-layout-sections-879f1c3f.js +0 -41
  528. package/dist/esm/item-layout-sections-879f1c3f.js.map +0 -1
  529. package/dist/esm/stencil-checkbox-3e2446b1.js +0 -42
  530. package/dist/esm/stencil-checkbox-3e2446b1.js.map +0 -1
  531. package/dist/esm/stencil-display-wrapper-bea96f22.js +0 -29
  532. package/dist/esm/stencil-display-wrapper-bea96f22.js.map +0 -1
  533. package/dist/esm/stencil-facet-common-2307170d.js +0 -21
  534. package/dist/esm/stencil-facet-common-2307170d.js.map +0 -1
  535. package/dist/esm/stencil-facet-value-checkbox-90f21885.js +0 -118
  536. package/dist/esm/stencil-facet-value-checkbox-90f21885.js.map +0 -1
  537. package/dist/esm/stencil-facet-values-group-79d71457.js +0 -278
  538. package/dist/esm/stencil-facet-values-group-79d71457.js.map +0 -1
  539. package/dist/esm/stencil-item-link-ed8e6b0f.js +0 -57
  540. package/dist/esm/stencil-item-link-ed8e6b0f.js.map +0 -1
  541. package/dist/types/components/search/result-template-components/atomic-quickview-modal/atomic-quickview-modal.d.ts +0 -68
  542. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/stencil-atomic-quickview-sidebar.d.ts +0 -17
  543. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/stencil-highlight-keywords-checkbox.d.ts +0 -12
  544. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/stencil-keywords.d.ts +0 -14
  545. package/dist/types/components/search/result-template-components/atomic-quickview-sidebar/stencil-minimize-button.d.ts +0 -13
  546. /package/dist/atomic/{p-eb430e57.js.map → p-3930eb33.js.map} +0 -0
  547. /package/dist/atomic/{p-62a34ad3.js.map → p-406f7e5a.js.map} +0 -0
  548. /package/dist/atomic/{p-fc7cf109.js.map → p-5e83a83d.js.map} +0 -0
  549. /package/dist/atomic/{p-b043d6b0.js.map → p-6d9dcfb7.js.map} +0 -0
  550. /package/dist/atomic/{p-15d2af30.js.map → p-8f778162.js.map} +0 -0
  551. /package/dist/atomic/{p-28c8ff94.js.map → p-8f9590f0.js.map} +0 -0
  552. /package/dist/atomic/{p-cd6373b9.js.map → p-9748e9a8.js.map} +0 -0
  553. /package/dist/atomic/{p-7312bb94.js.map → p-ae079ccf.js.map} +0 -0
  554. /package/dist/atomic/{p-0e8cf2d4.js.map → p-b8fb8a69.js.map} +0 -0
  555. /package/dist/atomic/{p-af7f18d4.js.map → p-d609547d.js.map} +0 -0
  556. /package/dist/atomic/{p-bed4b7fe.js.map → p-d75a4630.js.map} +0 -0
  557. /package/dist/atomic/{p-c940c4be.js.map → p-dcd04374.js.map} +0 -0
  558. /package/dist/atomic/{p-b34fdf83.entry.js.map → p-efdb5e2b.entry.js.map} +0 -0
  559. /package/dist/atomic/{p-33dd50ca.js.map → p-f9e7ea97.js.map} +0 -0
@@ -0,0 +1,110 @@
1
+ import { html } from 'lit';
2
+ import { repeat } from 'lit/directives/repeat.js';
3
+ import { styleMap } from 'lit/directives/style-map.js';
4
+ import { renderFieldsetGroup } from "../../../common/fieldset-group";
5
+ import { renderIconButton } from "../../../common/icon-button";
6
+ import { multiClassMap, tw } from "../../../../directives/multi-class-map";
7
+ const Add = "<svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" aria-label=\"add\" role=\"img\" style=\"vertical-align: text-bottom;\"><circle cx=\"16\" cy=\"16\" r=\"13.5\" stroke=\"currentColor\"></circle><path d=\"M9 16H23M16 9V23\" stroke=\"currentColor\" stroke-linecap=\"round\"></path></svg>";
8
+ const ArrowDown = "<svg viewBox=\"0 0 12.6 7.2\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m11.421 7.04c-.3 0-.5-.1-.7-.3l-4.6-4.6-4.6 4.6c-.4.4-1 .4-1.4 0s-.4-1 0-1.4l5.2-5.2c.4-.4 1.2-.4 1.6 0l5.2 5.2c.4.4.4 1 0 1.4-.2.2-.4.3-.7.3\" transform=\"matrix(-1 0 0 -1 12.366 7.086)\"/></svg>";
9
+ const ArrowUp = "<svg viewBox=\"0 0 12.6 7.2\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m11.3 7.04c-.3 0-.5-.1-.7-.3l-4.6-4.6-4.6 4.6c-.4.4-1 .4-1.4 0s-.4-1 0-1.4l5.2-5.2c.4-.4 1.2-.4 1.6 0l5.2 5.2c.4.4.4 1 0 1.4-.2.2-.4.3-.7.3\"/></svg>";
10
+ const Remove = "<svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" aria-label=\"remove\" role=\"img\" style=\"vertical-align: text-bottom;\"><circle cx=\"16\" cy=\"16\" r=\"13.5\" stroke=\"currentColor\"></circle><path d=\"M9 16H23\" stroke=\"currentColor\" stroke-linecap=\"round\"></path></svg>";
11
+ export const identifierKeywordsSection = 'coveo-quickview-sidebar-keywords';
12
+ export const renderKeywords = ({ props }) => {
13
+ return html `
14
+ <div id=${identifierKeywordsSection}>
15
+ ${repeat(Object.values(props.words), (keyword) => keyword.text, (keyword) => {
16
+ const wordIsEnabled = !props.highlightKeywords.highlightNone &&
17
+ (props.highlightKeywords.keywords[keyword.text] === undefined ||
18
+ props.highlightKeywords.keywords[keyword.text].enabled === true);
19
+ const keywordContainerClasses = tw({
20
+ 'bg-background border-neutral flex grow items-center overflow-x-auto rounded-lg border': true,
21
+ 'pointer-events-none opacity-50': !wordIsEnabled,
22
+ });
23
+ const navigationLabel = props.i18n.t('quickview-navigate-keywords', {
24
+ occurrences: keyword.occurrences,
25
+ keyword: keyword.text,
26
+ });
27
+ const formattedOccurrences = new Intl.NumberFormat(props.i18n.language, {
28
+ notation: 'compact',
29
+ }).format(keyword.occurrences);
30
+ const toggleLabel = props.i18n.t('quickview-remove-word');
31
+ const ariaPressed = (!wordIsEnabled ? 'true' : 'false');
32
+ const tabIndex = props.highlightKeywords.highlightNone ? -1 : 0;
33
+ return html `
34
+ <div class="my-4 flex w-100 items-center justify-between gap-x-2">
35
+ <div class=${multiClassMap(keywordContainerClasses)}>
36
+ <div
37
+ class="flex grow items-center border-r p-4"
38
+ aria-hidden="true"
39
+ >
40
+ <div
41
+ class="mr-2 h-5 w-5 flex-none"
42
+ style=${styleMap({ backgroundColor: keyword.color })}
43
+ ></div>
44
+ <div class="mr-2 grow whitespace-nowrap">
45
+ ${keyword.text}
46
+ </div>
47
+ <div class="flex-none">
48
+ (${formattedOccurrences})
49
+ </div>
50
+ </div>
51
+ ${renderFieldsetGroup({ props: { label: navigationLabel } })(html `
52
+ <div class="flex px-2">
53
+ ${renderIconButton({
54
+ props: {
55
+ partPrefix: 'sidebar-next',
56
+ icon: ArrowDown,
57
+ disabled: !wordIsEnabled,
58
+ style: 'text-transparent',
59
+ class: 'border-0',
60
+ ariaLabel: props.i18n.t('next'),
61
+ title: props.i18n.t('next'),
62
+ onClick: () => keyword.navigateForward(),
63
+ },
64
+ })}
65
+ ${renderIconButton({
66
+ props: {
67
+ partPrefix: 'sidebar-previous',
68
+ icon: ArrowUp,
69
+ disabled: !wordIsEnabled,
70
+ style: 'text-transparent',
71
+ class: 'border-0',
72
+ ariaLabel: props.i18n.t('previous'),
73
+ title: props.i18n.t('previous'),
74
+ onClick: () => keyword.navigateBackward(),
75
+ },
76
+ })}
77
+ </div>
78
+ `)}
79
+ </div>
80
+ ${renderIconButton({
81
+ props: {
82
+ partPrefix: 'sidebar-remove-word',
83
+ class: props.highlightKeywords.highlightNone
84
+ ? 'pointer-events-none opacity-50'
85
+ : '',
86
+ tabIndex,
87
+ ariaPressed,
88
+ style: 'text-transparent',
89
+ icon: wordIsEnabled ? Remove : Add,
90
+ ariaLabel: toggleLabel,
91
+ onClick: () => {
92
+ props.onHighlightKeywords({
93
+ ...props.highlightKeywords,
94
+ keywords: {
95
+ ...props.highlightKeywords.keywords,
96
+ [keyword.text]: {
97
+ enabled: !wordIsEnabled,
98
+ indexIdentifier: keyword.indexIdentifier,
99
+ },
100
+ },
101
+ });
102
+ },
103
+ },
104
+ })}
105
+ </div>
106
+ `;
107
+ })}
108
+ </div>
109
+ `;
110
+ };
@@ -0,0 +1,23 @@
1
+ import { html } from 'lit';
2
+ import { renderIconButton } from "../../../common/icon-button";
3
+ const MinimizeIcon = "<svg viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" aria-label=\"menu\" role=\"img\" style=\"vertical-align: text-bottom;\"><line x1=\"6.5\" y1=\"10.5\" x2=\"25.5\" y2=\"10.5\" stroke=\"currentColor\" stroke-linecap=\"round\"></line><line x1=\"6.5\" y1=\"22.5\" x2=\"25.5\" y2=\"22.5\" stroke=\"currentColor\" stroke-linecap=\"round\"></line><line x1=\"10.5\" y1=\"16.5\" x2=\"21.5\" y2=\"16.5\" stroke=\"currentColor\" stroke-linecap=\"round\"></line></svg>";
4
+ import { identifierKeywordsSection } from './keywords';
5
+ export const renderMinimizeButton = ({ props, }) => {
6
+ const className = props.minimized ? 'w-fit' : 'ml-auto w-fit';
7
+ return renderIconButton({
8
+ props: {
9
+ partPrefix: 'sidebar-minimize',
10
+ icon: MinimizeIcon,
11
+ style: 'text-transparent',
12
+ title: props.i18n.t('quickview-toggle-navigation'),
13
+ ariaLabel: props.i18n.t('quickview-toggle-navigation'),
14
+ onClick: () => props.onMinimize(!props.minimized),
15
+ badge: props.highlightKeywords && props.minimized
16
+ ? html `<slot>${props.wordsLength}</slot>`
17
+ : undefined,
18
+ class: className,
19
+ ariaExpanded: (!props.minimized).toString(),
20
+ ariaControls: identifierKeywordsSection,
21
+ },
22
+ });
23
+ };
@@ -0,0 +1,92 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
3
+ import { ref } from 'lit/directives/ref.js';
4
+ import { eventPromise } from "../../../../utils/event-utils";
5
+ const documentIdentifierInIframe = 'CoveoDocIdentifier';
6
+ const writeDocument = (documentWriter, content) => {
7
+ documentWriter.open();
8
+ documentWriter.write(content);
9
+ documentWriter.close();
10
+ if (documentWriter.scrollingElement) {
11
+ documentWriter.scrollingElement.scrollTop = 0;
12
+ }
13
+ };
14
+ const currentResultAlreadyWrittenToDocument = (documentWriter, uniqueIdentifier) => {
15
+ const currentDocIdentifier = documentWriter.getElementById(documentIdentifierInIframe);
16
+ return currentDocIdentifier?.textContent === uniqueIdentifier;
17
+ };
18
+ const ensureSameResultIsNotOverwritten = (documentWriter, uniqueIdentifier) => {
19
+ const docIdentifier = documentWriter.createElement('div');
20
+ docIdentifier.style.display = 'none';
21
+ docIdentifier.setAttribute('aria-hidden', 'true');
22
+ docIdentifier.id = documentIdentifierInIframe;
23
+ docIdentifier.textContent = uniqueIdentifier;
24
+ documentWriter.body.appendChild(docIdentifier);
25
+ };
26
+ const warnAboutLimitedUsageQuickview = (logger) => {
27
+ logger?.warn('Quickview initialized in restricted mode due to incompatible sandboxing environment. Keywords hit navigation will be disabled.');
28
+ };
29
+ // We can't access iframe.contentDocument until the element is added to the parent doc
30
+ //
31
+ // There are only 2 safe ways to get a callback when the iframe is added:
32
+ // - Adding a MutationObserver on the parent document. Works, but very verbose, needs to be de-registered, and could interfere with other frameworks
33
+ // - Adding a load event listener on the iframe. This is technically after the iframe loads its src, but since src is about:blank, it boils down to what we want.
34
+ const iframeConnectedEvent = async (iframe, logger) => {
35
+ if (iframe.isConnected) {
36
+ // The iframe is already connected.
37
+ // There would likely be no load event to catch anyway.
38
+ return;
39
+ }
40
+ // There could be edge cases where the iframe never loads, so add a timeout to gracefully handle errors.
41
+ const timeoutMs = 1000;
42
+ await eventPromise(iframe, 'load', timeoutMs).catch(() => {
43
+ logger?.warn('Quickview timed out waiting for the iframe to load.');
44
+ });
45
+ };
46
+ export const renderQuickviewIframe = ({ props }) => {
47
+ const { title, onSetIframeRef, uniqueIdentifier, content, sandbox, src, logger, } = props;
48
+ // When a document is written with document.open/document.write/document.close
49
+ // it is not synchronous and the content of the iframe is only available to be queried at the end of the current call stack.
50
+ // This adds a "wait" (setTimeout 0) before calling the `onSetIframeRef` from the parent modal quickview
51
+ const waitForIframeContentToBeWritten = () => {
52
+ return new Promise((resolve) => setTimeout(resolve));
53
+ };
54
+ const handleRef = (el) => {
55
+ if (!el)
56
+ return;
57
+ const iframeRef = el;
58
+ if (!uniqueIdentifier || !content) {
59
+ return;
60
+ }
61
+ // Wait for iframe to be ready before accessing contentDocument
62
+ const writeContentWhenReady = async () => {
63
+ await iframeConnectedEvent(iframeRef, logger);
64
+ const documentWriter = iframeRef.contentDocument;
65
+ if (!documentWriter) {
66
+ if (src) {
67
+ warnAboutLimitedUsageQuickview(logger);
68
+ iframeRef.src = src;
69
+ }
70
+ return;
71
+ }
72
+ if (currentResultAlreadyWrittenToDocument(documentWriter, uniqueIdentifier)) {
73
+ return;
74
+ }
75
+ writeDocument(documentWriter, content);
76
+ ensureSameResultIsNotOverwritten(documentWriter, uniqueIdentifier);
77
+ await waitForIframeContentToBeWritten();
78
+ onSetIframeRef(iframeRef);
79
+ };
80
+ // Execute async operation without blocking
81
+ writeContentWhenReady();
82
+ };
83
+ return html `<iframe
84
+ title=${title}
85
+ src="about:blank"
86
+ class="h-full w-full"
87
+ sandbox=${
88
+ // biome-ignore lint/suspicious/noExplicitAny: ifDefined requires 'any' for optional HTML attributes
89
+ ifDefined(sandbox)}
90
+ ${ref(handleRef)}
91
+ ></iframe>`;
92
+ };
@@ -0,0 +1,51 @@
1
+ export const buildQuickviewPreviewBar = (words, highlightKeywords, iframe) => {
2
+ if (!iframe) {
3
+ return;
4
+ }
5
+ const documentWriter = iframe.contentDocument;
6
+ if (!documentWriter) {
7
+ return;
8
+ }
9
+ const bar = buildPreviewBar(documentWriter);
10
+ if (highlightKeywords.highlightNone) {
11
+ bar.remove();
12
+ return;
13
+ }
14
+ const docHeight = documentWriter.body.scrollHeight;
15
+ Object.values(words).forEach((word) => {
16
+ word.elements.forEach((wordElement) => {
17
+ const previewUnit = buildPreviewUnit(documentWriter, word, wordElement, docHeight, highlightKeywords);
18
+ bar.appendChild(previewUnit);
19
+ });
20
+ });
21
+ documentWriter.body.appendChild(bar);
22
+ };
23
+ const buildPreviewBar = (documentWriter) => {
24
+ const previewBarId = 'CoveoPreviewBar';
25
+ const bar = documentWriter.getElementById(previewBarId) ||
26
+ documentWriter.createElement('div');
27
+ bar.id = previewBarId;
28
+ bar.innerHTML = '';
29
+ bar.style.position = 'fixed';
30
+ bar.style.top = '0';
31
+ bar.style.right = '0';
32
+ bar.style.width = '15px';
33
+ bar.style.height = '100%';
34
+ bar.setAttribute('aria-hidden', 'true');
35
+ return bar;
36
+ };
37
+ const buildPreviewUnit = (documentWriter, word, wordElement, docHeight, highlightKeywords) => {
38
+ const previewUnit = documentWriter.createElement('div');
39
+ if (highlightKeywords.keywords[word.text]?.enabled === false) {
40
+ previewUnit.style.display = 'none';
41
+ return previewUnit;
42
+ }
43
+ const elementPosition = wordElement.getBoundingClientRect().top;
44
+ previewUnit.style.position = 'absolute';
45
+ previewUnit.style.top = `${(elementPosition / docHeight) * 100}%`;
46
+ previewUnit.style.width = '100%';
47
+ previewUnit.style.height = '1px';
48
+ previewUnit.style.border = `1px solid ${word.previewBorderColor}`;
49
+ previewUnit.style.backgroundColor = word.color;
50
+ return previewUnit;
51
+ };
@@ -0,0 +1,37 @@
1
+ import { hsvToRgb, rgbToHsv } from "../../../../utils/color-utils";
2
+ /**
3
+ * @internal
4
+ */
5
+ export class ColorParser {
6
+ constructor(color) {
7
+ this.color = color;
8
+ this.red = 255;
9
+ this.green = 255;
10
+ this.blue = 255;
11
+ const rgb = this.color.match(ColorParser.REGEX);
12
+ if (rgb) {
13
+ this.red = parseInt(rgb[1], 10);
14
+ this.green = parseInt(rgb[2], 10);
15
+ this.blue = parseInt(rgb[3], 10);
16
+ }
17
+ }
18
+ rgb() {
19
+ return this.rgbString(this.red, this.green, this.blue);
20
+ }
21
+ rgbInverted() {
22
+ return this.rgbString(255 - this.red, 255 - this.green, 255 - this.blue);
23
+ }
24
+ rgbSaturated() {
25
+ const { h, s, v } = rgbToHsv(this.red, this.green, this.blue);
26
+ let newSaturation = s * 2;
27
+ if (newSaturation > 1) {
28
+ newSaturation = 1;
29
+ }
30
+ const { r, g, b } = hsvToRgb(h, newSaturation, v);
31
+ return this.rgbString(r, g, b);
32
+ }
33
+ rgbString(r, g, b) {
34
+ return `rgb(${r}, ${g}, ${b})`;
35
+ }
36
+ }
37
+ ColorParser.REGEX = /\s*rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i;
@@ -0,0 +1,61 @@
1
+ import { QuickviewWordHighlight } from './quickview-word-highlight';
2
+ import { TextParser } from './text-parser';
3
+ export const HIGHLIGHT_PREFIX = 'CoveoHighlight';
4
+ function findHighlightedElements(iframe) {
5
+ const root = iframe?.contentDocument?.body;
6
+ if (!root)
7
+ return [];
8
+ // Collect tagged word elements as well as elements whose id starts with
9
+ // the highlight prefix. Tagged words (`<coveotaggedword>`) must be
10
+ // considered so that invalid identifiers (for example id="invalid") are
11
+ // discovered and cause the appropriate error in the parser.
12
+ const selector = `[id^="${HIGHLIGHT_PREFIX}"]`;
13
+ const query = root.querySelectorAll(selector);
14
+ return Array.from(query);
15
+ }
16
+ /**
17
+ * @internal
18
+ */
19
+ export class IframeParser {
20
+ constructor(stemmingInfoFromIndex, iframe) {
21
+ this.stemmingInfoFromIndex = stemmingInfoFromIndex;
22
+ this.iframe = iframe;
23
+ this.textParser = new TextParser(this.stemmingInfoFromIndex);
24
+ this.wordsHighlights = {};
25
+ }
26
+ parse() {
27
+ const elements = findHighlightedElements(this.iframe);
28
+ for (const element of elements) {
29
+ const identifier = this.parseIdentifier(element);
30
+ if (!identifier) {
31
+ throw new Error('Invalid keyword identifier for quickview');
32
+ }
33
+ const text = this.textParser.parse(element);
34
+ if (!text) {
35
+ continue;
36
+ }
37
+ const alreadyScannedKeyword = this.wordsHighlights[identifier];
38
+ if (alreadyScannedKeyword) {
39
+ alreadyScannedKeyword.addElement(element);
40
+ continue;
41
+ }
42
+ const color = element.style.backgroundColor;
43
+ const highlight = new QuickviewWordHighlight(identifier, text, color, element);
44
+ this.wordsHighlights[identifier] = highlight;
45
+ }
46
+ return this.wordsHighlights;
47
+ }
48
+ parseIdentifier(element) {
49
+ const parts = element.id
50
+ .substring(HIGHLIGHT_PREFIX.length + 1)
51
+ .match(/^([0-9]+)\.([0-9]+)\.([0-9]+)$/);
52
+ if (!parts || parts.length <= 3) {
53
+ return null;
54
+ }
55
+ return parts[1];
56
+ }
57
+ }
58
+ export const getWordsHighlights = (stemmingInfoFromIndex, iframe) => {
59
+ const parser = new IframeParser(stemmingInfoFromIndex, iframe);
60
+ return parser.parse();
61
+ };
@@ -0,0 +1,53 @@
1
+ import { ColorParser } from './color-parser';
2
+ export { getWordsHighlights, HIGHLIGHT_PREFIX } from './iframe-parser';
3
+ export class QuickviewWordHighlight {
4
+ constructor(indexIdentifier, text, color, element) {
5
+ this.indexIdentifier = indexIdentifier;
6
+ this.text = text;
7
+ this.color = color;
8
+ this.elements = [];
9
+ this.currentNavigationPosition = -1;
10
+ this.addElement(element);
11
+ const colorParser = new ColorParser(color);
12
+ this.focusedColor = colorParser.rgbInverted();
13
+ this.previewBorderColor = colorParser.rgbSaturated();
14
+ }
15
+ addElement(element) {
16
+ this.elements.push(element);
17
+ }
18
+ get occurrences() {
19
+ return this.elements.length;
20
+ }
21
+ navigateForward() {
22
+ this.currentNavigationPosition++;
23
+ if (this.currentNavigationPosition >= this.elements.length) {
24
+ this.currentNavigationPosition = 0;
25
+ }
26
+ this.highlightNavigation();
27
+ this.putElementIntoView();
28
+ return this.elements[this.currentNavigationPosition];
29
+ }
30
+ navigateBackward() {
31
+ this.currentNavigationPosition--;
32
+ if (this.currentNavigationPosition < 0) {
33
+ this.currentNavigationPosition = this.elements.length - 1;
34
+ }
35
+ this.highlightNavigation();
36
+ this.putElementIntoView();
37
+ return this.elements[this.currentNavigationPosition];
38
+ }
39
+ highlightNavigation() {
40
+ const currentElement = this.elements[this.currentNavigationPosition];
41
+ const otherElements = this.elements.filter((el) => el !== currentElement);
42
+ currentElement.style.color = this.color;
43
+ currentElement.style.backgroundColor = this.focusedColor;
44
+ otherElements.forEach((element) => {
45
+ element.style.color = '';
46
+ element.style.backgroundColor = this.color;
47
+ });
48
+ }
49
+ putElementIntoView() {
50
+ const element = this.elements[this.currentNavigationPosition];
51
+ element.scrollIntoView();
52
+ }
53
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export class TextParser {
5
+ constructor(stemmingInfoFromIndex) {
6
+ this.stemmingInfoFromIndex = stemmingInfoFromIndex;
7
+ }
8
+ parse(element) {
9
+ const innerTextOfHTMLElement = this.getHighlightedInnerText(element);
10
+ return this.resolveOriginalTerm(innerTextOfHTMLElement).trim();
11
+ }
12
+ isTaggedWord(element) {
13
+ return element.nodeName.toLowerCase() === 'coveotaggedword';
14
+ }
15
+ getHighlightedInnerText(element) {
16
+ if (!this.isTaggedWord(element)) {
17
+ return this.getTextOfHTMLElement(element);
18
+ }
19
+ const children = Array.from(element.children);
20
+ if (children.length >= 1) {
21
+ return this.getTextOfHTMLElement(children[0]);
22
+ }
23
+ return '';
24
+ }
25
+ getTextOfHTMLElement(el) {
26
+ return el.innerText || el.textContent || '';
27
+ }
28
+ resolveOriginalTerm(highlight) {
29
+ // First try to find either an exact match between the highlight and the original non-stemmed keyword.
30
+ // Otherwise try to find a match between the highlight and the stemming keyword expansions
31
+ // If nothing is found (which should not normally happen...), simply return the highlight keyword as is.
32
+ const found = Object.keys(this.stemmingInfoFromIndex).find((originalTerm) => {
33
+ const originalTermMatch = originalTerm.toLowerCase() === highlight.toLowerCase();
34
+ if (originalTermMatch) {
35
+ return true;
36
+ }
37
+ const stemmingExpansions = this.stemmingInfoFromIndex[originalTerm];
38
+ if (!stemmingExpansions) {
39
+ return false;
40
+ }
41
+ const stemmingExpansionMatch = stemmingExpansions.find((stemmingExpansion) => stemmingExpansion.toLowerCase() === highlight.toLowerCase());
42
+ return stemmingExpansionMatch;
43
+ });
44
+ return found || highlight;
45
+ }
46
+ }
@@ -1,9 +1,33 @@
1
+ import { h, Fragment } from '@stencil/core/internal/client';
1
2
  import { u as updateBreakpoints } from './replace-breakpoint-utils.js';
2
3
  import { g as getFirstFocusableDescendant } from './stencil-accessibility-utils.js';
3
4
  import { o as once, d as defer } from './utils.js';
4
- import { c as containsSections } from './item-layout-sections.js';
5
+ import './purify.js';
6
+
7
+ /**
8
+ * @deprecated should only be used for Stencil components.
9
+ */
10
+ const ItemDisplayGuard = (props, children) => {
11
+ if (!props.hasItems || !props.firstRequestExecuted) {
12
+ return;
13
+ }
14
+ return h(Fragment, null, ...children);
15
+ };
16
+
17
+ /**
18
+ * @deprecated should only be used for Stencil components.
19
+ */
20
+ const DisplayWrapper = ({ display, listClasses }, children) => {
21
+ if (display === 'table') {
22
+ return h(ListWrapper, { listClasses: listClasses }, ...children);
23
+ }
24
+ return (h(ListWrapper, { listClasses: listClasses },
25
+ h("div", { class: `list-root ${listClasses}`, part: "result-list" }, children)));
26
+ };
27
+ const ListWrapper = ({ listClasses }, children) => {
28
+ return h("div", { class: `list-wrapper ${listClasses}` }, ...children);
29
+ };
5
30
 
6
- const resultComponentClass = 'result-component';
7
31
  class ItemListCommon {
8
32
  constructor(props) {
9
33
  this.props = props;
@@ -110,50 +134,12 @@ function getItemDisplayClasses(display, density, image) {
110
134
  ];
111
135
  return classes;
112
136
  }
113
- function getSection(children, section) {
114
- return Array.from(children).find((element) => element.tagName.toLowerCase() === section);
115
- }
116
- function getImageSizeFromSections(children) {
117
- const imageSize = getSection(children, 'atomic-result-section-visual')?.getAttribute('image-size');
118
- if (!imageSize) {
119
- return undefined;
120
- }
121
- return imageSize;
122
- }
123
- function getItemLayoutClasses(config, HTMLContent) {
124
- const classes = getItemDisplayClasses(config.display, config.density, getImageSizeFromSections(config.children) ?? config.imageSize);
125
- if (HTMLContent
126
- ? containsSections(HTMLContent)
127
- : containsSections(config.children)) {
128
- classes.push('with-sections');
129
- }
130
- return classes;
131
- }
132
137
 
133
138
  /**
134
139
  * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.
135
140
  */
136
141
  const getItemListDisplayClasses = getItemListDisplayClasses$1;
137
- /**
138
- * @deprecated Use only for Stencil components. For Lit components, use `getItemLayoutClasses` with `ItemLayoutConfig` from `packages/atomic/src/components/common/layout/item-layout-utils.ts` instead.
139
- */
140
- class ItemLayout {
141
- constructor(children, display, density, imageSize) {
142
- this.children = children;
143
- this.display = display;
144
- this.density = density;
145
- this.imageSize = imageSize;
146
- }
147
- getClasses(HTMLContent) {
148
- return getItemLayoutClasses({
149
- children: this.children,
150
- display: this.display,
151
- density: this.density,
152
- imageSize: this.imageSize,
153
- }, HTMLContent);
154
- }
155
- }
156
142
 
157
- export { ItemListCommon as I, ItemLayout as a, getItemListDisplayClasses as g, resultComponentClass as r };
143
+ export { DisplayWrapper as D, ItemListCommon as I, ItemDisplayGuard as a, getItemListDisplayClasses as g };
158
144
 
159
145
  //# sourceMappingURL=display-options.js.map
@@ -1 +1 @@
1
- {"file":"display-options.js","mappings":";;;;;MAiBa,oBAAoB,GAAG,mBAAmB;MAyB1C,cAAc;IAKzB,YAAoB,KAA0B;QAA1B,UAAK,GAAL,KAAK,CAAqB;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;YACjD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;SACvC,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEM,WAAW,CAChB,gBAAwB,EACxB,gBAAwB,EACxB,OAA2B,EAC3B,SAA+B;QAE/B,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;KACvE;IAEM,eAAe,CAAC,OAAoB,EAAE,WAAmB;QAC9D,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;SAC9B;QACD,IAAI,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;YACpE,OAAO;SACR;QAED,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,MAAM,cAAc,GAAG,2BAA2B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;KACxD;IAEM,oBAAoB;QACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;KAClD;IAEM,MAAM,iCAAiC;QAC5C,MAAM,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;gBAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAChC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACvC,MAAM,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpD,MAAM,cAAc,GAClB,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC/C,IAAI,CAAC,aAAa,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBACrC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,CAAC;iBACX;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;;;AC9FH,SAAS,eAAe,CAAC,OAA0B;IACjD,QAAQ,OAAO;QACb,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,cAAc,CAAC;KACzB;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAA2B;IAClD,QAAQ,OAAO;QACb,KAAK,aAAa;YAChB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC;QAC3B;YACE,OAAO,gBAAgB,CAAC;KAC3B;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAA2B;IAChD,QAAQ,KAAK;QACX,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB;YACE,OAAO,YAAY,CAAC;KACvB;AACH,CAAC;SAEeA,2BAAyB,CACvC,OAA0B,EAC1B,OAA2B,EAC3B,KAA2B,EAC3B,SAAkB,EAClB,YAAqB;IAErB,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAI,SAAS,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzB;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7B;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;SAEe,qBAAqB,CACnC,OAA0B,EAC1B,OAA2B,EAC3B,KAA2B;IAE3B,MAAM,OAAO,GAAG;QACd,eAAe,CAAC,OAAO,CAAC;QACxB,eAAe,CAAC,OAAO,CAAC;QACxB,aAAa,CAAC,KAAK,CAAC;KACrB,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CACjB,QAAwB,EACxB,OAA2B;IAE3B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC9B,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAwB;IAExB,MAAM,SAAS,GAAG,UAAU,CAC1B,QAAQ,EACR,8BAA8B,CAC/B,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,SAAiC,CAAC;AAC3C,CAAC;SAEe,oBAAoB,CAClC,MAAwB,EACxB,WAAoB;IAEpB,MAAM,OAAO,GAAG,qBAAqB,CACnC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,OAAO,EACd,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAC9D,CAAC;IACF,IACE,WAAW;UACP,gBAAgB,CAAC,WAAW,CAAC;UAC7B,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrC;QACA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC/B;IACD,OAAO,OAAO,CAAC;AACjB;;AClFA;;;MAGa,yBAAyB,GACpCC,4BAAgC;AAElC;;;MAGa,UAAU;IAMrB,YACE,QAAwB,EACxB,OAA0B,EAC1B,OAA2B,EAC3B,SAA+B;QAE/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;IAEM,UAAU,CAAC,WAAoB;QACpC,OAAO,oBAAoB,CACzB;YACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,EACD,WAAW,CACZ,CAAC;KACH;;;;;","names":["getItemListDisplayClasses","getItemListDisplayClassesImport"],"sources":["src/components/common/item-list/stencil-item-list-common.tsx","src/components/common/layout/item-layout-utils.ts","src/components/common/layout/display-options.ts"],"sourcesContent":["import {updateBreakpoints} from '../../../utils/replace-breakpoint-utils';\nimport {\n FocusTargetController,\n getFirstFocusableDescendant,\n} from '../../../utils/stencil-accessibility-utils';\nimport {defer, once} from '../../../utils/utils';\nimport {CommerceStore} from '../../commerce/atomic-commerce-interface/store';\nimport {CommerceRecommendationStore} from '../../commerce/atomic-commerce-recommendation-interface/store';\nimport {InsightStore} from '../../insight/atomic-insight-interface/store';\nimport {RecsStore} from '../../recommendations/atomic-recs-interface/store';\nimport {SearchStore} from '../../search/atomic-search-interface/store';\nimport {AnyItem} from './unfolded-item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\n\nexport const resultComponentClass = 'result-component';\n\nexport type ItemRenderingFunction<SpecificResult extends AnyItem = AnyItem> =\n | ((\n result: SpecificResult,\n root: HTMLElement,\n linkContainer?: HTMLElement\n ) => string)\n | undefined;\n\nexport interface ItemListCommonProps {\n store:\n | CommerceStore\n | CommerceRecommendationStore\n | RecsStore\n | InsightStore\n | SearchStore;\n loadingFlag: string;\n host: HTMLElement;\n nextNewItemTarget: FocusTargetController;\n getCurrentNumberOfItems: () => number;\n getIsLoading: () => boolean;\n engineSubscribe: (cb: () => void) => () => void;\n}\n\nexport class ItemListCommon {\n private indexOfResultToFocus?: number;\n private firstResultEl?: HTMLElement;\n private updateBreakpointsOnce: () => void;\n\n constructor(private props: ItemListCommonProps) {\n this.props.store.setLoadingFlag(this.props.loadingFlag);\n this.props.store.state.resultList = this;\n this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));\n this.props.nextNewItemTarget.registerFocusCallback(() => {\n this.indexOfResultToFocus = undefined;\n });\n }\n\n public updateBreakpoints() {\n this.updateBreakpointsOnce();\n }\n\n public getResultId(\n uniqueIdOnResult: string,\n searchResponseId: string,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n return `${uniqueIdOnResult}${searchResponseId}${density}${imageSize}`;\n }\n\n public setNewResultRef(element: HTMLElement, resultIndex: number) {\n if (resultIndex === 0) {\n this.firstResultEl = element;\n }\n if (resultIndex !== this.indexOfResultToFocus) {\n return;\n }\n\n if (!element.children.length && !element.shadowRoot?.children.length) {\n return;\n }\n\n this.indexOfResultToFocus = undefined;\n const elementToFocus = getFirstFocusableDescendant(element) ?? element;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n }\n\n public focusOnNextNewResult() {\n this.indexOfResultToFocus = this.props.getCurrentNumberOfItems();\n this.props.nextNewItemTarget.focusOnNextTarget();\n }\n\n public async focusOnFirstResultAfterNextSearch() {\n await defer();\n return new Promise<void>((resolve) => {\n if (this.props.getIsLoading()) {\n this.firstResultEl = undefined;\n }\n\n const unsub = this.props.engineSubscribe(async () => {\n await defer();\n if (!this.props.getIsLoading() && this.firstResultEl) {\n const elementToFocus =\n getFirstFocusableDescendant(this.firstResultEl) ??\n this.firstResultEl;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n this.props.nextNewItemTarget.focus();\n this.firstResultEl = undefined;\n unsub();\n resolve();\n }\n });\n });\n }\n}\n","import {\n containsSections,\n type ItemSectionTagName,\n} from './item-layout-sections';\n\nexport interface ItemLayoutConfig {\n children: HTMLCollection;\n display: ItemDisplayLayout;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n}\n\nexport type ItemDisplayBasicLayout = 'list' | 'grid';\nexport type ItemDisplayLayout = ItemDisplayBasicLayout | 'table';\nexport type ItemDisplayDensity = 'comfortable' | 'normal' | 'compact';\nexport type ItemDisplayImageSize = 'large' | 'small' | 'icon' | 'none';\nexport type ItemTarget = '_self' | '_blank' | '_parent' | '_top';\n\nfunction getDisplayClass(display: ItemDisplayLayout) {\n switch (display) {\n case 'grid':\n return 'display-grid';\n case 'table':\n return 'display-table';\n default:\n return 'display-list';\n }\n}\n\nfunction getDensityClass(density: ItemDisplayDensity) {\n switch (density) {\n case 'comfortable':\n return 'density-comfortable';\n case 'compact':\n return 'density-compact';\n default:\n return 'density-normal';\n }\n}\n\nfunction getImageClass(image: ItemDisplayImageSize) {\n switch (image) {\n case 'large':\n return 'image-large';\n case 'small':\n return 'image-small';\n case 'none':\n return 'image-none';\n default:\n return 'image-icon';\n }\n}\n\nexport function getItemListDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize,\n isLoading: boolean,\n isAppLoading: boolean\n) {\n const classes = getItemDisplayClasses(display, density, image);\n\n if (isLoading) {\n classes.push('loading');\n }\n\n if (isAppLoading) {\n classes.push('placeholder');\n }\n return classes.join(' ');\n}\n\nexport function getItemDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize\n) {\n const classes = [\n getDisplayClass(display),\n getDensityClass(density),\n getImageClass(image),\n ];\n return classes;\n}\n\nfunction getSection(\n children: HTMLCollection,\n section: ItemSectionTagName\n): Element | undefined {\n return Array.from(children).find(\n (element) => element.tagName.toLowerCase() === section\n );\n}\n\nfunction getImageSizeFromSections(\n children: HTMLCollection\n): ItemDisplayImageSize | undefined {\n const imageSize = getSection(\n children,\n 'atomic-result-section-visual'\n )?.getAttribute('image-size');\n if (!imageSize) {\n return undefined;\n }\n return imageSize as ItemDisplayImageSize;\n}\n\nexport function getItemLayoutClasses(\n config: ItemLayoutConfig,\n HTMLContent?: string\n): string[] {\n const classes = getItemDisplayClasses(\n config.display,\n config.density,\n getImageSizeFromSections(config.children) ?? config.imageSize\n );\n if (\n HTMLContent\n ? containsSections(HTMLContent)\n : containsSections(config.children)\n ) {\n classes.push('with-sections');\n }\n return classes;\n}\n","import {\n getItemDisplayClasses as getItemDisplayClassesImport,\n getItemLayoutClasses,\n getItemListDisplayClasses as getItemListDisplayClassesImport,\n type ItemDisplayBasicLayout as ItemDisplayBasicLayoutImport,\n type ItemDisplayDensity as ItemDisplayDensityImport,\n type ItemDisplayImageSize as ItemDisplayImageSizeImport,\n type ItemDisplayLayout as ItemDisplayLayoutImport,\n type ItemTarget as ItemTargetImport,\n} from './item-layout-utils';\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayBasicLayout = ItemDisplayBasicLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayDensity = ItemDisplayDensityImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayImageSize = ItemDisplayImageSizeImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayLayout = ItemDisplayLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemTarget = ItemTargetImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemDisplayClasses: typeof getItemDisplayClassesImport =\n getItemDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemListDisplayClasses: typeof getItemListDisplayClassesImport =\n getItemListDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, use `getItemLayoutClasses` with `ItemLayoutConfig` from `packages/atomic/src/components/common/layout/item-layout-utils.ts` instead.\n */\nexport class ItemLayout {\n private children: HTMLCollection;\n private density: ItemDisplayDensity;\n private imageSize: ItemDisplayImageSize;\n private display: ItemDisplayLayout;\n\n constructor(\n children: HTMLCollection,\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n this.children = children;\n this.display = display;\n this.density = density;\n this.imageSize = imageSize;\n }\n\n public getClasses(HTMLContent?: string) {\n return getItemLayoutClasses(\n {\n children: this.children,\n display: this.display,\n density: this.density,\n imageSize: this.imageSize,\n },\n HTMLContent\n );\n }\n}\n"],"version":3}
1
+ {"file":"display-options.js","mappings":"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","names":["getItemListDisplayClasses","getItemListDisplayClassesImport"],"sources":["src/components/common/item-list/stencil-item-display-guard.tsx","src/components/common/item-list/stencil-display-wrapper.tsx","src/components/common/item-list/stencil-item-list-common.tsx","src/components/common/layout/item-layout-utils.ts","src/components/common/layout/display-options.ts"],"sourcesContent":["import {FunctionalComponent, h, Fragment} from '@stencil/core';\n\ninterface ItemDisplayGuardProps {\n firstRequestExecuted: boolean;\n hasItems: boolean;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const ItemDisplayGuard: FunctionalComponent<ItemDisplayGuardProps> = (\n props,\n children\n) => {\n if (!props.hasItems || !props.firstRequestExecuted) {\n return;\n }\n\n return <Fragment>{...children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {ItemDisplayLayout} from '../layout/display-options.js';\n\ninterface DisplayWrapperProps {\n display: ItemDisplayLayout;\n listClasses: string;\n}\n\n/**\n * @deprecated should only be used for Stencil components.\n */\nexport const DisplayWrapper: FunctionalComponent<DisplayWrapperProps> = (\n {display, listClasses},\n children\n) => {\n if (display === 'table') {\n return <ListWrapper listClasses={listClasses}>{...children}</ListWrapper>;\n }\n\n return (\n <ListWrapper listClasses={listClasses}>\n <div class={`list-root ${listClasses}`} part=\"result-list\">\n {children}\n </div>\n </ListWrapper>\n );\n};\n\nconst ListWrapper: FunctionalComponent<\n Pick<DisplayWrapperProps, 'listClasses'>\n> = ({listClasses}, children) => {\n return <div class={`list-wrapper ${listClasses}`}>{...children}</div>;\n};\n","import {updateBreakpoints} from '../../../utils/replace-breakpoint-utils';\nimport {\n FocusTargetController,\n getFirstFocusableDescendant,\n} from '../../../utils/stencil-accessibility-utils';\nimport {defer, once} from '../../../utils/utils';\nimport {CommerceStore} from '../../commerce/atomic-commerce-interface/store';\nimport {CommerceRecommendationStore} from '../../commerce/atomic-commerce-recommendation-interface/store';\nimport {InsightStore} from '../../insight/atomic-insight-interface/store';\nimport {RecsStore} from '../../recommendations/atomic-recs-interface/store';\nimport {SearchStore} from '../../search/atomic-search-interface/store';\nimport {AnyItem} from './unfolded-item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\n\nexport const resultComponentClass = 'result-component';\n\nexport type ItemRenderingFunction<SpecificResult extends AnyItem = AnyItem> =\n | ((\n result: SpecificResult,\n root: HTMLElement,\n linkContainer?: HTMLElement\n ) => string)\n | undefined;\n\nexport interface ItemListCommonProps {\n store:\n | CommerceStore\n | CommerceRecommendationStore\n | RecsStore\n | InsightStore\n | SearchStore;\n loadingFlag: string;\n host: HTMLElement;\n nextNewItemTarget: FocusTargetController;\n getCurrentNumberOfItems: () => number;\n getIsLoading: () => boolean;\n engineSubscribe: (cb: () => void) => () => void;\n}\n\nexport class ItemListCommon {\n private indexOfResultToFocus?: number;\n private firstResultEl?: HTMLElement;\n private updateBreakpointsOnce: () => void;\n\n constructor(private props: ItemListCommonProps) {\n this.props.store.setLoadingFlag(this.props.loadingFlag);\n this.props.store.state.resultList = this;\n this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));\n this.props.nextNewItemTarget.registerFocusCallback(() => {\n this.indexOfResultToFocus = undefined;\n });\n }\n\n public updateBreakpoints() {\n this.updateBreakpointsOnce();\n }\n\n public getResultId(\n uniqueIdOnResult: string,\n searchResponseId: string,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n return `${uniqueIdOnResult}${searchResponseId}${density}${imageSize}`;\n }\n\n public setNewResultRef(element: HTMLElement, resultIndex: number) {\n if (resultIndex === 0) {\n this.firstResultEl = element;\n }\n if (resultIndex !== this.indexOfResultToFocus) {\n return;\n }\n\n if (!element.children.length && !element.shadowRoot?.children.length) {\n return;\n }\n\n this.indexOfResultToFocus = undefined;\n const elementToFocus = getFirstFocusableDescendant(element) ?? element;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n }\n\n public focusOnNextNewResult() {\n this.indexOfResultToFocus = this.props.getCurrentNumberOfItems();\n this.props.nextNewItemTarget.focusOnNextTarget();\n }\n\n public async focusOnFirstResultAfterNextSearch() {\n await defer();\n return new Promise<void>((resolve) => {\n if (this.props.getIsLoading()) {\n this.firstResultEl = undefined;\n }\n\n const unsub = this.props.engineSubscribe(async () => {\n await defer();\n if (!this.props.getIsLoading() && this.firstResultEl) {\n const elementToFocus =\n getFirstFocusableDescendant(this.firstResultEl) ??\n this.firstResultEl;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n this.props.nextNewItemTarget.focus();\n this.firstResultEl = undefined;\n unsub();\n resolve();\n }\n });\n });\n }\n}\n","import {\n containsSections,\n type ItemSectionTagName,\n} from './item-layout-sections';\n\nexport interface ItemLayoutConfig {\n children: HTMLCollection;\n display: ItemDisplayLayout;\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n}\n\nexport type ItemDisplayBasicLayout = 'list' | 'grid';\nexport type ItemDisplayLayout = ItemDisplayBasicLayout | 'table';\nexport type ItemDisplayDensity = 'comfortable' | 'normal' | 'compact';\nexport type ItemDisplayImageSize = 'large' | 'small' | 'icon' | 'none';\nexport type ItemTarget = '_self' | '_blank' | '_parent' | '_top';\n\nfunction getDisplayClass(display: ItemDisplayLayout) {\n switch (display) {\n case 'grid':\n return 'display-grid';\n case 'table':\n return 'display-table';\n default:\n return 'display-list';\n }\n}\n\nfunction getDensityClass(density: ItemDisplayDensity) {\n switch (density) {\n case 'comfortable':\n return 'density-comfortable';\n case 'compact':\n return 'density-compact';\n default:\n return 'density-normal';\n }\n}\n\nfunction getImageClass(image: ItemDisplayImageSize) {\n switch (image) {\n case 'large':\n return 'image-large';\n case 'small':\n return 'image-small';\n case 'none':\n return 'image-none';\n default:\n return 'image-icon';\n }\n}\n\nexport function getItemListDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize,\n isLoading: boolean,\n isAppLoading: boolean\n) {\n const classes = getItemDisplayClasses(display, density, image);\n\n if (isLoading) {\n classes.push('loading');\n }\n\n if (isAppLoading) {\n classes.push('placeholder');\n }\n return classes.join(' ');\n}\n\nexport function getItemDisplayClasses(\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n image: ItemDisplayImageSize\n) {\n const classes = [\n getDisplayClass(display),\n getDensityClass(density),\n getImageClass(image),\n ];\n return classes;\n}\n\nfunction getSection(\n children: HTMLCollection,\n section: ItemSectionTagName\n): Element | undefined {\n return Array.from(children).find(\n (element) => element.tagName.toLowerCase() === section\n );\n}\n\nfunction getImageSizeFromSections(\n children: HTMLCollection\n): ItemDisplayImageSize | undefined {\n const imageSize = getSection(\n children,\n 'atomic-result-section-visual'\n )?.getAttribute('image-size');\n if (!imageSize) {\n return undefined;\n }\n return imageSize as ItemDisplayImageSize;\n}\n\nexport function getItemLayoutClasses(\n config: ItemLayoutConfig,\n HTMLContent?: string\n): string[] {\n const classes = getItemDisplayClasses(\n config.display,\n config.density,\n getImageSizeFromSections(config.children) ?? config.imageSize\n );\n if (\n HTMLContent\n ? containsSections(HTMLContent)\n : containsSections(config.children)\n ) {\n classes.push('with-sections');\n }\n return classes;\n}\n","import {\n getItemDisplayClasses as getItemDisplayClassesImport,\n getItemLayoutClasses,\n getItemListDisplayClasses as getItemListDisplayClassesImport,\n type ItemDisplayBasicLayout as ItemDisplayBasicLayoutImport,\n type ItemDisplayDensity as ItemDisplayDensityImport,\n type ItemDisplayImageSize as ItemDisplayImageSizeImport,\n type ItemDisplayLayout as ItemDisplayLayoutImport,\n type ItemTarget as ItemTargetImport,\n} from './item-layout-utils';\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayBasicLayout = ItemDisplayBasicLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayDensity = ItemDisplayDensityImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayImageSize = ItemDisplayImageSizeImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemDisplayLayout = ItemDisplayLayoutImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport type ItemTarget = ItemTargetImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemDisplayClasses: typeof getItemDisplayClassesImport =\n getItemDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, import from `item-layout-utils.ts` instead.\n */\nexport const getItemListDisplayClasses: typeof getItemListDisplayClassesImport =\n getItemListDisplayClassesImport;\n\n/**\n * @deprecated Use only for Stencil components. For Lit components, use `getItemLayoutClasses` with `ItemLayoutConfig` from `packages/atomic/src/components/common/layout/item-layout-utils.ts` instead.\n */\nexport class ItemLayout {\n private children: HTMLCollection;\n private density: ItemDisplayDensity;\n private imageSize: ItemDisplayImageSize;\n private display: ItemDisplayLayout;\n\n constructor(\n children: HTMLCollection,\n display: ItemDisplayLayout,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n this.children = children;\n this.display = display;\n this.density = density;\n this.imageSize = imageSize;\n }\n\n public getClasses(HTMLContent?: string) {\n return getItemLayoutClasses(\n {\n children: this.children,\n display: this.display,\n density: this.density,\n imageSize: this.imageSize,\n },\n HTMLContent\n );\n }\n}\n"],"version":3}