@coveo/atomic 3.35.0-pre.4282ff1b60 → 3.35.0-pre.43c8da2553

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 (274) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/components/_index.js +19 -19
  3. package/dist/atomic/components/atomic-field-condition.js +1 -1
  4. package/dist/atomic/components/atomic-field-condition.js.map +1 -1
  5. package/dist/atomic/components/atomic-insight-result-action.js +2 -2
  6. package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
  7. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
  8. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
  9. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +2 -2
  10. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js.map +1 -1
  11. package/dist/atomic/components/atomic-insight-result-quickview-action.js +2 -2
  12. package/dist/atomic/components/atomic-insight-result-quickview-action.js.map +1 -1
  13. package/dist/atomic/components/atomic-ipx-result-link.js +2 -2
  14. package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
  15. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  16. package/dist/atomic/components/atomic-quickview.js +2 -2
  17. package/dist/atomic/components/atomic-quickview.js.map +1 -1
  18. package/dist/atomic/components/atomic-recs-interface.js +1 -1
  19. package/dist/atomic/components/atomic-result-badge.js +1 -1
  20. package/dist/atomic/components/atomic-result-badge.js.map +1 -1
  21. package/dist/atomic/components/atomic-result-children.js +2 -2
  22. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  23. package/dist/atomic/components/atomic-result-date.js +1 -1
  24. package/dist/atomic/components/atomic-result-date.js.map +1 -1
  25. package/dist/atomic/components/atomic-result-fields-list.js +2 -2
  26. package/dist/atomic/components/atomic-result-fields-list.js.map +1 -1
  27. package/dist/atomic/components/atomic-result-html.js +1 -1
  28. package/dist/atomic/components/atomic-result-html.js.map +1 -1
  29. package/dist/atomic/components/atomic-result-icon.js +1 -1
  30. package/dist/atomic/components/atomic-result-icon.js.map +1 -1
  31. package/dist/atomic/components/atomic-result-image.js +1 -1
  32. package/dist/atomic/components/atomic-result-image.js.map +1 -1
  33. package/dist/atomic/components/atomic-result-link.js +2 -2
  34. package/dist/atomic/components/atomic-result-link.js.map +1 -1
  35. package/dist/atomic/components/atomic-result-localized-text.js +1 -1
  36. package/dist/atomic/components/atomic-result-localized-text.js.map +1 -1
  37. package/dist/atomic/components/atomic-result-multi-value-text.js +1 -1
  38. package/dist/atomic/components/atomic-result-multi-value-text.js.map +1 -1
  39. package/dist/atomic/components/atomic-result-number.js +1 -1
  40. package/dist/atomic/components/atomic-result-number.js.map +1 -1
  41. package/dist/atomic/components/atomic-result-printable-uri.js +1 -1
  42. package/dist/atomic/components/atomic-result-printable-uri.js.map +1 -1
  43. package/dist/atomic/components/atomic-result-rating.js +1 -1
  44. package/dist/atomic/components/atomic-result-rating.js.map +1 -1
  45. package/dist/atomic/components/atomic-result-text2.js +1 -1
  46. package/dist/atomic/components/atomic-result-text2.js.map +1 -1
  47. package/dist/atomic/components/atomic-result-timespan.js +1 -1
  48. package/dist/atomic/components/atomic-result-timespan.js.map +1 -1
  49. package/dist/atomic/components/atomic-result2.js.map +1 -1
  50. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  51. package/dist/atomic/components/atomic-smart-snippet-source2.js.map +1 -1
  52. package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +1 -1
  53. package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +1 -1
  54. package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +1 -1
  55. package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +1 -1
  56. package/dist/atomic/components/components/commerce/atomic-product-image/atomic-product-image.js +1 -1
  57. package/dist/atomic/components/components/commerce/atomic-product-link/atomic-product-link.js +2 -1
  58. package/dist/atomic/components/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.js +1 -1
  59. package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +1 -1
  60. package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +1 -1
  61. package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js +1 -1
  62. package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +1 -1
  63. package/dist/atomic/components/components/commerce/product-template-component-utils/context/interactive-product-context-controller.js +25 -0
  64. package/dist/atomic/components/components/commerce/product-template-component-utils/context/product-context-controller.js +29 -0
  65. package/dist/atomic/components/global/environment.js +1 -1
  66. package/dist/atomic/components/index.js.map +1 -1
  67. package/dist/atomic/components/{result-template-decorators.js → stencil-result-template-decorators.js} +6 -2
  68. package/dist/atomic/components/stencil-result-template-decorators.js.map +1 -0
  69. package/dist/atomic/index.esm.js +1 -1
  70. package/dist/atomic/index.esm.js.map +1 -1
  71. package/dist/atomic/{p-955092ed.entry.js → p-01096d1c.entry.js} +2 -2
  72. package/dist/atomic/p-01096d1c.entry.js.map +1 -0
  73. package/dist/atomic/{p-82cd6398.entry.js → p-154cbbfe.entry.js} +2 -2
  74. package/dist/atomic/{p-82cd6398.entry.js.map → p-154cbbfe.entry.js.map} +1 -1
  75. package/dist/atomic/{p-db3b11ca.entry.js → p-2033533c.entry.js} +2 -2
  76. package/dist/atomic/{p-db3b11ca.entry.js.map → p-2033533c.entry.js.map} +1 -1
  77. package/dist/atomic/{p-4069d801.entry.js → p-268ce7ca.entry.js} +2 -2
  78. package/dist/atomic/p-268ce7ca.entry.js.map +1 -0
  79. package/dist/atomic/{p-e9dc8e90.entry.js → p-3ec45f9c.entry.js} +2 -2
  80. package/dist/atomic/p-3ec45f9c.entry.js.map +1 -0
  81. package/dist/atomic/{p-18684d4c.js → p-4080f740.js} +1 -1
  82. package/dist/atomic/p-4080f740.js.map +1 -0
  83. package/dist/atomic/{p-8d5228da.entry.js → p-42fffab2.entry.js} +2 -2
  84. package/dist/atomic/p-42fffab2.entry.js.map +1 -0
  85. package/dist/atomic/{p-190ddaca.entry.js → p-4cf97b0a.entry.js} +2 -2
  86. package/dist/atomic/p-4cf97b0a.entry.js.map +1 -0
  87. package/dist/atomic/{p-78427c6a.entry.js → p-5a9460ab.entry.js} +2 -2
  88. package/dist/atomic/p-5a9460ab.entry.js.map +1 -0
  89. package/dist/atomic/{p-15547bd5.entry.js → p-61b3f5ce.entry.js} +2 -2
  90. package/dist/atomic/p-61b3f5ce.entry.js.map +1 -0
  91. package/dist/atomic/{p-1ff7a9da.entry.js → p-6a3b139f.entry.js} +2 -2
  92. package/dist/atomic/p-6a3b139f.entry.js.map +1 -0
  93. package/dist/atomic/{p-df8d38ca.entry.js → p-7015679e.entry.js} +2 -2
  94. package/dist/atomic/p-7015679e.entry.js.map +1 -0
  95. package/dist/atomic/{p-dea22a8d.entry.js → p-886b184f.entry.js} +2 -2
  96. package/dist/atomic/p-886b184f.entry.js.map +1 -0
  97. package/dist/atomic/{p-3f34929a.entry.js → p-8ad81b85.entry.js} +2 -2
  98. package/dist/atomic/{p-b3f6561d.entry.js → p-8e964890.entry.js} +2 -2
  99. package/dist/atomic/p-8e964890.entry.js.map +1 -0
  100. package/dist/atomic/{p-182f9112.entry.js → p-a413f820.entry.js} +2 -2
  101. package/dist/atomic/p-a413f820.entry.js.map +1 -0
  102. package/dist/atomic/{p-5cab535b.entry.js → p-c5bd7f8d.entry.js} +2 -2
  103. package/dist/atomic/p-c5bd7f8d.entry.js.map +1 -0
  104. package/dist/atomic/{p-852cc16d.entry.js → p-cacb7fd8.entry.js} +2 -2
  105. package/dist/atomic/p-cacb7fd8.entry.js.map +1 -0
  106. package/dist/atomic/{p-c5164dbf.entry.js → p-cee86cff.entry.js} +2 -2
  107. package/dist/atomic/p-cee86cff.entry.js.map +1 -0
  108. package/dist/atomic/{p-4cb91ee7.entry.js → p-d5402772.entry.js} +2 -2
  109. package/dist/atomic/p-d5402772.entry.js.map +1 -0
  110. package/dist/atomic/{p-e6dc9de7.entry.js → p-da141605.entry.js} +2 -2
  111. package/dist/atomic/p-da141605.entry.js.map +1 -0
  112. package/dist/atomic/{p-a1798150.entry.js → p-dd258eaa.entry.js} +2 -2
  113. package/dist/atomic/p-dd258eaa.entry.js.map +1 -0
  114. package/dist/atomic/{p-945ddd53.entry.js → p-e1dbe31d.entry.js} +2 -2
  115. package/dist/atomic/p-e1dbe31d.entry.js.map +1 -0
  116. package/dist/atomic/{p-448091f7.entry.js → p-ecd3c0a9.entry.js} +2 -2
  117. package/dist/atomic/p-ecd3c0a9.entry.js.map +1 -0
  118. package/dist/atomic/{p-c2a5dac0.entry.js → p-f2c4209d.entry.js} +2 -2
  119. package/dist/atomic/{p-57049cd2.entry.js → p-f2c89d7c.entry.js} +2 -2
  120. package/dist/atomic/p-f2c89d7c.entry.js.map +1 -0
  121. package/dist/atomic/p-f800678c.entry.js.map +1 -1
  122. package/dist/cjs/_index.cjs.js +20 -20
  123. package/dist/cjs/atomic-field-condition.cjs.entry.js +2 -2
  124. package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
  125. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +3 -3
  126. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  127. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +3 -3
  128. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  129. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +3 -3
  130. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
  131. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +3 -3
  132. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
  133. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +4 -4
  134. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  135. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  136. package/dist/cjs/atomic-quickview.cjs.entry.js +3 -3
  137. package/dist/cjs/atomic-quickview.cjs.entry.js.map +1 -1
  138. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  139. package/dist/cjs/atomic-result-badge.cjs.entry.js +2 -2
  140. package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
  141. package/dist/cjs/atomic-result-children.cjs.entry.js +3 -3
  142. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  143. package/dist/cjs/atomic-result-date.cjs.entry.js +2 -2
  144. package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
  145. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +3 -3
  146. package/dist/cjs/atomic-result-fields-list.cjs.entry.js.map +1 -1
  147. package/dist/cjs/atomic-result-html.cjs.entry.js +2 -2
  148. package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
  149. package/dist/cjs/atomic-result-icon.cjs.entry.js +2 -2
  150. package/dist/cjs/atomic-result-icon.cjs.entry.js.map +1 -1
  151. package/dist/cjs/atomic-result-image.cjs.entry.js +2 -2
  152. package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
  153. package/dist/cjs/atomic-result-link.cjs.entry.js +4 -4
  154. package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
  155. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +3 -3
  156. package/dist/cjs/atomic-result-localized-text.cjs.entry.js.map +1 -1
  157. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +2 -2
  158. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js.map +1 -1
  159. package/dist/cjs/atomic-result-number.cjs.entry.js +2 -2
  160. package/dist/cjs/atomic-result-number.cjs.entry.js.map +1 -1
  161. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -2
  162. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js.map +1 -1
  163. package/dist/cjs/atomic-result-rating.cjs.entry.js +2 -2
  164. package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
  165. package/dist/cjs/atomic-result-text_2.cjs.entry.js +2 -2
  166. package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
  167. package/dist/cjs/atomic-result-timespan.cjs.entry.js +2 -2
  168. package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
  169. package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
  170. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +1 -1
  171. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js.map +1 -1
  172. package/dist/cjs/index.cjs.js.map +1 -1
  173. package/dist/cjs/{result-template-decorators-432d11a9.js → stencil-result-template-decorators-28b05aaf.js} +6 -2
  174. package/dist/cjs/stencil-result-template-decorators-28b05aaf.js.map +1 -0
  175. package/dist/cjs/version.cjs.js +1 -1
  176. package/dist/esm/_index.js +19 -19
  177. package/dist/esm/atomic-field-condition.entry.js +1 -1
  178. package/dist/esm/atomic-field-condition.entry.js.map +1 -1
  179. package/dist/esm/atomic-insight-result-action.entry.js +2 -2
  180. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  181. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +2 -2
  182. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  183. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +2 -2
  184. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
  185. package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -2
  186. package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
  187. package/dist/esm/atomic-ipx-result-link.entry.js +2 -2
  188. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  189. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  190. package/dist/esm/atomic-quickview.entry.js +2 -2
  191. package/dist/esm/atomic-quickview.entry.js.map +1 -1
  192. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  193. package/dist/esm/atomic-result-badge.entry.js +1 -1
  194. package/dist/esm/atomic-result-badge.entry.js.map +1 -1
  195. package/dist/esm/atomic-result-children.entry.js +2 -2
  196. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  197. package/dist/esm/atomic-result-date.entry.js +1 -1
  198. package/dist/esm/atomic-result-date.entry.js.map +1 -1
  199. package/dist/esm/atomic-result-fields-list.entry.js +2 -2
  200. package/dist/esm/atomic-result-fields-list.entry.js.map +1 -1
  201. package/dist/esm/atomic-result-html.entry.js +1 -1
  202. package/dist/esm/atomic-result-html.entry.js.map +1 -1
  203. package/dist/esm/atomic-result-icon.entry.js +1 -1
  204. package/dist/esm/atomic-result-icon.entry.js.map +1 -1
  205. package/dist/esm/atomic-result-image.entry.js +1 -1
  206. package/dist/esm/atomic-result-image.entry.js.map +1 -1
  207. package/dist/esm/atomic-result-link.entry.js +2 -2
  208. package/dist/esm/atomic-result-link.entry.js.map +1 -1
  209. package/dist/esm/atomic-result-localized-text.entry.js +2 -2
  210. package/dist/esm/atomic-result-localized-text.entry.js.map +1 -1
  211. package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
  212. package/dist/esm/atomic-result-multi-value-text.entry.js.map +1 -1
  213. package/dist/esm/atomic-result-number.entry.js +1 -1
  214. package/dist/esm/atomic-result-number.entry.js.map +1 -1
  215. package/dist/esm/atomic-result-printable-uri.entry.js +1 -1
  216. package/dist/esm/atomic-result-printable-uri.entry.js.map +1 -1
  217. package/dist/esm/atomic-result-rating.entry.js +1 -1
  218. package/dist/esm/atomic-result-rating.entry.js.map +1 -1
  219. package/dist/esm/atomic-result-text_2.entry.js +1 -1
  220. package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
  221. package/dist/esm/atomic-result-timespan.entry.js +1 -1
  222. package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
  223. package/dist/esm/atomic-result.entry.js.map +1 -1
  224. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +1 -1
  225. package/dist/esm/atomic-smart-snippet-answer_2.entry.js.map +1 -1
  226. package/dist/esm/index.js.map +1 -1
  227. package/dist/esm/{result-template-decorators-2ed76ea9.js → stencil-result-template-decorators-f989bc6b.js} +6 -2
  228. package/dist/esm/stencil-result-template-decorators-f989bc6b.js.map +1 -0
  229. package/dist/esm/version.js +1 -1
  230. package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +1 -1
  231. package/dist/types/components/commerce/product-template-component-utils/context/fetch-product-context.d.ts +12 -0
  232. package/dist/types/components/commerce/product-template-component-utils/context/interactive-product-context-controller.d.ts +27 -0
  233. package/dist/types/components/commerce/product-template-component-utils/context/product-context-controller.d.ts +33 -0
  234. package/dist/types/components/commerce/product-template-component-utils/{stencil-product-template-decorators.d.ts → context/stencil-product-template-decorators.d.ts} +1 -1
  235. package/dist/types/components/common/smart-snippets/atomic-smart-snippet-source.d.ts +1 -1
  236. package/dist/types/components/search/atomic-result/atomic-result.d.ts +1 -1
  237. package/dist/types/components/search/result-template-component-utils/context/fetch-result-context.d.ts +8 -0
  238. package/dist/types/components/search/result-template-component-utils/context/interactive-result-context-controller.d.ts +12 -0
  239. package/dist/types/components/search/result-template-component-utils/context/result-context-controller.d.ts +18 -0
  240. package/dist/types/components/search/{result-template-components/result-template-decorators.d.ts → result-template-component-utils/context/stencil-result-template-decorators.d.ts} +6 -2
  241. package/dist/types/index.d.ts +3 -3
  242. package/dist/types/types/open-api.d.ts +3 -0
  243. package/docs/atomic-docs.json +1 -1
  244. package/package.json +12 -6
  245. package/dist/atomic/components/components/common/item-list/fetch-item-context.js +0 -15
  246. package/dist/atomic/components/decorators/commerce/product-template-decorators.js +0 -68
  247. package/dist/atomic/components/result-template-decorators.js.map +0 -1
  248. package/dist/atomic/p-15547bd5.entry.js.map +0 -1
  249. package/dist/atomic/p-182f9112.entry.js.map +0 -1
  250. package/dist/atomic/p-18684d4c.js.map +0 -1
  251. package/dist/atomic/p-190ddaca.entry.js.map +0 -1
  252. package/dist/atomic/p-1ff7a9da.entry.js.map +0 -1
  253. package/dist/atomic/p-4069d801.entry.js.map +0 -1
  254. package/dist/atomic/p-448091f7.entry.js.map +0 -1
  255. package/dist/atomic/p-4cb91ee7.entry.js.map +0 -1
  256. package/dist/atomic/p-57049cd2.entry.js.map +0 -1
  257. package/dist/atomic/p-5cab535b.entry.js.map +0 -1
  258. package/dist/atomic/p-78427c6a.entry.js.map +0 -1
  259. package/dist/atomic/p-852cc16d.entry.js.map +0 -1
  260. package/dist/atomic/p-8d5228da.entry.js.map +0 -1
  261. package/dist/atomic/p-945ddd53.entry.js.map +0 -1
  262. package/dist/atomic/p-955092ed.entry.js.map +0 -1
  263. package/dist/atomic/p-a1798150.entry.js.map +0 -1
  264. package/dist/atomic/p-b3f6561d.entry.js.map +0 -1
  265. package/dist/atomic/p-c5164dbf.entry.js.map +0 -1
  266. package/dist/atomic/p-dea22a8d.entry.js.map +0 -1
  267. package/dist/atomic/p-df8d38ca.entry.js.map +0 -1
  268. package/dist/atomic/p-e6dc9de7.entry.js.map +0 -1
  269. package/dist/atomic/p-e9dc8e90.entry.js.map +0 -1
  270. package/dist/cjs/result-template-decorators-432d11a9.js.map +0 -1
  271. package/dist/esm/result-template-decorators-2ed76ea9.js.map +0 -1
  272. package/dist/types/decorators/commerce/product-template-decorators.d.ts +0 -68
  273. /package/dist/atomic/{p-3f34929a.entry.js.map → p-8ad81b85.entry.js.map} +0 -0
  274. /package/dist/atomic/{p-c2a5dac0.entry.js.map → p-f2c4209d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-smart-snippet-answer.atomic-smart-snippet-source.entry.js","mappings":"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","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-answer/atomic-smart-snippet-answer.pcss?tag=atomic-smart-snippet-answer&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-answer/atomic-smart-snippet-answer.tsx","src/components/common/smart-snippets/atomic-smart-snippet-source.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n:host {\n @apply text-on-background text-lg;\n line-height: calc(var(--text-lg) * var(--atomic-line-height-ratio));\n\n .wrapper {\n display: flow-root;\n .margin {\n margin: 1rem 0;\n }\n }\n}\n\np {\n @apply mt-4 mb-4;\n}\n\nul,\nol {\n @apply mb-4 list-outside list-decimal pl-10;\n}\n\na {\n @apply text-primary underline;\n}\n","import {InlineLink} from '@coveo/headless';\nimport {\n Component,\n h,\n Prop,\n Event,\n EventEmitter,\n Host,\n Element,\n} from '@stencil/core';\nimport DOMPurify from 'dompurify';\nimport {sanitizeStyle} from '../../../../utils/utils';\nimport {bindAnalyticsToLink} from '../../item-link/bind-analytics-to-link';\n\n/**\n * @part answer - The container displaying the full document excerpt.\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-answer',\n styleUrl: 'atomic-smart-snippet-answer.pcss',\n shadow: true,\n})\nexport class AtomicSmartSnippetAnswer {\n @Prop() htmlContent!: string;\n @Prop() innerStyle?: string;\n\n @Element() public host!: HTMLElement;\n\n @Event({bubbles: false})\n private answerSizeUpdated!: EventEmitter<{height: number}>;\n @Event({bubbles: false})\n private selectInlineLink!: EventEmitter<InlineLink>;\n @Event({bubbles: false})\n private beginDelayedSelectInlineLink!: EventEmitter<InlineLink>;\n @Event({bubbles: false})\n private cancelPendingSelectInlineLink!: EventEmitter<InlineLink>;\n private wrapperElement?: HTMLElement;\n private isRendering = true;\n private resizeObserver: ResizeObserver | undefined;\n\n public componentWillRender() {\n this.isRendering = true;\n }\n\n public componentDidRender() {\n this.isRendering = false;\n this.emitCurrentHeight();\n }\n\n public componentDidLoad() {\n // Prevents initial transition\n setTimeout(() => {\n this.host.classList.add('loaded');\n }, 0);\n }\n\n public connectedCallback() {\n if (this.wrapperElement && this.resizeObserver) {\n this.resizeObserver.observe(this.wrapperElement);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n public setWrapperElement(element: HTMLElement) {\n this.wrapperElement = element;\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.resizeObserver = new ResizeObserver(() => this.emitCurrentHeight());\n this.resizeObserver.observe(element);\n }\n\n private get sanitizedStyle() {\n if (!this.innerStyle) {\n return undefined;\n }\n return sanitizeStyle(this.innerStyle);\n }\n\n private emitCurrentHeight() {\n if (this.isRendering) {\n return;\n }\n this.answerSizeUpdated.emit({height: this.wrapperElement!.scrollHeight});\n }\n\n private bindAnalyticsToLink(element: HTMLAnchorElement) {\n const link: InlineLink = {\n linkText: element.innerText,\n linkURL: element.href,\n };\n bindAnalyticsToLink(element, {\n stopPropagation: false,\n onSelect: () => this.selectInlineLink.emit(link),\n onBeginDelayedSelect: () => this.beginDelayedSelectInlineLink.emit(link),\n onCancelPendingSelect: () =>\n this.cancelPendingSelectInlineLink.emit(link),\n });\n }\n\n private bindAnalyticsToLinks(root: HTMLElement) {\n Array.from(root.querySelectorAll('a')).forEach((link) =>\n this.bindAnalyticsToLink(link)\n );\n }\n\n private renderStyle() {\n const style = this.sanitizedStyle;\n if (!style) {\n return;\n }\n // deepcode ignore ReactSetInnerHtml: Defined by implementer and sanitized by dompurify\n return <style innerHTML={style}></style>;\n }\n\n private renderContent() {\n return (\n <div\n class=\"wrapper\"\n ref={(element) => element && this.setWrapperElement(element)}\n >\n {/* deepcode ignore ReactSetInnerHtml: Sanitized by back-end + dompurify */}\n <div\n innerHTML={DOMPurify.sanitize(this.htmlContent, {\n USE_PROFILES: {html: true},\n })}\n ref={(element) => element && this.bindAnalyticsToLinks(element)}\n part=\"answer\"\n class=\"margin\"\n ></div>\n </div>\n );\n }\n\n public render() {\n return (\n <Host>\n {this.renderStyle()}\n {this.renderContent()}\n </Host>\n );\n }\n}\n","import {Result} from '@coveo/headless';\nimport {\n Component,\n Prop,\n h,\n Listen,\n State,\n EventEmitter,\n Event,\n Host,\n} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {ResultContextEvent} from '../../search/result-template-components/result-template-decorators';\nimport {AnyBindings} from '../interface/bindings';\nimport {LinkWithItemAnalytics} from '../item-link/stencil-item-link';\n\n/**\n * @part source-url\n * @part source-title\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-source',\n shadow: false,\n})\nexport class AtomicSmartSnippetSource\n implements InitializableComponent<AnyBindings>\n{\n @InitializeBindings() public bindings!: AnyBindings;\n @Prop({reflect: true, mutable: true}) source!: Result;\n @Prop() anchorAttributes?: Attr[];\n\n @Event() selectSource!: EventEmitter;\n @Event() beginDelayedSelectSource!: EventEmitter;\n @Event() cancelPendingSelectSource!: EventEmitter;\n\n @State() public error!: Error;\n\n @Listen('atomic/resolveResult')\n public resolveResult(event: ResultContextEvent<Result>) {\n event.preventDefault();\n event.stopPropagation();\n if (this.source) {\n event.detail(this.source);\n }\n }\n\n render() {\n return (\n <Host>\n <LinkWithItemAnalytics\n title={this.source.clickUri}\n href={this.source.clickUri}\n className=\"block truncate\"\n part=\"source-url\"\n attributes={this.anchorAttributes}\n onSelect={() => this.selectSource.emit()}\n onBeginDelayedSelect={() => this.beginDelayedSelectSource.emit()}\n onCancelPendingSelect={() => this.cancelPendingSelectSource.emit()}\n >\n {this.source.clickUri}\n </LinkWithItemAnalytics>\n <LinkWithItemAnalytics\n title={this.source.title}\n href={this.source.clickUri}\n attributes={this.anchorAttributes}\n className=\"block\"\n part=\"source-title\"\n onSelect={() => this.selectSource.emit()}\n onBeginDelayedSelect={() => this.beginDelayedSelectSource.emit()}\n onCancelPendingSelect={() => this.cancelPendingSelectSource.emit()}\n >\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n key={this.source.uniqueId}\n ></atomic-result-text>\n </LinkWithItemAnalytics>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-smart-snippet-answer.atomic-smart-snippet-source.entry.js","mappings":"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","names":[],"sources":["src/components/common/smart-snippets/atomic-smart-snippet-answer/atomic-smart-snippet-answer.pcss?tag=atomic-smart-snippet-answer&encapsulation=shadow","src/components/common/smart-snippets/atomic-smart-snippet-answer/atomic-smart-snippet-answer.tsx","src/components/common/smart-snippets/atomic-smart-snippet-source.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n:host {\n @apply text-on-background text-lg;\n line-height: calc(var(--text-lg) * var(--atomic-line-height-ratio));\n\n .wrapper {\n display: flow-root;\n .margin {\n margin: 1rem 0;\n }\n }\n}\n\np {\n @apply mt-4 mb-4;\n}\n\nul,\nol {\n @apply mb-4 list-outside list-decimal pl-10;\n}\n\na {\n @apply text-primary underline;\n}\n","import {InlineLink} from '@coveo/headless';\nimport {\n Component,\n h,\n Prop,\n Event,\n EventEmitter,\n Host,\n Element,\n} from '@stencil/core';\nimport DOMPurify from 'dompurify';\nimport {sanitizeStyle} from '../../../../utils/utils';\nimport {bindAnalyticsToLink} from '../../item-link/bind-analytics-to-link';\n\n/**\n * @part answer - The container displaying the full document excerpt.\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-answer',\n styleUrl: 'atomic-smart-snippet-answer.pcss',\n shadow: true,\n})\nexport class AtomicSmartSnippetAnswer {\n @Prop() htmlContent!: string;\n @Prop() innerStyle?: string;\n\n @Element() public host!: HTMLElement;\n\n @Event({bubbles: false})\n private answerSizeUpdated!: EventEmitter<{height: number}>;\n @Event({bubbles: false})\n private selectInlineLink!: EventEmitter<InlineLink>;\n @Event({bubbles: false})\n private beginDelayedSelectInlineLink!: EventEmitter<InlineLink>;\n @Event({bubbles: false})\n private cancelPendingSelectInlineLink!: EventEmitter<InlineLink>;\n private wrapperElement?: HTMLElement;\n private isRendering = true;\n private resizeObserver: ResizeObserver | undefined;\n\n public componentWillRender() {\n this.isRendering = true;\n }\n\n public componentDidRender() {\n this.isRendering = false;\n this.emitCurrentHeight();\n }\n\n public componentDidLoad() {\n // Prevents initial transition\n setTimeout(() => {\n this.host.classList.add('loaded');\n }, 0);\n }\n\n public connectedCallback() {\n if (this.wrapperElement && this.resizeObserver) {\n this.resizeObserver.observe(this.wrapperElement);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n public setWrapperElement(element: HTMLElement) {\n this.wrapperElement = element;\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.resizeObserver = new ResizeObserver(() => this.emitCurrentHeight());\n this.resizeObserver.observe(element);\n }\n\n private get sanitizedStyle() {\n if (!this.innerStyle) {\n return undefined;\n }\n return sanitizeStyle(this.innerStyle);\n }\n\n private emitCurrentHeight() {\n if (this.isRendering) {\n return;\n }\n this.answerSizeUpdated.emit({height: this.wrapperElement!.scrollHeight});\n }\n\n private bindAnalyticsToLink(element: HTMLAnchorElement) {\n const link: InlineLink = {\n linkText: element.innerText,\n linkURL: element.href,\n };\n bindAnalyticsToLink(element, {\n stopPropagation: false,\n onSelect: () => this.selectInlineLink.emit(link),\n onBeginDelayedSelect: () => this.beginDelayedSelectInlineLink.emit(link),\n onCancelPendingSelect: () =>\n this.cancelPendingSelectInlineLink.emit(link),\n });\n }\n\n private bindAnalyticsToLinks(root: HTMLElement) {\n Array.from(root.querySelectorAll('a')).forEach((link) =>\n this.bindAnalyticsToLink(link)\n );\n }\n\n private renderStyle() {\n const style = this.sanitizedStyle;\n if (!style) {\n return;\n }\n // deepcode ignore ReactSetInnerHtml: Defined by implementer and sanitized by dompurify\n return <style innerHTML={style}></style>;\n }\n\n private renderContent() {\n return (\n <div\n class=\"wrapper\"\n ref={(element) => element && this.setWrapperElement(element)}\n >\n {/* deepcode ignore ReactSetInnerHtml: Sanitized by back-end + dompurify */}\n <div\n innerHTML={DOMPurify.sanitize(this.htmlContent, {\n USE_PROFILES: {html: true},\n })}\n ref={(element) => element && this.bindAnalyticsToLinks(element)}\n part=\"answer\"\n class=\"margin\"\n ></div>\n </div>\n );\n }\n\n public render() {\n return (\n <Host>\n {this.renderStyle()}\n {this.renderContent()}\n </Host>\n );\n }\n}\n","import {Result} from '@coveo/headless';\nimport {\n Component,\n Prop,\n h,\n Listen,\n State,\n EventEmitter,\n Event,\n Host,\n} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AnyBindings} from '../interface/bindings';\nimport {LinkWithItemAnalytics} from '../item-link/stencil-item-link';\nimport {ResultContextEvent} from '@/src/components/search/result-template-component-utils/context/stencil-result-template-decorators';\n\n/**\n * @part source-url\n * @part source-title\n * @internal\n */\n@Component({\n tag: 'atomic-smart-snippet-source',\n shadow: false,\n})\nexport class AtomicSmartSnippetSource\n implements InitializableComponent<AnyBindings>\n{\n @InitializeBindings() public bindings!: AnyBindings;\n @Prop({reflect: true, mutable: true}) source!: Result;\n @Prop() anchorAttributes?: Attr[];\n\n @Event() selectSource!: EventEmitter;\n @Event() beginDelayedSelectSource!: EventEmitter;\n @Event() cancelPendingSelectSource!: EventEmitter;\n\n @State() public error!: Error;\n\n @Listen('atomic/resolveResult')\n public resolveResult(event: ResultContextEvent<Result>) {\n event.preventDefault();\n event.stopPropagation();\n if (this.source) {\n event.detail(this.source);\n }\n }\n\n render() {\n return (\n <Host>\n <LinkWithItemAnalytics\n title={this.source.clickUri}\n href={this.source.clickUri}\n className=\"block truncate\"\n part=\"source-url\"\n attributes={this.anchorAttributes}\n onSelect={() => this.selectSource.emit()}\n onBeginDelayedSelect={() => this.beginDelayedSelectSource.emit()}\n onCancelPendingSelect={() => this.cancelPendingSelectSource.emit()}\n >\n {this.source.clickUri}\n </LinkWithItemAnalytics>\n <LinkWithItemAnalytics\n title={this.source.title}\n href={this.source.clickUri}\n attributes={this.anchorAttributes}\n className=\"block\"\n part=\"source-title\"\n onSelect={() => this.selectSource.emit()}\n onBeginDelayedSelect={() => this.beginDelayedSelectSource.emit()}\n onCancelPendingSelect={() => this.cancelPendingSelectSource.emit()}\n >\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n key={this.source.uniqueId}\n ></atomic-result-text>\n </LinkWithItemAnalytics>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;AAGA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;MCHa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/commerce/product-template-component-utils/stencil-product-template-decorators.tsx","src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/decorators/commerce/product-template-decorators.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;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;;;;","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"],"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"],"version":3}
@@ -8,6 +8,8 @@ import { I as ItemContext, a as InteractiveItemContext, i as itemContext } from
8
8
  * @ResultContext() private result!: Result;
9
9
  *
10
10
  * For more information and examples, view the "Utilities" section of the readme.
11
+ *
12
+ * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \@/src/components/search/result-template-component-utils/context/result-context-controller.ts
11
13
  */
12
14
  function ResultContext(opts = { folded: false }) {
13
15
  return ItemContext({ parentName: 'atomic-result', folded: opts.folded });
@@ -22,8 +24,10 @@ function InteractiveResultContext() {
22
24
  *
23
25
  * 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).
24
26
  *
25
- * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result".
27
+ * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result" element.
26
28
  * @returns A promise that resolves on initialization of the parent "atomic-result" element, or rejects when there is no parent "atomic-result" element.
29
+ *
30
+ * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \@/src/components/search/result-template-component-utils/context/fetch-result-context.ts
27
31
  */
28
32
  function resultContext(element) {
29
33
  return itemContext(element, 'atomic-result');
@@ -31,4 +35,4 @@ function resultContext(element) {
31
35
 
32
36
  export { InteractiveResultContext as I, ResultContext as R, resultContext as r };
33
37
 
34
- //# sourceMappingURL=result-template-decorators-2ed76ea9.js.map
38
+ //# sourceMappingURL=stencil-result-template-decorators-f989bc6b.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-result-template-decorators-f989bc6b.js","mappings":";;AASA;;;;;;;;;;;SAWgB,aAAa,CAAC,OAA0B,EAAC,MAAM,EAAE,KAAK,EAAC;IACrE,OAAO,WAAW,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;AACzE,CAAC;SAEe,wBAAwB;IACtC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAKD;;;;;;;;;;;;SAYgB,aAAa,CAC3B,OAAgB;IAEhB,OAAO,WAAW,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD;;;;","names":[],"sources":["src/components/search/result-template-component-utils/context/stencil-result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n * \n * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \\@/src/components/search/result-template-component-utils/context/result-context-controller.ts\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-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-result\" element.\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n * \n * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \\@/src/components/search/result-template-component-utils/context/fetch-result-context.ts\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"version":3}
@@ -1,2 +1,2 @@
1
1
  export const headlessVersion = '3.31.2';
2
- export const atomicVersion = '3.35.0-pre.4282ff1b60';
2
+ export const atomicVersion = '3.35.0-pre.43c8da2553';
@@ -2,10 +2,10 @@ import type { InteractiveProduct, Product } from '@coveo/headless/commerce';
2
2
  import { type CSSResultGroup, LitElement } from 'lit';
3
3
  import type { CommerceStore } from "../atomic-commerce-interface/store";
4
4
  import type { CommerceRecommendationStore } from "../atomic-commerce-recommendation-interface/store";
5
+ import type { InteractiveProductContextEvent, ProductContextEvent } from "../product-template-component-utils/context/product-context-controller";
5
6
  import type { DisplayConfig } from "../../common/item-list/context/item-display-config-context-controller";
6
7
  import { type ItemRenderingFunction } from "../../common/item-list/item-list-common";
7
8
  import type { ItemDisplayDensity, ItemDisplayImageSize, ItemDisplayLayout } from "../../common/layout/display-options";
8
- import type { InteractiveProductContextEvent, ProductContextEvent } from "../../../decorators/commerce/product-template-decorators";
9
9
  declare const AtomicProduct_base: typeof LitElement;
10
10
  /**
11
11
  * The `atomic-product` component is used internally by the `atomic-commerce-product-list` and `atomic-commerce-recommendation-list` components.
@@ -0,0 +1,12 @@
1
+ import type { Product } from '@coveo/headless/commerce';
2
+ /**
3
+ * Retrieves `Product` on a rendered `atomic-product`.
4
+ *
5
+ * 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.
6
+ *
7
+ * 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).
8
+ *
9
+ * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.
10
+ * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.
11
+ */
12
+ export declare function fetchProductContext<T extends Product>(element: Element): Promise<T>;
@@ -0,0 +1,27 @@
1
+ import type { InteractiveProduct } from '@coveo/headless/commerce';
2
+ import type { LitElement } from 'lit';
3
+ import { InteractiveItemContextController } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ /**
5
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.
6
+ *
7
+ * @param host - The Lit component instance
8
+ * @returns InteractiveItemContextController instance
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @customElement('my-interactive-product-component')
13
+ * export class MyInteractiveProductComponent extends LitElement {
14
+ * private interactiveProductController = createInteractiveProductContextController(this);
15
+ *
16
+ * @state() product!: Product;
17
+ *
18
+ * render() {
19
+ * this.product = this.interactiveProductController.interactiveItem;
20
+ * return html`<div>${this.product?.ec_name}</div>`;
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export declare function createInteractiveProductContextController(host: LitElement & {
26
+ error: Error;
27
+ }): InteractiveItemContextController<InteractiveProduct>;
@@ -0,0 +1,33 @@
1
+ import type { InteractiveProduct, Product } from '@coveo/headless/commerce';
2
+ import type { LitElement } from 'lit';
3
+ import type { InteractiveItemContextEvent } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ import { ItemContextController, type ItemContextEvent } from "../../../common/item-list/context/item-context-controller";
5
+ /**
6
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.
7
+ *
8
+ * @param host - The Lit component instance
9
+ * @param options - Configuration options
10
+ * @returns ItemContextController instance configured for atomic-product
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * @customElement('my-product-component')
15
+ * export class MyProductComponent extends LitElement {
16
+ * private productController = createProductContextController(this);
17
+ *
18
+ * @state() product!: Product;
19
+ *
20
+ * render() {
21
+ * this.product = this.productController.item;
22
+ * return html`<div>${this.product?.ec_name}</div>`;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export declare function createProductContextController(host: LitElement & {
28
+ error: Error | null;
29
+ }, options?: {
30
+ folded?: boolean;
31
+ }): ItemContextController<Product>;
32
+ export type ProductContextEvent<T = Product> = ItemContextEvent<T>;
33
+ export type InteractiveProductContextEvent<T extends InteractiveProduct = InteractiveProduct> = InteractiveItemContextEvent<T>;
@@ -9,6 +9,6 @@ import { Product } from '@coveo/headless/commerce';
9
9
  * @param element - The element that the event is dispatched to, which must be the child of a rendered "atomic-product".
10
10
  * @returns A promise that resolves on initialization of the parent "atomic-product" element, or rejects when there is no parent "atomic-product" element.
11
11
  *
12
- * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \@/src/decorators/commerce/product-template-decorators.ts
12
+ * @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
13
13
  */
14
14
  export declare function productContext<T extends Product>(element: Element): Promise<T>;
@@ -1,8 +1,8 @@
1
1
  import { Result } from '@coveo/headless';
2
2
  import { EventEmitter } from '../../../stencil-public-runtime';
3
3
  import { InitializableComponent } from '../../../utils/initialization-utils';
4
- import { ResultContextEvent } from '../../search/result-template-components/result-template-decorators';
5
4
  import { AnyBindings } from '../interface/bindings';
5
+ import { ResultContextEvent } from "../../search/result-template-component-utils/context/stencil-result-template-decorators";
6
6
  /**
7
7
  * @part source-url
8
8
  * @part source-title
@@ -3,7 +3,7 @@ import { DisplayConfig } from '../../common/item-list/stencil-item-decorators';
3
3
  import { ItemRenderingFunction } from '../../common/item-list/stencil-item-list-common';
4
4
  import { ItemDisplayDensity, ItemDisplayImageSize, ItemDisplayLayout } from '../../common/layout/display-options';
5
5
  import { SearchStore } from '../atomic-search-interface/store';
6
- import { InteractiveResultContextEvent, ResultContextEvent } from '../result-template-components/result-template-decorators';
6
+ import { InteractiveResultContextEvent, ResultContextEvent } from "../result-template-component-utils/context/stencil-result-template-decorators";
7
7
  /**
8
8
  * The `atomic-result` component is used internally by the `atomic-result-list` component.
9
9
  */
@@ -0,0 +1,8 @@
1
+ import type { FoldedResult, Result } from '@coveo/headless';
2
+ /**
3
+ * Retrieves `Result` on a rendered `atomic-result`.
4
+ *
5
+ * @param element - The element that the event is dispatched to
6
+ * @returns A promise that resolves on initialization of the parent `atomic-result` element, or rejects if missing
7
+ */
8
+ export declare function fetchResultContext<T extends Result | FoldedResult = Result>(element: Element): Promise<T>;
@@ -0,0 +1,12 @@
1
+ import type { InteractiveResult } from '@coveo/headless';
2
+ import type { LitElement } from 'lit';
3
+ import { InteractiveItemContextController } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ /**
5
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive result context in result template components.
6
+ *
7
+ * @param host - The Lit component instance
8
+ * @returns InteractiveItemContextController instance
9
+ */
10
+ export declare function createInteractiveResultContextController(host: LitElement & {
11
+ error: Error;
12
+ }): InteractiveItemContextController<InteractiveResult>;
@@ -0,0 +1,18 @@
1
+ import type { FoldedResult, InteractiveResult, Result } from '@coveo/headless';
2
+ import type { LitElement } from 'lit';
3
+ import type { InteractiveItemContextEvent } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ import { ItemContextController, type ItemContextEvent } from "../../../common/item-list/context/item-context-controller";
5
+ /**
6
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing result context in result template components.
7
+ *
8
+ * @param host - The Lit component instance
9
+ * @param options - Configuration options
10
+ * @returns ItemContextController instance configured for atomic-result
11
+ */
12
+ export declare function createResultContextController(host: LitElement & {
13
+ error: Error | null;
14
+ }, options?: {
15
+ folded?: boolean;
16
+ }): ItemContextController<Result | FoldedResult>;
17
+ export type ResultContextEvent<T = Result | FoldedResult> = ItemContextEvent<T>;
18
+ export type InteractiveResultContextEvent<T extends InteractiveResult = InteractiveResult> = InteractiveItemContextEvent<T>;
@@ -1,5 +1,5 @@
1
1
  import { FoldedResult, Result } from '@coveo/headless';
2
- import { InteractiveItemContextEvent, ItemContextEvent } from '../../common/item-list/stencil-item-decorators';
2
+ import { InteractiveItemContextEvent, ItemContextEvent } from "../../../common/item-list/stencil-item-decorators";
3
3
  /**
4
4
  * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.
5
5
  * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.
@@ -8,6 +8,8 @@ import { InteractiveItemContextEvent, ItemContextEvent } from '../../common/item
8
8
  * @ResultContext() private result!: Result;
9
9
  *
10
10
  * For more information and examples, view the "Utilities" section of the readme.
11
+ *
12
+ * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \@/src/components/search/result-template-component-utils/context/result-context-controller.ts
11
13
  */
12
14
  export declare function ResultContext(opts?: {
13
15
  folded: boolean;
@@ -22,7 +24,9 @@ export type InteractiveResultContextEvent = InteractiveItemContextEvent;
22
24
  *
23
25
  * 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).
24
26
  *
25
- * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result".
27
+ * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result" element.
26
28
  * @returns A promise that resolves on initialization of the parent "atomic-result" element, or rejects when there is no parent "atomic-result" element.
29
+ *
30
+ * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \@/src/components/search/result-template-component-utils/context/fetch-result-context.ts
27
31
  */
28
32
  export declare function resultContext<T extends Result | FoldedResult = Result>(element: Element): Promise<T>;
@@ -2,7 +2,8 @@ export type { i18n } from 'i18next';
2
2
  export { Components, JSX } from './components';
3
3
  export { CommerceBindings } from './components/commerce/atomic-commerce-interface/atomic-commerce-interface';
4
4
  export { SelectChildProductEventArgs } from './components/commerce/atomic-product-children/select-child-product-event';
5
- export { productContext } from './components/commerce/product-template-component-utils/stencil-product-template-decorators';
5
+ export { fetchProductContext } from './components/commerce/product-template-component-utils/context/fetch-product-context';
6
+ export { productContext } from './components/commerce/product-template-component-utils/context/stencil-product-template-decorators';
6
7
  export { PopoverChildFacet } from './components/common/facets/popover/popover-type';
7
8
  export { RedirectionPayload } from './components/common/search-box/redirection-payload';
8
9
  export { dispatchSearchBoxSuggestionsEvent } from './components/common/suggestions/suggestions-events';
@@ -10,7 +11,6 @@ export type { SearchBoxSuggestionElement, SearchBoxSuggestions, SearchBoxSuggest
10
11
  export { elementHasNoQuery, elementHasQuery, } from './components/common/suggestions/suggestions-utils';
11
12
  export { RecsBindings } from './components/recommendations/atomic-recs-interface/atomic-recs-interface';
12
13
  export { Bindings } from './components/search/atomic-search-interface/atomic-search-interface';
13
- export { resultContext } from './components/search/result-template-components/result-template-decorators';
14
- export { fetchProductContext } from './decorators/commerce/product-template-decorators';
14
+ export { resultContext } from './components/search/result-template-component-utils/context/stencil-result-template-decorators';
15
15
  export { initializeBindings, MissingInterfaceParentError, } from './utils/initialization-utils';
16
16
  export { bindLogDocumentOpenOnResult } from './utils/result-utils';
@@ -0,0 +1,3 @@
1
+ declare module 'https://platform.cloud.coveo.com/api-docs/*' {
2
+ export default any;
3
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-10-08T13:01:03",
2
+ "timestamp": "2025-10-08T18:21:21",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coveo/atomic",
3
3
  "type": "module",
4
- "version": "3.35.0-pre.4282ff1b60",
4
+ "version": "3.35.0-pre.43c8da2553",
5
5
  "description": "A web-component library for building modern UIs interfacing with the Coveo platform",
6
6
  "homepage": "https://docs.coveo.com/en/atomic/latest/",
7
7
  "repository": {
@@ -61,9 +61,8 @@
61
61
  "prod": "npx serve www -l 3333 --no-request-logging",
62
62
  "test": "npm run test:stencil && npm run test:lit",
63
63
  "test:stencil": "stencil test --spec -- src/utils/initialization-utils.spec.ts",
64
- "test:lit": "vitest run --project=atomic-default",
65
- "test:watch": "vitest --project=atomic-default",
66
- "test:storybook": "vitest run --project=storybook",
64
+ "test:lit": "vitest run",
65
+ "test:watch": "vitest",
67
66
  "e2e": "cypress run --browser chrome",
68
67
  "e2e:firefox": "cypress run --browser firefox",
69
68
  "e2e:watch": "cypress open --browser chrome --e2e",
@@ -101,6 +100,7 @@
101
100
  "devDependencies": {
102
101
  "@axe-core/playwright": "4.10.2",
103
102
  "@custom-elements-manifest/analyzer": "0.10.4",
103
+ "@mswjs/source": "0.4.1",
104
104
  "@playwright/test": "1.54.1",
105
105
  "@rollup/plugin-commonjs": "28.0.6",
106
106
  "@rollup/plugin-json": "6.1.0",
@@ -111,7 +111,6 @@
111
111
  "@stencil/react-output-target": "0.5.3",
112
112
  "@storybook/addon-a11y": "9.1.2",
113
113
  "@storybook/addon-docs": "9.1.2",
114
- "@storybook/addon-vitest": "9.1.2",
115
114
  "@storybook/icons": "1.4.0",
116
115
  "@storybook/web-components-vite": "9.1.2",
117
116
  "@tailwindcss/postcss": "4.1.13",
@@ -120,7 +119,6 @@
120
119
  "@types/jest": "29.5.14",
121
120
  "@types/puppeteer": "7.0.4",
122
121
  "@vitest/browser": "3.2.4",
123
- "@vitest/coverage-v8": "^3.2.4",
124
122
  "@wc-toolkit/storybook-helpers": "9.0.1",
125
123
  "axe-core": "4.10.3",
126
124
  "cypress": "13.7.3",
@@ -133,7 +131,10 @@
133
131
  "jest-cli": "29.7.0",
134
132
  "jest-localstorage-mock": "2.4.26",
135
133
  "local-web-server": "5.4.0",
134
+ "msw": "2.10.5",
135
+ "msw-storybook-addon": "2.0.5",
136
136
  "natural-orderby": "5.0.0",
137
+ "openapi-types": "12.1.3",
137
138
  "playwright": "1.54.1",
138
139
  "postcss": "8.5.6",
139
140
  "postcss-load-config": "6.0.1",
@@ -167,5 +168,10 @@
167
168
  "license": "Apache-2.0",
168
169
  "engines": {
169
170
  "node": "^20.9.0 || ^22.11.0"
171
+ },
172
+ "msw": {
173
+ "workerDirectory": [
174
+ "public"
175
+ ]
170
176
  }
171
177
  }
@@ -1,15 +0,0 @@
1
- import { closest } from '../../../utils/dom-utils.js';
2
- import { buildCustomEvent } from '../../../utils/event-utils.js';
3
- import { MissingParentError } from './context/item-context-controller.js';
4
- const itemContextEventName = 'atomic/resolveResult';
5
- export function fetchItemContext(element, parentName) {
6
- return new Promise((resolve, reject) => {
7
- const event = buildCustomEvent(itemContextEventName, (item) => {
8
- return resolve(item);
9
- });
10
- element.dispatchEvent(event);
11
- if (!closest(element, parentName)) {
12
- reject(new MissingParentError(element.nodeName.toLowerCase(), parentName));
13
- }
14
- });
15
- }
@@ -1,68 +0,0 @@
1
- import { InteractiveItemContextController, } from "../../components/common/item-list/context/interactive-item-context-controller";
2
- import { ItemContextController, } from "../../components/common/item-list/context/item-context-controller";
3
- import { fetchItemContext } from "../../components/common/item-list/fetch-item-context";
4
- /**
5
- * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.
6
- *
7
- * @param host - The Lit component instance
8
- * @param options - Configuration options
9
- * @returns ItemContextController instance configured for atomic-product
10
- *
11
- * @example
12
- * ```typescript
13
- * @customElement('my-product-component')
14
- * export class MyProductComponent extends LitElement {
15
- * private productController = createProductContextController(this);
16
- *
17
- * @state() product!: Product;
18
- *
19
- * render() {
20
- * this.product = this.productController.item;
21
- * return html`<div>${this.product?.ec_name}</div>`;
22
- * }
23
- * }
24
- * ```
25
- */
26
- export function createProductContextController(host, options = {}) {
27
- return new ItemContextController(host, {
28
- parentName: 'atomic-product',
29
- folded: options.folded ?? false,
30
- });
31
- }
32
- /**
33
- * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.
34
- *
35
- * @param host - The Lit component instance
36
- * @returns InteractiveItemContextController instance
37
- *
38
- * @example
39
- * ```typescript
40
- * @customElement('my-interactive-product-component')
41
- * export class MyInteractiveProductComponent extends LitElement {
42
- * private interactiveProductController = createInteractiveProductContextController(this);
43
- *
44
- * @state() product!: Product;
45
- *
46
- * render() {
47
- * this.product = this.interactiveProductController.interactiveItem;
48
- * return html`<div>${this.product?.ec_name}</div>`;
49
- * }
50
- * }
51
- * ```
52
- */
53
- export function createInteractiveProductContextController(host) {
54
- return new InteractiveItemContextController(host);
55
- }
56
- /**
57
- * Retrieves `Product` on a rendered `atomic-product`.
58
- *
59
- * 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.
60
- *
61
- * 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).
62
- *
63
- * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.
64
- * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.
65
- */
66
- export function fetchProductContext(element) {
67
- return fetchItemContext(element, 'atomic-product');
68
- }
@@ -1 +0,0 @@
1
- {"file":"result-template-decorators.js","mappings":";;AASA;;;;;;;;;SASgB,aAAa,CAAC,OAA0B,EAAC,MAAM,EAAE,KAAK,EAAC;IACrE,OAAO,WAAW,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;AACzE,CAAC;SAEe,wBAAwB;IACtC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAKD;;;;;;;;;;SAUgB,aAAa,CAC3B,OAAgB;IAEhB,OAAO,WAAW,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD;;;;","names":[],"sources":["src/components/search/result-template-components/result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-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-result\".\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"names":["atomicResultLinkCss","AtomicResultLinkStyle0","AtomicResultLink","initialize","this","host","dispatchEvent","buildCustomEvent","stopPropagation","connectedCallback","slotName","hasDefaultSlot","getDefaultSlotFromHost","linkAttributes","getAttributesFromLinkSlot","render","href","isUndefined","hrefTemplate","result","clickUri","buildStringTemplateFromResult","bindings","h","LinkWithItemAnalytics","key","onSelect","interactiveResult","select","onBeginDelayedSelect","beginDelayedSelect","onCancelPendingSelect","cancelPendingSelect","attributes","field","default","__decorate","InitializeBindings","ResultContext","InteractiveResultContext"],"sources":["src/components/search/result-template-components/atomic-result-link/atomic-result-link.pcss?tag=atomic-result-link","src/components/search/result-template-components/atomic-result-link/atomic-result-link.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n@reference '../../../../utils/tailwind-utilities/link-style.css';\natomic-result-link {\n a {\n @apply link-style;\n }\n}\n","import {isUndefined} from '@coveo/bueno';\nimport {InteractiveResult} from '@coveo/headless';\nimport {Component, h, Prop, Element} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {buildStringTemplateFromResult} from '../../../../utils/result-utils';\nimport {getDefaultSlotFromHost} from '../../../../utils/slot-utils';\nimport {AnyUnfoldedItem} from '../../../common/item-list/unfolded-item';\nimport {getAttributesFromLinkSlot} from '../../../common/item-link/attributes-slot';\nimport {LinkWithItemAnalytics} from '../../../common/item-link/stencil-item-link';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {\n InteractiveResultContext,\n ResultContext,\n} from '../result-template-decorators';\n\n/**\n * The `atomic-result-link` component automatically transforms a search result title into a clickable link that points to the original item.\n * @slot default - Lets you display alternative content inside the link\n * @slot attributes - Lets you pass [attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes) down to the link element, overriding other attributes, to be used exclusively with an \"a\" tag such as `<a slot=\"attributes\" target=\"_blank\" download></a>`.\n */\n@Component({\n tag: 'atomic-result-link',\n styleUrl: 'atomic-result-link.pcss',\n shadow: false,\n})\nexport class AtomicResultLink implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public error!: Error;\n\n @ResultContext() private result!: AnyUnfoldedItem;\n @InteractiveResultContext() private interactiveResult!: InteractiveResult;\n\n @Element() private host!: HTMLElement;\n\n /**\n * Specifies a template literal from which to generate the `href` attribute value (see\n * [Template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)).\n *\n * The template literal can reference any number of result properties from the parent result. It can also reference the window object.\n *\n * For example, the following markup generates an `href` value such as `http://uri.com?id=itemTitle`, using the result's `clickUri` and `itemtitle` fields.\n * ```html\n * <atomic-result-link href-template='${clickUri}?id=${raw.itemtitle}'></atomic-result-link>\n * ```\n */\n @Prop({reflect: true}) hrefTemplate?: string;\n\n private hasDefaultSlot!: boolean;\n private linkAttributes?: Attr[];\n private stopPropagation?: boolean;\n\n public initialize() {\n this.host.dispatchEvent(\n buildCustomEvent(\n 'atomic/resolveStopPropagation',\n (stopPropagation: boolean) => {\n this.stopPropagation = stopPropagation;\n }\n )\n );\n }\n\n public connectedCallback() {\n const slotName = 'attributes';\n this.hasDefaultSlot = !!getDefaultSlotFromHost(this.host);\n this.linkAttributes = getAttributesFromLinkSlot(this.host, slotName);\n }\n\n public render() {\n const href = isUndefined(this.hrefTemplate)\n ? this.result.clickUri\n : buildStringTemplateFromResult(\n this.hrefTemplate,\n this.result,\n this.bindings\n );\n\n return (\n <LinkWithItemAnalytics\n href={href}\n onSelect={() => this.interactiveResult.select()}\n onBeginDelayedSelect={() => this.interactiveResult.beginDelayedSelect()}\n onCancelPendingSelect={() =>\n this.interactiveResult.cancelPendingSelect()\n }\n attributes={this.linkAttributes}\n stopPropagation={this.stopPropagation}\n >\n {this.hasDefaultSlot ? (\n <slot />\n ) : (\n <atomic-result-text\n field=\"title\"\n default=\"no-title\"\n ></atomic-result-text>\n )}\n </LinkWithItemAnalytics>\n );\n }\n}\n"],"mappings":"gfAAA,MAAMA,EAAsB,qwkEAC5B,MAAAC,EAAeD,E,iXC4BFE,EAAgB,M,qDA0BpB,UAAAC,GACLC,KAAKC,KAAKC,cACRC,EACE,iCACCC,IACCJ,KAAKI,gBAAkBA,CAAe,I,CAMvC,iBAAAC,GACL,MAAMC,EAAW,aACjBN,KAAKO,iBAAmBC,EAAuBR,KAAKC,MACpDD,KAAKS,eAAiBC,EAA0BV,KAAKC,KAAMK,E,CAGtD,MAAAK,GACL,MAAMC,EAAOC,EAAYb,KAAKc,cAC1Bd,KAAKe,OAAOC,SACZC,EACEjB,KAAKc,aACLd,KAAKe,OACLf,KAAKkB,UAGX,OACEC,EAACC,EAAqB,CAAAC,IAAA,2CACpBT,KAAMA,EACNU,SAAU,IAAMtB,KAAKuB,kBAAkBC,SACvCC,qBAAsB,IAAMzB,KAAKuB,kBAAkBG,qBACnDC,sBAAuB,IACrB3B,KAAKuB,kBAAkBK,sBAEzBC,WAAY7B,KAAKS,eACjBL,gBAAiBJ,KAAKI,iBAErBJ,KAAKO,eACJY,EAAA,aAEAA,EAAA,sBACEW,MAAM,QACNC,QAAQ,a,6BAnEWC,EAAA,CAA5BC,K,+BAGwBD,EAAA,CAAxBE,K,6BACmCF,EAAA,CAAnCG,K","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["atomicQuickviewCss","AtomicQuickviewStyle0","AtomicQuickview","this","sandbox","onNextQuickview","evt","stopImmediatePropagation","quickview","next","onPreviousQuickview","previous","focusTarget","buttonFocusTarget","FocusTargetController","initialize","buildQuickview","bindings","engine","options","result","Schema","StringValue","required","regex","validate","addQuickviewModalIfNeeded","quickviewModalRef","quickviewModal","interfaceElement","querySelector","document","createElement","setAttribute","appendChild","updateModalContent","state","content","total","quickviewState","totalResults","current","currentResult","modalCloseCallback","focus","quickviewAriaMessage","isLoading","i18n","t","first","last","title","onClick","event","stopPropagation","fetchResultContent","componentWillUpdate","render","resultHasPreview","h","Button","key","part","style","class","ref","setTarget","icon","QuickviewIcon","__decorate","InitializeBindings","ResultContext","BindStateToController","AriaLiveRegion"],"sources":["src/components/search/result-template-components/atomic-quickview/atomic-quickview.pcss?tag=atomic-quickview&encapsulation=shadow","src/components/search/result-template-components/atomic-quickview/atomic-quickview.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Result,\n buildQuickview,\n Quickview,\n QuickviewState,\n} from '@coveo/headless';\nimport {Component, h, Listen, Prop, State} from '@stencil/core';\nimport QuickviewIcon from '../../../../images/quickview.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {\n AriaLiveRegion,\n FocusTargetController,\n} from '../../../../utils/stencil-accessibility-utils';\nimport {Button} from '../../../common/stencil-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../result-template-decorators';\n\n/**\n * The `atomic-quickview` component renders a button which the end user can click to open a modal box containing a preview\n * about a result.\n *\n * The `atomic-quickview` is not meant to replace the `atomic-result-link` to access an item in a result template; it has certain limitations (e.g., custom styles and embedded\n * images/links may not work as expected in an `atomic-quickview`).\n *\n * @part button - The button that opens the quickview modal on click.\n * @part icon - The icon for the quickview button.\n */\n@Component({\n tag: 'atomic-quickview',\n styleUrl: 'atomic-quickview.pcss',\n shadow: true,\n})\nexport class AtomicQuickview implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ResultContext() private result!: Result;\n private buttonFocusTarget?: FocusTargetController;\n\n @State() public error!: Error;\n\n public quickview!: Quickview;\n\n @BindStateToController('quickview')\n @State()\n public quickviewState!: QuickviewState;\n\n /**\n * The `sandbox` attribute to apply to the quickview iframe.\n *\n * The quickview is loaded inside an iframe with a [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox) attribute for security reasons.\n *\n * This attribute exists primarily to protect against potential XSS attacks that could originate from the document being displayed.\n *\n * By default, the sandbox attributes are: `allow-popups allow-top-navigation allow-same-origin`.\n *\n * `allow-same-origin` is not optional, and must always be included in the list of allowed capabilities for the component to function properly.\n */\n @Prop() public sandbox =\n 'allow-popups allow-top-navigation allow-same-origin';\n\n @AriaLiveRegion('quickview')\n protected quickviewAriaMessage!: string;\n\n @Listen('atomic/quickview/next', {target: 'body'})\n public onNextQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.next();\n }\n\n @Listen('atomic/quickview/previous', {target: 'body'})\n public onPreviousQuickview(evt: Event) {\n evt.stopImmediatePropagation();\n this.quickview.previous();\n }\n\n private quickviewModalRef?: HTMLAtomicQuickviewModalElement;\n\n public get focusTarget() {\n if (!this.buttonFocusTarget) {\n this.buttonFocusTarget = new FocusTargetController(this);\n }\n return this.buttonFocusTarget;\n }\n\n public initialize() {\n this.quickview = buildQuickview(this.bindings.engine, {\n options: {result: this.result},\n });\n new Schema({\n sandbox: new StringValue({\n required: true,\n regex: /allow-same-origin/,\n }),\n }).validate({sandbox: this.sandbox});\n }\n\n private addQuickviewModalIfNeeded() {\n if (this.quickviewModalRef) {\n return;\n }\n\n const quickviewModal = this.bindings.interfaceElement.querySelector(\n 'atomic-quickview-modal'\n );\n if (quickviewModal) {\n this.quickviewModalRef = quickviewModal;\n return;\n }\n this.quickviewModalRef = document.createElement('atomic-quickview-modal');\n this.quickviewModalRef.setAttribute('sandbox', this.sandbox);\n this.bindings.interfaceElement.appendChild(this.quickviewModalRef);\n }\n\n private updateModalContent() {\n if (this.quickviewModalRef && this.quickview.state.content) {\n this.quickviewModalRef.content = this.quickview.state.content;\n this.quickviewModalRef.result = this.result;\n this.quickviewModalRef.total = this.quickviewState.totalResults;\n this.quickviewModalRef.current = this.quickviewState.currentResult;\n this.quickviewModalRef.modalCloseCallback = () =>\n this.focusTarget.focus();\n\n this.quickviewAriaMessage = this.quickviewState.isLoading\n ? this.bindings.i18n.t('quickview-loading')\n : this.bindings.i18n.t('quickview-loaded', {\n first: this.quickviewState.currentResult,\n last: this.quickviewState.totalResults,\n title: this.result.title,\n });\n }\n }\n\n private onClick(event?: MouseEvent) {\n event?.stopPropagation();\n this.quickview.fetchResultContent();\n }\n\n componentWillUpdate(): void {\n this.addQuickviewModalIfNeeded();\n this.updateModalContent();\n }\n\n public render() {\n if (this.quickviewState.resultHasPreview) {\n return (\n <Button\n part=\"button\"\n title={this.bindings.i18n.t('quickview')}\n style=\"outline-primary\"\n class=\"p-2\"\n onClick={(event) => this.onClick(event)}\n ref={this.focusTarget.setTarget}\n >\n <atomic-icon\n part=\"icon\"\n class=\"flex w-5 justify-center\"\n icon={QuickviewIcon}\n ></atomic-icon>\n </Button>\n );\n }\n }\n}\n"],"mappings":"6iBAAA,MAAMA,EAAqB,+8iEAC3B,MAAAC,EAAeD,E,iXCoCFE,EAAe,M,yBAwBXC,KAAAC,QACb,sD,gEAAA,qD,CAMK,eAAAC,CAAgBC,GACrBA,EAAIC,2BACJJ,KAAKK,UAAUC,M,CAIV,mBAAAC,CAAoBJ,GACzBA,EAAIC,2BACJJ,KAAKK,UAAUG,U,CAKjB,eAAWC,GACT,IAAKT,KAAKU,kBAAmB,CAC3BV,KAAKU,kBAAoB,IAAIC,EAAsBX,K,CAErD,OAAOA,KAAKU,iB,CAGP,UAAAE,GACLZ,KAAKK,UAAYQ,EAAeb,KAAKc,SAASC,OAAQ,CACpDC,QAAS,CAACC,OAAQjB,KAAKiB,UAEzB,IAAIC,EAAO,CACTjB,QAAS,IAAIkB,EAAY,CACvBC,SAAU,KACVC,MAAO,wBAERC,SAAS,CAACrB,QAASD,KAAKC,S,CAGrB,yBAAAsB,GACN,GAAIvB,KAAKwB,kBAAmB,CAC1B,M,CAGF,MAAMC,EAAiBzB,KAAKc,SAASY,iBAAiBC,cACpD,0BAEF,GAAIF,EAAgB,CAClBzB,KAAKwB,kBAAoBC,EACzB,M,CAEFzB,KAAKwB,kBAAoBI,SAASC,cAAc,0BAChD7B,KAAKwB,kBAAkBM,aAAa,UAAW9B,KAAKC,SACpDD,KAAKc,SAASY,iBAAiBK,YAAY/B,KAAKwB,kB,CAG1C,kBAAAQ,GACN,GAAIhC,KAAKwB,mBAAqBxB,KAAKK,UAAU4B,MAAMC,QAAS,CAC1DlC,KAAKwB,kBAAkBU,QAAUlC,KAAKK,UAAU4B,MAAMC,QACtDlC,KAAKwB,kBAAkBP,OAASjB,KAAKiB,OACrCjB,KAAKwB,kBAAkBW,MAAQnC,KAAKoC,eAAeC,aACnDrC,KAAKwB,kBAAkBc,QAAUtC,KAAKoC,eAAeG,cACrDvC,KAAKwB,kBAAkBgB,mBAAqB,IAC1CxC,KAAKS,YAAYgC,QAEnBzC,KAAK0C,qBAAuB1C,KAAKoC,eAAeO,UAC5C3C,KAAKc,SAAS8B,KAAKC,EAAE,qBACrB7C,KAAKc,SAAS8B,KAAKC,EAAE,mBAAoB,CACvCC,MAAO9C,KAAKoC,eAAeG,cAC3BQ,KAAM/C,KAAKoC,eAAeC,aAC1BW,MAAOhD,KAAKiB,OAAO+B,O,EAKrB,OAAAC,CAAQC,GACdA,GAAOC,kBACPnD,KAAKK,UAAU+C,oB,CAGjB,mBAAAC,GACErD,KAAKuB,4BACLvB,KAAKgC,oB,CAGA,MAAAsB,GACL,GAAItD,KAAKoC,eAAemB,iBAAkB,CACxC,OACEC,EAACC,EAAM,CAAAC,IAAA,2CACLC,KAAK,SACLX,MAAOhD,KAAKc,SAAS8B,KAAKC,EAAE,aAC5Be,MAAM,kBACNC,MAAM,MACNZ,QAAUC,GAAUlD,KAAKiD,QAAQC,GACjCY,IAAK9D,KAAKS,YAAYsD,WAEtBP,EAAA,eAAAE,IAAA,2CACEC,KAAK,OACLE,MAAM,0BACNG,KAAMC,I,IA1HaC,EAAA,CAA5BC,K,+BACwBD,EAAA,CAAxBE,K,6BASMF,EAAA,CAFNG,EAAsB,c,qCAmBbH,EAAA,CADTI,EAAe,c","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["ResultContext","opts","folded","ItemContext","parentName","InteractiveResultContext","InteractiveItemContext","resultContext","element","itemContext"],"sources":["src/components/search/result-template-components/result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-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-result\".\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"mappings":"2DAkBgBA,EAAcC,EAA0B,CAACC,OAAQ,QAC/D,OAAOC,EAAY,CAACC,WAAY,gBAAiBF,OAAQD,EAAKC,QAChE,C,SAEgBG,IACd,OAAOC,GACT,C,SAegBC,EACdC,GAEA,OAAOC,EAAeD,EAAS,gBACjC,Q","ignoreList":[]}