@coveo/atomic 3.31.0-pre.f83bd005a5 → 3.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/components/analytics-config.js +1 -1
  3. package/dist/atomic/components/analytics-config.js.map +1 -1
  4. package/dist/atomic/components/atomic-folded-result-list.js +1 -1
  5. package/dist/atomic/components/atomic-folded-result-list.js.map +1 -1
  6. package/dist/atomic/components/atomic-insight-folded-result-list.js +2 -2
  7. package/dist/atomic/components/atomic-insight-folded-result-list.js.map +1 -1
  8. package/dist/atomic/components/atomic-insight-result-children.js +2 -2
  9. package/dist/atomic/components/atomic-insight-result-children.js.map +1 -1
  10. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  11. package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
  12. package/dist/atomic/components/atomic-result-children.js +2 -2
  13. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  14. package/dist/atomic/components/atomic-result-link.js +1 -1
  15. package/dist/atomic/components/atomic-result-link.js.map +1 -1
  16. package/dist/atomic/components/atomic-result-list.js.map +1 -1
  17. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  18. package/dist/atomic/components/atomic-tab-manager.js.map +1 -1
  19. package/dist/atomic/components/global/environment.js +1 -1
  20. package/dist/atomic/components/props-utils.js +3 -0
  21. package/dist/atomic/components/props-utils.js.map +1 -1
  22. package/dist/atomic/components/stencil-item-decorators.js.map +1 -1
  23. package/dist/atomic/components/stencil-item-list-common.js.map +1 -1
  24. package/dist/atomic/components/{item.js → unfolded-item.js} +1 -1
  25. package/dist/atomic/components/unfolded-item.js.map +1 -0
  26. package/dist/atomic/components/utils/props-utils.js +3 -0
  27. package/dist/atomic/{p-b8beb062.entry.js → p-0007beed.entry.js} +2 -2
  28. package/dist/atomic/{p-9c091b29.entry.js → p-0077ba58.entry.js} +2 -2
  29. package/dist/atomic/p-0077ba58.entry.js.map +1 -0
  30. package/dist/atomic/{p-07d19b22.entry.js → p-01e9f7b0.entry.js} +2 -2
  31. package/dist/atomic/p-01e9f7b0.entry.js.map +1 -0
  32. package/dist/atomic/{p-446b788b.entry.js → p-0674783d.entry.js} +2 -2
  33. package/dist/atomic/p-0674783d.entry.js.map +1 -0
  34. package/dist/atomic/{p-1234c69e.js → p-0f046687.js} +1 -1
  35. package/dist/atomic/p-0f046687.js.map +1 -0
  36. package/dist/atomic/{p-a24a8702.entry.js → p-0f3df0e6.entry.js} +2 -2
  37. package/dist/atomic/{p-85749286.entry.js → p-11dd759c.entry.js} +2 -2
  38. package/dist/atomic/{p-d1d012bc.entry.js → p-16914fd4.entry.js} +2 -2
  39. package/dist/atomic/{p-10f25780.entry.js → p-1b491649.entry.js} +2 -2
  40. package/dist/atomic/p-1b491649.entry.js.map +1 -0
  41. package/dist/atomic/{p-7b6843d6.entry.js → p-2e00152f.entry.js} +2 -2
  42. package/dist/atomic/{p-7969276e.entry.js → p-2e028d26.entry.js} +2 -2
  43. package/dist/atomic/{p-bdfd2e76.entry.js → p-391c26ba.entry.js} +2 -2
  44. package/dist/atomic/p-391c26ba.entry.js.map +1 -0
  45. package/dist/atomic/p-3dc06261.js.map +1 -1
  46. package/dist/atomic/{p-28cea2b1.entry.js → p-494c57a0.entry.js} +2 -2
  47. package/dist/atomic/{p-64dc1a62.entry.js → p-4e77fe24.entry.js} +2 -2
  48. package/dist/atomic/p-61f9c3f7.js.map +1 -1
  49. package/dist/atomic/{p-9d3858df.entry.js → p-66eeb9f8.entry.js} +2 -2
  50. package/dist/atomic/p-66eeb9f8.entry.js.map +1 -0
  51. package/dist/atomic/{p-e53f3fe2.entry.js → p-6cf521a3.entry.js} +2 -2
  52. package/dist/atomic/{p-55b7c67f.entry.js → p-76489bf6.entry.js} +2 -2
  53. package/dist/atomic/{p-be04b3b0.entry.js → p-7d2a47f5.entry.js} +2 -2
  54. package/dist/atomic/{p-d2db2d70.js → p-86428057.js} +1 -1
  55. package/dist/atomic/p-86428057.js.map +1 -0
  56. package/dist/atomic/{p-741cfe8d.entry.js → p-89fbc54c.entry.js} +2 -2
  57. package/dist/atomic/{p-e14019fd.entry.js → p-8bb323e8.entry.js} +2 -2
  58. package/dist/atomic/{p-8edfd289.entry.js → p-a0b3c6e2.entry.js} +2 -2
  59. package/dist/atomic/{p-800ffc7e.js → p-be5e8359.js} +2 -2
  60. package/dist/atomic/{p-800ffc7e.js.map → p-be5e8359.js.map} +1 -1
  61. package/dist/atomic/{p-f7ae7657.entry.js → p-c874a70b.entry.js} +2 -2
  62. package/dist/atomic/{p-174f6410.entry.js → p-c9fc93d7.entry.js} +2 -2
  63. package/dist/atomic/{p-84740eed.entry.js → p-cbaf262a.entry.js} +2 -2
  64. package/dist/atomic/{p-0ec46480.entry.js → p-d8953e30.entry.js} +2 -2
  65. package/dist/atomic/{p-5a1b0c43.entry.js → p-da185993.entry.js} +2 -2
  66. package/dist/atomic/{p-c2a06774.entry.js → p-e0169a14.entry.js} +2 -2
  67. package/dist/atomic/{p-609d801e.entry.js → p-e215ba76.entry.js} +2 -2
  68. package/dist/atomic/{p-842bd0bc.entry.js → p-e2560da8.entry.js} +2 -2
  69. package/dist/atomic/p-e2560da8.entry.js.map +1 -0
  70. package/dist/atomic/{p-a4f1e397.entry.js → p-ebb8ae5b.entry.js} +2 -2
  71. package/dist/atomic/{p-c4b07e90.entry.js → p-efe9ef19.entry.js} +2 -2
  72. package/dist/atomic/p-efe9ef19.entry.js.map +1 -0
  73. package/dist/atomic/{p-538fa6a8.entry.js → p-fae68fde.entry.js} +2 -2
  74. package/dist/atomic/{p-c8f4a164.entry.js → p-fc73190d.entry.js} +2 -2
  75. package/dist/cjs/{analytics-config-90c18094.js → analytics-config-d10e762b.js} +2 -2
  76. package/dist/cjs/analytics-config-d10e762b.js.map +1 -0
  77. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  78. package/dist/cjs/atomic-color-facet.cjs.entry.js +1 -1
  79. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  80. package/dist/cjs/atomic-field-condition.cjs.entry.js +1 -1
  81. package/dist/cjs/atomic-folded-result-list.cjs.entry.js +3 -3
  82. package/dist/cjs/atomic-folded-result-list.cjs.entry.js.map +1 -1
  83. package/dist/cjs/atomic-generated-answer.cjs.entry.js +1 -1
  84. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +3 -3
  85. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js.map +1 -1
  86. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  87. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  88. package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js +1 -1
  89. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +3 -3
  90. package/dist/cjs/atomic-insight-result-children.cjs.entry.js.map +1 -1
  91. package/dist/cjs/atomic-insight-result-template.cjs.entry.js +1 -1
  92. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +1 -1
  93. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  94. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  95. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  96. package/dist/cjs/atomic-product-field-condition.cjs.entry.js +1 -1
  97. package/dist/cjs/atomic-rating-facet.cjs.entry.js +1 -1
  98. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +1 -1
  99. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  100. package/dist/cjs/atomic-recs-result-template.cjs.entry.js +1 -1
  101. package/dist/cjs/atomic-result-children-template.cjs.entry.js +1 -1
  102. package/dist/cjs/atomic-result-children.cjs.entry.js +3 -3
  103. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  104. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  105. package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
  106. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  107. package/dist/cjs/atomic-result-list.cjs.entry.js.map +1 -1
  108. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +1 -1
  109. package/dist/cjs/atomic-result-template.cjs.entry.js +1 -1
  110. package/dist/cjs/atomic-search-interface.cjs.entry.js +2 -2
  111. package/dist/cjs/atomic-segmented-facet.cjs.entry.js +1 -1
  112. package/dist/cjs/atomic-smart-snippet.cjs.entry.js +1 -1
  113. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  114. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  115. package/dist/cjs/atomic-tab-manager.cjs.entry.js.map +1 -1
  116. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +1 -1
  117. package/dist/cjs/{props-utils-dd638419.js → props-utils-1e4ba1b0.js} +4 -1
  118. package/dist/cjs/props-utils-1e4ba1b0.js.map +1 -0
  119. package/dist/cjs/stencil-item-decorators-43a96f33.js.map +1 -1
  120. package/dist/cjs/stencil-item-list-common-013ad9a0.js.map +1 -1
  121. package/dist/cjs/{item-c460c5a3.js → unfolded-item-148d21d6.js} +1 -1
  122. package/dist/cjs/unfolded-item-148d21d6.js.map +1 -0
  123. package/dist/cjs/version.cjs.js +2 -2
  124. package/dist/esm/{analytics-config-e5bd4e1b.js → analytics-config-e2c4641d.js} +2 -2
  125. package/dist/esm/analytics-config-e2c4641d.js.map +1 -0
  126. package/dist/esm/atomic-category-facet.entry.js +1 -1
  127. package/dist/esm/atomic-color-facet.entry.js +1 -1
  128. package/dist/esm/atomic-facet.entry.js +1 -1
  129. package/dist/esm/atomic-field-condition.entry.js +1 -1
  130. package/dist/esm/atomic-folded-result-list.entry.js +2 -2
  131. package/dist/esm/atomic-folded-result-list.entry.js.map +1 -1
  132. package/dist/esm/atomic-generated-answer.entry.js +1 -1
  133. package/dist/esm/atomic-insight-folded-result-list.entry.js +2 -2
  134. package/dist/esm/atomic-insight-folded-result-list.entry.js.map +1 -1
  135. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  136. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  137. package/dist/esm/atomic-insight-result-children-template.entry.js +1 -1
  138. package/dist/esm/atomic-insight-result-children.entry.js +2 -2
  139. package/dist/esm/atomic-insight-result-children.entry.js.map +1 -1
  140. package/dist/esm/atomic-insight-result-template.entry.js +1 -1
  141. package/dist/esm/atomic-insight-timeframe-facet.entry.js +1 -1
  142. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  143. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  144. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  145. package/dist/esm/atomic-product-field-condition.entry.js +1 -1
  146. package/dist/esm/atomic-rating-facet.entry.js +1 -1
  147. package/dist/esm/atomic-rating-range-facet.entry.js +1 -1
  148. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  149. package/dist/esm/atomic-recs-result-template.entry.js +1 -1
  150. package/dist/esm/atomic-result-children-template.entry.js +1 -1
  151. package/dist/esm/atomic-result-children.entry.js +2 -2
  152. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  153. package/dist/esm/atomic-result-link.entry.js +1 -1
  154. package/dist/esm/atomic-result-link.entry.js.map +1 -1
  155. package/dist/esm/atomic-result-list.entry.js +1 -1
  156. package/dist/esm/atomic-result-list.entry.js.map +1 -1
  157. package/dist/esm/atomic-result-localized-text.entry.js +1 -1
  158. package/dist/esm/atomic-result-template.entry.js +1 -1
  159. package/dist/esm/atomic-search-interface.entry.js +2 -2
  160. package/dist/esm/atomic-segmented-facet.entry.js +1 -1
  161. package/dist/esm/atomic-smart-snippet.entry.js +1 -1
  162. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  163. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  164. package/dist/esm/atomic-tab-manager.entry.js.map +1 -1
  165. package/dist/esm/atomic-timeframe-facet.entry.js +1 -1
  166. package/dist/esm/{props-utils-8e3d7f26.js → props-utils-e17fa18c.js} +4 -1
  167. package/dist/esm/props-utils-e17fa18c.js.map +1 -0
  168. package/dist/esm/stencil-item-decorators-6c453c11.js.map +1 -1
  169. package/dist/esm/stencil-item-list-common-ddc6fb51.js.map +1 -1
  170. package/dist/esm/{item-813944d1.js → unfolded-item-c5795c0f.js} +1 -1
  171. package/dist/esm/unfolded-item-c5795c0f.js.map +1 -0
  172. package/dist/esm/version.js +2 -2
  173. package/dist/types/components/common/item-list/item-list-common.d.ts +1 -1
  174. package/dist/types/components/common/item-list/stencil-display-table.d.ts +1 -1
  175. package/dist/types/components/common/item-list/stencil-item-list-common.d.ts +1 -1
  176. package/dist/types/components/common/item-list/table-layout.d.ts +1 -1
  177. package/dist/types/components/search/tabs/atomic-tab-manager/atomic-tab-manager.d.ts +6 -0
  178. package/dist/types/utils/props-utils.d.ts +3 -0
  179. package/docs/atomic-docs.json +49 -1
  180. package/package.json +5 -5
  181. package/dist/atomic/components/item.js.map +0 -1
  182. package/dist/atomic/p-07d19b22.entry.js.map +0 -1
  183. package/dist/atomic/p-10f25780.entry.js.map +0 -1
  184. package/dist/atomic/p-1234c69e.js.map +0 -1
  185. package/dist/atomic/p-446b788b.entry.js.map +0 -1
  186. package/dist/atomic/p-842bd0bc.entry.js.map +0 -1
  187. package/dist/atomic/p-9c091b29.entry.js.map +0 -1
  188. package/dist/atomic/p-9d3858df.entry.js.map +0 -1
  189. package/dist/atomic/p-bdfd2e76.entry.js.map +0 -1
  190. package/dist/atomic/p-c4b07e90.entry.js.map +0 -1
  191. package/dist/atomic/p-d2db2d70.js.map +0 -1
  192. package/dist/cjs/analytics-config-90c18094.js.map +0 -1
  193. package/dist/cjs/item-c460c5a3.js.map +0 -1
  194. package/dist/cjs/props-utils-dd638419.js.map +0 -1
  195. package/dist/esm/analytics-config-e5bd4e1b.js.map +0 -1
  196. package/dist/esm/item-813944d1.js.map +0 -1
  197. package/dist/esm/props-utils-8e3d7f26.js.map +0 -1
  198. /package/dist/atomic/components/components/common/{interface/item.js → item-list/unfolded-item.js} +0 -0
  199. /package/dist/atomic/{p-b8beb062.entry.js.map → p-0007beed.entry.js.map} +0 -0
  200. /package/dist/atomic/{p-a24a8702.entry.js.map → p-0f3df0e6.entry.js.map} +0 -0
  201. /package/dist/atomic/{p-85749286.entry.js.map → p-11dd759c.entry.js.map} +0 -0
  202. /package/dist/atomic/{p-d1d012bc.entry.js.map → p-16914fd4.entry.js.map} +0 -0
  203. /package/dist/atomic/{p-7b6843d6.entry.js.map → p-2e00152f.entry.js.map} +0 -0
  204. /package/dist/atomic/{p-7969276e.entry.js.map → p-2e028d26.entry.js.map} +0 -0
  205. /package/dist/atomic/{p-28cea2b1.entry.js.map → p-494c57a0.entry.js.map} +0 -0
  206. /package/dist/atomic/{p-64dc1a62.entry.js.map → p-4e77fe24.entry.js.map} +0 -0
  207. /package/dist/atomic/{p-e53f3fe2.entry.js.map → p-6cf521a3.entry.js.map} +0 -0
  208. /package/dist/atomic/{p-55b7c67f.entry.js.map → p-76489bf6.entry.js.map} +0 -0
  209. /package/dist/atomic/{p-be04b3b0.entry.js.map → p-7d2a47f5.entry.js.map} +0 -0
  210. /package/dist/atomic/{p-741cfe8d.entry.js.map → p-89fbc54c.entry.js.map} +0 -0
  211. /package/dist/atomic/{p-e14019fd.entry.js.map → p-8bb323e8.entry.js.map} +0 -0
  212. /package/dist/atomic/{p-8edfd289.entry.js.map → p-a0b3c6e2.entry.js.map} +0 -0
  213. /package/dist/atomic/{p-f7ae7657.entry.js.map → p-c874a70b.entry.js.map} +0 -0
  214. /package/dist/atomic/{p-174f6410.entry.js.map → p-c9fc93d7.entry.js.map} +0 -0
  215. /package/dist/atomic/{p-84740eed.entry.js.map → p-cbaf262a.entry.js.map} +0 -0
  216. /package/dist/atomic/{p-0ec46480.entry.js.map → p-d8953e30.entry.js.map} +0 -0
  217. /package/dist/atomic/{p-5a1b0c43.entry.js.map → p-da185993.entry.js.map} +0 -0
  218. /package/dist/atomic/{p-c2a06774.entry.js.map → p-e0169a14.entry.js.map} +0 -0
  219. /package/dist/atomic/{p-609d801e.entry.js.map → p-e215ba76.entry.js.map} +0 -0
  220. /package/dist/atomic/{p-a4f1e397.entry.js.map → p-ebb8ae5b.entry.js.map} +0 -0
  221. /package/dist/atomic/{p-538fa6a8.entry.js.map → p-fae68fde.entry.js.map} +0 -0
  222. /package/dist/atomic/{p-c8f4a164.entry.js.map → p-fc73190d.entry.js.map} +0 -0
  223. /package/dist/types/components/common/{interface/item.d.ts → item-list/unfolded-item.d.ts} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-result-children.entry.cjs.js","mappings":"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","names":["elementHasAncestorTag","ItemTemplateProvider","h","buildInteractiveResult","extractUnfoldedItem","buildCustomEvent","Fragment","ShowHideButton","CollectionGuard","ChildrenWrapper","ResultChildrenGuard","InitializeBindings","ChildTemplatesContext","FoldedItemListContext","ResultContext","ItemDisplayConfigContext","FoldedItemListStateContext"],"sources":["src/components/search/result-lists/atomic-result-children/atomic-result-children.pcss?tag=atomic-result-children&encapsulation=shadow","src/components/search/result-lists/atomic-result-children/atomic-result-children.tsx"],"sourcesContent":["@import '../../../../components/common/result-children/result-children.pcss';\n","import {\n buildInteractiveResult,\n FoldedResult,\n FoldedResultList,\n FoldedResultListState,\n} from '@coveo/headless';\nimport {\n Component,\n Element,\n State,\n h,\n Listen,\n Prop,\n Fragment,\n} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {elementHasAncestorTag} from '../../../../utils/utils';\nimport {extractUnfoldedItem} from '../../../common/interface/item';\nimport {\n FoldedItemListContext,\n FoldedItemListStateContext,\n} from '../../../common/item-list/item-list-decorators';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {\n ChildTemplatesContext,\n ChildTemplatesContextEvent,\n DisplayConfig,\n ItemDisplayConfigContext,\n} from '../../../common/item-list/stencil-item-decorators';\nimport {ItemDisplayImageSize} from '../../../common/layout/display-options';\nimport {ChildrenWrapper} from '../../../common/result-children/children-wrapper';\nimport {CollectionGuard} from '../../../common/result-children/collection-guard';\nimport {ResultChildrenGuard} from '../../../common/result-children/guard';\nimport {ShowHideButton} from '../../../common/result-children/show-hide-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../../result-template-components/result-template-decorators';\n\nconst childTemplateComponent = 'atomic-result-children-template';\nconst componentTag = 'atomic-result-children';\n\n/**\n * The `atomic-result-children` component is responsible for displaying child results by applying one or more child result templates.\n * Includes two slots, \"before-children\" and \"after-children\", which allow for rendering content before and after the list of children,\n * only when children exist.\n * @part children-root - The wrapper for the message when there are child results\n * @part no-result-root - The wrapper for the message when there are no results.\n * @part show-hide-button - The button that allows to collapse or show all child results.\n * @slot before-children - Slot that allows rendering content before the list of children, only when children exist.\n * @slot after-children - Slot that allows rendering content after the list of children, only when children exist.\n */\n@Component({\n tag: 'atomic-result-children',\n styleUrl: 'atomic-result-children.pcss',\n shadow: true,\n})\nexport class AtomicResultChildren implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ChildTemplatesContext()\n public itemTemplateProvider?: ItemTemplateProvider;\n @FoldedItemListContext()\n private foldedResultList!: FoldedResultList;\n @ResultContext({folded: true})\n private result!: FoldedResult;\n @ItemDisplayConfigContext()\n private displayConfig!: DisplayConfig;\n private initialChildren!: FoldedResult[];\n\n @Element() public host!: HTMLDivElement;\n @State() public error!: Error;\n @State() private resultTemplateRegistered = false;\n @State() private templateHasError = false;\n @FoldedItemListStateContext()\n @State()\n private foldedResultListState!: FoldedResultListState;\n @State()\n private showInitialChildren = false;\n\n /**\n * Whether to inherit templates defined in a parent atomic-result-children. Only works for the second level of child nesting.\n */\n @Prop() inheritTemplates = false;\n /**\n * The expected size of the image displayed in the children results.\n */\n @Prop({reflect: true}) imageSize?: ItemDisplayImageSize;\n /**\n * The non-localized copy for an empty result state. An empty string will result in the component being hidden.\n */\n @Prop() public noResultText = 'no-documents-related';\n\n @Listen('atomic/resolveChildTemplates')\n public resolveChildTemplates(event: ChildTemplatesContextEvent) {\n event.preventDefault();\n event.detail(this.itemTemplateProvider);\n }\n\n public initialize() {\n if (this.inheritTemplates) {\n return;\n }\n\n const childrenTemplates = Array.from(\n this.host.querySelectorAll(childTemplateComponent)\n ).filter(\n (template) => !elementHasAncestorTag(template, childTemplateComponent)\n );\n\n if (!childrenTemplates.length) {\n this.error = new Error(\n `The \"${componentTag}\" component requires at least one \"${childTemplateComponent}\" component.`\n );\n return;\n }\n\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: false,\n templateElements: childrenTemplates,\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n }\n\n private renderChild(child: FoldedResult, isLast: boolean) {\n const content = this.itemTemplateProvider?.getTemplateContent(child.result);\n\n if (!content) {\n return;\n }\n\n const key =\n child.result.uniqueId +\n child.children.map((child) => child.result.uniqueId);\n return (\n <atomic-result\n key={key}\n content={content}\n result={child}\n interactiveResult={buildInteractiveResult(this.bindings.engine, {\n options: {result: extractUnfoldedItem(child)},\n })}\n store={this.bindings.store}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n classes={`child-result ${isLast ? 'last-child' : ''}`.trim()}\n ></atomic-result>\n );\n }\n\n public componentWillRender() {\n if (this.initialChildren || !this.collection) {\n return;\n }\n\n this.initialChildren = this.collection.children;\n }\n\n private get collection() {\n return this.foldedResultListState.results.find((r) => {\n return r.result.uniqueId === this.result.result.uniqueId;\n });\n }\n private loadFullCollection() {\n this.loadedFullCollection = true;\n this.host.dispatchEvent(\n buildCustomEvent('atomic/loadCollection', this.collection)\n );\n }\n private toggleShowInitialChildren = () => {\n if (this.showInitialChildren) {\n this.foldedResultList.logShowMoreFoldedResults(this.result.result);\n } else {\n this.foldedResultList.logShowLessFoldedResults();\n }\n\n this.showInitialChildren = !this.showInitialChildren;\n };\n\n @State() private loadedFullCollection = false;\n\n private renderCollection() {\n const collection = this.collection!;\n\n const children = this.showInitialChildren\n ? this.initialChildren\n : collection.children;\n\n const showShouldButtons =\n this.loadedFullCollection || collection.moreResultsAvailable;\n\n return (\n <Fragment>\n {showShouldButtons && (\n <ShowHideButton\n moreResultsAvailable={collection.moreResultsAvailable}\n loadFullCollection={() => this.loadFullCollection()}\n showInitialChildren={this.showInitialChildren}\n toggleShowInitialChildren={this.toggleShowInitialChildren}\n loadAllResults={this.bindings.i18n.t('load-all-results')}\n collapseResults={this.bindings.i18n.t('collapse-results')}\n />\n )}\n\n <CollectionGuard\n isLoadingMoreResults={collection.isLoadingMoreResults}\n moreResultsAvailable={collection.moreResultsAvailable}\n hasChildren={collection.children.length > 0}\n numberOfChildren={collection.children.length}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n noResultText={this.bindings.i18n.t(this.noResultText)}\n >\n <ChildrenWrapper hasChildren={collection.children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n </CollectionGuard>\n </Fragment>\n );\n }\n\n private renderFoldedResult() {\n if (this.result.children.length === 0) {\n return;\n }\n\n const children = this.result.children;\n\n return (\n <ChildrenWrapper hasChildren={children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n );\n }\n\n public render() {\n return (\n <ResultChildrenGuard\n inheritTemplates={this.inheritTemplates}\n resultTemplateRegistered={this.resultTemplateRegistered}\n templateHasError={this.templateHasError}\n >\n {this.collection ? this.renderCollection() : this.renderFoldedResult()}\n </ResultChildrenGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-children.entry.cjs.js","mappings":"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","names":["elementHasAncestorTag","ItemTemplateProvider","h","buildInteractiveResult","extractUnfoldedItem","buildCustomEvent","Fragment","ShowHideButton","CollectionGuard","ChildrenWrapper","ResultChildrenGuard","InitializeBindings","ChildTemplatesContext","FoldedItemListContext","ResultContext","ItemDisplayConfigContext","FoldedItemListStateContext"],"sources":["src/components/search/result-lists/atomic-result-children/atomic-result-children.pcss?tag=atomic-result-children&encapsulation=shadow","src/components/search/result-lists/atomic-result-children/atomic-result-children.tsx"],"sourcesContent":["@import '../../../../components/common/result-children/result-children.pcss';\n","import {\n buildInteractiveResult,\n FoldedResult,\n FoldedResultList,\n FoldedResultListState,\n} from '@coveo/headless';\nimport {\n Component,\n Element,\n State,\n h,\n Listen,\n Prop,\n Fragment,\n} from '@stencil/core';\nimport {buildCustomEvent} from '../../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {elementHasAncestorTag} from '../../../../utils/utils';\nimport {extractUnfoldedItem} from '../../../common/item-list/unfolded-item';\nimport {\n FoldedItemListContext,\n FoldedItemListStateContext,\n} from '../../../common/item-list/item-list-decorators';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {\n ChildTemplatesContext,\n ChildTemplatesContextEvent,\n DisplayConfig,\n ItemDisplayConfigContext,\n} from '../../../common/item-list/stencil-item-decorators';\nimport {ItemDisplayImageSize} from '../../../common/layout/display-options';\nimport {ChildrenWrapper} from '../../../common/result-children/children-wrapper';\nimport {CollectionGuard} from '../../../common/result-children/collection-guard';\nimport {ResultChildrenGuard} from '../../../common/result-children/guard';\nimport {ShowHideButton} from '../../../common/result-children/show-hide-button';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../../result-template-components/result-template-decorators';\n\nconst childTemplateComponent = 'atomic-result-children-template';\nconst componentTag = 'atomic-result-children';\n\n/**\n * The `atomic-result-children` component is responsible for displaying child results by applying one or more child result templates.\n * Includes two slots, \"before-children\" and \"after-children\", which allow for rendering content before and after the list of children,\n * only when children exist.\n * @part children-root - The wrapper for the message when there are child results\n * @part no-result-root - The wrapper for the message when there are no results.\n * @part show-hide-button - The button that allows to collapse or show all child results.\n * @slot before-children - Slot that allows rendering content before the list of children, only when children exist.\n * @slot after-children - Slot that allows rendering content after the list of children, only when children exist.\n */\n@Component({\n tag: 'atomic-result-children',\n styleUrl: 'atomic-result-children.pcss',\n shadow: true,\n})\nexport class AtomicResultChildren implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n @ChildTemplatesContext()\n public itemTemplateProvider?: ItemTemplateProvider;\n @FoldedItemListContext()\n private foldedResultList!: FoldedResultList;\n @ResultContext({folded: true})\n private result!: FoldedResult;\n @ItemDisplayConfigContext()\n private displayConfig!: DisplayConfig;\n private initialChildren!: FoldedResult[];\n\n @Element() public host!: HTMLDivElement;\n @State() public error!: Error;\n @State() private resultTemplateRegistered = false;\n @State() private templateHasError = false;\n @FoldedItemListStateContext()\n @State()\n private foldedResultListState!: FoldedResultListState;\n @State()\n private showInitialChildren = false;\n\n /**\n * Whether to inherit templates defined in a parent atomic-result-children. Only works for the second level of child nesting.\n */\n @Prop() inheritTemplates = false;\n /**\n * The expected size of the image displayed in the children results.\n */\n @Prop({reflect: true}) imageSize?: ItemDisplayImageSize;\n /**\n * The non-localized copy for an empty result state. An empty string will result in the component being hidden.\n */\n @Prop() public noResultText = 'no-documents-related';\n\n @Listen('atomic/resolveChildTemplates')\n public resolveChildTemplates(event: ChildTemplatesContextEvent) {\n event.preventDefault();\n event.detail(this.itemTemplateProvider);\n }\n\n public initialize() {\n if (this.inheritTemplates) {\n return;\n }\n\n const childrenTemplates = Array.from(\n this.host.querySelectorAll(childTemplateComponent)\n ).filter(\n (template) => !elementHasAncestorTag(template, childTemplateComponent)\n );\n\n if (!childrenTemplates.length) {\n this.error = new Error(\n `The \"${componentTag}\" component requires at least one \"${childTemplateComponent}\" component.`\n );\n return;\n }\n\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: false,\n templateElements: childrenTemplates,\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n }\n\n private renderChild(child: FoldedResult, isLast: boolean) {\n const content = this.itemTemplateProvider?.getTemplateContent(child.result);\n\n if (!content) {\n return;\n }\n\n const key =\n child.result.uniqueId +\n child.children.map((child) => child.result.uniqueId);\n return (\n <atomic-result\n key={key}\n content={content}\n result={child}\n interactiveResult={buildInteractiveResult(this.bindings.engine, {\n options: {result: extractUnfoldedItem(child)},\n })}\n store={this.bindings.store}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n classes={`child-result ${isLast ? 'last-child' : ''}`.trim()}\n ></atomic-result>\n );\n }\n\n public componentWillRender() {\n if (this.initialChildren || !this.collection) {\n return;\n }\n\n this.initialChildren = this.collection.children;\n }\n\n private get collection() {\n return this.foldedResultListState.results.find((r) => {\n return r.result.uniqueId === this.result.result.uniqueId;\n });\n }\n private loadFullCollection() {\n this.loadedFullCollection = true;\n this.host.dispatchEvent(\n buildCustomEvent('atomic/loadCollection', this.collection)\n );\n }\n private toggleShowInitialChildren = () => {\n if (this.showInitialChildren) {\n this.foldedResultList.logShowMoreFoldedResults(this.result.result);\n } else {\n this.foldedResultList.logShowLessFoldedResults();\n }\n\n this.showInitialChildren = !this.showInitialChildren;\n };\n\n @State() private loadedFullCollection = false;\n\n private renderCollection() {\n const collection = this.collection!;\n\n const children = this.showInitialChildren\n ? this.initialChildren\n : collection.children;\n\n const showShouldButtons =\n this.loadedFullCollection || collection.moreResultsAvailable;\n\n return (\n <Fragment>\n {showShouldButtons && (\n <ShowHideButton\n moreResultsAvailable={collection.moreResultsAvailable}\n loadFullCollection={() => this.loadFullCollection()}\n showInitialChildren={this.showInitialChildren}\n toggleShowInitialChildren={this.toggleShowInitialChildren}\n loadAllResults={this.bindings.i18n.t('load-all-results')}\n collapseResults={this.bindings.i18n.t('collapse-results')}\n />\n )}\n\n <CollectionGuard\n isLoadingMoreResults={collection.isLoadingMoreResults}\n moreResultsAvailable={collection.moreResultsAvailable}\n hasChildren={collection.children.length > 0}\n numberOfChildren={collection.children.length}\n density={this.displayConfig.density}\n imageSize={this.imageSize || this.displayConfig.imageSize}\n noResultText={this.bindings.i18n.t(this.noResultText)}\n >\n <ChildrenWrapper hasChildren={collection.children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n </CollectionGuard>\n </Fragment>\n );\n }\n\n private renderFoldedResult() {\n if (this.result.children.length === 0) {\n return;\n }\n\n const children = this.result.children;\n\n return (\n <ChildrenWrapper hasChildren={children.length > 0}>\n {children.map((child, i) =>\n this.renderChild(child, i === children.length - 1)\n )}\n </ChildrenWrapper>\n );\n }\n\n public render() {\n return (\n <ResultChildrenGuard\n inheritTemplates={this.inheritTemplates}\n resultTemplateRegistered={this.resultTemplateRegistered}\n templateHasError={this.templateHasError}\n >\n {this.collection ? this.renderCollection() : this.renderFoldedResult()}\n </ResultChildrenGuard>\n );\n }\n}\n"],"version":3}
@@ -50,7 +50,7 @@ const AtomicResultLink = class {
50
50
  const href = bueno.isUndefined(this.hrefTemplate)
51
51
  ? this.result.clickUri
52
52
  : resultUtils.buildStringTemplateFromResult(this.hrefTemplate, this.result, this.bindings);
53
- return (index.h(stencilItemLink.LinkWithItemAnalytics, { key: '3fc36762124d5af7fc1b4f70bad32af4bb82f7cd', href: href, onSelect: () => this.interactiveResult.select(), onBeginDelayedSelect: () => this.interactiveResult.beginDelayedSelect(), onCancelPendingSelect: () => this.interactiveResult.cancelPendingSelect(), attributes: this.linkAttributes, stopPropagation: this.stopPropagation }, this.hasDefaultSlot ? (index.h("slot", null)) : (index.h("atomic-result-text", { field: "title", default: "no-title" }))));
53
+ return (index.h(stencilItemLink.LinkWithItemAnalytics, { key: 'fcce177919d39a7a666a46b7cf541c7e1fbb6c49', href: href, onSelect: () => this.interactiveResult.select(), onBeginDelayedSelect: () => this.interactiveResult.beginDelayedSelect(), onCancelPendingSelect: () => this.interactiveResult.cancelPendingSelect(), attributes: this.linkAttributes, stopPropagation: this.stopPropagation }, this.hasDefaultSlot ? (index.h("slot", null)) : (index.h("atomic-result-text", { field: "title", default: "no-title" }))));
54
54
  }
55
55
  get host() { return index.getElement(this); }
56
56
  };
@@ -1 +1 @@
1
- {"file":"atomic-result-link.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,+/2DAA+/2D,CAAC;AAC5h3D,+BAAe,mBAAmB;;;;;;;;;;;;MC4BrB,gBAAgB;;;;;IA0BpB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrBA,2BAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAACC,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAGC,wCAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM;QACX,MAAM,IAAI,GAAGC,iBAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpBC,yCAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACEC,QAACC,qCAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAC/C,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClBD,qBAAQ,KAERA,gCACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;AAxE4B;IAA5BE,sCAAkB,EAAE;kDAA4B;AAGxB;IAAxBC,sCAAa,EAAE;gDAAkC;AACd;IAAnCC,iDAAwB,EAAE;2DAA+C;;;;;","names":["buildCustomEvent","getDefaultSlotFromHost","getAttributesFromLinkSlot","isUndefined","buildStringTemplateFromResult","h","LinkWithItemAnalytics","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@import '../../../../utils/tailwind-utilities/link-style.tw.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/interface/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"],"version":3}
1
+ {"file":"atomic-result-link.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,+/2DAA+/2D,CAAC;AAC5h3D,+BAAe,mBAAmB;;;;;;;;;;;;MC4BrB,gBAAgB;;;;;IA0BpB,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,CACrBA,2BAAgB,CACd,+BAA+B,EAC/B,CAAC,eAAwB;YACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,CACF,CACF,CAAC;KACH;IAEM,iBAAiB;QACtB,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,CAACC,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAGC,wCAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,MAAM;QACX,MAAM,IAAI,GAAGC,iBAAW,CAAC,IAAI,CAAC,YAAY,CAAC;cACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;cACpBC,yCAA6B,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QAEN,QACEC,QAACC,qCAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAC/C,oBAAoB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EACvE,qBAAqB,EAAE,MACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAE9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,IAEpC,IAAI,CAAC,cAAc,IAClBD,qBAAQ,KAERA,gCACE,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,UAAU,GACE,CACvB,CACqB,EACxB;KACH;;;AAxE4B;IAA5BE,sCAAkB,EAAE;kDAA4B;AAGxB;IAAxBC,sCAAa,EAAE;gDAAkC;AACd;IAAnCC,iDAAwB,EAAE;2DAA+C;;;;;","names":["buildCustomEvent","getDefaultSlotFromHost","getAttributesFromLinkSlot","isUndefined","buildStringTemplateFromResult","h","LinkWithItemAnalytics","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@import '../../../../utils/tailwind-utilities/link-style.tw.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"],"version":3}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const headless = require('@coveo/headless');
7
7
  const initializationUtils = require('./initialization-utils-62dc9852.js');
8
- const propsUtils = require('./props-utils-dd638419.js');
8
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
9
9
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
10
10
  const utils = require('./utils-7153ae6b.js');
11
11
  const stencilPlaceholders = require('./stencil-placeholders-b8c896fa.js');
@@ -1 +1 @@
1
- {"file":"atomic-result-list.entry.cjs.js","mappings":"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","names":["tableElementTagName","h","shouldDisplayOnCurrentTab","Hidden","Fragment","randomID","FocusTargetController","buildTabManager","buildResultList","buildResultsPerPage","ItemTemplateProvider","ItemListCommon","createAppLoadedListener","ItemListGuard","DisplayWrapper","ResultsPlaceholdersGuard","ItemDisplayGuard","buildInteractiveResult","getItemListDisplayClasses","DisplayGrid","InitializeBindings","BindStateToController","ArrayProp"],"sources":["src/components/common/item-list/stencil-display-table.tsx","src/components/common/tabs/tab-guard.tsx","src/components/search/result-lists/atomic-result-list/atomic-result-list.pcss?tag=atomic-result-list&encapsulation=shadow","src/components/search/result-lists/atomic-result-list/atomic-result-list.tsx"],"sourcesContent":["// The Lit equivalent of this file is table-layout.ts\nimport {FunctionalComponent, VNode, h} from '@stencil/core';\nimport {tableElementTagName} from '../../search/atomic-table-result/table-element-utils.js';\nimport {AnyItem} from '../interface/item.js';\nimport {ItemRenderingFunction} from './stencil-item-list-common.js';\n\ninterface TableColumnsProps {\n templateContentForFirstItem: DocumentFragment;\n firstItem: AnyItem;\n itemRenderingFunction?: ItemRenderingFunction;\n}\n\nexport interface DisplayTableProps extends TableColumnsProps {\n logger: Pick<Console, 'error'>;\n host: HTMLElement;\n listClasses: string;\n}\n\nexport interface TableDataProps extends TableColumnsProps {\n key: string;\n}\n\nexport interface DisplayTableRowProps {\n key: string;\n rowIndex: number;\n setRef: (element?: HTMLElement) => void;\n}\n\nconst getFieldTableColumns = (props: TableColumnsProps) => {\n if (props.itemRenderingFunction) {\n return getFieldTableColumnsFromRenderingFunction(props);\n }\n return getFieldTableColumnsFromHTMLTemplate(props);\n};\n\nconst getFieldTableColumnsFromRenderingFunction = (\n props: Pick<TableColumnsProps, 'itemRenderingFunction' | 'firstItem'>\n): HTMLAtomicTableElementElement[] => {\n const contentOfRenderingFunction = document.createElement('div');\n\n const contentOfRenderingFunctionAsString = props.itemRenderingFunction!(\n props.firstItem,\n document.createElement('div')\n );\n contentOfRenderingFunction.innerHTML = contentOfRenderingFunctionAsString;\n\n return Array.from(\n contentOfRenderingFunction.querySelectorAll(tableElementTagName)\n );\n};\n\nconst getFieldTableColumnsFromHTMLTemplate = (\n props: Pick<DisplayTableProps, 'templateContentForFirstItem'>\n): HTMLAtomicTableElementElement[] =>\n Array.from(\n props.templateContentForFirstItem.querySelectorAll(tableElementTagName)\n );\n\nexport const DisplayTable: FunctionalComponent<DisplayTableProps> = (\n props,\n children\n) => {\n const fieldColumns = getFieldTableColumns(props);\n\n if (!fieldColumns.length) {\n props.logger.error(\n 'atomic-table-element elements missing in the template to display columns.',\n props.host\n );\n }\n\n return (\n <table class={`list-root ${props.listClasses}`} part=\"result-table\">\n <thead part=\"result-table-heading\">\n <tr part=\"result-table-heading-row\">\n {fieldColumns.map((column) => (\n <th part=\"result-table-heading-cell\">\n <atomic-text value={column.getAttribute('label')!}></atomic-text>\n </th>\n ))}\n </tr>\n </thead>\n <tbody part=\"result-table-body\">{...children}</tbody>\n </table>\n );\n};\n\nexport const DisplayTableRow: FunctionalComponent<DisplayTableRowProps> = (\n {key, rowIndex, setRef},\n children\n) => {\n return (\n <tr\n key={key}\n part={\n 'result-table-row ' +\n (rowIndex % 2 === 1 ? 'result-table-row-even' : 'result-table-row-odd')\n }\n ref={(element) => setRef(element)}\n >\n {...children}\n </tr>\n );\n};\n\nexport const DisplayTableData: FunctionalComponent<\n TableDataProps & {\n renderItem: (content: HTMLAtomicTableElementElement) => VNode;\n }\n> = (props) => {\n const fieldColumns = getFieldTableColumns(props);\n\n return fieldColumns.map((column) => {\n const key = column.getAttribute('label')! + props.key;\n return (\n <td key={key} part=\"result-table-cell\">\n {props.renderItem(column)}\n </td>\n );\n });\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {Hidden} from '../stencil-hidden';\n\ninterface TabGuardProps {\n tabsIncluded: string | string[];\n tabsExcluded: string | string[];\n activeTab: string;\n}\n\nexport const TabGuard: FunctionalComponent<TabGuardProps> = (\n {tabsIncluded, tabsExcluded, activeTab},\n children\n) => {\n if (\n !shouldDisplayOnCurrentTab([...tabsIncluded], [...tabsExcluded], activeTab)\n ) {\n return <Hidden></Hidden>;\n }\n return <Fragment>{...children}</Fragment>;\n};\n","@import '../../../../global/global.pcss';\n@import '../../../common/item-list/styles/placeholders.pcss';\n@import '../../../common/item-list/styles/table-display.pcss';\n@import '../../../common/item-list/styles/list-display.pcss';\n@import '../../../common/item-list/styles/grid-display.pcss';\n\natomic-result:not(.hydrated) {\n visibility: hidden;\n}\n","import {\n ResultList,\n ResultListState,\n buildResultList,\n ResultsPerPageState,\n ResultsPerPage,\n buildResultsPerPage,\n buildInteractiveResult,\n Result,\n TabManager,\n TabManagerState,\n buildTabManager,\n} from '@coveo/headless';\nimport {Component, Element, State, Prop, Method, h, Watch} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {randomID} from '../../../../utils/utils';\nimport {ResultsPlaceholdersGuard} from '../../../common/atomic-result-placeholder/stencil-placeholders';\nimport {createAppLoadedListener} from '../../../common/interface/store';\nimport {ItemDisplayGuard} from '../../../common/item-list/item-display-guard';\nimport {ItemListGuard} from '../../../common/item-list/item-list-guard';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {DisplayGrid} from '../../../common/item-list/stencil-display-grid';\nimport {\n DisplayTableData,\n DisplayTable,\n DisplayTableRow,\n} from '../../../common/item-list/stencil-display-table';\nimport {DisplayWrapper} from '../../../common/item-list/stencil-display-wrapper';\nimport {\n ItemListCommon,\n ItemRenderingFunction,\n} from '../../../common/item-list/stencil-item-list-common';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n ItemDisplayLayout,\n getItemListDisplayClasses,\n} from '../../../common/layout/display-options';\nimport {TabGuard} from '../../../common/tabs/tab-guard';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-result-list` component is responsible for displaying query results by applying one or more result templates.\n *\n * @slot default - The default slot where the result templates are inserted.\n * @part result-list - The element containing every result of a result list\n * @part outline - The element displaying an outline or a divider around a result\n * @part result-list-grid-clickable-container - The parent of the result & the clickable link encompassing it, when results are displayed as a grid\n * @part result-list-grid-clickable - The clickable link encompassing the result when results are displayed as a grid\n * @part result-table - The element of the result table containing a heading and a body\n * @part result-table-heading - The element containing the row of cells in the result table's heading\n * @part result-table-heading-row - The element containing cells of the result table's heading\n * @part result-table-heading-cell - The element representing a cell of the result table's heading\n * @part result-table-body - The element containing the rows of the result table's body\n * @part result-table-row - The element containing the cells of a row in the result table's body\n * @part result-table-row-odd - The element containing the cells of an odd row in the result table's body\n * @part result-table-row-even - The element containing the cells of an even row in the result table's body\n * @part result-table-cell - The element representing a cell of the result table's body\n */\n@Component({\n tag: 'atomic-result-list',\n styleUrl: 'atomic-result-list.pcss',\n shadow: true,\n})\nexport class AtomicResultList implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public resultList!: ResultList;\n public resultsPerPage!: ResultsPerPage;\n private loadingFlag = randomID('firstResultLoaded-');\n private itemRenderingFunction: ItemRenderingFunction;\n private nextNewResultTarget?: FocusTargetController;\n private itemTemplateProvider!: ItemTemplateProvider;\n private resultListCommon!: ItemListCommon;\n\n @Element() public host!: HTMLDivElement;\n\n @BindStateToController('resultList')\n @State()\n private resultListState!: ResultListState;\n @BindStateToController('resultsPerPage')\n @State()\n private resultsPerPageState!: ResultsPerPageState;\n public tabManager!: TabManager;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() private resultTemplateRegistered = false;\n @State() public error!: Error;\n @State() private isAppLoaded = false;\n\n @State() private templateHasError = false;\n\n /**\n * The desired layout to use when displaying results. Layouts affect how many results to display per row and how visually distinct they are from each other.\n */\n @Prop({reflect: true}) public display: ItemDisplayLayout = 'list';\n /**\n * The spacing of various elements in the result list, including the gap between results, the gap between parts of a result, and the font sizes of different parts in a result.\n */\n @Prop({reflect: true}) public density: ItemDisplayDensity = 'normal';\n\n /**\n * The expected size of the image displayed in the results.\n */\n @Prop({reflect: true, mutable: true})\n public imageSize: ItemDisplayImageSize = 'icon';\n\n /**\n * The tabs on which the result list can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-result-list tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-result-list snippet>\n * ```\n * If you don't set this property, the result list can be displayed on any tab. Otherwise, the result list can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this result list must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-result-list tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-result-list>\n * ```\n * If you don't set this property, the result list can be displayed on any tab. Otherwise, the result list won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * Sets a rendering function to bypass the standard HTML template mechanism for rendering results.\n * You can use this function while working with web frameworks that don't use plain HTML syntax, e.g., React, Angular or Vue.\n *\n * Do not use this method if you integrate Atomic in a plain HTML deployment.\n *\n * @param resultRenderingFunction\n */\n @Method() public async setRenderFunction(\n resultRenderingFunction: ItemRenderingFunction\n ) {\n this.itemRenderingFunction = resultRenderingFunction;\n }\n\n public get focusTarget() {\n if (!this.nextNewResultTarget) {\n this.nextNewResultTarget = new FocusTargetController(this);\n }\n return this.nextNewResultTarget;\n }\n\n public initialize() {\n if (this.host.innerHTML.includes('<atomic-result-children')) {\n console.warn(\n 'Folded results will not render any children for the \"atomic-result-list\". Please use \"atomic-folded-result-list\" instead.'\n );\n }\n this.tabManager = buildTabManager(this.bindings.engine);\n this.resultList = buildResultList(this.bindings.engine);\n this.resultsPerPage = buildResultsPerPage(this.bindings.engine);\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: true,\n templateElements: Array.from(\n this.host.querySelectorAll('atomic-result-template')\n ),\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n\n this.resultListCommon = new ItemListCommon({\n engineSubscribe: this.bindings.engine.subscribe,\n getCurrentNumberOfItems: () => this.resultListState.results.length,\n getIsLoading: () => this.resultListState.isLoading,\n host: this.host,\n loadingFlag: this.loadingFlag,\n nextNewItemTarget: this.focusTarget,\n store: this.bindings.store,\n });\n createAppLoadedListener(this.bindings.store, (isAppLoaded) => {\n this.isAppLoaded = isAppLoaded;\n });\n }\n\n @Watch('tabManagerState')\n watchTabManagerState(\n newValue: {activeTab: string},\n oldValue: {activeTab: string}\n ) {\n if (newValue?.activeTab !== oldValue?.activeTab) {\n this.bindings.store.unsetLoadingFlag(this.loadingFlag);\n }\n }\n\n public render() {\n this.resultListCommon.updateBreakpoints();\n const listClasses = this.computeListDisplayClasses();\n\n return (\n <TabGuard\n tabsIncluded={this.tabsIncluded}\n tabsExcluded={this.tabsExcluded}\n activeTab={this.tabManagerState.activeTab}\n >\n <ItemListGuard\n hasError={this.resultListState.hasError}\n hasTemplate={this.resultTemplateRegistered}\n templateHasError={this.itemTemplateProvider.hasError}\n firstRequestExecuted={this.resultListState.firstSearchExecuted}\n hasItems={this.resultListState.hasResults}\n >\n <DisplayWrapper display={this.display} listClasses={listClasses}>\n <ResultsPlaceholdersGuard\n density={this.density}\n display={this.display}\n imageSize={this.imageSize}\n displayPlaceholders={!this.isAppLoaded}\n numberOfPlaceholders={this.resultsPerPageState.numberOfResults}\n ></ResultsPlaceholdersGuard>\n <ItemDisplayGuard\n firstRequestExecuted={this.resultListState.firstSearchExecuted}\n hasItems={this.resultListState.hasResults}\n >\n {this.display === 'table'\n ? this.renderAsTable()\n : this.display === 'grid'\n ? this.renderAsGrid()\n : this.renderAsList()}\n </ItemDisplayGuard>\n </DisplayWrapper>\n </ItemListGuard>\n </TabGuard>\n );\n }\n\n private getPropsForAtomicResult(result: Result) {\n return {\n interactiveResult: buildInteractiveResult(this.bindings.engine, {\n options: {result},\n }),\n result,\n renderingFunction: this.itemRenderingFunction,\n loadingFlag: this.loadingFlag,\n key: this.resultListCommon.getResultId(\n result.uniqueId,\n this.resultListState.searchResponseId,\n this.density,\n this.imageSize\n ),\n content: this.itemTemplateProvider.getTemplateContent(result),\n linkContent:\n this.display === 'grid'\n ? this.itemTemplateProvider.getLinkTemplateContent(result)\n : this.itemTemplateProvider.getEmptyLinkTemplateContent(),\n store: this.bindings.store,\n density: this.density,\n imageSize: this.imageSize,\n display: this.display,\n };\n }\n\n private computeListDisplayClasses() {\n const displayPlaceholders = !this.isAppLoaded;\n\n return getItemListDisplayClasses(\n this.display,\n this.density,\n this.imageSize,\n this.resultListState.firstSearchExecuted &&\n this.resultListState.isLoading,\n displayPlaceholders\n );\n }\n\n private renderAsGrid() {\n return this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <DisplayGrid\n selectorForItem=\"atomic-result\"\n item={result}\n {...propsForAtomicResult.interactiveResult}\n setRef={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n >\n <atomic-result {...this} {...propsForAtomicResult}></atomic-result>\n </DisplayGrid>\n );\n });\n }\n\n private renderAsTable() {\n if (!this.resultListState.hasResults) {\n return;\n }\n const listClasses = this.computeListDisplayClasses();\n const firstItem = this.resultListState.results[0];\n\n const propsForTableColumns = {\n firstItem,\n templateContentForFirstItem:\n this.itemTemplateProvider.getTemplateContent(firstItem),\n };\n\n return (\n <DisplayTable\n {...propsForTableColumns}\n listClasses={listClasses}\n logger={this.bindings.engine.logger}\n itemRenderingFunction={this.itemRenderingFunction}\n host={this.host}\n >\n {this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <DisplayTableRow\n {...propsForAtomicResult}\n rowIndex={i}\n setRef={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n >\n <DisplayTableData\n {...propsForTableColumns}\n {...propsForAtomicResult}\n renderItem={(content) => {\n return (\n <atomic-result\n {...propsForAtomicResult}\n content={content}\n ></atomic-result>\n );\n }}\n ></DisplayTableData>\n </DisplayTableRow>\n );\n })}\n </DisplayTable>\n );\n }\n\n private renderAsList() {\n return this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <atomic-result\n {...propsForAtomicResult}\n ref={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n part=\"outline\"\n ></atomic-result>\n );\n });\n }\n}\n"],"version":3}
1
+ {"file":"atomic-result-list.entry.cjs.js","mappings":"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","names":["tableElementTagName","h","shouldDisplayOnCurrentTab","Hidden","Fragment","randomID","FocusTargetController","buildTabManager","buildResultList","buildResultsPerPage","ItemTemplateProvider","ItemListCommon","createAppLoadedListener","ItemListGuard","DisplayWrapper","ResultsPlaceholdersGuard","ItemDisplayGuard","buildInteractiveResult","getItemListDisplayClasses","DisplayGrid","InitializeBindings","BindStateToController","ArrayProp"],"sources":["src/components/common/item-list/stencil-display-table.tsx","src/components/common/tabs/tab-guard.tsx","src/components/search/result-lists/atomic-result-list/atomic-result-list.pcss?tag=atomic-result-list&encapsulation=shadow","src/components/search/result-lists/atomic-result-list/atomic-result-list.tsx"],"sourcesContent":["// The Lit equivalent of this file is table-layout.ts\nimport {FunctionalComponent, VNode, h} from '@stencil/core';\nimport {tableElementTagName} from '../../search/atomic-table-result/table-element-utils.js';\nimport {AnyItem} from './unfolded-item.js';\nimport {ItemRenderingFunction} from './stencil-item-list-common.js';\n\ninterface TableColumnsProps {\n templateContentForFirstItem: DocumentFragment;\n firstItem: AnyItem;\n itemRenderingFunction?: ItemRenderingFunction;\n}\n\nexport interface DisplayTableProps extends TableColumnsProps {\n logger: Pick<Console, 'error'>;\n host: HTMLElement;\n listClasses: string;\n}\n\nexport interface TableDataProps extends TableColumnsProps {\n key: string;\n}\n\nexport interface DisplayTableRowProps {\n key: string;\n rowIndex: number;\n setRef: (element?: HTMLElement) => void;\n}\n\nconst getFieldTableColumns = (props: TableColumnsProps) => {\n if (props.itemRenderingFunction) {\n return getFieldTableColumnsFromRenderingFunction(props);\n }\n return getFieldTableColumnsFromHTMLTemplate(props);\n};\n\nconst getFieldTableColumnsFromRenderingFunction = (\n props: Pick<TableColumnsProps, 'itemRenderingFunction' | 'firstItem'>\n): HTMLAtomicTableElementElement[] => {\n const contentOfRenderingFunction = document.createElement('div');\n\n const contentOfRenderingFunctionAsString = props.itemRenderingFunction!(\n props.firstItem,\n document.createElement('div')\n );\n contentOfRenderingFunction.innerHTML = contentOfRenderingFunctionAsString;\n\n return Array.from(\n contentOfRenderingFunction.querySelectorAll(tableElementTagName)\n );\n};\n\nconst getFieldTableColumnsFromHTMLTemplate = (\n props: Pick<DisplayTableProps, 'templateContentForFirstItem'>\n): HTMLAtomicTableElementElement[] =>\n Array.from(\n props.templateContentForFirstItem.querySelectorAll(tableElementTagName)\n );\n\nexport const DisplayTable: FunctionalComponent<DisplayTableProps> = (\n props,\n children\n) => {\n const fieldColumns = getFieldTableColumns(props);\n\n if (!fieldColumns.length) {\n props.logger.error(\n 'atomic-table-element elements missing in the template to display columns.',\n props.host\n );\n }\n\n return (\n <table class={`list-root ${props.listClasses}`} part=\"result-table\">\n <thead part=\"result-table-heading\">\n <tr part=\"result-table-heading-row\">\n {fieldColumns.map((column) => (\n <th part=\"result-table-heading-cell\">\n <atomic-text value={column.getAttribute('label')!}></atomic-text>\n </th>\n ))}\n </tr>\n </thead>\n <tbody part=\"result-table-body\">{...children}</tbody>\n </table>\n );\n};\n\nexport const DisplayTableRow: FunctionalComponent<DisplayTableRowProps> = (\n {key, rowIndex, setRef},\n children\n) => {\n return (\n <tr\n key={key}\n part={\n 'result-table-row ' +\n (rowIndex % 2 === 1 ? 'result-table-row-even' : 'result-table-row-odd')\n }\n ref={(element) => setRef(element)}\n >\n {...children}\n </tr>\n );\n};\n\nexport const DisplayTableData: FunctionalComponent<\n TableDataProps & {\n renderItem: (content: HTMLAtomicTableElementElement) => VNode;\n }\n> = (props) => {\n const fieldColumns = getFieldTableColumns(props);\n\n return fieldColumns.map((column) => {\n const key = column.getAttribute('label')! + props.key;\n return (\n <td key={key} part=\"result-table-cell\">\n {props.renderItem(column)}\n </td>\n );\n });\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {Hidden} from '../stencil-hidden';\n\ninterface TabGuardProps {\n tabsIncluded: string | string[];\n tabsExcluded: string | string[];\n activeTab: string;\n}\n\nexport const TabGuard: FunctionalComponent<TabGuardProps> = (\n {tabsIncluded, tabsExcluded, activeTab},\n children\n) => {\n if (\n !shouldDisplayOnCurrentTab([...tabsIncluded], [...tabsExcluded], activeTab)\n ) {\n return <Hidden></Hidden>;\n }\n return <Fragment>{...children}</Fragment>;\n};\n","@import '../../../../global/global.pcss';\n@import '../../../common/item-list/styles/placeholders.pcss';\n@import '../../../common/item-list/styles/table-display.pcss';\n@import '../../../common/item-list/styles/list-display.pcss';\n@import '../../../common/item-list/styles/grid-display.pcss';\n\natomic-result:not(.hydrated) {\n visibility: hidden;\n}\n","import {\n ResultList,\n ResultListState,\n buildResultList,\n ResultsPerPageState,\n ResultsPerPage,\n buildResultsPerPage,\n buildInteractiveResult,\n Result,\n TabManager,\n TabManagerState,\n buildTabManager,\n} from '@coveo/headless';\nimport {Component, Element, State, Prop, Method, h, Watch} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {randomID} from '../../../../utils/utils';\nimport {ResultsPlaceholdersGuard} from '../../../common/atomic-result-placeholder/stencil-placeholders';\nimport {createAppLoadedListener} from '../../../common/interface/store';\nimport {ItemDisplayGuard} from '../../../common/item-list/item-display-guard';\nimport {ItemListGuard} from '../../../common/item-list/item-list-guard';\nimport {ItemTemplateProvider} from '../../../common/item-list/item-template-provider';\nimport {DisplayGrid} from '../../../common/item-list/stencil-display-grid';\nimport {\n DisplayTableData,\n DisplayTable,\n DisplayTableRow,\n} from '../../../common/item-list/stencil-display-table';\nimport {DisplayWrapper} from '../../../common/item-list/stencil-display-wrapper';\nimport {\n ItemListCommon,\n ItemRenderingFunction,\n} from '../../../common/item-list/stencil-item-list-common';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n ItemDisplayLayout,\n getItemListDisplayClasses,\n} from '../../../common/layout/display-options';\nimport {TabGuard} from '../../../common/tabs/tab-guard';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-result-list` component is responsible for displaying query results by applying one or more result templates.\n *\n * @slot default - The default slot where the result templates are inserted.\n * @part result-list - The element containing every result of a result list\n * @part outline - The element displaying an outline or a divider around a result\n * @part result-list-grid-clickable-container - The parent of the result & the clickable link encompassing it, when results are displayed as a grid\n * @part result-list-grid-clickable - The clickable link encompassing the result when results are displayed as a grid\n * @part result-table - The element of the result table containing a heading and a body\n * @part result-table-heading - The element containing the row of cells in the result table's heading\n * @part result-table-heading-row - The element containing cells of the result table's heading\n * @part result-table-heading-cell - The element representing a cell of the result table's heading\n * @part result-table-body - The element containing the rows of the result table's body\n * @part result-table-row - The element containing the cells of a row in the result table's body\n * @part result-table-row-odd - The element containing the cells of an odd row in the result table's body\n * @part result-table-row-even - The element containing the cells of an even row in the result table's body\n * @part result-table-cell - The element representing a cell of the result table's body\n */\n@Component({\n tag: 'atomic-result-list',\n styleUrl: 'atomic-result-list.pcss',\n shadow: true,\n})\nexport class AtomicResultList implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public resultList!: ResultList;\n public resultsPerPage!: ResultsPerPage;\n private loadingFlag = randomID('firstResultLoaded-');\n private itemRenderingFunction: ItemRenderingFunction;\n private nextNewResultTarget?: FocusTargetController;\n private itemTemplateProvider!: ItemTemplateProvider;\n private resultListCommon!: ItemListCommon;\n\n @Element() public host!: HTMLDivElement;\n\n @BindStateToController('resultList')\n @State()\n private resultListState!: ResultListState;\n @BindStateToController('resultsPerPage')\n @State()\n private resultsPerPageState!: ResultsPerPageState;\n public tabManager!: TabManager;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() private resultTemplateRegistered = false;\n @State() public error!: Error;\n @State() private isAppLoaded = false;\n\n @State() private templateHasError = false;\n\n /**\n * The desired layout to use when displaying results. Layouts affect how many results to display per row and how visually distinct they are from each other.\n */\n @Prop({reflect: true}) public display: ItemDisplayLayout = 'list';\n /**\n * The spacing of various elements in the result list, including the gap between results, the gap between parts of a result, and the font sizes of different parts in a result.\n */\n @Prop({reflect: true}) public density: ItemDisplayDensity = 'normal';\n\n /**\n * The expected size of the image displayed in the results.\n */\n @Prop({reflect: true, mutable: true})\n public imageSize: ItemDisplayImageSize = 'icon';\n\n /**\n * The tabs on which the result list can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-result-list tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-result-list snippet>\n * ```\n * If you don't set this property, the result list can be displayed on any tab. Otherwise, the result list can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this result list must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-result-list tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-result-list>\n * ```\n * If you don't set this property, the result list can be displayed on any tab. Otherwise, the result list won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * Sets a rendering function to bypass the standard HTML template mechanism for rendering results.\n * You can use this function while working with web frameworks that don't use plain HTML syntax, e.g., React, Angular or Vue.\n *\n * Do not use this method if you integrate Atomic in a plain HTML deployment.\n *\n * @param resultRenderingFunction\n */\n @Method() public async setRenderFunction(\n resultRenderingFunction: ItemRenderingFunction\n ) {\n this.itemRenderingFunction = resultRenderingFunction;\n }\n\n public get focusTarget() {\n if (!this.nextNewResultTarget) {\n this.nextNewResultTarget = new FocusTargetController(this);\n }\n return this.nextNewResultTarget;\n }\n\n public initialize() {\n if (this.host.innerHTML.includes('<atomic-result-children')) {\n console.warn(\n 'Folded results will not render any children for the \"atomic-result-list\". Please use \"atomic-folded-result-list\" instead.'\n );\n }\n this.tabManager = buildTabManager(this.bindings.engine);\n this.resultList = buildResultList(this.bindings.engine);\n this.resultsPerPage = buildResultsPerPage(this.bindings.engine);\n this.itemTemplateProvider = new ItemTemplateProvider({\n includeDefaultTemplate: true,\n templateElements: Array.from(\n this.host.querySelectorAll('atomic-result-template')\n ),\n getResultTemplateRegistered: () => this.resultTemplateRegistered,\n getTemplateHasError: () => this.templateHasError,\n setResultTemplateRegistered: (value: boolean) => {\n this.resultTemplateRegistered = value;\n },\n setTemplateHasError: (value: boolean) => {\n this.templateHasError = value;\n },\n bindings: this.bindings,\n });\n\n this.resultListCommon = new ItemListCommon({\n engineSubscribe: this.bindings.engine.subscribe,\n getCurrentNumberOfItems: () => this.resultListState.results.length,\n getIsLoading: () => this.resultListState.isLoading,\n host: this.host,\n loadingFlag: this.loadingFlag,\n nextNewItemTarget: this.focusTarget,\n store: this.bindings.store,\n });\n createAppLoadedListener(this.bindings.store, (isAppLoaded) => {\n this.isAppLoaded = isAppLoaded;\n });\n }\n\n @Watch('tabManagerState')\n watchTabManagerState(\n newValue: {activeTab: string},\n oldValue: {activeTab: string}\n ) {\n if (newValue?.activeTab !== oldValue?.activeTab) {\n this.bindings.store.unsetLoadingFlag(this.loadingFlag);\n }\n }\n\n public render() {\n this.resultListCommon.updateBreakpoints();\n const listClasses = this.computeListDisplayClasses();\n\n return (\n <TabGuard\n tabsIncluded={this.tabsIncluded}\n tabsExcluded={this.tabsExcluded}\n activeTab={this.tabManagerState.activeTab}\n >\n <ItemListGuard\n hasError={this.resultListState.hasError}\n hasTemplate={this.resultTemplateRegistered}\n templateHasError={this.itemTemplateProvider.hasError}\n firstRequestExecuted={this.resultListState.firstSearchExecuted}\n hasItems={this.resultListState.hasResults}\n >\n <DisplayWrapper display={this.display} listClasses={listClasses}>\n <ResultsPlaceholdersGuard\n density={this.density}\n display={this.display}\n imageSize={this.imageSize}\n displayPlaceholders={!this.isAppLoaded}\n numberOfPlaceholders={this.resultsPerPageState.numberOfResults}\n ></ResultsPlaceholdersGuard>\n <ItemDisplayGuard\n firstRequestExecuted={this.resultListState.firstSearchExecuted}\n hasItems={this.resultListState.hasResults}\n >\n {this.display === 'table'\n ? this.renderAsTable()\n : this.display === 'grid'\n ? this.renderAsGrid()\n : this.renderAsList()}\n </ItemDisplayGuard>\n </DisplayWrapper>\n </ItemListGuard>\n </TabGuard>\n );\n }\n\n private getPropsForAtomicResult(result: Result) {\n return {\n interactiveResult: buildInteractiveResult(this.bindings.engine, {\n options: {result},\n }),\n result,\n renderingFunction: this.itemRenderingFunction,\n loadingFlag: this.loadingFlag,\n key: this.resultListCommon.getResultId(\n result.uniqueId,\n this.resultListState.searchResponseId,\n this.density,\n this.imageSize\n ),\n content: this.itemTemplateProvider.getTemplateContent(result),\n linkContent:\n this.display === 'grid'\n ? this.itemTemplateProvider.getLinkTemplateContent(result)\n : this.itemTemplateProvider.getEmptyLinkTemplateContent(),\n store: this.bindings.store,\n density: this.density,\n imageSize: this.imageSize,\n display: this.display,\n };\n }\n\n private computeListDisplayClasses() {\n const displayPlaceholders = !this.isAppLoaded;\n\n return getItemListDisplayClasses(\n this.display,\n this.density,\n this.imageSize,\n this.resultListState.firstSearchExecuted &&\n this.resultListState.isLoading,\n displayPlaceholders\n );\n }\n\n private renderAsGrid() {\n return this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <DisplayGrid\n selectorForItem=\"atomic-result\"\n item={result}\n {...propsForAtomicResult.interactiveResult}\n setRef={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n >\n <atomic-result {...this} {...propsForAtomicResult}></atomic-result>\n </DisplayGrid>\n );\n });\n }\n\n private renderAsTable() {\n if (!this.resultListState.hasResults) {\n return;\n }\n const listClasses = this.computeListDisplayClasses();\n const firstItem = this.resultListState.results[0];\n\n const propsForTableColumns = {\n firstItem,\n templateContentForFirstItem:\n this.itemTemplateProvider.getTemplateContent(firstItem),\n };\n\n return (\n <DisplayTable\n {...propsForTableColumns}\n listClasses={listClasses}\n logger={this.bindings.engine.logger}\n itemRenderingFunction={this.itemRenderingFunction}\n host={this.host}\n >\n {this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <DisplayTableRow\n {...propsForAtomicResult}\n rowIndex={i}\n setRef={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n >\n <DisplayTableData\n {...propsForTableColumns}\n {...propsForAtomicResult}\n renderItem={(content) => {\n return (\n <atomic-result\n {...propsForAtomicResult}\n content={content}\n ></atomic-result>\n );\n }}\n ></DisplayTableData>\n </DisplayTableRow>\n );\n })}\n </DisplayTable>\n );\n }\n\n private renderAsList() {\n return this.resultListState.results.map((result, i) => {\n const propsForAtomicResult = this.getPropsForAtomicResult(result);\n return (\n <atomic-result\n {...propsForAtomicResult}\n ref={(element) =>\n element && this.resultListCommon.setNewResultRef(element, i)\n }\n part=\"outline\"\n ></atomic-result>\n );\n });\n }\n}\n"],"version":3}
@@ -6,7 +6,7 @@ const index = require('./index-757bc886.js');
6
6
  const bueno = require('@coveo/bueno');
7
7
  const headless = require('@coveo/headless');
8
8
  const initializationUtils = require('./initialization-utils-62dc9852.js');
9
- const propsUtils = require('./props-utils-dd638419.js');
9
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const resultTemplateDecorators = require('./result-template-decorators-432d11a9.js');
11
11
  require('./dom-utils-d4790328.js');
12
12
  require('./event-utils-9bfcf3c5.js');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
- const propsUtils = require('./props-utils-dd638419.js');
6
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
7
7
  const resultTemplateCommon = require('./result-template-common-88359dad.js');
8
8
  require('@coveo/bueno');
9
9
  require('./utils-7153ae6b.js');
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const initQueue = require('./init-queue-a18aa323.js');
7
7
  const headless = require('@coveo/headless');
8
- const analyticsConfig = require('./analytics-config-90c18094.js');
8
+ const analyticsConfig = require('./analytics-config-d10e762b.js');
9
9
  const localStorageUtils = require('./local-storage-utils-380ce22b.js');
10
- const propsUtils = require('./props-utils-dd638419.js');
10
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
11
11
  const searchLayout = require('./search-layout-419e7eb4.js');
12
12
  const replaceBreakpoint = require('./replace-breakpoint-9e1c0efa.js');
13
13
  const store = require('./store-82abd941.js');
@@ -6,7 +6,7 @@ const index = require('./index-757bc886.js');
6
6
  const headless = require('@coveo/headless');
7
7
  const fieldUtils = require('./field-utils-a715deca.js');
8
8
  const initializationUtils = require('./initialization-utils-62dc9852.js');
9
- const propsUtils = require('./props-utils-dd638419.js');
9
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const dependsOn = require('./depends-on-0d4e4f15.js');
11
11
  const stencilFacetValuesGroup = require('./stencil-facet-values-group-07b50fc0.js');
12
12
  const stencilButton = require('./stencil-button-aa4c0879.js');
@@ -7,7 +7,7 @@ const smartSnippetCommon = require('./smart-snippet-common-abb0cdce.js');
7
7
  const utils = require('./utils-7153ae6b.js');
8
8
  const headless = require('@coveo/headless');
9
9
  const initializationUtils = require('./initialization-utils-62dc9852.js');
10
- const propsUtils = require('./props-utils-dd638419.js');
10
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
11
11
  const tabUtils = require('./tab-utils-d202a0aa.js');
12
12
  const attributesSlot = require('./attributes-slot-5799cb5b.js');
13
13
  require('./stencil-button-aa4c0879.js');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
- const propsUtils = require('./props-utils-dd638419.js');
6
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
7
7
  require('@coveo/bueno');
8
8
  require('./utils-7153ae6b.js');
9
9
  require('./purify-85b542e2.js');
@@ -62,7 +62,7 @@ const AtomicTabManager = class {
62
62
  });
63
63
  }
64
64
  render() {
65
- return (index.h(index.Host, { key: '51deeb9f56009f83954ab00c955065dcb740e319' }, index.h("atomic-tab-bar", { key: '7e637249b5b4db12f3a81f777e9fcb6cab66210d' }, index.h("div", { key: 'd19cc7766d8b1c5123bcc2cbb3d5482e541e63d8', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (index.h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
65
+ return (index.h(index.Host, { key: '7cd0c527958f8e7d567757a2d7a58be8d1a9506a' }, index.h("atomic-tab-bar", { key: '7c6da82acd2aa8b2bca0099342cb45f63c6b9399' }, index.h("div", { key: 'cee2ac96ea7cabfa37139590d8279cb04edc75bf', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (index.h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
66
66
  defaultValue: tab.label,
67
67
  }), select: () => {
68
68
  if (!tab.tabController.state.isActive) {
@@ -1 +1 @@
1
- {"file":"atomic-tab-manager.entry.cjs.js","mappings":";;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,wn3DAAwn3D,CAAC;AACrp3D,+BAAe,mBAAmB;;;;;;;;;;;;MC+BrB,gBAAgB;;;QASnB,SAAI,GAAwD,EAAE,CAAC;;;;QAK/D,4BAAuB,GAAa,KAAK,CAAC;;uCAAN,KAAK;;;IAI1C,UAAU;QACf,IAAI,CAAC,UAAU,GAAGA,wBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAEzE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CACpB,4EAA4E,CAC7E,CAAC;YACF,OAAO;SACR;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CACpB,oEAAoE,CACrE,CAAC;gBACF,OAAO;aACR;YACD,MAAM,aAAa,GAAGC,iBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnD,OAAO,EAAE;oBACP,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,EAAE,EAAE,UAAU,CAAC,IAAI;oBACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;iBACtD;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,aAAa;aACd,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,QACEC,QAACC,UAAI,uDACHD,+EACEA,kEACE,IAAI,EAAC,MAAM,gBACA,UAAU,EACrB,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,mDAAmD,IAExD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACjBA,+BACE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EACnD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;gBACrC,YAAY,EAAE,GAAG,CAAC,KAAK;aACxB,CAAC,EACF,MAAM,EAAE;gBACN,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACrC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;iBAC5B;aACF,GACkB,CACtB,CAAC,CACE,CACS,CACZ,EACP;KACH;;;AA/E4B;IAA5BE,sCAAkB,EAAE;kDAA4B;AAGzC;IAFPC,yCAAqB,CAAC,YAAY,CAAC;yDAEM;;;;;","names":["buildTabManager","buildTab","h","Host","InitializeBindings","BindStateToController"],"sources":["src/components/search/tabs/atomic-tab-manager/atomic-tab-manager.pcss?tag=atomic-tab-manager&encapsulation=shadow","src/components/search/tabs/atomic-tab-manager/atomic-tab-manager.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n:host {\n atomic-tab-bar::part(popover-button) {\n @apply m-0 px-2 pb-1 text-left text-xl font-normal text-black sm:px-6;\n }\n\n atomic-tab-bar::part(value-label) {\n @apply font-normal;\n }\n\n ::part(popover-tab) {\n @apply font-normal;\n }\n}\n","import {\n TabManager,\n TabManagerState,\n buildTabManager,\n Tab,\n buildTab,\n} from '@coveo/headless';\nimport {Component, h, Element, State, Prop, Host} from '@stencil/core';\nimport {\n BindStateToController,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-tab-manager` component manages a collection of tabs,\n * allowing users to switch between them. Each child `atomic-tab` represents an\n * individual tab within the manager.\n *\n * @part button-container - The container for the tab button.\n * @part button-container-active - The container for the active tab button.\n * @part tab-button - The tab button.\n * @part tab-button-active - The container for the active tab button.\n * @part dropdown-area - The dropdown area.\n * @part tab-area - The tab area.\n * @slot default\n */\n@Component({\n tag: 'atomic-tab-manager',\n styleUrl: 'atomic-tab-manager.pcss',\n shadow: true,\n})\nexport class AtomicTabManager {\n @InitializeBindings() public bindings!: Bindings;\n @BindStateToController('tabManager')\n @State()\n private tabManagerState!: TabManagerState;\n @Element()\n private host!: HTMLElement;\n public tabManager!: TabManager;\n\n private tabs: {label: string; name: string; tabController: Tab}[] = [];\n\n /**\n * Whether to clear the filters when the active tab changes.\n */\n @Prop() clearFiltersOnTabChange?: boolean = false;\n\n @State() public error!: Error;\n\n public initialize() {\n this.tabManager = buildTabManager(this.bindings.engine);\n\n const tabElements = Array.from(this.host.querySelectorAll('atomic-tab'));\n\n if (tabElements.length === 0) {\n this.error = new Error(\n 'The \"atomic-tab-manager\" element requires at least one \"atomic-tab\" child.'\n );\n return;\n }\n\n tabElements.forEach((tabElement) => {\n if (!tabElement.name) {\n this.error = new Error(\n 'The \"name\" attribute must be defined on all \"atomic-tab\" children.'\n );\n return;\n }\n const tabController = buildTab(this.bindings.engine, {\n options: {\n expression: tabElement.expression,\n id: tabElement.name,\n clearFiltersOnTabChange: this.clearFiltersOnTabChange,\n },\n });\n\n this.tabs.push({\n label: tabElement.label,\n name: tabElement.name,\n tabController,\n });\n });\n }\n\n render() {\n return (\n <Host>\n <atomic-tab-bar>\n <div\n role=\"list\"\n aria-label=\"tab-area\"\n part=\"tab-area\"\n class=\"border-neutral mb-2 flex w-full flex-row border-b\"\n >\n {this.tabs.map((tab) => (\n <atomic-tab-button\n active={this.tabManagerState.activeTab === tab.name}\n label={this.bindings.i18n.t(tab.label, {\n defaultValue: tab.label,\n })}\n select={() => {\n if (!tab.tabController.state.isActive) {\n tab.tabController.select();\n }\n }}\n ></atomic-tab-button>\n ))}\n </div>\n </atomic-tab-bar>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-tab-manager.entry.cjs.js","mappings":";;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,wn3DAAwn3D,CAAC;AACrp3D,+BAAe,mBAAmB;;;;;;;;;;;;MCqCrB,gBAAgB;;;QASnB,SAAI,GAAwD,EAAE,CAAC;;;;QAK/D,4BAAuB,GAAa,KAAK,CAAC;;uCAAN,KAAK;;;IAI1C,UAAU;QACf,IAAI,CAAC,UAAU,GAAGA,wBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAEzE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CACpB,4EAA4E,CAC7E,CAAC;YACF,OAAO;SACR;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CACpB,oEAAoE,CACrE,CAAC;gBACF,OAAO;aACR;YACD,MAAM,aAAa,GAAGC,iBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnD,OAAO,EAAE;oBACP,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,EAAE,EAAE,UAAU,CAAC,IAAI;oBACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;iBACtD;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,aAAa;aACd,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,QACEC,QAACC,UAAI,uDACHD,+EACEA,kEACE,IAAI,EAAC,MAAM,gBACA,UAAU,EACrB,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,mDAAmD,IAExD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACjBA,+BACE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EACnD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;gBACrC,YAAY,EAAE,GAAG,CAAC,KAAK;aACxB,CAAC,EACF,MAAM,EAAE;gBACN,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACrC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;iBAC5B;aACF,GACkB,CACtB,CAAC,CACE,CACS,CACZ,EACP;KACH;;;AA/E4B;IAA5BE,sCAAkB,EAAE;kDAA4B;AAGzC;IAFPC,yCAAqB,CAAC,YAAY,CAAC;yDAEM;;;;;","names":["buildTabManager","buildTab","h","Host","InitializeBindings","BindStateToController"],"sources":["src/components/search/tabs/atomic-tab-manager/atomic-tab-manager.pcss?tag=atomic-tab-manager&encapsulation=shadow","src/components/search/tabs/atomic-tab-manager/atomic-tab-manager.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n:host {\n atomic-tab-bar::part(popover-button) {\n @apply m-0 px-2 pb-1 text-left text-xl font-normal text-black sm:px-6;\n }\n\n atomic-tab-bar::part(value-label) {\n @apply font-normal;\n }\n\n ::part(popover-tab) {\n @apply font-normal;\n }\n}\n","import {\n TabManager,\n TabManagerState,\n buildTabManager,\n Tab,\n buildTab,\n} from '@coveo/headless';\nimport {Component, h, Element, State, Prop, Host} from '@stencil/core';\nimport {\n BindStateToController,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-tab-manager` component manages a collection of tabs,\n * allowing users to switch between them. Each child `atomic-tab` represents an\n * individual tab within the manager.\n *\n * @part button-container - The container for the tab button.\n * @part button-container-active - The container for the active tab button.\n * @part tab-button - The tab button.\n * @part tab-button-active - The container for the active tab button.\n * @part dropdown-area - The dropdown area.\n * @part tab-area - The tab area.\n * @part popover-button - The \"More\" button shown when the tabs are collapsed.\n * @part value-label - The label shown on the \"More\" button.\n * @part arrow-icon - The down chevron icon shown on the \"More\" button.\n * @part overflow-tabs - The list of tabs shown when the \"More\" button is clicked.\n * @part popover-tab - The individual tab buttons shown when the \"More\" button is clicked.\n * @part backdrop - The backdrop shown when the \"More\" button is clicked.\n * @slot default\n */\n@Component({\n tag: 'atomic-tab-manager',\n styleUrl: 'atomic-tab-manager.pcss',\n shadow: true,\n})\nexport class AtomicTabManager {\n @InitializeBindings() public bindings!: Bindings;\n @BindStateToController('tabManager')\n @State()\n private tabManagerState!: TabManagerState;\n @Element()\n private host!: HTMLElement;\n public tabManager!: TabManager;\n\n private tabs: {label: string; name: string; tabController: Tab}[] = [];\n\n /**\n * Whether to clear the filters when the active tab changes.\n */\n @Prop() clearFiltersOnTabChange?: boolean = false;\n\n @State() public error!: Error;\n\n public initialize() {\n this.tabManager = buildTabManager(this.bindings.engine);\n\n const tabElements = Array.from(this.host.querySelectorAll('atomic-tab'));\n\n if (tabElements.length === 0) {\n this.error = new Error(\n 'The \"atomic-tab-manager\" element requires at least one \"atomic-tab\" child.'\n );\n return;\n }\n\n tabElements.forEach((tabElement) => {\n if (!tabElement.name) {\n this.error = new Error(\n 'The \"name\" attribute must be defined on all \"atomic-tab\" children.'\n );\n return;\n }\n const tabController = buildTab(this.bindings.engine, {\n options: {\n expression: tabElement.expression,\n id: tabElement.name,\n clearFiltersOnTabChange: this.clearFiltersOnTabChange,\n },\n });\n\n this.tabs.push({\n label: tabElement.label,\n name: tabElement.name,\n tabController,\n });\n });\n }\n\n render() {\n return (\n <Host>\n <atomic-tab-bar>\n <div\n role=\"list\"\n aria-label=\"tab-area\"\n part=\"tab-area\"\n class=\"border-neutral mb-2 flex w-full flex-row border-b\"\n >\n {this.tabs.map((tab) => (\n <atomic-tab-button\n active={this.tabManagerState.activeTab === tab.name}\n label={this.bindings.i18n.t(tab.label, {\n defaultValue: tab.label,\n })}\n select={() => {\n if (!tab.tabController.state.isActive) {\n tab.tabController.select();\n }\n }}\n ></atomic-tab-button>\n ))}\n </div>\n </atomic-tab-bar>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const headless = require('@coveo/headless');
7
7
  const initializationUtils = require('./initialization-utils-62dc9852.js');
8
- const propsUtils = require('./props-utils-dd638419.js');
8
+ const propsUtils = require('./props-utils-1e4ba1b0.js');
9
9
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
10
10
  const dependsOn = require('./depends-on-0d4e4f15.js');
11
11
  const facetPlaceholder = require('./facet-placeholder-0111f0f1.js');
@@ -23,6 +23,9 @@ function MapProp(opts) {
23
23
  };
24
24
  };
25
25
  }
26
+ /**
27
+ * @deprecated In Lit, you can achieve the same behavior by using `@property({type: Array})`.
28
+ */
26
29
  function ArrayProp() {
27
30
  return (component, variableName) => {
28
31
  const { componentWillLoad } = component;
@@ -83,4 +86,4 @@ function attributesToStringMap(prefix, attributes) {
83
86
  exports.ArrayProp = ArrayProp;
84
87
  exports.MapProp = MapProp;
85
88
 
86
- //# sourceMappingURL=props-utils-dd638419.js.map
89
+ //# sourceMappingURL=props-utils-1e4ba1b0.js.map
@@ -0,0 +1 @@
1
+ {"file":"props-utils-1e4ba1b0.js","mappings":"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","names":["getElement","camelToKebab","isArray","kebabToCamel"],"sources":["src/utils/props-utils.ts"],"sourcesContent":["import {isArray} from '@coveo/bueno';\nimport {type ComponentInterface, getElement} from '@stencil/core';\nimport type {ReactiveElement} from 'lit';\nimport {camelToKebab, kebabToCamel} from './utils';\n\ninterface MapPropOptions {\n attributePrefix?: string;\n splitValues?: boolean;\n}\n\nexport function mapProperty<Element extends ReactiveElement>(\n options?: MapPropOptions\n) {\n return <\n Instance extends Element & Record<string, unknown>,\n K extends keyof Instance,\n >(\n proto: ReactiveElement,\n propertyKey: K\n ) => {\n const ctor = proto.constructor as typeof ReactiveElement;\n ctor.addInitializer((instance) => {\n const props = {};\n const prefix =\n options?.attributePrefix || camelToKebab(propertyKey.toString());\n\n mapAttributesToProp(\n prefix,\n props,\n Array.from(instance.attributes),\n options?.splitValues ?? false\n );\n\n (instance as Instance)[propertyKey] = props as Instance[K];\n });\n };\n}\n\n/**\n * @deprecated Use the `mapProperty` decorator instead.\n */\nexport function MapProp(opts?: MapPropOptions) {\n return (component: ComponentInterface, variableName: string) => {\n const {componentWillLoad} = component;\n if (!componentWillLoad) {\n console.error(\n 'The \"componentWillLoad\" lifecycle method has to be defined for the MapProp decorator to work.'\n );\n return;\n }\n\n component.componentWillLoad = function () {\n const prefix = opts?.attributePrefix || variableName;\n const variable = this[variableName];\n const attributes = getElement(this).attributes;\n mapAttributesToProp(\n prefix,\n variable,\n Array.from(attributes),\n opts?.splitValues ?? false\n );\n componentWillLoad.call(this);\n };\n };\n}\n\n/**\n * @deprecated In Lit, you can achieve the same behavior by using `@property({type: Array})`.\n */\nexport function ArrayProp() {\n return (component: ComponentInterface, variableName: string) => {\n const {componentWillLoad} = component;\n\n const attributeWithBrackets = camelToKebab(variableName);\n\n component.componentWillLoad = function () {\n const value = this[variableName];\n if (!value || isArray(value)) {\n componentWillLoad?.call(this);\n return;\n }\n\n try {\n const valueAsArray = JSON.parse(value);\n if (isArray(valueAsArray)) {\n this[variableName] = valueAsArray;\n } else {\n console.error(\n `Property ${attributeWithBrackets} should be an array`,\n getElement(this)\n );\n }\n } catch (e) {\n console.error(\n `Error while parsing attribute ${attributeWithBrackets} as array`,\n e\n );\n }\n\n componentWillLoad?.call(this);\n };\n };\n}\n\nfunction splitAttributeValueOnCommas(attributeValue: string) {\n const splitButIgnoreEscapeSymbolsExpression = /(?:\\\\.|[^,])+/g;\n const [...valuesWithEscapeSymbols] =\n attributeValue.matchAll(splitButIgnoreEscapeSymbolsExpression) ?? [];\n\n const removeEscapeSymbolsExpression = /\\\\(.)/g;\n return valuesWithEscapeSymbols.map(([valuesWithEscapeSymbols]) =>\n valuesWithEscapeSymbols.replace(removeEscapeSymbolsExpression, '$1')\n );\n}\n\nexport function mapAttributesToProp(\n prefix: string,\n mapVariable: Record<string, string | string[]>,\n attributes: {name: string; value: string}[],\n splitValues: boolean\n) {\n const map = attributesToStringMap(prefix, attributes);\n Object.assign(\n mapVariable,\n splitValues ? stringMapToStringArrayMap(map) : map\n );\n}\n\nfunction stringMapToStringArrayMap(map: Record<string, string>) {\n return Object.entries(map).reduce(\n (acc, [key, value]) => ({\n // biome-ignore lint/performance/noAccumulatingSpread: <>\n ...acc,\n [key]: splitAttributeValueOnCommas(value).map((subValue) =>\n subValue.trim()\n ),\n }),\n {}\n );\n}\n\nfunction attributesToStringMap(\n prefix: string,\n attributes: {name: string; value: string}[]\n) {\n const mapVariable: Record<string, string> = {};\n const kebabPrefix = `${camelToKebab(prefix)}-`;\n for (let i = 0; i < attributes.length; i++) {\n const attribute = attributes[i];\n if (attribute.name.indexOf(kebabPrefix) !== 0) {\n continue;\n }\n\n const property = kebabToCamel(attribute.name.replace(kebabPrefix, ''));\n mapVariable[property] = `${attribute.value}`;\n }\n return mapVariable;\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"stencil-item-decorators-43a96f33.js","mappings":"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","names":["getElement","buildCustomEvent","closest"],"sources":["src/components/common/item-list/stencil-item-decorators.tsx"],"sourcesContent":["import {closest} from '@/src/utils/dom-utils';\nimport {ComponentInterface, getElement} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport {AnyItem} from '../interface/item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\nimport {ItemTemplateProvider} from './item-template-provider';\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/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ItemContext` from \\@/src/decorators/item-list/item-context.js.\n */\nexport function ItemContext(\n opts: {parentName: string; folded: boolean} = {\n parentName: 'atomic-result',\n folded: false,\n }\n) {\n return (component: ComponentInterface, itemVariable: string) => {\n const {connectedCallback, componentWillRender, render} = component;\n component.connectedCallback = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this[itemVariable] = extractFolded(item, opts.folded);\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n this.error = new MissingParentError(\n element.nodeName.toLowerCase(),\n opts.parentName\n );\n return;\n }\n return connectedCallback && connectedCallback.call(this);\n };\n\n component.componentWillRender = function () {\n if (this.error) {\n return;\n }\n\n return componentWillRender && componentWillRender.call(this);\n };\n\n component.render = function () {\n if (this.error) {\n const element = getElement(this);\n element.remove();\n console.error(\n 'Result component is in error and has been removed from the DOM',\n this.error,\n this,\n element\n );\n return;\n }\n return render && render.call(this);\n };\n };\n}\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `InteractiveItemContext` from \\@/src/decorators/item-list/interactive-item-context.js.\n */\nexport function InteractiveItemContext() {\n return (component: ComponentInterface, interactiveItemVariable: string) => {\n const {connectedCallback} = component;\n component.connectedCallback = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n interactiveItemContextEventName,\n (item: AnyItem) => {\n this[interactiveItemVariable] = item;\n }\n );\n element.dispatchEvent(event);\n return connectedCallback && connectedCallback.call(this);\n };\n };\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\nconst itemContextEventName = 'atomic/resolveResult';\nexport type InteractiveItemContextEvent = CustomEvent<\n (interactiveItem: unknown) => void\n>;\nconst interactiveItemContextEventName = 'atomic/resolveInteractiveResult';\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `itemContext` from \\@/src/components/common/item-list/item-context.js.\n */\nexport function itemContext<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\nfunction extractFolded(item: Record<string, unknown>, returnFolded: boolean) {\n if (returnFolded) {\n if ('children' in item) {\n return item;\n } else {\n return {children: [], result: item};\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result;\n }\n return item;\n}\n\ntype ChildTemplatesContextEventHandler = (\n itemTemplateProvider?: ItemTemplateProvider\n) => void;\nexport type ChildTemplatesContextEvent =\n CustomEvent<ChildTemplatesContextEventHandler>;\nconst childTemplatesContextEventName = 'atomic/resolveChildTemplates';\n\ninterface AtomicItemChildren {\n itemTemplateProvider?: ItemTemplateProvider;\n}\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ChildTemplatesContext` from \\@/src/decorators/item-list/child-templates-context.js.\n */\nexport function ChildTemplatesContext() {\n return (component: ComponentInterface, itemTemplateProviderProp: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n childTemplatesContextEventName,\n (itemTemplateProvider?: ItemTemplateProvider) => {\n const component = this as AtomicItemChildren;\n if (component.itemTemplateProvider) {\n return;\n }\n\n this[itemTemplateProviderProp] = itemTemplateProvider;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n this[itemTemplateProviderProp] = null;\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n\nexport type DisplayConfig = {\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n};\n\ntype ItemDisplayConfigContextEventHandler = (config: DisplayConfig) => void;\nexport type ItemDisplayConfigContextEvent =\n CustomEvent<ItemDisplayConfigContextEventHandler>;\nconst itemDisplayConfigContextEventName = 'atomic/resolveResultDisplayConfig';\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ItemDisplayConfigContext` from \\@/src/decorators/item-list/item-display-config-context.js.\n */\nexport function ItemDisplayConfigContext() {\n return (component: ComponentInterface, itemVariable: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n itemDisplayConfigContextEventName,\n (config: DisplayConfig) => {\n this[itemVariable] = config;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n"],"version":3}
1
+ {"file":"stencil-item-decorators-43a96f33.js","mappings":";;;;;;MAUa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;CACF;AACD;;;SAGgB,WAAW,CACzB,OAA8C;IAC5C,UAAU,EAAE,eAAe;IAC3B,MAAM,EAAE,KAAK;CACd;IAED,OAAO,CAAC,SAA6B,EAAE,YAAoB;QACzD,MAAM,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,EAAC,GAAG,SAAS,CAAC;QACnE,SAAS,CAAC,iBAAiB,GAAG;YAC5B,MAAM,OAAO,GAAGA,gBAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAGC,2BAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAA6B;gBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACvD,CACF,CAAC;YAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,CACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAC9B,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,OAAO;aACR;YACD,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1D,CAAC;QAEF,SAAS,CAAC,mBAAmB,GAAG;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,OAAO;aACR;YAED,OAAO,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9D,CAAC;QAEF,SAAS,CAAC,MAAM,GAAG;YACjB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,MAAM,OAAO,GAAGD,gBAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,OAAO,CACR,CAAC;gBACF,OAAO;aACR;YACD,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;SAGgB,sBAAsB;IACpC,OAAO,CAAC,SAA6B,EAAE,uBAA+B;QACpE,MAAM,EAAC,iBAAiB,EAAC,GAAG,SAAS,CAAC;QACtC,SAAS,CAAC,iBAAiB,GAAG;YAC5B,MAAM,OAAO,GAAGA,gBAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAGC,2BAAgB,CAC5B,+BAA+B,EAC/B,CAAC,IAAa;gBACZ,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;aACtC,CACF,CAAC;YACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1D,CAAC;KACH,CAAC;AACJ,CAAC;AAID,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAIpD,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAE1E;;;SAGgB,WAAW,CAAI,OAAgB,EAAE,UAAkB;IACjE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAGA,2BAAgB,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,CAACC,gBAAO,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,CAAC;AAED,SAAS,aAAa,CAAC,IAA6B,EAAE,YAAqB;IACzE,IAAI,YAAY,EAAE;QAChB,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;SACrC;KACF;IAED,IAAI,UAAU,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AAMtE;;;SAGgB,qBAAqB;IACnC,OAAO,CAAC,SAA6B,EAAE,wBAAgC;QACrE,MAAM,EAAC,mBAAmB,EAAC,GAAG,SAAS,CAAC;QACxC,SAAS,CAAC,mBAAmB,GAAG;YAC9B,MAAM,OAAO,GAAGF,gBAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAGC,2BAAgB,CAC5B,8BAA8B,EAC9B,CAAC,oBAA2C;gBAC1C,MAAM,SAAS,GAAG,IAA0B,CAAC;gBAC7C,IAAI,SAAS,CAAC,oBAAoB,EAAE;oBAClC,OAAO;iBACR;gBAED,IAAI,CAAC,wBAAwB,CAAC,GAAG,oBAAoB,CAAC;aACvD,CACF,CAAC;YAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;gBACtC,OAAO;aACR;YACD,OAAO,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9D,CAAC;KACH,CAAC;AACJ,CAAC;AAUD,MAAM,iCAAiC,GAAG,mCAAmC,CAAC;AAE9E;;;SAGgB,wBAAwB;IACtC,OAAO,CAAC,SAA6B,EAAE,YAAoB;QACzD,MAAM,EAAC,mBAAmB,EAAC,GAAG,SAAS,CAAC;QACxC,SAAS,CAAC,mBAAmB,GAAG;YAC9B,MAAM,OAAO,GAAGD,gBAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAGC,2BAAgB,CAC5B,iCAAiC,EACjC,CAAC,MAAqB;gBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;aAC7B,CACF,CAAC;YAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YACD,OAAO,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9D,CAAC;KACH,CAAC;AACJ;;;;;;;;","names":["getElement","buildCustomEvent","closest"],"sources":["src/components/common/item-list/stencil-item-decorators.tsx"],"sourcesContent":["import {closest} from '@/src/utils/dom-utils';\nimport {ComponentInterface, getElement} from '@stencil/core';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport {AnyItem} from './unfolded-item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\nimport {ItemTemplateProvider} from './item-template-provider';\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/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ItemContext` from \\@/src/decorators/item-list/item-context.js.\n */\nexport function ItemContext(\n opts: {parentName: string; folded: boolean} = {\n parentName: 'atomic-result',\n folded: false,\n }\n) {\n return (component: ComponentInterface, itemVariable: string) => {\n const {connectedCallback, componentWillRender, render} = component;\n component.connectedCallback = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this[itemVariable] = extractFolded(item, opts.folded);\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n this.error = new MissingParentError(\n element.nodeName.toLowerCase(),\n opts.parentName\n );\n return;\n }\n return connectedCallback && connectedCallback.call(this);\n };\n\n component.componentWillRender = function () {\n if (this.error) {\n return;\n }\n\n return componentWillRender && componentWillRender.call(this);\n };\n\n component.render = function () {\n if (this.error) {\n const element = getElement(this);\n element.remove();\n console.error(\n 'Result component is in error and has been removed from the DOM',\n this.error,\n this,\n element\n );\n return;\n }\n return render && render.call(this);\n };\n };\n}\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `InteractiveItemContext` from \\@/src/decorators/item-list/interactive-item-context.js.\n */\nexport function InteractiveItemContext() {\n return (component: ComponentInterface, interactiveItemVariable: string) => {\n const {connectedCallback} = component;\n component.connectedCallback = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n interactiveItemContextEventName,\n (item: AnyItem) => {\n this[interactiveItemVariable] = item;\n }\n );\n element.dispatchEvent(event);\n return connectedCallback && connectedCallback.call(this);\n };\n };\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\nconst itemContextEventName = 'atomic/resolveResult';\nexport type InteractiveItemContextEvent = CustomEvent<\n (interactiveItem: unknown) => void\n>;\nconst interactiveItemContextEventName = 'atomic/resolveInteractiveResult';\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `itemContext` from \\@/src/components/common/item-list/item-context.js.\n */\nexport function itemContext<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\nfunction extractFolded(item: Record<string, unknown>, returnFolded: boolean) {\n if (returnFolded) {\n if ('children' in item) {\n return item;\n } else {\n return {children: [], result: item};\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result;\n }\n return item;\n}\n\ntype ChildTemplatesContextEventHandler = (\n itemTemplateProvider?: ItemTemplateProvider\n) => void;\nexport type ChildTemplatesContextEvent =\n CustomEvent<ChildTemplatesContextEventHandler>;\nconst childTemplatesContextEventName = 'atomic/resolveChildTemplates';\n\ninterface AtomicItemChildren {\n itemTemplateProvider?: ItemTemplateProvider;\n}\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ChildTemplatesContext` from \\@/src/decorators/item-list/child-templates-context.js.\n */\nexport function ChildTemplatesContext() {\n return (component: ComponentInterface, itemTemplateProviderProp: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n childTemplatesContextEventName,\n (itemTemplateProvider?: ItemTemplateProvider) => {\n const component = this as AtomicItemChildren;\n if (component.itemTemplateProvider) {\n return;\n }\n\n this[itemTemplateProviderProp] = itemTemplateProvider;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n this[itemTemplateProviderProp] = null;\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n\nexport type DisplayConfig = {\n density: ItemDisplayDensity;\n imageSize: ItemDisplayImageSize;\n};\n\ntype ItemDisplayConfigContextEventHandler = (config: DisplayConfig) => void;\nexport type ItemDisplayConfigContextEvent =\n CustomEvent<ItemDisplayConfigContextEventHandler>;\nconst itemDisplayConfigContextEventName = 'atomic/resolveResultDisplayConfig';\n\n/**\n * @deprecated should only be used for Stencil components. For Lit components, use `ItemDisplayConfigContext` from \\@/src/decorators/item-list/item-display-config-context.js.\n */\nexport function ItemDisplayConfigContext() {\n return (component: ComponentInterface, itemVariable: string) => {\n const {componentWillRender} = component;\n component.componentWillRender = function () {\n const element = getElement(this);\n const event = buildCustomEvent(\n itemDisplayConfigContextEventName,\n (config: DisplayConfig) => {\n this[itemVariable] = config;\n }\n );\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n return;\n }\n return componentWillRender && componentWillRender.call(this);\n };\n };\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"stencil-item-list-common-013ad9a0.js","mappings":";;;;;;MAiBa,oBAAoB,GAAG,mBAAmB;MAyB1C,cAAc;IAKzB,YAAoB,KAA0B;QAA1B,UAAK,GAAL,KAAK,CAAqB;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAGA,UAAI,CAAC,MAAMC,mCAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;YACjD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;SACvC,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEM,WAAW,CAChB,gBAAwB,EACxB,gBAAwB,EACxB,OAA2B,EAC3B,SAA+B;QAE/B,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;KACvE;IAEM,eAAe,CAAC,OAAoB,EAAE,WAAmB;QAC9D,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;SAC9B;QACD,IAAI,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;YACpE,OAAO;SACR;QAED,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,MAAM,cAAc,GAAGC,qDAA2B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;KACxD;IAEM,oBAAoB;QACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;KAClD;IAEM,MAAM,iCAAiC;QAC5C,MAAMC,WAAK,EAAE,CAAC;QACd,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;gBAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAChC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACvC,MAAMA,WAAK,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpD,MAAM,cAAc,GAClBD,qDAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC/C,IAAI,CAAC,aAAa,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBACrC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,CAAC;iBACX;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;;;;;;","names":["once","updateBreakpoints","getFirstFocusableDescendant","defer"],"sources":["src/components/common/item-list/stencil-item-list-common.tsx"],"sourcesContent":["import {updateBreakpoints} from '../../../utils/replace-breakpoint';\nimport {\n FocusTargetController,\n getFirstFocusableDescendant,\n} from '../../../utils/stencil-accessibility-utils';\nimport {defer, once} from '../../../utils/utils';\nimport {CommerceStore} from '../../commerce/atomic-commerce-interface/store';\nimport {CommerceRecommendationStore} from '../../commerce/atomic-commerce-recommendation-interface/store';\nimport {InsightStore} from '../../insight/atomic-insight-interface/store';\nimport {RecsStore} from '../../recommendations/atomic-recs-interface/store';\nimport {SearchStore} from '../../search/atomic-search-interface/store';\nimport {AnyItem} from '../interface/item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\n\nexport const resultComponentClass = 'result-component';\n\nexport type ItemRenderingFunction<SpecificResult extends AnyItem = AnyItem> =\n | ((\n result: SpecificResult,\n root: HTMLElement,\n linkContainer?: HTMLElement\n ) => string)\n | undefined;\n\nexport interface ItemListCommonProps {\n store:\n | CommerceStore\n | CommerceRecommendationStore\n | RecsStore\n | InsightStore\n | SearchStore;\n loadingFlag: string;\n host: HTMLElement;\n nextNewItemTarget: FocusTargetController;\n getCurrentNumberOfItems: () => number;\n getIsLoading: () => boolean;\n engineSubscribe: (cb: () => void) => () => void;\n}\n\nexport class ItemListCommon {\n private indexOfResultToFocus?: number;\n private firstResultEl?: HTMLElement;\n private updateBreakpointsOnce: () => void;\n\n constructor(private props: ItemListCommonProps) {\n this.props.store.setLoadingFlag(this.props.loadingFlag);\n this.props.store.state.resultList = this;\n this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));\n this.props.nextNewItemTarget.registerFocusCallback(() => {\n this.indexOfResultToFocus = undefined;\n });\n }\n\n public updateBreakpoints() {\n this.updateBreakpointsOnce();\n }\n\n public getResultId(\n uniqueIdOnResult: string,\n searchResponseId: string,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n return `${uniqueIdOnResult}${searchResponseId}${density}${imageSize}`;\n }\n\n public setNewResultRef(element: HTMLElement, resultIndex: number) {\n if (resultIndex === 0) {\n this.firstResultEl = element;\n }\n if (resultIndex !== this.indexOfResultToFocus) {\n return;\n }\n\n if (!element.children.length && !element.shadowRoot?.children.length) {\n return;\n }\n\n this.indexOfResultToFocus = undefined;\n const elementToFocus = getFirstFocusableDescendant(element) ?? element;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n }\n\n public focusOnNextNewResult() {\n this.indexOfResultToFocus = this.props.getCurrentNumberOfItems();\n this.props.nextNewItemTarget.focusOnNextTarget();\n }\n\n public async focusOnFirstResultAfterNextSearch() {\n await defer();\n return new Promise<void>((resolve) => {\n if (this.props.getIsLoading()) {\n this.firstResultEl = undefined;\n }\n\n const unsub = this.props.engineSubscribe(async () => {\n await defer();\n if (!this.props.getIsLoading() && this.firstResultEl) {\n const elementToFocus =\n getFirstFocusableDescendant(this.firstResultEl) ??\n this.firstResultEl;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n this.props.nextNewItemTarget.focus();\n this.firstResultEl = undefined;\n unsub();\n resolve();\n }\n });\n });\n }\n}\n"],"version":3}
1
+ {"file":"stencil-item-list-common-013ad9a0.js","mappings":";;;;;;MAiBa,oBAAoB,GAAG,mBAAmB;MAyB1C,cAAc;IAKzB,YAAoB,KAA0B;QAA1B,UAAK,GAAL,KAAK,CAAqB;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAGA,UAAI,CAAC,MAAMC,mCAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;YACjD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;SACvC,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEM,WAAW,CAChB,gBAAwB,EACxB,gBAAwB,EACxB,OAA2B,EAC3B,SAA+B;QAE/B,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;KACvE;IAEM,eAAe,CAAC,OAAoB,EAAE,WAAmB;QAC9D,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;SAC9B;QACD,IAAI,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE;YAC7C,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;YACpE,OAAO;SACR;QAED,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,MAAM,cAAc,GAAGC,qDAA2B,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;KACxD;IAEM,oBAAoB;QACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;KAClD;IAEM,MAAM,iCAAiC;QAC5C,MAAMC,WAAK,EAAE,CAAC;QACd,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;gBAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAChC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACvC,MAAMA,WAAK,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpD,MAAM,cAAc,GAClBD,qDAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC/C,IAAI,CAAC,aAAa,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBACrC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,CAAC;iBACX;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;;;;;;","names":["once","updateBreakpoints","getFirstFocusableDescendant","defer"],"sources":["src/components/common/item-list/stencil-item-list-common.tsx"],"sourcesContent":["import {updateBreakpoints} from '../../../utils/replace-breakpoint';\nimport {\n FocusTargetController,\n getFirstFocusableDescendant,\n} from '../../../utils/stencil-accessibility-utils';\nimport {defer, once} from '../../../utils/utils';\nimport {CommerceStore} from '../../commerce/atomic-commerce-interface/store';\nimport {CommerceRecommendationStore} from '../../commerce/atomic-commerce-recommendation-interface/store';\nimport {InsightStore} from '../../insight/atomic-insight-interface/store';\nimport {RecsStore} from '../../recommendations/atomic-recs-interface/store';\nimport {SearchStore} from '../../search/atomic-search-interface/store';\nimport {AnyItem} from './unfolded-item';\nimport {\n ItemDisplayDensity,\n ItemDisplayImageSize,\n} from '../layout/display-options';\n\nexport const resultComponentClass = 'result-component';\n\nexport type ItemRenderingFunction<SpecificResult extends AnyItem = AnyItem> =\n | ((\n result: SpecificResult,\n root: HTMLElement,\n linkContainer?: HTMLElement\n ) => string)\n | undefined;\n\nexport interface ItemListCommonProps {\n store:\n | CommerceStore\n | CommerceRecommendationStore\n | RecsStore\n | InsightStore\n | SearchStore;\n loadingFlag: string;\n host: HTMLElement;\n nextNewItemTarget: FocusTargetController;\n getCurrentNumberOfItems: () => number;\n getIsLoading: () => boolean;\n engineSubscribe: (cb: () => void) => () => void;\n}\n\nexport class ItemListCommon {\n private indexOfResultToFocus?: number;\n private firstResultEl?: HTMLElement;\n private updateBreakpointsOnce: () => void;\n\n constructor(private props: ItemListCommonProps) {\n this.props.store.setLoadingFlag(this.props.loadingFlag);\n this.props.store.state.resultList = this;\n this.updateBreakpointsOnce = once(() => updateBreakpoints(this.props.host));\n this.props.nextNewItemTarget.registerFocusCallback(() => {\n this.indexOfResultToFocus = undefined;\n });\n }\n\n public updateBreakpoints() {\n this.updateBreakpointsOnce();\n }\n\n public getResultId(\n uniqueIdOnResult: string,\n searchResponseId: string,\n density: ItemDisplayDensity,\n imageSize: ItemDisplayImageSize\n ) {\n return `${uniqueIdOnResult}${searchResponseId}${density}${imageSize}`;\n }\n\n public setNewResultRef(element: HTMLElement, resultIndex: number) {\n if (resultIndex === 0) {\n this.firstResultEl = element;\n }\n if (resultIndex !== this.indexOfResultToFocus) {\n return;\n }\n\n if (!element.children.length && !element.shadowRoot?.children.length) {\n return;\n }\n\n this.indexOfResultToFocus = undefined;\n const elementToFocus = getFirstFocusableDescendant(element) ?? element;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n }\n\n public focusOnNextNewResult() {\n this.indexOfResultToFocus = this.props.getCurrentNumberOfItems();\n this.props.nextNewItemTarget.focusOnNextTarget();\n }\n\n public async focusOnFirstResultAfterNextSearch() {\n await defer();\n return new Promise<void>((resolve) => {\n if (this.props.getIsLoading()) {\n this.firstResultEl = undefined;\n }\n\n const unsub = this.props.engineSubscribe(async () => {\n await defer();\n if (!this.props.getIsLoading() && this.firstResultEl) {\n const elementToFocus =\n getFirstFocusableDescendant(this.firstResultEl) ??\n this.firstResultEl;\n this.props.nextNewItemTarget.setTarget(elementToFocus);\n this.props.nextNewItemTarget.focus();\n this.firstResultEl = undefined;\n unsub();\n resolve();\n }\n });\n });\n }\n}\n"],"version":3}
@@ -6,4 +6,4 @@ function extractUnfoldedItem(anyResult) {
6
6
 
7
7
  exports.extractUnfoldedItem = extractUnfoldedItem;
8
8
 
9
- //# sourceMappingURL=item-c460c5a3.js.map
9
+ //# sourceMappingURL=unfolded-item-148d21d6.js.map
@@ -0,0 +1 @@
1
+ {"file":"unfolded-item-148d21d6.js","mappings":";;SAOgB,mBAAmB,CAAC,SAAkB;IACpD,OAAQ,SAA0B,CAAC,MAAM,IAAI,SAAS,CAAC;AACzD;;;;","names":[],"sources":["src/components/common/item-list/unfolded-item.ts"],"sourcesContent":["import type {FoldedResult, Result} from '@coveo/headless';\nimport type {Product} from '@coveo/headless/commerce';\nimport type {Result as InsightResult} from '@coveo/headless/insight';\n\nexport type AnyItem = FoldedResult | AnyUnfoldedItem | Product;\nexport type AnyUnfoldedItem = Result | InsightResult;\n\nexport function extractUnfoldedItem(anyResult: AnyItem): AnyUnfoldedItem {\n return (anyResult as FoldedResult).result || anyResult;\n}\n"],"version":3}
@@ -1,2 +1,2 @@
1
- module.exports.headlessVersion = '3.27.6-pre.f83bd005a5';
2
- module.exports.atomicVersion = '3.31.0-pre.f83bd005a5';
1
+ module.exports.headlessVersion = '3.27.6';
2
+ module.exports.atomicVersion = '3.31.0';
@@ -2220,7 +2220,7 @@ function getWindow() {
2220
2220
  }
2221
2221
  function getAtomicEnvironment() {
2222
2222
  return {
2223
- version: "3.31.0-pre.f83bd005a5",
2223
+ version: "3.31.0",
2224
2224
  headlessVersion: VERSION,
2225
2225
  };
2226
2226
  }
@@ -2976,4 +2976,4 @@ function getNextAnalyticsConfig(searchEngineConfig, enabled) {
2976
2976
 
2977
2977
  export { CommonAtomicInterfaceHelper as C, augmentWithExternalMiddleware as a, augmentAnalyticsWithAtomicVersion as b, augmentAnalyticsConfigWithDocument as c, augmentAnalyticsConfigWithAtomicVersion as d, getNextAnalyticsConfig as g, instance as i, mismatchedInterfaceAndEnginePropError as m };
2978
2978
 
2979
- //# sourceMappingURL=analytics-config-e5bd4e1b.js.map
2979
+ //# sourceMappingURL=analytics-config-e2c4641d.js.map