@coveo/atomic 3.28.0-pre.c758e56a2c → 3.28.0-pre.df6c8a3eb3

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 (745) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +12 -0
  4. package/dist/atomic/components/_index.js +6 -0
  5. package/dist/atomic/components/analytics-config.js +2 -2938
  6. package/dist/atomic/components/analytics-config.js.map +1 -1
  7. package/dist/atomic/components/atomic-aria-live2.js +1 -1
  8. package/dist/atomic/components/atomic-category-facet.js +1 -1
  9. package/dist/atomic/components/atomic-citation.js +1 -1
  10. package/dist/atomic/components/atomic-commerce-category-facet2.js +1 -1
  11. package/dist/atomic/components/atomic-commerce-no-products.d.ts +11 -0
  12. package/dist/atomic/components/atomic-commerce-no-products.js +74 -0
  13. package/dist/atomic/components/atomic-commerce-no-products.js.map +1 -0
  14. package/dist/atomic/components/atomic-commerce-numeric-facet2.js +2 -2
  15. package/dist/atomic/components/atomic-commerce-query-error.js +1 -1
  16. package/dist/atomic/components/atomic-commerce-recommendation-interface.d.ts +11 -0
  17. package/dist/atomic/components/atomic-commerce-recommendation-interface.js +209 -0
  18. package/dist/atomic/components/atomic-commerce-recommendation-interface.js.map +1 -0
  19. package/dist/atomic/components/atomic-commerce-refine-modal.js +1 -215
  20. package/dist/atomic/components/atomic-commerce-refine-modal.js.map +1 -1
  21. package/dist/atomic/components/atomic-commerce-refine-modal2.js +219 -0
  22. package/dist/atomic/components/atomic-commerce-refine-modal2.js.map +1 -0
  23. package/dist/atomic/components/atomic-commerce-refine-toggle.d.ts +11 -0
  24. package/dist/atomic/{p-852ffdb4.entry.js → components/atomic-commerce-refine-toggle.js} +144 -2
  25. package/dist/atomic/components/atomic-commerce-refine-toggle.js.map +1 -0
  26. package/dist/atomic/components/atomic-commerce-text.d.ts +11 -0
  27. package/dist/atomic/components/atomic-commerce-text.js +8 -0
  28. package/dist/atomic/components/atomic-commerce-text.js.map +1 -0
  29. package/dist/atomic/components/atomic-commerce-text2.js +60 -0
  30. package/dist/atomic/components/atomic-commerce-text2.js.map +1 -0
  31. package/dist/atomic/components/atomic-commerce-timeframe-facet2.js +1 -1
  32. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  33. package/dist/atomic/components/atomic-facet.js +1 -1
  34. package/dist/atomic/components/atomic-format-currency.js +1 -1
  35. package/dist/atomic/components/atomic-format-number.js +1 -1
  36. package/dist/atomic/components/atomic-format-unit.js +1 -1
  37. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  38. package/dist/atomic/components/atomic-html2.js +1 -1
  39. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  40. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  41. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  42. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  43. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  44. package/dist/atomic/components/atomic-insight-interface.js +2 -9
  45. package/dist/atomic/components/atomic-insight-interface.js.map +1 -1
  46. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  47. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  48. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  49. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  50. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  51. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  52. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  53. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  54. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  55. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  56. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  57. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  58. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  59. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  60. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  61. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  62. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  63. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  64. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  65. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  66. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  67. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  68. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  69. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  70. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  71. package/dist/atomic/components/atomic-layout-section.d.ts +11 -0
  72. package/dist/atomic/components/atomic-layout-section.js +35 -0
  73. package/dist/atomic/components/atomic-layout-section.js.map +1 -0
  74. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  75. package/dist/atomic/components/atomic-modal2.js +2 -2
  76. package/dist/atomic/components/atomic-no-results.js +2 -14
  77. package/dist/atomic/components/atomic-no-results.js.map +1 -1
  78. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  79. package/dist/atomic/components/atomic-pager.js +3 -3
  80. package/dist/atomic/components/atomic-product-children.js +7 -1
  81. package/dist/atomic/components/atomic-product-children.js.map +1 -1
  82. package/dist/atomic/components/atomic-product-description.js +13 -1
  83. package/dist/atomic/components/atomic-product-description.js.map +1 -1
  84. package/dist/atomic/components/atomic-product-excerpt.js +13 -1
  85. package/dist/atomic/components/atomic-product-excerpt.js.map +1 -1
  86. package/dist/atomic/components/atomic-product-link.js +13 -1
  87. package/dist/atomic/components/atomic-product-link.js.map +1 -1
  88. package/dist/atomic/components/atomic-product-price.js +1 -1
  89. package/dist/atomic/components/atomic-product-text.d.ts +11 -0
  90. package/dist/atomic/components/atomic-product-text.js +8 -0
  91. package/dist/atomic/components/atomic-product-text.js.map +1 -0
  92. package/dist/atomic/components/atomic-product-text2.js +83 -0
  93. package/dist/atomic/components/atomic-product-text2.js.map +1 -0
  94. package/dist/atomic/components/atomic-query-error.js +1 -1
  95. package/dist/atomic/components/atomic-query-summary.js +1 -1
  96. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  97. package/dist/atomic/components/atomic-quickview.js +1 -1
  98. package/dist/atomic/components/atomic-recs-error.js +1 -1
  99. package/dist/atomic/components/atomic-recs-interface.js +2 -1
  100. package/dist/atomic/components/atomic-recs-interface.js.map +1 -1
  101. package/dist/atomic/components/atomic-recs-list.js +1 -1
  102. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  103. package/dist/atomic/components/atomic-refine-toggle.js +3 -20
  104. package/dist/atomic/components/atomic-refine-toggle.js.map +1 -1
  105. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  106. package/dist/atomic/components/atomic-result-children.js +1 -1
  107. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  108. package/dist/atomic/components/atomic-result-link.js +1 -1
  109. package/dist/atomic/components/atomic-result-list.js +1 -1
  110. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  111. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  112. package/dist/atomic/components/atomic-result-text2.js +2 -45
  113. package/dist/atomic/components/atomic-result-text2.js.map +1 -1
  114. package/dist/atomic/components/atomic-results-per-page.js +1 -1
  115. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  116. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  117. package/dist/atomic/components/atomic-search-box.js +5 -4
  118. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  119. package/dist/atomic/components/atomic-search-interface.js +2 -1
  120. package/dist/atomic/components/atomic-search-interface.js.map +1 -1
  121. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  122. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  123. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  124. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  125. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  126. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  127. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  128. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  129. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  130. package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +1 -1
  131. package/dist/atomic/components/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.js +1 -1
  132. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -0
  133. package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +1 -4
  134. package/dist/atomic/components/components/commerce/index.js +0 -5
  135. package/dist/atomic/components/components/commerce/lazy-index.js +0 -5
  136. package/dist/atomic/components/components/common/index.js +0 -1
  137. package/dist/atomic/components/components/common/interface/interface-common.js +9 -8
  138. package/dist/atomic/components/components/common/lazy-index.js +0 -1
  139. package/dist/atomic/components/components/insight/atomic-insight-interface/store.js +0 -8
  140. package/dist/atomic/components/facet-date-input.js +3 -3
  141. package/dist/atomic/components/facet-number-input.js +2 -2
  142. package/dist/atomic/components/global/environment.js +1 -1
  143. package/dist/atomic/components/index.js.map +1 -1
  144. package/dist/atomic/components/interface-common-stencil.js +2941 -0
  145. package/dist/atomic/components/interface-common-stencil.js.map +1 -0
  146. package/dist/atomic/components/product-utils.js +8 -1
  147. package/dist/atomic/components/product-utils.js.map +1 -1
  148. package/dist/atomic/components/sections.js.map +1 -1
  149. package/dist/atomic/components/stencil-guard.js +23 -0
  150. package/dist/atomic/components/stencil-guard.js.map +1 -0
  151. package/dist/atomic/components/stencil-item-text-highlighted.js +49 -0
  152. package/dist/atomic/components/stencil-item-text-highlighted.js.map +1 -0
  153. package/dist/atomic/components/tab-button.js +1 -1
  154. package/dist/atomic/components/tab-popover.js +1 -1
  155. package/dist/atomic/components/{components/common/no-items/utils.js → utils2.js} +5 -1
  156. package/dist/atomic/components/utils2.js.map +1 -0
  157. package/dist/atomic/{p-f5cea23f.entry.js → p-0267a585.entry.js} +2 -2
  158. package/dist/atomic/p-0a7b0daa.entry.js +2 -0
  159. package/dist/atomic/{p-55b4fb2b.entry.js.map → p-0a7b0daa.entry.js.map} +1 -1
  160. package/dist/atomic/{p-dcded8cb.entry.js → p-0b0ea7d3.entry.js} +2 -2
  161. package/dist/atomic/{p-1326166a.entry.js → p-135be5aa.entry.js} +2 -2
  162. package/dist/atomic/p-1cb2280d.js +2 -0
  163. package/dist/atomic/p-1cb2280d.js.map +1 -0
  164. package/dist/atomic/{p-f3e9a9f8.entry.js → p-1cc97adc.entry.js} +2 -2
  165. package/dist/atomic/{p-ea5d2736.entry.js → p-22a0d1b9.entry.js} +2 -2
  166. package/dist/atomic/{p-d88aec96.entry.js → p-29d27418.entry.js} +2 -2
  167. package/dist/atomic/{p-90e88505.entry.js → p-2f0cb73c.entry.js} +2 -2
  168. package/dist/atomic/p-2ff906b9.entry.js +2 -0
  169. package/dist/atomic/p-2ff906b9.entry.js.map +1 -0
  170. package/dist/atomic/{p-fb060cc0.entry.js → p-306c83ea.entry.js} +2 -2
  171. package/dist/atomic/{p-b15ca291.entry.js → p-3195fa42.entry.js} +2 -2
  172. package/dist/atomic/{p-714c5c2c.entry.js → p-32b26cd0.entry.js} +2 -2
  173. package/dist/atomic/{p-1c72983f.entry.js → p-32c90fe9.entry.js} +2 -2
  174. package/dist/atomic/p-39223a2a.entry.js +2 -0
  175. package/dist/atomic/p-39223a2a.entry.js.map +1 -0
  176. package/dist/atomic/p-39447826.entry.js +2 -0
  177. package/dist/atomic/{p-fafea879.entry.js.map → p-39447826.entry.js.map} +1 -1
  178. package/dist/atomic/p-3cc601ad.entry.js +2 -0
  179. package/dist/atomic/p-3cc601ad.entry.js.map +1 -0
  180. package/dist/atomic/{p-4e2ec64c.entry.js → p-3ec18de9.entry.js} +2 -2
  181. package/dist/atomic/{p-a010dddb.entry.js → p-3f42a2db.entry.js} +2 -2
  182. package/dist/atomic/{p-4495b132.entry.js → p-45b26cc7.entry.js} +2 -2
  183. package/dist/atomic/p-46522ee4.entry.js +2 -0
  184. package/dist/atomic/{p-50ff35f8.entry.js.map → p-46522ee4.entry.js.map} +1 -1
  185. package/dist/atomic/{p-ffb15631.entry.js → p-47ee9d37.entry.js} +2 -2
  186. package/dist/atomic/p-4e57cee1.entry.js +2 -0
  187. package/dist/atomic/{p-1429fbdb.entry.js.map → p-4e57cee1.entry.js.map} +1 -1
  188. package/dist/atomic/{p-aa4fc96f.entry.js → p-50b9a5d2.entry.js} +2 -2
  189. package/dist/atomic/{p-e25287fd.entry.js → p-51c5acfc.entry.js} +2 -2
  190. package/dist/atomic/{p-f72a0133.entry.js → p-543e811e.entry.js} +2 -2
  191. package/dist/atomic/p-57f53200.entry.js +2 -0
  192. package/dist/atomic/{p-e4f872fb.entry.js.map → p-57f53200.entry.js.map} +1 -1
  193. package/dist/atomic/{p-0df077b7.entry.js → p-59017e0a.entry.js} +2 -2
  194. package/dist/atomic/p-59017e0a.entry.js.map +1 -0
  195. package/dist/atomic/p-5cf5bb98.entry.js +2 -0
  196. package/dist/atomic/p-5e73a3e8.js +2 -0
  197. package/dist/atomic/p-5e73a3e8.js.map +1 -0
  198. package/dist/atomic/{p-2866ca4d.entry.js → p-60a9e718.entry.js} +2 -2
  199. package/dist/atomic/{p-eabb4eae.entry.js → p-66683abd.entry.js} +2 -2
  200. package/dist/atomic/{p-8b579505.entry.js → p-67315415.entry.js} +2 -2
  201. package/dist/atomic/p-67afec23.js +2 -0
  202. package/dist/atomic/p-67afec23.js.map +1 -0
  203. package/dist/atomic/p-67ef14ac.entry.js +2 -0
  204. package/dist/atomic/p-67ef14ac.entry.js.map +1 -0
  205. package/dist/atomic/{p-714ee3bb.entry.js → p-689e063d.entry.js} +2 -2
  206. package/dist/atomic/{p-f5686c7e.entry.js → p-690b5853.entry.js} +2 -2
  207. package/dist/atomic/{p-ace45b24.entry.js → p-70ab347b.entry.js} +2 -2
  208. package/dist/atomic/p-733252f1.entry.js +2 -0
  209. package/dist/atomic/p-733252f1.entry.js.map +1 -0
  210. package/dist/atomic/{p-966509f8.entry.js → p-76122df5.entry.js} +2 -2
  211. package/dist/atomic/{p-9ec72c3b.entry.js → p-7d1f8d9c.entry.js} +2 -2
  212. package/dist/atomic/{p-f5323d5b.js → p-7ed31f46.js} +2 -2
  213. package/dist/atomic/p-7ed31f46.js.map +1 -0
  214. package/dist/atomic/{p-d37bb72b.entry.js → p-80dc3bab.entry.js} +2 -2
  215. package/dist/atomic/p-8392e900.entry.js +2 -0
  216. package/dist/atomic/p-8392e900.entry.js.map +1 -0
  217. package/dist/atomic/{p-6e11d4c6.entry.js → p-8d7f57d9.entry.js} +2 -2
  218. package/dist/atomic/{p-7d63f0e6.entry.js → p-8e09f796.entry.js} +2 -2
  219. package/dist/atomic/{p-a84d94cb.entry.js → p-95942ba2.entry.js} +2 -2
  220. package/dist/atomic/{p-21d55afc.entry.js → p-99604083.entry.js} +2 -2
  221. package/dist/atomic/{p-d4ec6961.entry.js → p-9a08dad7.entry.js} +2 -2
  222. package/dist/atomic/{p-03fa8481.entry.js → p-9ae88402.entry.js} +2 -2
  223. package/dist/atomic/p-9c7dbbdf.js.map +1 -1
  224. package/dist/atomic/{p-01c109cf.entry.js → p-9d2230db.entry.js} +2 -2
  225. package/dist/atomic/{p-fac32d34.entry.js → p-9eb108c9.entry.js} +2 -2
  226. package/dist/atomic/p-a046cf06.entry.js +2 -0
  227. package/dist/atomic/p-a046cf06.entry.js.map +1 -0
  228. package/dist/atomic/{p-5a3cd055.entry.js → p-a3169f59.entry.js} +2 -2
  229. package/dist/atomic/{p-50ff35f8.entry.js → p-a772b365.entry.js} +2 -2
  230. package/dist/atomic/{p-56d6d329.entry.js.map → p-a772b365.entry.js.map} +1 -1
  231. package/dist/atomic/{p-c6f15059.entry.js → p-a8281e9b.entry.js} +2 -2
  232. package/dist/atomic/{p-4f03327d.entry.js → p-ab5eec3d.entry.js} +2 -2
  233. package/dist/atomic/{p-1aedbfbf.entry.js → p-b19a8cbb.entry.js} +2 -2
  234. package/dist/atomic/p-b1a7d837.js +2 -0
  235. package/dist/atomic/p-b1a7d837.js.map +1 -0
  236. package/dist/atomic/{p-61f79055.entry.js → p-b4d47ca9.entry.js} +2 -2
  237. package/dist/atomic/{p-1e3f156e.entry.js → p-b4dfe5b2.entry.js} +2 -2
  238. package/dist/atomic/p-b747e4a9.entry.js +2 -0
  239. package/dist/atomic/{p-e4cc2a37.entry.js → p-b7824e0e.entry.js} +2 -2
  240. package/dist/atomic/p-bb081d4e.js +2 -0
  241. package/dist/atomic/p-bb081d4e.js.map +1 -0
  242. package/dist/atomic/p-bd0aa08f.entry.js +2 -0
  243. package/dist/atomic/{p-022784c5.entry.js.map → p-bd0aa08f.entry.js.map} +1 -1
  244. package/dist/atomic/{p-3632e456.entry.js → p-be13ed5c.entry.js} +2 -2
  245. package/dist/atomic/p-befca41f.entry.js +2 -0
  246. package/dist/atomic/p-befca41f.entry.js.map +1 -0
  247. package/dist/atomic/{p-2871034a.entry.js → p-bfeefcaa.entry.js} +2 -2
  248. package/dist/atomic/p-c0b3720d.entry.js +2 -0
  249. package/dist/atomic/p-c0b3720d.entry.js.map +1 -0
  250. package/dist/atomic/{p-b4b6f859.entry.js → p-c0d7b26d.entry.js} +2 -2
  251. package/dist/atomic/{p-9ef7ffc0.entry.js → p-c13d4039.entry.js} +2 -2
  252. package/dist/atomic/{p-4505f2e0.entry.js → p-c4f042ae.entry.js} +2 -2
  253. package/dist/atomic/p-c83f9cff.entry.js +2 -0
  254. package/dist/atomic/p-c83f9cff.entry.js.map +1 -0
  255. package/dist/atomic/p-cd725265.js +2 -0
  256. package/dist/atomic/{p-7d1c2ecd.js.map → p-cd725265.js.map} +1 -1
  257. package/dist/atomic/{p-faee1f57.entry.js → p-cd87574b.entry.js} +2 -2
  258. package/dist/atomic/{p-0875a7fb.entry.js → p-ce4e939b.entry.js} +2 -2
  259. package/dist/atomic/{p-1fbbed3e.entry.js → p-d1efd50f.entry.js} +2 -2
  260. package/dist/atomic/{p-7d773b22.entry.js → p-d30057a0.entry.js} +2 -2
  261. package/dist/atomic/{p-e7d5c4be.entry.js → p-d4aba9f9.entry.js} +2 -2
  262. package/dist/atomic/{p-ce1f6392.entry.js → p-d69756ae.entry.js} +2 -2
  263. package/dist/atomic/{p-08d1db60.entry.js → p-d827c148.entry.js} +2 -2
  264. package/dist/atomic/p-da578608.entry.js +2 -0
  265. package/dist/atomic/{p-852ffdb4.entry.js.map → p-da578608.entry.js.map} +1 -1
  266. package/dist/atomic/{p-d04ad3e5.entry.js → p-dd8c6bdd.entry.js} +2 -2
  267. package/dist/atomic/{p-886da915.entry.js → p-ddd52850.entry.js} +2 -2
  268. package/dist/atomic/{p-fecd79de.entry.js → p-e44155cc.entry.js} +2 -2
  269. package/dist/atomic/{p-7f5485ad.entry.js → p-e46517e9.entry.js} +2 -2
  270. package/dist/atomic/{p-8074a49d.entry.js.map → p-e46517e9.entry.js.map} +1 -1
  271. package/dist/atomic/{p-c074198a.entry.js → p-e4754fd0.entry.js} +2 -2
  272. package/dist/atomic/{p-55b4fb2b.entry.js → p-e604fd29.entry.js} +2 -2
  273. package/dist/atomic/{p-27054c71.entry.js.map → p-e604fd29.entry.js.map} +1 -1
  274. package/dist/atomic/p-eab28672.entry.js +2 -0
  275. package/dist/atomic/p-eab28672.entry.js.map +1 -0
  276. package/dist/atomic/{p-db5285b1.entry.js → p-ec0161b7.entry.js} +2 -2
  277. package/dist/atomic/p-ec03a238.entry.js +2 -0
  278. package/dist/atomic/{p-7f5485ad.entry.js.map → p-ec03a238.entry.js.map} +1 -1
  279. package/dist/atomic/{p-eea2128f.entry.js → p-ec6bc15b.entry.js} +2 -2
  280. package/dist/atomic/{p-e37f01fc.entry.js → p-eebb168b.entry.js} +2 -2
  281. package/dist/atomic/p-f4a1bfe3.entry.js +2 -0
  282. package/dist/atomic/p-f4a1bfe3.entry.js.map +1 -0
  283. package/dist/atomic/{p-870dbeef.entry.js → p-f4b98113.entry.js} +2 -2
  284. package/dist/atomic/p-f6283657.entry.js +2 -0
  285. package/dist/atomic/{p-0df077b7.entry.js.map → p-f6283657.entry.js.map} +1 -1
  286. package/dist/atomic/p-f68cee5d.entry.js +2 -0
  287. package/dist/atomic/{p-b90e5ea5.entry.js.map → p-f68cee5d.entry.js.map} +1 -1
  288. package/dist/atomic/{p-58268151.entry.js → p-f7f8096a.entry.js} +2 -2
  289. package/dist/atomic/{p-58268151.entry.js.map → p-f7f8096a.entry.js.map} +1 -1
  290. package/dist/atomic/{p-e988f378.js → p-f7f81710.js} +2 -2
  291. package/dist/atomic/{p-8403335e.entry.js → p-fb0bdcdb.entry.js} +2 -2
  292. package/dist/atomic/p-fb3e07e9.js +2 -0
  293. package/dist/atomic/p-fb3e07e9.js.map +1 -0
  294. package/dist/atomic/p-fbbbc454.entry.js +2 -0
  295. package/dist/atomic/{p-ebb35a4b.entry.js → p-fd9d1c3f.entry.js} +2 -2
  296. package/dist/cjs/_loader.cjs.js +1 -1
  297. package/dist/cjs/analytics-config-f82932e2.js +49 -0
  298. package/dist/cjs/analytics-config-f82932e2.js.map +1 -0
  299. package/dist/cjs/atomic-aria-live.cjs.entry.js +75 -0
  300. package/dist/cjs/atomic-aria-live.cjs.entry.js.map +1 -0
  301. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +3 -4
  302. package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js.map +1 -1
  303. package/dist/cjs/atomic-category-facet.cjs.entry.js +3 -4
  304. package/dist/cjs/atomic-category-facet.cjs.entry.js.map +1 -1
  305. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  306. package/dist/cjs/atomic-color-facet.cjs.entry.js +3 -4
  307. package/dist/cjs/atomic-color-facet.cjs.entry.js.map +1 -1
  308. package/dist/cjs/{atomic-commerce-category-facet_6.cjs.entry.js → atomic-commerce-category-facet_5.cjs.entry.js} +109 -141
  309. package/dist/cjs/atomic-commerce-category-facet_5.cjs.entry.js.map +1 -0
  310. package/dist/cjs/atomic-commerce-facet-number-input_2.cjs.entry.js +149 -0
  311. package/dist/cjs/atomic-commerce-facet-number-input_2.cjs.entry.js.map +1 -0
  312. package/dist/cjs/atomic-commerce-no-products.cjs.entry.js +65 -0
  313. package/dist/cjs/atomic-commerce-no-products.cjs.entry.js.map +1 -0
  314. package/dist/cjs/atomic-commerce-query-error.cjs.entry.js +1 -1
  315. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js +179 -0
  316. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js.map +1 -0
  317. package/dist/cjs/atomic-commerce-refine-modal.cjs.entry.js +1 -1
  318. package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js +74 -0
  319. package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js.map +1 -0
  320. package/dist/cjs/atomic-commerce-text_2.cjs.entry.js +106 -0
  321. package/dist/cjs/atomic-commerce-text_2.cjs.entry.js.map +1 -0
  322. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  323. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  324. package/dist/cjs/atomic-facet.cjs.entry.js +2 -3
  325. package/dist/cjs/atomic-facet.cjs.entry.js.map +1 -1
  326. package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +2 -2
  327. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  328. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  329. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  330. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  331. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  332. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  333. package/dist/cjs/atomic-insight-facet.cjs.entry.js +2 -3
  334. package/dist/cjs/atomic-insight-facet.cjs.entry.js.map +1 -1
  335. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  336. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  337. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  338. package/dist/cjs/atomic-insight-interface.cjs.entry.js +5 -12
  339. package/dist/cjs/atomic-insight-interface.cjs.entry.js.map +1 -1
  340. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  341. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +2 -3
  342. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js.map +1 -1
  343. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  344. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  345. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  346. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  347. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  348. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  349. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  350. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  351. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  352. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  353. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  354. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  355. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +5 -6
  356. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +1 -1
  357. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  358. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  359. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  360. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  361. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  362. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  363. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  364. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  365. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  366. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  367. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  368. package/dist/cjs/atomic-layout-section.cjs.entry.js +18 -0
  369. package/dist/cjs/atomic-layout-section.cjs.entry.js.map +1 -0
  370. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  371. package/dist/cjs/atomic-no-results.cjs.entry.js +3 -15
  372. package/dist/cjs/atomic-no-results.cjs.entry.js.map +1 -1
  373. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +2 -3
  374. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  375. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  376. package/dist/cjs/atomic-product-link.cjs.entry.js +1 -1
  377. package/dist/cjs/atomic-product-numeric-field-value.cjs.entry.js +1 -1
  378. package/dist/cjs/atomic-product-price.cjs.entry.js +2 -2
  379. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  380. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  381. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  382. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  383. package/dist/cjs/atomic-rating-facet.cjs.entry.js +3 -4
  384. package/dist/cjs/atomic-rating-facet.cjs.entry.js.map +1 -1
  385. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +3 -4
  386. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js.map +1 -1
  387. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  388. package/dist/cjs/atomic-recs-interface.cjs.entry.js +7 -6
  389. package/dist/cjs/atomic-recs-interface.cjs.entry.js.map +1 -1
  390. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  391. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  392. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +3 -19
  393. package/dist/cjs/atomic-refine-toggle.cjs.entry.js.map +1 -1
  394. package/dist/cjs/{atomic-aria-live_2.cjs.entry.js → atomic-relevance-inspector.cjs.entry.js} +3 -70
  395. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js.map +1 -0
  396. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  397. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  398. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  399. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  400. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  401. package/dist/cjs/atomic-result-text_2.cjs.entry.js +4 -46
  402. package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
  403. package/dist/cjs/atomic-results-per-page.cjs.entry.js +1 -1
  404. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  405. package/dist/cjs/atomic-search-box.cjs.entry.js +5 -4
  406. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  407. package/dist/cjs/atomic-search-interface.cjs.entry.js +6 -5
  408. package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -1
  409. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  410. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  411. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  412. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  413. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  414. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  415. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  416. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  417. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  418. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +5 -6
  419. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js.map +1 -1
  420. package/dist/cjs/atomic.cjs.js +1 -1
  421. package/dist/cjs/{stencil-facet-header-a3dd9de0.js → facet-placeholder-ad0407f0.js} +12 -1
  422. package/dist/cjs/facet-placeholder-ad0407f0.js.map +1 -0
  423. package/dist/cjs/index-757bc886.js +34 -10
  424. package/dist/cjs/{analytics-config-d3622a33.js → interface-common-stencil-98f073f6.js} +4 -46
  425. package/dist/cjs/interface-common-stencil-98f073f6.js.map +1 -0
  426. package/dist/cjs/{product-utils-f6c780e3.js → product-utils-9507462c.js} +9 -1
  427. package/dist/cjs/product-utils-9507462c.js.map +1 -0
  428. package/dist/cjs/sections-4b4af2f8.js.map +1 -1
  429. package/dist/cjs/stencil-guard-caf49888.js +26 -0
  430. package/dist/cjs/stencil-guard-caf49888.js.map +1 -0
  431. package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js +52 -0
  432. package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js.map +1 -0
  433. package/dist/cjs/{timeframe-facet-common-d9078836.js → timeframe-facet-common-c555d20d.js} +4 -5
  434. package/dist/cjs/timeframe-facet-common-c555d20d.js.map +1 -0
  435. package/dist/cjs/utils-ca9c9aed.js +18 -0
  436. package/dist/cjs/utils-ca9c9aed.js.map +1 -0
  437. package/dist/cjs/version.cjs.js +2 -2
  438. package/dist/esm/_loader.js +1 -1
  439. package/dist/esm/analytics-config-253004a0.js +43 -0
  440. package/dist/esm/analytics-config-253004a0.js.map +1 -0
  441. package/dist/esm/atomic-aria-live.entry.js +71 -0
  442. package/dist/esm/atomic-aria-live.entry.js.map +1 -0
  443. package/dist/esm/atomic-automatic-facet_2.entry.js +1 -2
  444. package/dist/esm/atomic-automatic-facet_2.entry.js.map +1 -1
  445. package/dist/esm/atomic-category-facet.entry.js +2 -3
  446. package/dist/esm/atomic-category-facet.entry.js.map +1 -1
  447. package/dist/esm/atomic-citation.entry.js +1 -1
  448. package/dist/esm/atomic-color-facet.entry.js +1 -2
  449. package/dist/esm/atomic-color-facet.entry.js.map +1 -1
  450. package/dist/esm/{atomic-commerce-category-facet_6.entry.js → atomic-commerce-category-facet_5.entry.js} +109 -140
  451. package/dist/esm/atomic-commerce-category-facet_5.entry.js.map +1 -0
  452. package/dist/esm/atomic-commerce-facet-number-input_2.entry.js +144 -0
  453. package/dist/esm/atomic-commerce-facet-number-input_2.entry.js.map +1 -0
  454. package/dist/esm/atomic-commerce-no-products.entry.js +61 -0
  455. package/dist/esm/atomic-commerce-no-products.entry.js.map +1 -0
  456. package/dist/esm/atomic-commerce-query-error.entry.js +1 -1
  457. package/dist/esm/atomic-commerce-recommendation-interface.entry.js +175 -0
  458. package/dist/esm/atomic-commerce-recommendation-interface.entry.js.map +1 -0
  459. package/dist/esm/atomic-commerce-refine-modal.entry.js +1 -1
  460. package/dist/esm/atomic-commerce-refine-toggle.entry.js +70 -0
  461. package/dist/esm/atomic-commerce-refine-toggle.entry.js.map +1 -0
  462. package/dist/esm/atomic-commerce-text_2.entry.js +101 -0
  463. package/dist/esm/atomic-commerce-text_2.entry.js.map +1 -0
  464. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  465. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  466. package/dist/esm/atomic-facet.entry.js +2 -3
  467. package/dist/esm/atomic-facet.entry.js.map +1 -1
  468. package/dist/esm/atomic-focus-trap_2.entry.js +2 -2
  469. package/dist/esm/atomic-format-currency.entry.js +1 -1
  470. package/dist/esm/atomic-format-number.entry.js +1 -1
  471. package/dist/esm/atomic-format-unit.entry.js +1 -1
  472. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  473. package/dist/esm/atomic-html.entry.js +1 -1
  474. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  475. package/dist/esm/atomic-insight-facet.entry.js +2 -3
  476. package/dist/esm/atomic-insight-facet.entry.js.map +1 -1
  477. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  478. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  479. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  480. package/dist/esm/atomic-insight-interface.entry.js +3 -10
  481. package/dist/esm/atomic-insight-interface.entry.js.map +1 -1
  482. package/dist/esm/atomic-insight-no-results.entry.js +2 -2
  483. package/dist/esm/atomic-insight-numeric-facet.entry.js +2 -3
  484. package/dist/esm/atomic-insight-numeric-facet.entry.js.map +1 -1
  485. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  486. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  487. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  488. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  489. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  490. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  491. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  492. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  493. package/dist/esm/atomic-insight-result.entry.js +1 -1
  494. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  495. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  496. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  497. package/dist/esm/atomic-insight-timeframe-facet.entry.js +5 -6
  498. package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +1 -1
  499. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  500. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  501. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  502. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  503. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  504. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  505. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  506. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  507. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  508. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  509. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  510. package/dist/esm/atomic-layout-section.entry.js +14 -0
  511. package/dist/esm/atomic-layout-section.entry.js.map +1 -0
  512. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  513. package/dist/esm/atomic-no-results.entry.js +3 -15
  514. package/dist/esm/atomic-no-results.entry.js.map +1 -1
  515. package/dist/esm/atomic-numeric-facet.entry.js +2 -3
  516. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  517. package/dist/esm/atomic-pager.entry.js +3 -3
  518. package/dist/esm/atomic-product-link.entry.js +1 -1
  519. package/dist/esm/atomic-product-numeric-field-value.entry.js +1 -1
  520. package/dist/esm/atomic-product-price.entry.js +2 -2
  521. package/dist/esm/atomic-query-error.entry.js +1 -1
  522. package/dist/esm/atomic-query-summary.entry.js +1 -1
  523. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  524. package/dist/esm/atomic-quickview.entry.js +1 -1
  525. package/dist/esm/atomic-rating-facet.entry.js +1 -2
  526. package/dist/esm/atomic-rating-facet.entry.js.map +1 -1
  527. package/dist/esm/atomic-rating-range-facet.entry.js +1 -2
  528. package/dist/esm/atomic-rating-range-facet.entry.js.map +1 -1
  529. package/dist/esm/atomic-recs-error.entry.js +1 -1
  530. package/dist/esm/atomic-recs-interface.entry.js +3 -2
  531. package/dist/esm/atomic-recs-interface.entry.js.map +1 -1
  532. package/dist/esm/atomic-recs-list.entry.js +1 -1
  533. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  534. package/dist/esm/atomic-refine-toggle.entry.js +4 -20
  535. package/dist/esm/atomic-refine-toggle.entry.js.map +1 -1
  536. package/dist/esm/{atomic-aria-live_2.entry.js → atomic-relevance-inspector.entry.js} +5 -71
  537. package/dist/esm/atomic-relevance-inspector.entry.js.map +1 -0
  538. package/dist/esm/atomic-result-children.entry.js +1 -1
  539. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  540. package/dist/esm/atomic-result-link.entry.js +1 -1
  541. package/dist/esm/atomic-result-list.entry.js +1 -1
  542. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  543. package/dist/esm/atomic-result-text_2.entry.js +3 -45
  544. package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
  545. package/dist/esm/atomic-results-per-page.entry.js +1 -1
  546. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
  547. package/dist/esm/atomic-search-box.entry.js +5 -4
  548. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  549. package/dist/esm/atomic-search-interface.entry.js +2 -1
  550. package/dist/esm/atomic-search-interface.entry.js.map +1 -1
  551. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  552. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  553. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  554. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  555. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  556. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  557. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  558. package/dist/esm/atomic-tab-button.entry.js +1 -1
  559. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  560. package/dist/esm/atomic-timeframe-facet.entry.js +5 -6
  561. package/dist/esm/atomic-timeframe-facet.entry.js.map +1 -1
  562. package/dist/esm/atomic.js +1 -1
  563. package/dist/esm/{stencil-facet-header-8a22d37d.js → facet-placeholder-1ed55384.js} +12 -2
  564. package/dist/esm/facet-placeholder-1ed55384.js.map +1 -0
  565. package/dist/esm/index-3f35faca.js +34 -10
  566. package/dist/esm/{analytics-config-9367c413.js → interface-common-stencil-4bb4d80c.js} +4 -42
  567. package/dist/esm/interface-common-stencil-4bb4d80c.js.map +1 -0
  568. package/dist/esm/{product-utils-85109d2e.js → product-utils-8348689f.js} +9 -2
  569. package/dist/esm/product-utils-8348689f.js.map +1 -0
  570. package/dist/esm/sections-ae00b53a.js.map +1 -1
  571. package/dist/esm/stencil-guard-9329c8cd.js +23 -0
  572. package/dist/esm/stencil-guard-9329c8cd.js.map +1 -0
  573. package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js +49 -0
  574. package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js.map +1 -0
  575. package/dist/esm/{stencil-tips-be95482d.js → stencil-tips-06e9b3c2.js} +2 -2
  576. package/dist/esm/{stencil-tips-be95482d.js.map → stencil-tips-06e9b3c2.js.map} +1 -1
  577. package/dist/esm/{timeframe-facet-common-e16ae647.js → timeframe-facet-common-987f9f89.js} +2 -3
  578. package/dist/esm/timeframe-facet-common-987f9f89.js.map +1 -0
  579. package/dist/esm/utils-bd51f737.js +16 -0
  580. package/dist/esm/utils-bd51f737.js.map +1 -0
  581. package/dist/esm/version.js +2 -2
  582. package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +1 -1
  583. package/dist/types/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.d.ts +6 -15
  584. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +45 -63
  585. package/dist/types/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.d.ts +8 -14
  586. package/dist/types/components/commerce/atomic-commerce-text/atomic-commerce-text.d.ts +5 -13
  587. package/dist/types/components/commerce/atomic-product-template/atomic-product-template.d.ts +1 -4
  588. package/dist/types/components/commerce/atomic-product-text/atomic-product-text.d.ts +15 -29
  589. package/dist/types/components/commerce/index.d.ts +0 -5
  590. package/dist/types/components/common/atomic-layout-section/atomic-layout-section.d.ts +2 -11
  591. package/dist/types/components/common/atomic-layout-section/sections.d.ts +1 -2
  592. package/dist/types/components/common/index.d.ts +0 -1
  593. package/dist/types/components/common/interface/interface-common.d.ts +2 -1
  594. package/dist/types/components/common/items-per-page/label.d.ts +2 -2
  595. package/dist/types/components/common/no-items/container.d.ts +2 -2
  596. package/dist/types/components/common/no-items/magnifying-glass.d.ts +2 -2
  597. package/dist/types/components/common/refine-modal/button.d.ts +1 -1
  598. package/dist/types/components/insight/atomic-insight-interface/store.d.ts +0 -4
  599. package/dist/types/components.d.ts +300 -4
  600. package/dist/types/utils/functional-component-utils.d.ts +0 -3
  601. package/docs/atomic-docs.json +795 -31
  602. package/package.json +3 -3
  603. package/dist/atomic/components/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.js +0 -95
  604. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +0 -235
  605. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.tw.css.js +0 -2
  606. package/dist/atomic/components/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.js +0 -84
  607. package/dist/atomic/components/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.tw.css.js +0 -2
  608. package/dist/atomic/components/components/commerce/atomic-commerce-text/atomic-commerce-text.js +0 -54
  609. package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +0 -135
  610. package/dist/atomic/components/components/commerce/product-template-component-utils/error.js +0 -6
  611. package/dist/atomic/components/components/commerce/product-template-component-utils/product-utils.js +0 -35
  612. package/dist/atomic/components/components/common/atomic-layout-section/atomic-layout-section.js +0 -31
  613. package/dist/atomic/components/components/common/item-text/field-warning.js +0 -6
  614. package/dist/atomic/components/components/common/item-text/item-text-fallback.js +0 -15
  615. package/dist/atomic/components/components/common/item-text/item-text-highlighted.js +0 -17
  616. package/dist/atomic/components/components/common/item-text/render-highlights.js +0 -13
  617. package/dist/atomic/components/components/common/no-items/container.js +0 -7
  618. package/dist/atomic/components/components/common/no-items/guard.js +0 -11
  619. package/dist/atomic/components/components/common/no-items/magnifying-glass.js +0 -11
  620. package/dist/atomic/components/components/common/no-items/no-items.js +0 -30
  621. package/dist/atomic/components/components/common/no-items/tips.js +0 -8
  622. package/dist/atomic/components/components/common/refine-modal/button.js +0 -14
  623. package/dist/atomic/components/components/common/refine-modal/guard.js +0 -23
  624. package/dist/atomic/components/utils/object-utils.js +0 -13
  625. package/dist/atomic/p-022784c5.entry.js +0 -2
  626. package/dist/atomic/p-06037ffe.entry.js +0 -2
  627. package/dist/atomic/p-06037ffe.entry.js.map +0 -1
  628. package/dist/atomic/p-1429fbdb.entry.js +0 -2
  629. package/dist/atomic/p-27054c71.entry.js +0 -2
  630. package/dist/atomic/p-3025e992.entry.js +0 -2
  631. package/dist/atomic/p-56d6d329.entry.js +0 -2
  632. package/dist/atomic/p-7555ad6d.js +0 -2
  633. package/dist/atomic/p-7555ad6d.js.map +0 -1
  634. package/dist/atomic/p-7d1c2ecd.js +0 -2
  635. package/dist/atomic/p-8074a49d.entry.js +0 -2
  636. package/dist/atomic/p-a1c4ac09.js +0 -2
  637. package/dist/atomic/p-a1c4ac09.js.map +0 -1
  638. package/dist/atomic/p-a3f0aaf4.js +0 -2
  639. package/dist/atomic/p-a3f0aaf4.js.map +0 -1
  640. package/dist/atomic/p-b0f8c3ae.entry.js +0 -2
  641. package/dist/atomic/p-b700e040.entry.js +0 -2
  642. package/dist/atomic/p-b700e040.entry.js.map +0 -1
  643. package/dist/atomic/p-b90e5ea5.entry.js +0 -2
  644. package/dist/atomic/p-bb10a380.entry.js +0 -2
  645. package/dist/atomic/p-bb10a380.entry.js.map +0 -1
  646. package/dist/atomic/p-c46d5a44.entry.js +0 -2
  647. package/dist/atomic/p-c46d5a44.entry.js.map +0 -1
  648. package/dist/atomic/p-d5d0a472.entry.js +0 -2
  649. package/dist/atomic/p-d5d0a472.entry.js.map +0 -1
  650. package/dist/atomic/p-d76c5232.entry.js +0 -2
  651. package/dist/atomic/p-e4f872fb.entry.js +0 -2
  652. package/dist/atomic/p-e6f377c8.entry.js +0 -2
  653. package/dist/atomic/p-e6f377c8.entry.js.map +0 -1
  654. package/dist/atomic/p-f1bbe060.entry.js +0 -2
  655. package/dist/atomic/p-f1bbe060.entry.js.map +0 -1
  656. package/dist/atomic/p-f5323d5b.js.map +0 -1
  657. package/dist/atomic/p-fafea879.entry.js +0 -2
  658. package/dist/cjs/analytics-config-d3622a33.js.map +0 -1
  659. package/dist/cjs/atomic-aria-live_2.cjs.entry.js.map +0 -1
  660. package/dist/cjs/atomic-commerce-category-facet_6.cjs.entry.js.map +0 -1
  661. package/dist/cjs/atomic-commerce-facets.cjs.entry.js +0 -120
  662. package/dist/cjs/atomic-commerce-facets.cjs.entry.js.map +0 -1
  663. package/dist/cjs/facet-placeholder-0111f0f1.js +0 -17
  664. package/dist/cjs/facet-placeholder-0111f0f1.js.map +0 -1
  665. package/dist/cjs/product-utils-f6c780e3.js.map +0 -1
  666. package/dist/cjs/stencil-facet-header-a3dd9de0.js.map +0 -1
  667. package/dist/cjs/timeframe-facet-common-d9078836.js.map +0 -1
  668. package/dist/esm/analytics-config-9367c413.js.map +0 -1
  669. package/dist/esm/atomic-aria-live_2.entry.js.map +0 -1
  670. package/dist/esm/atomic-commerce-category-facet_6.entry.js.map +0 -1
  671. package/dist/esm/atomic-commerce-facets.entry.js +0 -116
  672. package/dist/esm/atomic-commerce-facets.entry.js.map +0 -1
  673. package/dist/esm/facet-placeholder-ecbe6e6f.js +0 -15
  674. package/dist/esm/facet-placeholder-ecbe6e6f.js.map +0 -1
  675. package/dist/esm/product-utils-85109d2e.js.map +0 -1
  676. package/dist/esm/stencil-facet-header-8a22d37d.js.map +0 -1
  677. package/dist/esm/timeframe-facet-common-e16ae647.js.map +0 -1
  678. /package/dist/atomic/{p-f5cea23f.entry.js.map → p-0267a585.entry.js.map} +0 -0
  679. /package/dist/atomic/{p-dcded8cb.entry.js.map → p-0b0ea7d3.entry.js.map} +0 -0
  680. /package/dist/atomic/{p-1326166a.entry.js.map → p-135be5aa.entry.js.map} +0 -0
  681. /package/dist/atomic/{p-f3e9a9f8.entry.js.map → p-1cc97adc.entry.js.map} +0 -0
  682. /package/dist/atomic/{p-ea5d2736.entry.js.map → p-22a0d1b9.entry.js.map} +0 -0
  683. /package/dist/atomic/{p-d88aec96.entry.js.map → p-29d27418.entry.js.map} +0 -0
  684. /package/dist/atomic/{p-90e88505.entry.js.map → p-2f0cb73c.entry.js.map} +0 -0
  685. /package/dist/atomic/{p-fb060cc0.entry.js.map → p-306c83ea.entry.js.map} +0 -0
  686. /package/dist/atomic/{p-b15ca291.entry.js.map → p-3195fa42.entry.js.map} +0 -0
  687. /package/dist/atomic/{p-714c5c2c.entry.js.map → p-32b26cd0.entry.js.map} +0 -0
  688. /package/dist/atomic/{p-1c72983f.entry.js.map → p-32c90fe9.entry.js.map} +0 -0
  689. /package/dist/atomic/{p-4e2ec64c.entry.js.map → p-3ec18de9.entry.js.map} +0 -0
  690. /package/dist/atomic/{p-a010dddb.entry.js.map → p-3f42a2db.entry.js.map} +0 -0
  691. /package/dist/atomic/{p-4495b132.entry.js.map → p-45b26cc7.entry.js.map} +0 -0
  692. /package/dist/atomic/{p-ffb15631.entry.js.map → p-47ee9d37.entry.js.map} +0 -0
  693. /package/dist/atomic/{p-aa4fc96f.entry.js.map → p-50b9a5d2.entry.js.map} +0 -0
  694. /package/dist/atomic/{p-e25287fd.entry.js.map → p-51c5acfc.entry.js.map} +0 -0
  695. /package/dist/atomic/{p-f72a0133.entry.js.map → p-543e811e.entry.js.map} +0 -0
  696. /package/dist/atomic/{p-d76c5232.entry.js.map → p-5cf5bb98.entry.js.map} +0 -0
  697. /package/dist/atomic/{p-2866ca4d.entry.js.map → p-60a9e718.entry.js.map} +0 -0
  698. /package/dist/atomic/{p-eabb4eae.entry.js.map → p-66683abd.entry.js.map} +0 -0
  699. /package/dist/atomic/{p-8b579505.entry.js.map → p-67315415.entry.js.map} +0 -0
  700. /package/dist/atomic/{p-714ee3bb.entry.js.map → p-689e063d.entry.js.map} +0 -0
  701. /package/dist/atomic/{p-f5686c7e.entry.js.map → p-690b5853.entry.js.map} +0 -0
  702. /package/dist/atomic/{p-ace45b24.entry.js.map → p-70ab347b.entry.js.map} +0 -0
  703. /package/dist/atomic/{p-966509f8.entry.js.map → p-76122df5.entry.js.map} +0 -0
  704. /package/dist/atomic/{p-9ec72c3b.entry.js.map → p-7d1f8d9c.entry.js.map} +0 -0
  705. /package/dist/atomic/{p-d37bb72b.entry.js.map → p-80dc3bab.entry.js.map} +0 -0
  706. /package/dist/atomic/{p-6e11d4c6.entry.js.map → p-8d7f57d9.entry.js.map} +0 -0
  707. /package/dist/atomic/{p-7d63f0e6.entry.js.map → p-8e09f796.entry.js.map} +0 -0
  708. /package/dist/atomic/{p-a84d94cb.entry.js.map → p-95942ba2.entry.js.map} +0 -0
  709. /package/dist/atomic/{p-21d55afc.entry.js.map → p-99604083.entry.js.map} +0 -0
  710. /package/dist/atomic/{p-d4ec6961.entry.js.map → p-9a08dad7.entry.js.map} +0 -0
  711. /package/dist/atomic/{p-03fa8481.entry.js.map → p-9ae88402.entry.js.map} +0 -0
  712. /package/dist/atomic/{p-01c109cf.entry.js.map → p-9d2230db.entry.js.map} +0 -0
  713. /package/dist/atomic/{p-fac32d34.entry.js.map → p-9eb108c9.entry.js.map} +0 -0
  714. /package/dist/atomic/{p-5a3cd055.entry.js.map → p-a3169f59.entry.js.map} +0 -0
  715. /package/dist/atomic/{p-c6f15059.entry.js.map → p-a8281e9b.entry.js.map} +0 -0
  716. /package/dist/atomic/{p-4f03327d.entry.js.map → p-ab5eec3d.entry.js.map} +0 -0
  717. /package/dist/atomic/{p-1aedbfbf.entry.js.map → p-b19a8cbb.entry.js.map} +0 -0
  718. /package/dist/atomic/{p-61f79055.entry.js.map → p-b4d47ca9.entry.js.map} +0 -0
  719. /package/dist/atomic/{p-1e3f156e.entry.js.map → p-b4dfe5b2.entry.js.map} +0 -0
  720. /package/dist/atomic/{p-3025e992.entry.js.map → p-b747e4a9.entry.js.map} +0 -0
  721. /package/dist/atomic/{p-e4cc2a37.entry.js.map → p-b7824e0e.entry.js.map} +0 -0
  722. /package/dist/atomic/{p-3632e456.entry.js.map → p-be13ed5c.entry.js.map} +0 -0
  723. /package/dist/atomic/{p-2871034a.entry.js.map → p-bfeefcaa.entry.js.map} +0 -0
  724. /package/dist/atomic/{p-b4b6f859.entry.js.map → p-c0d7b26d.entry.js.map} +0 -0
  725. /package/dist/atomic/{p-9ef7ffc0.entry.js.map → p-c13d4039.entry.js.map} +0 -0
  726. /package/dist/atomic/{p-4505f2e0.entry.js.map → p-c4f042ae.entry.js.map} +0 -0
  727. /package/dist/atomic/{p-faee1f57.entry.js.map → p-cd87574b.entry.js.map} +0 -0
  728. /package/dist/atomic/{p-0875a7fb.entry.js.map → p-ce4e939b.entry.js.map} +0 -0
  729. /package/dist/atomic/{p-1fbbed3e.entry.js.map → p-d1efd50f.entry.js.map} +0 -0
  730. /package/dist/atomic/{p-7d773b22.entry.js.map → p-d30057a0.entry.js.map} +0 -0
  731. /package/dist/atomic/{p-e7d5c4be.entry.js.map → p-d4aba9f9.entry.js.map} +0 -0
  732. /package/dist/atomic/{p-ce1f6392.entry.js.map → p-d69756ae.entry.js.map} +0 -0
  733. /package/dist/atomic/{p-08d1db60.entry.js.map → p-d827c148.entry.js.map} +0 -0
  734. /package/dist/atomic/{p-d04ad3e5.entry.js.map → p-dd8c6bdd.entry.js.map} +0 -0
  735. /package/dist/atomic/{p-886da915.entry.js.map → p-ddd52850.entry.js.map} +0 -0
  736. /package/dist/atomic/{p-fecd79de.entry.js.map → p-e44155cc.entry.js.map} +0 -0
  737. /package/dist/atomic/{p-c074198a.entry.js.map → p-e4754fd0.entry.js.map} +0 -0
  738. /package/dist/atomic/{p-db5285b1.entry.js.map → p-ec0161b7.entry.js.map} +0 -0
  739. /package/dist/atomic/{p-eea2128f.entry.js.map → p-ec6bc15b.entry.js.map} +0 -0
  740. /package/dist/atomic/{p-e37f01fc.entry.js.map → p-eebb168b.entry.js.map} +0 -0
  741. /package/dist/atomic/{p-870dbeef.entry.js.map → p-f4b98113.entry.js.map} +0 -0
  742. /package/dist/atomic/{p-e988f378.js.map → p-f7f81710.js.map} +0 -0
  743. /package/dist/atomic/{p-8403335e.entry.js.map → p-fb0bdcdb.entry.js.map} +0 -0
  744. /package/dist/atomic/{p-b0f8c3ae.entry.js.map → p-fbbbc454.entry.js.map} +0 -0
  745. /package/dist/atomic/{p-ebb35a4b.entry.js.map → p-fd9d1c3f.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["atomicCommerceCategoryFacetCss","AtomicCommerceCategoryFacetStyle0","AtomicCommerceCategoryFacet","this","isCollapsed","resultIndexToFocusOnShowMore","initialize","facet","ensureSubscribed","announceFacetSearchResultsWithAriaLive","displayName","msg","facetSearchAriaMessage","bindings","i18n","facetInfo","label","t","facetId","facetState","element","host","isHidden","initializePopover","hasValues","values","length","numberOfActiveValues","hasActiveValues","focusTargets","showLessFocus","FocusTargetController","showMoreFocus","headerFocus","activeValueFocus","disconnectedCallback","isConnected","unsubscribeFacetController","undefined","connectedCallback","summaryState","hasError","selectedValueAncestry","componentShouldUpdate","next","prev","propName","isCategoryFacetState","shouldUpdateFacetSearchComponent","facetSearch","hasParents","renderHeader","h","FacetHeader","headingLevel","onToggleCollapse","onClearFilters","focusAfterSearch","deselectAll","headerRef","header","setTarget","renderSearchInput","FacetSearchInput","query","onChange","value","clear","updateText","search","onClear","renderValuesTree","parents","isRoot","renderChildren","CategoryFacetTreeValueContainer","CategoryFacetAllCategoryButton","onClick","CategoryFacetParentAsTreeContainer","isTopLevel","parentValue","CategoryFacetParentButton","facetValue","field","toggleSelect","slice","activeParent","activeParentDisplayValue","getFieldValueCaption","CategoryFacetParentValueLink","displayValue","numberOfResults","isLeafValue","searchQuery","setRef","el","CategoryFacetChildrenAsTreeContainer","renderChild","isShowLessFocusTarget","isShowMoreFocusTarget","isSelected","state","CategoryFacetChildValueLink","nextValues","children","map","i","renderSearchResults","CategoryFacetSearchResultsContainer","CategoryFacetSearchValue","select","renderMatches","FacetSearchMatches","numberOfMatches","hasMoreMatches","moreValuesAvailable","renderShowMoreLess","class","FacetShowMoreLess","onShowMore","showMoreValues","onShowLess","showLessValues","canShowLessValues","canShowMoreValues","render","firstRequestExecuted","FacetGuard","key","enabled","firstSearchExecuted","hasResults","FacetContainer","shouldDisplaySearchResults","Fragment","FacetValuesGroup","className","subscribe","__decorate","InitializeBindings","BindStateToController","AriaLiveRegion","atomicCommerceFacetCss","AtomicCommerceFacetStyle0","AtomicCommerceFacet","initAriaLive","initPopover","isFacetState","activeValues","renderBody","FacetSearchInputGuard","numberOfDisplayedValues","withSearch","renderValues","renderValuesContainer","part","FacetSearchValue","facetValueProps","facetCount","count","onExclude","exclude","onSelect","rawValue","shouldFocusOnShowLessAfterInteraction","shouldFocusOnShowMoreAfterInteraction","FacetValue","toggleExclude","btn","showMore","showLess","filter","facetSearchQuery","displayValuesAs","enableExclusion","AtomicCommerceFacets","collapseFacetsAfter","isAppLoaded","validateProps","engine","controller","controllerBuilder","facetGenerator","summary","createAppLoadedListener","store","isProductListing","interfaceElement","type","buildProductListing","buildSearch","Schema","collapseFacetAfter","NumberValue","min","required","validate","shouldCollapseFacet","index","Array","from","FacetPlaceholder","numberOfValues","facets","props","logger","warn","atomicCommerceNumericFacetCss","AtomicCommerceNumericFacetStyle0","AtomicCommerceNumericFacet","manualRanges","focusTarget","context","buildContext","registerFacetToStore","formatter","defaultCurrencyFormatter","contextState","currency","defaultNumberFormatter","numberOfSelectedValues","applyNumberInput","detail","start","end","setRanges","endInclusive","shouldRenderFacet","shouldRenderValues","shouldRenderInput","range","manualRange","NumericFacetValuesContainer","valuesToRender","NumericFacetValueLink","hasInputRange","isLoading","hasProducts","shouldDisplayInputForFacetRange","searchStatusState","facetValues","hasInput","atomicCommerceTimeframeFacetCss","AtomicCommerceTimeframeFacetStyle0","AtomicCommerceTimeframeFacet","applyDateInput","inputRange","resetRange","formatFacetValue","startDate","deserializeRelativeDate","relativeDate","period","unit","amount","error","parseDate","format","renderValue","isExcluded","FacetValueLink","toggleSingleSelect","FacetValueLabelHighlight","renderDateInput","rangeGetter","rangeSetter"],"sources":["src/components/commerce/facets/atomic-commerce-category-facet/atomic-commerce-category-facet.pcss?tag=atomic-commerce-category-facet&encapsulation=shadow","src/components/commerce/facets/atomic-commerce-category-facet/atomic-commerce-category-facet.tsx","src/components/commerce/facets/atomic-commerce-facet/atomic-commerce-facet.pcss?tag=atomic-commerce-facet&encapsulation=shadow","src/components/commerce/facets/atomic-commerce-facet/atomic-commerce-facet.tsx","src/components/commerce/facets/atomic-commerce-facets/atomic-commerce-facets.tsx","src/components/commerce/facets/atomic-commerce-numeric-facet/atomic-commerce-numeric-facet.pcss?tag=atomic-commerce-numeric-facet&encapsulation=shadow","src/components/commerce/facets/atomic-commerce-numeric-facet/atomic-commerce-numeric-facet.tsx","src/components/commerce/facets/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.pcss?tag=atomic-commerce-timeframe-facet&encapsulation=shadow","src/components/commerce/facets/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.tsx"],"sourcesContent":["@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/facets/facet-search/facet-search.pcss';\n\n[part~='active-parent'] {\n @apply pl-9;\n}\n\n[part~='parents'] [part~='values'] {\n @apply pl-9;\n}\n\n[part~='all-categories-button'],\n[part~='parent-button'] {\n @apply relative flex w-full items-center py-2.5 pr-2 pl-7 text-left;\n}\n\n[part~='back-arrow'] {\n @apply absolute left-1 h-5 w-5;\n}\n","import {\n CategoryFacetState,\n CategoryFacetValue,\n CategoryFacet,\n SearchSummaryState,\n ProductListingSummaryState,\n Summary,\n} from '@coveo/headless/commerce';\nimport {Component, h, State, Prop, Element, Fragment} from '@stencil/core';\nimport {getFieldValueCaption} from '../../../../utils/field-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {\n AriaLiveRegion,\n FocusTargetController,\n} from '../../../../utils/stencil-accessibility-utils';\nimport {CategoryFacetAllCategoryButton} from '../../../common/facets/category-facet/all-categories-button';\nimport {CategoryFacetChildValueLink} from '../../../common/facets/category-facet/child-value-link';\nimport {CategoryFacetChildrenAsTreeContainer} from '../../../common/facets/category-facet/children-as-tree-container';\nimport {CategoryFacetParentAsTreeContainer} from '../../../common/facets/category-facet/parent-as-tree-container';\nimport {CategoryFacetParentButton} from '../../../common/facets/category-facet/parent-button';\nimport {CategoryFacetParentValueLink} from '../../../common/facets/category-facet/parent-value-link';\nimport {CategoryFacetSearchResultsContainer} from '../../../common/facets/category-facet/search-results-container';\nimport {CategoryFacetSearchValue} from '../../../common/facets/category-facet/search-value';\nimport {CategoryFacetTreeValueContainer} from '../../../common/facets/category-facet/value-as-tree-container';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetGuard} from '../../../common/facets/facet-guard';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {announceFacetSearchResultsWithAriaLive} from '../../../common/facets/facet-search/facet-search-aria-live';\nimport {\n shouldUpdateFacetSearchComponent,\n shouldDisplaySearchResults,\n} from '../../../common/facets/facet-search/facet-search-utils';\nimport {FacetSearchInput} from '../../../common/facets/facet-search/stencil-facet-search-input';\nimport {FacetSearchMatches} from '../../../common/facets/facet-search/stencil-facet-search-matches';\nimport {FacetShowMoreLess} from '../../../common/facets/facet-show-more-less/stencil-facet-show-more-less';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {CommerceBindings as Bindings} from '../../atomic-commerce-interface/atomic-commerce-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).\n * An `atomic-commerce-category-facet` displays a facet of values in a browsable, hierarchical fashion.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and allows to expand/collapse the facet.\n * @part label-button-icon - The label button icon.\n *\n * @part search-wrapper - The search box wrapper.\n * @part search-input - The search box input.\n * @part search-icon - The search box submit button.\n * @part search-clear-button - The button to clear the search box of input.\n * @part more-matches - The label indicating there are more matches for the current facet search query.\n * @part no-matches - The label indicating there are no matches for the current facet search query.\n * @part matches-query - The highlighted query inside the matches labels.\n * @part search-results - The search results container.\n * @part search-result - The search result value.\n * @part search-result-path - The search result path.\n * @part search-highlight - The highlighted query inside the facet values.\n *\n * @part parents - The container surrounding the whole hierarchy of values.\n * @part sub-parents - The container surrounding a sub-hierarchy of values.\n * @part values - The container surrounding either the children of the active value or the values at the base.\n * @part all-categories-button - The \"View all\" button displayed first within the parents.\n * @part parent-button - The clickable parent button displayed first within sub-parents.\n * @part active-parent - The clickable active parent displayed first within the last sub-parents.\n * @part value-link - The clickable value displayed first within values.\n * @part back-arrow - The back arrow displayed before the clickable parents.\n * @part value-label - The facet value label within a value button.\n * @part value-count - The facet value count within a value button.\n * @part leaf-value - A facet value with no child value.\n * @part node-value - A facet value with child values.\n *\n * @part show-more - The show more results button.\n * @part show-less - The show less results button.\n * @part show-more-less-icon - The icons of the show more & show less buttons.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-category-facet',\n styleUrl: 'atomic-commerce-category-facet.pcss',\n shadow: true,\n})\nexport class AtomicCommerceCategoryFacet\n implements InitializableComponent<Bindings>\n{\n @InitializeBindings() public bindings!: Bindings;\n @Element() private host!: HTMLElement;\n\n /**\n * The summary controller instance.\n */\n @Prop() summary!: Summary<SearchSummaryState | ProductListingSummaryState>;\n /**\n * The category facet controller instance.\n */\n @Prop() public facet!: CategoryFacet;\n /**\n * Specifies whether the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The field identifier for this facet.\n */\n @Prop({reflect: true}) field?: string;\n\n @State()\n public facetState!: CategoryFacetState;\n\n @BindStateToController('summary')\n @State()\n public summaryState!: SearchSummaryState | ProductListingSummaryState;\n\n @State() public error!: Error;\n\n private resultIndexToFocusOnShowMore = 0;\n private showLessFocus?: FocusTargetController;\n private showMoreFocus?: FocusTargetController;\n private headerFocus?: FocusTargetController;\n private activeValueFocus?: FocusTargetController;\n private unsubscribeFacetController?: () => void | undefined;\n\n @AriaLiveRegion('facet-search')\n protected facetSearchAriaMessage!: string;\n\n public initialize() {\n if (!this.facet) {\n return;\n }\n\n this.ensureSubscribed();\n announceFacetSearchResultsWithAriaLive(\n this.facet,\n this.displayName,\n (msg) => (this.facetSearchAriaMessage = msg),\n this.bindings.i18n\n );\n\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.displayName),\n facetId: this.facetState.facetId,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => !!this.facetState.values.length,\n numberOfActiveValues: () => (this.facetState.hasActiveValues ? 1 : 0),\n });\n }\n\n private get displayName() {\n return this.facetState?.displayName || 'no-label';\n }\n\n private get focusTargets() {\n if (!this.showLessFocus) {\n this.showLessFocus = new FocusTargetController(this);\n }\n if (!this.showMoreFocus) {\n this.showMoreFocus = new FocusTargetController(this);\n }\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n if (!this.activeValueFocus) {\n this.activeValueFocus = new FocusTargetController(this);\n }\n\n return {\n showLessFocus: this.showLessFocus,\n showMoreFocus: this.showMoreFocus,\n headerFocus: this.headerFocus,\n activeValueFocus: this.activeValueFocus,\n };\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.unsubscribeFacetController?.();\n this.unsubscribeFacetController = undefined;\n }\n\n public connectedCallback(): void {\n this.ensureSubscribed();\n }\n\n private get isHidden() {\n return (\n this.summaryState.hasError ||\n (!this.facetState.values.length &&\n !this.facetState.selectedValueAncestry?.length)\n );\n }\n\n public componentShouldUpdate(\n next: unknown,\n prev: unknown,\n propName: keyof AtomicCommerceCategoryFacet\n ) {\n if (\n this.isCategoryFacetState(prev, propName) &&\n this.isCategoryFacetState(next, propName)\n ) {\n return shouldUpdateFacetSearchComponent(\n next.facetSearch,\n prev.facetSearch\n );\n }\n return true;\n }\n\n private get hasParents() {\n return !!this.facetState.selectedValueAncestry?.length;\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.displayName}\n numberOfActiveValues={\n this.facetState.hasActiveValues && this.isCollapsed ? 1 : 0\n }\n isCollapsed={this.isCollapsed}\n headingLevel={0}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n onClearFilters={() => {\n this.focusTargets.headerFocus.focusAfterSearch();\n this.facet.deselectAll();\n }}\n headerRef={(header) => {\n this.focusTargets.headerFocus.setTarget(header);\n if (!this.hasParents) {\n this.focusTargets.activeValueFocus.setTarget(header);\n }\n }}\n ></FacetHeader>\n );\n }\n\n private renderSearchInput() {\n return (\n <FacetSearchInput\n i18n={this.bindings.i18n}\n label={this.displayName}\n query={this.facetState.facetSearch.query}\n onChange={(value: string) => {\n if (value === '') {\n this.facet.facetSearch.clear();\n return;\n }\n this.facet.facetSearch.updateText(value);\n this.facet.facetSearch.search();\n }}\n onClear={() => this.facet.facetSearch.clear()}\n ></FacetSearchInput>\n );\n }\n\n private renderValuesTree(parents: CategoryFacetValue[], isRoot: boolean) {\n if (!this.hasParents) {\n return this.renderChildren();\n }\n\n if (isRoot) {\n return (\n <CategoryFacetTreeValueContainer>\n <CategoryFacetAllCategoryButton\n i18n={this.bindings.i18n}\n onClick={() => {\n this.focusTargets.activeValueFocus.focusAfterSearch();\n this.facet.deselectAll();\n }}\n />\n <CategoryFacetParentAsTreeContainer isTopLevel={false}>\n {this.renderValuesTree(parents, false)}\n </CategoryFacetParentAsTreeContainer>\n </CategoryFacetTreeValueContainer>\n );\n }\n\n if (parents.length > 1) {\n const parentValue = parents[0];\n\n return (\n <CategoryFacetTreeValueContainer>\n <CategoryFacetParentButton\n facetValue={parentValue}\n field={this.facetState?.field}\n i18n={this.bindings.i18n}\n onClick={() => {\n this.focusTargets.activeValueFocus.focusAfterSearch();\n this.facet.toggleSelect(parentValue);\n }}\n />\n <CategoryFacetParentAsTreeContainer isTopLevel={false}>\n {this.renderValuesTree(parents.slice(1), false)}\n </CategoryFacetParentAsTreeContainer>\n </CategoryFacetTreeValueContainer>\n );\n }\n\n const activeParent = parents[0];\n const activeParentDisplayValue = getFieldValueCaption(\n this.facetState?.field,\n activeParent.value,\n this.bindings.i18n\n );\n\n return (\n <CategoryFacetParentValueLink\n displayValue={activeParentDisplayValue}\n numberOfResults={activeParent.numberOfResults}\n i18n={this.bindings.i18n}\n isLeafValue={activeParent.isLeafValue}\n onClick={() => {\n this.focusTargets.activeValueFocus.focusAfterSearch();\n this.facet.deselectAll();\n }}\n searchQuery={this.facetState.facetSearch.query}\n setRef={(el) => this.focusTargets.activeValueFocus.setTarget(el)}\n >\n <CategoryFacetChildrenAsTreeContainer>\n {this.renderChildren()}\n </CategoryFacetChildrenAsTreeContainer>\n </CategoryFacetParentValueLink>\n );\n }\n\n private renderChild(\n facetValue: CategoryFacetValue,\n isShowLessFocusTarget: boolean,\n isShowMoreFocusTarget: boolean\n ) {\n const displayValue = getFieldValueCaption(\n this.facetState?.field,\n facetValue.value,\n this.bindings.i18n\n );\n const isSelected = facetValue.state === 'selected';\n return (\n <CategoryFacetChildValueLink\n displayValue={displayValue}\n i18n={this.bindings.i18n}\n isLeafValue={facetValue.isLeafValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n onClick={() => {\n this.focusTargets.activeValueFocus.focusAfterSearch();\n this.facet.toggleSelect(facetValue);\n }}\n searchQuery={this.facetState.facetSearch.query}\n setRef={(element) => {\n isShowLessFocusTarget &&\n this.focusTargets.showLessFocus.setTarget(element);\n isShowMoreFocusTarget &&\n this.focusTargets.showMoreFocus.setTarget(element);\n }}\n ></CategoryFacetChildValueLink>\n );\n }\n\n private renderChildren() {\n const {values, selectedValueAncestry, hasActiveValues} = this.facetState;\n const nextValues = hasActiveValues ? selectedValueAncestry : values;\n\n const children = nextValues?.length\n ? hasActiveValues\n ? nextValues[nextValues.length - 1].children\n : nextValues\n : [];\n\n return children.map((value, i) =>\n this.renderChild(value, i === 0, i === this.resultIndexToFocusOnShowMore)\n );\n }\n\n private renderSearchResults() {\n return (\n <CategoryFacetSearchResultsContainer>\n {this.facetState.facetSearch.values.map((value) => (\n <CategoryFacetSearchValue\n value={value}\n field={this.facetState?.field}\n i18n={this.bindings.i18n}\n searchQuery={this.facetState.facetSearch.query}\n onClick={() => {\n this.focusTargets.activeValueFocus.focusAfterSearch();\n this.facet.facetSearch.select(value);\n }}\n ></CategoryFacetSearchValue>\n ))}\n </CategoryFacetSearchResultsContainer>\n );\n }\n\n private renderMatches() {\n return (\n <FacetSearchMatches\n i18n={this.bindings.i18n}\n query={this.facetState.facetSearch.query}\n numberOfMatches={this.facetState.facetSearch.values.length}\n hasMoreMatches={this.facetState.facetSearch.moreValuesAvailable}\n ></FacetSearchMatches>\n );\n }\n\n private renderShowMoreLess() {\n return (\n <div class={this.hasParents ? 'pl-9' : ''}>\n <FacetShowMoreLess\n label={this.displayName}\n i18n={this.bindings.i18n}\n onShowMore={() => {\n this.resultIndexToFocusOnShowMore = this.facetState.values.length;\n this.focusTargets.showMoreFocus.focusAfterSearch();\n this.facet.showMoreValues();\n }}\n onShowLess={() => {\n this.focusTargets.showLessFocus.focusAfterSearch();\n this.facet.showLessValues();\n }}\n canShowLessValues={this.facetState.canShowLessValues}\n canShowMoreValues={this.facetState.canShowMoreValues}\n ></FacetShowMoreLess>\n </div>\n );\n }\n\n private isCategoryFacetState(\n state: unknown,\n propName: string\n ): state is CategoryFacetState {\n return (\n propName === 'facetState' &&\n typeof (state as CategoryFacetState)?.facetId === 'string'\n );\n }\n\n public render() {\n const {\n bindings: {i18n},\n facetState: {facetSearch, selectedValueAncestry, values},\n } = this;\n\n const {hasError, firstRequestExecuted} = this.summaryState;\n\n return (\n <FacetGuard\n enabled={true}\n firstSearchExecuted={firstRequestExecuted}\n hasError={hasError}\n hasResults={values.length > 0}\n >\n {\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && [\n this.renderSearchInput(),\n shouldDisplaySearchResults(facetSearch) ? (\n <Fragment>\n {facetSearch.values.length ? (\n <FacetValuesGroup\n i18n={i18n}\n label={this.displayName}\n query={facetSearch.query}\n >\n {this.renderSearchResults()}\n </FacetValuesGroup>\n ) : (\n <div class=\"mt-3\"></div>\n )}\n {this.renderMatches()}\n </Fragment>\n ) : (\n <Fragment>\n <FacetValuesGroup i18n={i18n} label={this.displayName}>\n {this.hasParents ? (\n <CategoryFacetParentAsTreeContainer\n isTopLevel={true}\n className=\"mt-3\"\n >\n {selectedValueAncestry &&\n this.renderValuesTree(selectedValueAncestry, true)}\n </CategoryFacetParentAsTreeContainer>\n ) : (\n <CategoryFacetChildrenAsTreeContainer className=\"mt-3\">\n {this.renderChildren()}\n </CategoryFacetChildrenAsTreeContainer>\n )}\n </FacetValuesGroup>\n {this.renderShowMoreLess()}\n </Fragment>\n ),\n ]}\n </FacetContainer>\n }\n </FacetGuard>\n );\n }\n\n private ensureSubscribed() {\n if (this.unsubscribeFacetController) {\n return;\n }\n this.unsubscribeFacetController = this.facet.subscribe(\n () => (this.facetState = this.facet.state)\n );\n }\n}\n","@import '../../../../global/global.pcss';\n@import '../../../common/facets/facet-search/facet-search.pcss';\n@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/facets/facet-value-checkbox/facet-value-checkbox.pcss';\n@import '../../../common/facets/facet-value-exclude/facet-value-exclude.pcss';\n@import '../../../common/facets/facet-value-box/facet-value-box.pcss';\n","import {\n ProductListingSummaryState,\n RegularFacet,\n RegularFacetState,\n SearchSummaryState,\n Summary,\n} from '@coveo/headless/commerce';\nimport {\n Component,\n h,\n State,\n Prop,\n Element,\n VNode,\n Fragment,\n} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {\n AriaLiveRegion,\n FocusTargetController,\n} from '../../../../utils/stencil-accessibility-utils';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetGuard} from '../../../common/facets/facet-guard';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {announceFacetSearchResultsWithAriaLive} from '../../../common/facets/facet-search/facet-search-aria-live';\nimport {\n shouldDisplaySearchResults,\n shouldUpdateFacetSearchComponent,\n} from '../../../common/facets/facet-search/facet-search-utils';\nimport {FacetSearchInput} from '../../../common/facets/facet-search/stencil-facet-search-input';\nimport {FacetSearchInputGuard} from '../../../common/facets/facet-search/stencil-facet-search-input-guard';\nimport {FacetSearchMatches} from '../../../common/facets/facet-search/stencil-facet-search-matches';\nimport {FacetSearchValue} from '../../../common/facets/facet-search/stencil-facet-search-value';\nimport {FacetShowMoreLess} from '../../../common/facets/facet-show-more-less/stencil-facet-show-more-less';\nimport {\n FacetValueProps,\n FacetValue,\n} from '../../../common/facets/facet-value/stencil-facet-value';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {CommerceBindings as Bindings} from '../../atomic-commerce-interface/atomic-commerce-interface';\n\n/**\n * The `atomic-commerce-facet` component renders a commerce facet that the end user can interact with to filter products.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and allows to expand/collapse the facet.\n * @part label-button-icon - The label button icon.\n * @part clear-button - The button that resets the actively selected facet values.\n * @part clear-button-icon - The clear button icon.\n *\n * @part search-wrapper - The search box wrapper.\n * @part search-input - The search box input.\n * @part search-icon - The search box submit button.\n * @part search-clear-button - The button to clear the search box of input.\n * @part more-matches - The label indicating there are more matches for the current facet search query.\n * @part no-matches - The label indicating there are no matches for the current facet search query.\n * @part matches-query - The highlighted query inside the matches labels.\n * @part search-highlight - The highlighted query inside the facet values.\n *\n * @part values - The facet values container.\n * @part value-label - The facet value label, common for all displays.\n * @part value-count - The facet value count, common for all displays.\n *\n * @part value-checkbox - The facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-checked - The checked facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-label - The facet value checkbox clickable label, available when display is 'checkbox'.\n * @part value-checkbox-icon - The facet value checkbox icon, available when display is 'checkbox'.\n * @part value-link - The facet value when display is 'link'.\n * @part value-link-selected - The selected facet value when display is 'link'.\n * @part value-box - The facet value when display is 'box'.\n * @part value-box-selected - The selected facet value when display is 'box'.\n * @part value-exclude-button - The button to exclude a facet value, available when display is 'checkbox'.\n *\n * @part show-more - The show more results button.\n * @part show-less - The show less results button.\n * @part show-more-less-icon - The icons of the show more & show less buttons.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-facet',\n styleUrl: 'atomic-commerce-facet.pcss',\n shadow: true,\n})\nexport class AtomicCommerceFacet implements InitializableComponent<Bindings> {\n @InitializeBindings() public bindings!: Bindings;\n @Element() private host!: HTMLElement;\n\n /**\n * The Summary controller instance.\n */\n @Prop() summary!: Summary<SearchSummaryState | ProductListingSummaryState>;\n /**\n * The facet controller instance.\n */\n @Prop() public facet!: RegularFacet;\n /**\n * Specifies whether the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The field identifier for this facet.\n */\n @Prop({reflect: true}) field?: string;\n\n @State()\n public facetState!: RegularFacetState;\n\n @BindStateToController('summary')\n @State()\n public summaryState!: SearchSummaryState | ProductListingSummaryState;\n\n @State() public error!: Error;\n\n private showLessFocus?: FocusTargetController;\n private showMoreFocus?: FocusTargetController;\n private headerFocus?: FocusTargetController;\n private unsubscribeFacetController?: () => void | undefined;\n\n @AriaLiveRegion('facet-search')\n protected facetSearchAriaMessage!: string;\n\n public initialize() {\n if (!this.facet) {\n return;\n }\n this.ensureSubscribed();\n this.initAriaLive();\n this.initPopover();\n }\n\n public connectedCallback(): void {\n this.ensureSubscribed();\n }\n\n public disconnectedCallback(): void {\n this.unsubscribeFacetController?.();\n this.unsubscribeFacetController = undefined;\n }\n\n public componentShouldUpdate(\n next: unknown,\n prev: unknown,\n propName: keyof AtomicCommerceFacet\n ) {\n if (\n this.isFacetState(prev, propName) &&\n this.isFacetState(next, propName)\n ) {\n return shouldUpdateFacetSearchComponent(\n next.facetSearch,\n prev.facetSearch\n );\n }\n return true;\n }\n\n public render() {\n if (!this.facet) {\n return;\n }\n const {hasError, firstRequestExecuted} = this.summaryState;\n return (\n <FacetGuard\n enabled={true}\n hasError={hasError}\n firstSearchExecuted={firstRequestExecuted}\n hasResults={this.facetState.values.length > 0}\n >\n {\n <FacetContainer>\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.displayName}\n onClearFilters={() => {\n this.focusTargets.header.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.activeValues.length}\n isCollapsed={this.isCollapsed}\n headingLevel={0}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTargets.header.setTarget(el)}\n ></FacetHeader>\n {this.renderBody()}\n </FacetContainer>\n }\n </FacetGuard>\n );\n }\n\n private renderBody() {\n if (this.isCollapsed) {\n return;\n }\n return (\n <Fragment>\n <FacetSearchInputGuard\n canShowMoreValues={this.facetState.canShowMoreValues}\n numberOfDisplayedValues={this.facetState.values.length}\n withSearch={true}\n >\n <FacetSearchInput\n i18n={this.bindings.i18n}\n label={this.displayName}\n onChange={(value) => {\n if (value === '') {\n this.facet.facetSearch.clear();\n return;\n }\n this.facet.facetSearch.updateText(value);\n this.facet.facetSearch.search();\n }}\n onClear={() => this.facet.facetSearch.clear()}\n query={this.facetState.facetSearch.query}\n />\n </FacetSearchInputGuard>\n {shouldDisplaySearchResults(this.facetState.facetSearch)\n ? [this.renderSearchResults(), this.renderMatches()]\n : [this.renderValues(), this.renderShowMoreLess()]}\n </Fragment>\n );\n }\n\n private renderValuesContainer(children: VNode[], query?: string) {\n return (\n <FacetValuesGroup\n i18n={this.bindings.i18n}\n label={this.displayName}\n query={query}\n >\n <ul part=\"values\" class=\"mt-3\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderSearchResults() {\n return this.renderValuesContainer(\n this.facetState.facetSearch.values.map((value) => (\n <FacetSearchValue\n {...this.facetValueProps}\n facetCount={value.count}\n onExclude={() => this.facet.facetSearch.exclude(value)}\n onSelect={() => this.facet.facetSearch.select(value)}\n facetValue={value.rawValue}\n />\n ))\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.facetState.values.map((value, i) => {\n const shouldFocusOnShowLessAfterInteraction = i === 0;\n const shouldFocusOnShowMoreAfterInteraction = i === 0;\n\n return (\n <FacetValue\n {...this.facetValueProps}\n facetCount={value.numberOfResults}\n onExclude={() => this.facet.toggleExclude(value)}\n onSelect={() => this.facet.toggleSelect(value)}\n facetValue={value.value}\n facetState={value.state}\n setRef={(btn) => {\n if (shouldFocusOnShowLessAfterInteraction) {\n this.showLessFocus?.setTarget(btn);\n }\n if (shouldFocusOnShowMoreAfterInteraction) {\n this.showMoreFocus?.setTarget(btn);\n }\n }}\n />\n );\n })\n );\n }\n\n private renderShowMoreLess() {\n return (\n <FacetShowMoreLess\n label={this.displayName}\n i18n={this.bindings.i18n}\n onShowMore={() => {\n this.focusTargets.showMore.focusAfterSearch();\n this.facet.showMoreValues();\n }}\n onShowLess={() => {\n this.focusTargets.showLess.focusAfterSearch();\n this.facet.showLessValues();\n }}\n canShowMoreValues={this.facetState.canShowMoreValues}\n canShowLessValues={this.facetState.canShowLessValues}\n ></FacetShowMoreLess>\n );\n }\n\n private renderMatches() {\n return (\n <FacetSearchMatches\n i18n={this.bindings.i18n}\n query={this.facetState.facetSearch.query}\n numberOfMatches={this.facetState.facetSearch.values.length}\n hasMoreMatches={this.facetState.facetSearch.moreValuesAvailable}\n ></FacetSearchMatches>\n );\n }\n\n private get activeValues() {\n return this.facetState.values.filter(({state}) => state !== 'idle');\n }\n\n private get displayName() {\n return this.facetState.displayName || 'no-label';\n }\n\n private get facetValueProps(): Pick<\n FacetValueProps,\n | 'facetSearchQuery'\n | 'enableExclusion'\n | 'field'\n | 'i18n'\n | 'displayValuesAs'\n > {\n return {\n facetSearchQuery: this.facetState.facetSearch.query,\n displayValuesAs: 'checkbox',\n enableExclusion: false,\n field: this.facetState.field,\n i18n: this.bindings.i18n,\n };\n }\n\n private get isHidden() {\n return !this.facetState.values.length;\n }\n\n private initPopover() {\n initializePopover(this.host, {\n ...this.facetInfo,\n hasValues: () => !!this.facetState.values.length,\n numberOfActiveValues: () => this.activeValues.length,\n });\n }\n\n private initAriaLive() {\n announceFacetSearchResultsWithAriaLive(\n this.facet,\n this.displayName,\n (msg) => (this.facetSearchAriaMessage = msg),\n this.bindings.i18n\n );\n }\n\n private get facetInfo(): FacetInfo {\n return {\n label: () => this.bindings.i18n.t(this.displayName),\n facetId: this.facetState.facetId,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n }\n\n private get focusTargets(): {\n showLess: FocusTargetController;\n showMore: FocusTargetController;\n header: FocusTargetController;\n } {\n if (!this.showLessFocus) {\n this.showLessFocus = new FocusTargetController(this);\n }\n if (!this.showMoreFocus) {\n this.showMoreFocus = new FocusTargetController(this);\n }\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n\n return {\n showLess: this.showLessFocus,\n showMore: this.showMoreFocus,\n header: this.headerFocus,\n };\n }\n\n private isFacetState(\n state: unknown,\n propName: string\n ): state is RegularFacetState {\n return (\n propName === 'facetState' &&\n typeof (state as RegularFacetState)?.facetId === 'string'\n );\n }\n\n private ensureSubscribed() {\n if (this.unsubscribeFacetController) {\n return;\n }\n this.unsubscribeFacetController = this.facet.subscribe(\n () => (this.facetState = this.facet.state)\n );\n }\n}\n","import {NumberValue, Schema} from '@coveo/bueno';\nimport {\n RegularFacet,\n CategoryFacet,\n DateFacet,\n NumericFacet,\n FacetGeneratorState,\n buildProductListing,\n buildSearch,\n FacetGenerator,\n Summary,\n SearchSummaryState,\n ProductListingSummaryState,\n} from '@coveo/headless/commerce';\nimport {Component, h, Element, State, Prop, Fragment} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {FacetPlaceholder} from '../../../common/facets/facet-placeholder/facet-placeholder';\nimport {createAppLoadedListener} from '../../../common/interface/store';\nimport {CommerceBindings as Bindings} from '../../atomic-commerce-interface/atomic-commerce-interface';\n\n/**\n * The `atomic-commerce-facets` component automatically renders commerce facets based on the Commerce API response.\n * Unlike regular facets, which require explicit definition and request in the query, the `atomic-commerce-facets` component dynamically generates facets.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-facets',\n shadow: false,\n})\nexport class AtomicCommerceFacets implements InitializableComponent<Bindings> {\n @InitializeBindings() public bindings!: Bindings;\n public facetGenerator!: FacetGenerator;\n public summary!: Summary<SearchSummaryState | ProductListingSummaryState>;\n @Element() host!: HTMLElement;\n\n /**\n * The maximum number of facets to expand.\n * Remaining facets are automatically collapsed.\n *\n * Using the value `0` collapses all facets.\n * Using the value `-1` disables the feature and keeps all facets expanded.\n */\n @Prop({reflect: true}) public collapseFacetsAfter = 4;\n\n @BindStateToController('facetGenerator')\n @State()\n public facetGeneratorState!: FacetGeneratorState;\n\n @State() public error!: Error;\n @State() private isAppLoaded = false;\n\n public initialize() {\n this.validateProps();\n const {engine} = this.bindings;\n const controller = this.controllerBuilder(engine);\n this.facetGenerator = controller.facetGenerator();\n this.summary = controller.summary();\n createAppLoadedListener(this.bindings.store, (isAppLoaded) => {\n this.isAppLoaded = isAppLoaded;\n });\n }\n\n private isProductListing() {\n return this.bindings.interfaceElement.type === 'product-listing';\n }\n\n private get controllerBuilder() {\n return this.isProductListing() ? buildProductListing : buildSearch;\n }\n\n private validateProps() {\n new Schema({\n collapseFacetAfter: new NumberValue({min: -1, required: true}),\n }).validate({\n collapseFacetAfter: this.collapseFacetsAfter,\n });\n }\n\n private shouldCollapseFacet(index: number): boolean {\n if (this.collapseFacetsAfter === -1) {\n return false;\n }\n return this.collapseFacetsAfter\n ? index + 1 > this.collapseFacetsAfter\n : true;\n }\n\n public render() {\n if (!this.isAppLoaded) {\n return [...Array.from({length: this.collapseFacetsAfter})].map(() => (\n <FacetPlaceholder isCollapsed={false} numberOfValues={8} />\n ));\n }\n return (\n <Fragment>\n {this.facetGenerator.facets.map((facet, index) => {\n if (facet.state.values.length === 0) {\n return;\n }\n\n const props = <T,>() => ({\n isCollapsed: this.shouldCollapseFacet(index),\n summary: this.summary,\n facet: facet as T,\n field: facet.state.field,\n key: facet.state.facetId,\n });\n\n switch (facet.state.type) {\n case 'regular':\n return (\n <atomic-commerce-facet\n {...props<RegularFacet>()}\n ></atomic-commerce-facet>\n );\n case 'numericalRange':\n return (\n <atomic-commerce-numeric-facet\n {...props<NumericFacet>()}\n ></atomic-commerce-numeric-facet>\n );\n case 'dateRange':\n return (\n <atomic-commerce-timeframe-facet\n {...props<DateFacet>()}\n ></atomic-commerce-timeframe-facet>\n );\n case 'hierarchical':\n return (\n <atomic-commerce-category-facet\n {...props<CategoryFacet>()}\n ></atomic-commerce-category-facet>\n );\n default: {\n // TODO COMHUB-291 support location facet\n this.bindings.engine.logger.warn('Unexpected facet type.');\n return;\n }\n }\n })}\n </Fragment>\n );\n }\n}\n","@import '../../../common/facets/numeric-facet-common.pcss';\n","import {\n NumericFacet,\n NumericFacetState,\n NumericRangeRequest,\n ProductListingSummaryState,\n SearchSummaryState,\n Summary,\n Context,\n ContextState,\n buildContext,\n} from '@coveo/headless/commerce';\nimport {Component, Element, h, Listen, Prop, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetGuard} from '../../../common/facets/facet-guard';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {NumericFacetValueLink} from '../../../common/facets/numeric-facet/value-link';\nimport {NumericFacetValuesContainer} from '../../../common/facets/numeric-facet/values-container';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from '../../../common/facets/stencil-facet-common';\nimport {\n defaultCurrencyFormatter,\n defaultNumberFormatter,\n} from '../../../common/formats/format-common';\nimport {CommerceBindings as Bindings} from '../../atomic-commerce-interface/atomic-commerce-interface';\nimport type {Range} from '../facet-number-input/atomic-commerce-facet-number-input';\n\n/**\n * The `atomic-commerce-numeric-facet` component is responsible for rendering a commerce facet that allows the user to filter products using numeric ranges.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-numeric-facet',\n styleUrl: './atomic-commerce-numeric-facet.pcss',\n shadow: true,\n})\nexport class AtomicCommerceNumericFacet\n implements InitializableComponent<Bindings>\n{\n @InitializeBindings() public bindings!: Bindings;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: NumericFacetState;\n\n @BindStateToController('summary')\n @State()\n public summaryState!: SearchSummaryState | ProductListingSummaryState;\n\n public context!: Context;\n @BindStateToController('context') contextState!: ContextState;\n\n @State() public error!: Error;\n\n private manualRanges: (NumericRangeRequest & {label?: string})[] = [];\n\n /**\n * The Summary controller instance.\n */\n @Prop() summary!: Summary<SearchSummaryState | ProductListingSummaryState>;\n /**\n * The numeric facet controller instance.\n */\n @Prop({reflect: true}) public facet!: NumericFacet;\n /**\n * Specifies whether the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The field identifier for this facet.\n */\n @Prop({reflect: true}) field?: string;\n\n private headerFocus?: FocusTargetController;\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n private unsubscribeFacetController?: () => void | undefined;\n\n public initialize() {\n if (!this.facet) {\n return;\n }\n\n this.context = buildContext(this.bindings.engine);\n this.ensureSubscribed();\n this.registerFacetToStore();\n }\n\n public connectedCallback() {\n this.ensureSubscribed();\n }\n\n public disconnectedCallback() {\n this.unsubscribeFacetController?.();\n this.unsubscribeFacetController = undefined;\n }\n\n private get formatter() {\n if (this.field === 'ec_price' || this.field === 'ec_promo_price') {\n return defaultCurrencyFormatter(this.contextState.currency);\n }\n return defaultNumberFormatter;\n }\n\n private registerFacetToStore() {\n const {facetId} = this.facetState;\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.displayName),\n facetId: facetId,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n @Listen('atomic/numberInputApply')\n public applyNumberInput({detail}: CustomEvent<Range>) {\n const {start, end} = detail;\n this.facet.setRanges([\n {\n start,\n end,\n endInclusive: true,\n state: 'selected',\n },\n ]);\n }\n\n public render() {\n const {\n bindings: {i18n},\n } = this;\n const {firstRequestExecuted, hasError} = this.summaryState;\n return (\n <FacetGuard\n enabled={true}\n firstSearchExecuted={firstRequestExecuted}\n hasError={hasError}\n hasResults={this.shouldRenderFacet}\n >\n {\n <FacetContainer>\n <FacetHeader\n i18n={i18n}\n label={this.displayName}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={0}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n />\n {!this.isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && (\n <atomic-commerce-facet-number-input\n bindings={this.bindings}\n label={this.displayName}\n facet={this.facet}\n range={this.facetState.manualRange}\n ></atomic-commerce-facet-number-input>\n ),\n ]}\n </FacetContainer>\n }\n </FacetGuard>\n );\n }\n\n private renderValues() {\n const {\n manualRanges,\n displayName,\n bindings: {\n i18n,\n engine: {logger},\n },\n formatter,\n } = this;\n\n return (\n <NumericFacetValuesContainer i18n={i18n} label={displayName}>\n {this.valuesToRender.map((value) => (\n <NumericFacetValueLink\n formatter={formatter}\n displayValuesAs={'checkbox'}\n facetValue={value}\n field={this.facetState.field}\n i18n={i18n}\n logger={logger}\n manualRanges={manualRanges}\n onClick={() => this.facet.toggleSelect(value)}\n />\n ))}\n </NumericFacetValuesContainer>\n );\n }\n\n private get displayName() {\n return this.facetState.displayName || 'no-label';\n }\n\n private get numberOfSelectedValues() {\n return (\n this.facetState.values.filter(({state}) => state === 'selected').length ||\n 0\n );\n }\n\n private get hasInputRange() {\n return !!this.facetState.manualRange || this.summaryState.isLoading;\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get valuesToRender() {\n return (\n this.facetState.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderInput() {\n const {\n firstRequestExecuted: firstSearchExecuted,\n hasError,\n isLoading,\n hasProducts: hasResults,\n } = this.summaryState;\n return shouldDisplayInputForFacetRange({\n hasInputRange: this.hasInputRange,\n searchStatusState: {\n firstSearchExecuted,\n hasError,\n hasResults,\n isLoading,\n },\n facetValues: this.facetState.values,\n hasInput: true,\n });\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get hasValues() {\n if (this.facetState.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private ensureSubscribed() {\n if (this.unsubscribeFacetController) {\n return;\n }\n this.unsubscribeFacetController = this.facet.subscribe(\n () => (this.facetState = this.facet.state)\n );\n }\n}\n","@import '../../../common/facets/facet-common.pcss';\n","import {\n DateFacet,\n DateFilterRange,\n deserializeRelativeDate,\n DateFacetValue,\n DateFacetState,\n DateRangeRequest,\n SearchSummaryState,\n ProductListingSummaryState,\n Summary,\n} from '@coveo/headless/commerce';\nimport {Component, Element, h, Listen, Prop, State, VNode} from '@stencil/core';\nimport {parseDate} from '../../../../utils/date-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetGuard} from '../../../common/facets/facet-guard';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {FacetValueLabelHighlight} from '../../../common/facets/facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from '../../../common/facets/facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from '../../../common/facets/stencil-facet-common';\nimport {CommerceBindings as Bindings} from '../../atomic-commerce-interface/atomic-commerce-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results.\n * An `atomic-commerce-timeframe-facet` displays a facet of the results for the current query as date intervals.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-timeframe-facet',\n styleUrl: './atomic-commerce-timeframe-facet.pcss',\n shadow: true,\n})\nexport class AtomicCommerceTimeframeFacet\n implements InitializableComponent<Bindings>\n{\n @InitializeBindings() public bindings!: Bindings;\n @Element() private host!: HTMLElement;\n\n /**\n * The summary controller instance.\n */\n @Prop() summary!: Summary<SearchSummaryState | ProductListingSummaryState>;\n /**\n * The date facet controller instance.\n */\n @Prop() public facet!: DateFacet;\n /**\n * Specifies whether the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The field identifier for this facet.\n */\n @Prop({reflect: true}) field?: string;\n\n @State()\n public facetState!: DateFacetState;\n\n @BindStateToController('summary')\n @State()\n public summaryState!: SearchSummaryState | ProductListingSummaryState;\n\n @State() public error!: Error;\n\n @State() private inputRange?: DateFilterRange;\n\n private headerFocus?: FocusTargetController;\n\n private get displayName() {\n return this.facetState.displayName || 'no-label';\n }\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n private unsubscribeFacetController?: () => void | undefined;\n\n public initialize() {\n if (!this.facet) {\n return;\n }\n this.ensureSubscribed();\n this.registerFacetToStore();\n }\n\n public connectedCallback(): void {\n this.ensureSubscribed();\n }\n\n @Listen('atomic/dateInputApply')\n public applyDateInput({detail}: CustomEvent<DateFilterRange>) {\n this.inputRange = {start: detail.start, end: detail.end};\n }\n\n private get valuesToRender() {\n return (\n this.facetState.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n const {\n firstRequestExecuted: firstSearchExecuted,\n hasError,\n isLoading,\n hasProducts: hasResults,\n } = this.summaryState;\n return shouldDisplayInputForFacetRange({\n hasInputRange: this.hasInputRange,\n searchStatusState: {\n firstSearchExecuted,\n hasError,\n hasResults,\n isLoading,\n },\n facetValues: this.facetState.values || [],\n hasInput: true,\n });\n }\n\n private get hasValues() {\n if (this.facetState.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.hasInputRange) {\n return 1;\n }\n\n return (\n this.facetState.values.filter(({state}) => state === 'selected').length ||\n 0\n );\n }\n\n private get hasInputRange() {\n return !!this.inputRange;\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.unsubscribeFacetController?.();\n this.unsubscribeFacetController = undefined;\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet;\n }\n\n private resetRange() {\n this.inputRange = undefined;\n this.facet.setRanges([]);\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.displayName),\n facetId: this.facetState.facetId,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : deserializeRelativeDate(facetValue.end);\n\n return this.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.bindings.i18n}\n onClick={() => this.facet.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup i18n={this.bindings.i18n} label={this.displayName}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.displayName}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n if (this.hasInputRange) {\n this.resetRange();\n return;\n }\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={0}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-facet-date-input\n bindings={this.bindings}\n label={this.displayName}\n rangeGetter={() => this.inputRange}\n facetId={this.facetState.facetId}\n rangeSetter={({start, end, endInclusive}: DateRangeRequest) => {\n this.facet.setRanges([\n {\n start,\n end,\n endInclusive,\n state: 'selected',\n },\n ]);\n }}\n ></atomic-facet-date-input>\n );\n }\n\n public render() {\n const {hasError, firstRequestExecuted} = this.summaryState;\n\n return (\n <FacetGuard\n enabled={true}\n firstSearchExecuted={firstRequestExecuted}\n hasError={hasError}\n hasResults={this.shouldRenderFacet}\n >\n {\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n }\n </FacetGuard>\n );\n }\n\n private ensureSubscribed() {\n if (this.unsubscribeFacetController) {\n return;\n }\n this.unsubscribeFacetController = this.facet.subscribe(\n () => (this.facetState = this.facet.state)\n );\n }\n}\n"],"mappings":"mkDAAA,MAAMA,EAAiC,w54DACvC,MAAAC,EAAeD,E,iXCyFFE,EAA2B,M,yBAiBOC,KAAAC,YAAc,MAenDD,KAAAE,6BAA+B,E,6DAfoB,M,gGAyBpD,UAAAC,GACL,IAAKH,KAAKI,MAAO,CACf,M,CAGFJ,KAAKK,mBACLC,EACEN,KAAKI,MACLJ,KAAKO,aACJC,GAASR,KAAKS,uBAAyBD,GACxCR,KAAKU,SAASC,MAGhB,MAAMC,EAAuB,CAC3BC,MAAO,IAAMb,KAAKU,SAASC,KAAKG,EAAEd,KAAKO,aACvCQ,QAASf,KAAKgB,WAAWD,QACzBE,QAASjB,KAAKkB,KACdC,SAAU,IAAMnB,KAAKmB,UAGvBC,EAAkBpB,KAAKkB,KAAM,IACxBN,EACHS,UAAW,MAAQrB,KAAKgB,WAAWM,OAAOC,OAC1CC,qBAAsB,IAAOxB,KAAKgB,WAAWS,gBAAkB,EAAI,G,CAIvE,eAAYlB,GACV,OAAOP,KAAKgB,YAAYT,aAAe,U,CAGzC,gBAAYmB,GACV,IAAK1B,KAAK2B,cAAe,CACvB3B,KAAK2B,cAAgB,IAAIC,EAAsB5B,K,CAEjD,IAAKA,KAAK6B,cAAe,CACvB7B,KAAK6B,cAAgB,IAAID,EAAsB5B,K,CAEjD,IAAKA,KAAK8B,YAAa,CACrB9B,KAAK8B,YAAc,IAAIF,EAAsB5B,K,CAE/C,IAAKA,KAAK+B,iBAAkB,CAC1B/B,KAAK+B,iBAAmB,IAAIH,EAAsB5B,K,CAGpD,MAAO,CACL2B,cAAe3B,KAAK2B,cACpBE,cAAe7B,KAAK6B,cACpBC,YAAa9B,KAAK8B,YAClBC,iBAAkB/B,KAAK+B,iB,CAIpB,oBAAAC,GACL,GAAIhC,KAAKkB,KAAKe,YAAa,CACzB,M,CAEFjC,KAAKkC,+BACLlC,KAAKkC,2BAA6BC,S,CAG7B,iBAAAC,GACLpC,KAAKK,kB,CAGP,YAAYc,GACV,OACEnB,KAAKqC,aAAaC,WAChBtC,KAAKgB,WAAWM,OAAOC,SACtBvB,KAAKgB,WAAWuB,uBAAuBhB,M,CAIvC,qBAAAiB,CACLC,EACAC,EACAC,GAEA,GACE3C,KAAK4C,qBAAqBF,EAAMC,IAChC3C,KAAK4C,qBAAqBH,EAAME,GAChC,CACA,OAAOE,EACLJ,EAAKK,YACLJ,EAAKI,Y,CAGT,OAAO,I,CAGT,cAAYC,GACV,QAAS/C,KAAKgB,WAAWuB,uBAAuBhB,M,CAG1C,YAAAyB,GACN,OACEC,EAACC,EAAW,CACVvC,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZiB,qBACExB,KAAKgB,WAAWS,iBAAmBzB,KAAKC,YAAc,EAAI,EAE5DA,YAAaD,KAAKC,YAClBkD,aAAc,EACdC,iBAAkB,IAAOpD,KAAKC,aAAeD,KAAKC,YAClDoD,eAAgB,KACdrD,KAAK0B,aAAaI,YAAYwB,mBAC9BtD,KAAKI,MAAMmD,aAAa,EAE1BC,UAAYC,IACVzD,KAAK0B,aAAaI,YAAY4B,UAAUD,GACxC,IAAKzD,KAAK+C,WAAY,CACpB/C,KAAK0B,aAAaK,iBAAiB2B,UAAUD,E,KAO/C,iBAAAE,GACN,OACEV,EAACW,EAAgB,CACfjD,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZsD,MAAO7D,KAAKgB,WAAW8B,YAAYe,MACnCC,SAAWC,IACT,GAAIA,IAAU,GAAI,CAChB/D,KAAKI,MAAM0C,YAAYkB,QACvB,M,CAEFhE,KAAKI,MAAM0C,YAAYmB,WAAWF,GAClC/D,KAAKI,MAAM0C,YAAYoB,QAAQ,EAEjCC,QAAS,IAAMnE,KAAKI,MAAM0C,YAAYkB,S,CAKpC,gBAAAI,CAAiBC,EAA+BC,GACtD,IAAKtE,KAAK+C,WAAY,CACpB,OAAO/C,KAAKuE,gB,CAGd,GAAID,EAAQ,CACV,OACErB,EAACuB,EAA+B,KAC9BvB,EAACwB,EAA8B,CAC7B9D,KAAMX,KAAKU,SAASC,KACpB+D,QAAS,KACP1E,KAAK0B,aAAaK,iBAAiBuB,mBACnCtD,KAAKI,MAAMmD,aAAa,IAG5BN,EAAC0B,EAAkC,CAACC,WAAY,OAC7C5E,KAAKoE,iBAAiBC,EAAS,Q,CAMxC,GAAIA,EAAQ9C,OAAS,EAAG,CACtB,MAAMsD,EAAcR,EAAQ,GAE5B,OACEpB,EAACuB,EAA+B,KAC9BvB,EAAC6B,EAAyB,CACxBC,WAAYF,EACZG,MAAOhF,KAAKgB,YAAYgE,MACxBrE,KAAMX,KAAKU,SAASC,KACpB+D,QAAS,KACP1E,KAAK0B,aAAaK,iBAAiBuB,mBACnCtD,KAAKI,MAAM6E,aAAaJ,EAAY,IAGxC5B,EAAC0B,EAAkC,CAACC,WAAY,OAC7C5E,KAAKoE,iBAAiBC,EAAQa,MAAM,GAAI,Q,CAMjD,MAAMC,EAAed,EAAQ,GAC7B,MAAMe,EAA2BC,EAC/BrF,KAAKgB,YAAYgE,MACjBG,EAAapB,MACb/D,KAAKU,SAASC,MAGhB,OACEsC,EAACqC,EAA4B,CAC3BC,aAAcH,EACdI,gBAAiBL,EAAaK,gBAC9B7E,KAAMX,KAAKU,SAASC,KACpB8E,YAAaN,EAAaM,YAC1Bf,QAAS,KACP1E,KAAK0B,aAAaK,iBAAiBuB,mBACnCtD,KAAKI,MAAMmD,aAAa,EAE1BmC,YAAa1F,KAAKgB,WAAW8B,YAAYe,MACzC8B,OAASC,GAAO5F,KAAK0B,aAAaK,iBAAiB2B,UAAUkC,IAE7D3C,EAAC4C,EAAoC,KAClC7F,KAAKuE,kB,CAMN,WAAAuB,CACNf,EACAgB,EACAC,GAEA,MAAMT,EAAeF,EACnBrF,KAAKgB,YAAYgE,MACjBD,EAAWhB,MACX/D,KAAKU,SAASC,MAEhB,MAAMsF,EAAalB,EAAWmB,QAAU,WACxC,OACEjD,EAACkD,EAA2B,CAC1BZ,aAAcA,EACd5E,KAAMX,KAAKU,SAASC,KACpB8E,YAAaV,EAAWU,YACxBQ,WAAYA,EACZT,gBAAiBT,EAAWS,gBAC5Bd,QAAS,KACP1E,KAAK0B,aAAaK,iBAAiBuB,mBACnCtD,KAAKI,MAAM6E,aAAaF,EAAW,EAErCW,YAAa1F,KAAKgB,WAAW8B,YAAYe,MACzC8B,OAAS1E,IACP8E,GACE/F,KAAK0B,aAAaC,cAAc+B,UAAUzC,GAC5C+E,GACEhG,KAAK0B,aAAaG,cAAc6B,UAAUzC,EAAQ,G,CAMpD,cAAAsD,GACN,MAAMjD,OAACA,EAAMiB,sBAAEA,EAAqBd,gBAAEA,GAAmBzB,KAAKgB,WAC9D,MAAMoF,EAAa3E,EAAkBc,EAAwBjB,EAE7D,MAAM+E,EAAWD,GAAY7E,OACzBE,EACE2E,EAAWA,EAAW7E,OAAS,GAAG8E,SAClCD,EACF,GAEJ,OAAOC,EAASC,KAAI,CAACvC,EAAOwC,IAC1BvG,KAAK8F,YAAY/B,EAAOwC,IAAM,EAAGA,IAAMvG,KAAKE,+B,CAIxC,mBAAAsG,GACN,OACEvD,EAACwD,EAAmC,KACjCzG,KAAKgB,WAAW8B,YAAYxB,OAAOgF,KAAKvC,GACvCd,EAACyD,EAAwB,CACvB3C,MAAOA,EACPiB,MAAOhF,KAAKgB,YAAYgE,MACxBrE,KAAMX,KAAKU,SAASC,KACpB+E,YAAa1F,KAAKgB,WAAW8B,YAAYe,MACzCa,QAAS,KACP1E,KAAK0B,aAAaK,iBAAiBuB,mBACnCtD,KAAKI,MAAM0C,YAAY6D,OAAO5C,EAAM,M,CAQxC,aAAA6C,GACN,OACE3D,EAAC4D,EAAkB,CACjBlG,KAAMX,KAAKU,SAASC,KACpBkD,MAAO7D,KAAKgB,WAAW8B,YAAYe,MACnCiD,gBAAiB9G,KAAKgB,WAAW8B,YAAYxB,OAAOC,OACpDwF,eAAgB/G,KAAKgB,WAAW8B,YAAYkE,qB,CAK1C,kBAAAC,GACN,OACEhE,EAAA,OAAKiE,MAAOlH,KAAK+C,WAAa,OAAS,IACrCE,EAACkE,EAAiB,CAChBtG,MAAOb,KAAKO,YACZI,KAAMX,KAAKU,SAASC,KACpByG,WAAY,KACVpH,KAAKE,6BAA+BF,KAAKgB,WAAWM,OAAOC,OAC3DvB,KAAK0B,aAAaG,cAAcyB,mBAChCtD,KAAKI,MAAMiH,gBAAgB,EAE7BC,WAAY,KACVtH,KAAK0B,aAAaC,cAAc2B,mBAChCtD,KAAKI,MAAMmH,gBAAgB,EAE7BC,kBAAmBxH,KAAKgB,WAAWwG,kBACnCC,kBAAmBzH,KAAKgB,WAAWyG,oB,CAMnC,oBAAA7E,CACNsD,EACAvD,GAEA,OACEA,IAAa,qBACLuD,GAA8BnF,UAAY,Q,CAI/C,MAAA2G,GACL,MACEhH,UAAUC,KAACA,GACXK,YAAY8B,YAACA,EAAWP,sBAAEA,EAAqBjB,OAAEA,IAC/CtB,KAEJ,MAAMsC,SAACA,EAAQqF,qBAAEA,GAAwB3H,KAAKqC,aAE9C,OACEY,EAAC2E,EAAU,CAAAC,IAAA,2CACTC,QAAS,KACTC,oBAAqBJ,EACrBrF,SAAUA,EACV0F,WAAY1G,EAAOC,OAAS,GAG1B0B,EAACgF,EAAc,CAAAJ,IAAA,4CACZ7H,KAAKgD,gBACJhD,KAAKC,aAAe,CACpBD,KAAK2D,oBACLuE,EAA2BpF,GACzBG,EAACkF,EAAQ,KACNrF,EAAYxB,OAAOC,OAClB0B,EAACmF,EAAgB,CACfzH,KAAMA,EACNE,MAAOb,KAAKO,YACZsD,MAAOf,EAAYe,OAElB7D,KAAKwG,uBAGRvD,EAAA,OAAKiE,MAAM,SAEZlH,KAAK4G,iBAGR3D,EAACkF,EAAQ,KACPlF,EAACmF,EAAgB,CAACzH,KAAMA,EAAME,MAAOb,KAAKO,aACvCP,KAAK+C,WACJE,EAAC0B,EAAkC,CACjCC,WAAY,KACZyD,UAAU,QAET9F,GACCvC,KAAKoE,iBAAiB7B,EAAuB,OAGjDU,EAAC4C,EAAoC,CAACwC,UAAU,QAC7CrI,KAAKuE,mBAIXvE,KAAKiH,wB,CAUd,gBAAA5G,GACN,GAAIL,KAAKkC,2BAA4B,CACnC,M,CAEFlC,KAAKkC,2BAA6BlC,KAAKI,MAAMkI,WAC3C,IAAOtI,KAAKgB,WAAahB,KAAKI,MAAM8F,O,6BAxaXqC,GAA5BC,K,+BAyBMD,GAFNE,EAAsB,Y,mCAcbF,GADTG,EAAe,iB,uDCjIlB,MAAMC,EAAyB,y2+EAC/B,MAAAC,EAAeD,E,kXC2FFE,GAAmB,M,yBAee7I,KAAAC,YAAc,M,6DAAA,M,gGAuBpD,UAAAE,GACL,IAAKH,KAAKI,MAAO,CACf,M,CAEFJ,KAAKK,mBACLL,KAAK8I,eACL9I,KAAK+I,a,CAGA,iBAAA3G,GACLpC,KAAKK,kB,CAGA,oBAAA2B,GACLhC,KAAKkC,+BACLlC,KAAKkC,2BAA6BC,S,CAG7B,qBAAAK,CACLC,EACAC,EACAC,GAEA,GACE3C,KAAKgJ,aAAatG,EAAMC,IACxB3C,KAAKgJ,aAAavG,EAAME,GACxB,CACA,OAAOE,EACLJ,EAAKK,YACLJ,EAAKI,Y,CAGT,OAAO,I,CAGF,MAAA4E,GACL,IAAK1H,KAAKI,MAAO,CACf,M,CAEF,MAAMkC,SAACA,EAAQqF,qBAAEA,GAAwB3H,KAAKqC,aAC9C,OACEY,EAAC2E,EAAU,CACTE,QAAS,KACTxF,SAAUA,EACVyF,oBAAqBJ,EACrBK,WAAYhI,KAAKgB,WAAWM,OAAOC,OAAS,GAG1C0B,EAACgF,EAAc,KACbhF,EAACC,EAAW,CACVvC,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZ8C,eAAgB,KACdrD,KAAK0B,aAAa+B,OAAOH,mBACzBtD,KAAKI,MAAMmD,aAAa,EAE1B/B,qBAAsBxB,KAAKiJ,aAAa1H,OACxCtB,YAAaD,KAAKC,YAClBkD,aAAc,EACdC,iBAAkB,IAAOpD,KAAKC,aAAeD,KAAKC,YAClDuD,UAAYoC,GAAO5F,KAAK0B,aAAa+B,OAAOC,UAAUkC,KAEvD5F,KAAKkJ,c,CAOR,UAAAA,GACN,GAAIlJ,KAAKC,YAAa,CACpB,M,CAEF,OACEgD,EAACkF,EAAQ,KACPlF,EAACkG,EAAqB,CACpB1B,kBAAmBzH,KAAKgB,WAAWyG,kBACnC2B,wBAAyBpJ,KAAKgB,WAAWM,OAAOC,OAChD8H,WAAY,MAEZpG,EAACW,EAAgB,CACfjD,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZuD,SAAWC,IACT,GAAIA,IAAU,GAAI,CAChB/D,KAAKI,MAAM0C,YAAYkB,QACvB,M,CAEFhE,KAAKI,MAAM0C,YAAYmB,WAAWF,GAClC/D,KAAKI,MAAM0C,YAAYoB,QAAQ,EAEjCC,QAAS,IAAMnE,KAAKI,MAAM0C,YAAYkB,QACtCH,MAAO7D,KAAKgB,WAAW8B,YAAYe,SAGtCqE,EAA2BlI,KAAKgB,WAAW8B,aACxC,CAAC9C,KAAKwG,sBAAuBxG,KAAK4G,iBAClC,CAAC5G,KAAKsJ,eAAgBtJ,KAAKiH,sB,CAK7B,qBAAAsC,CAAsBlD,EAAmBxC,GAC/C,OACEZ,EAACmF,EAAgB,CACfzH,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZsD,MAAOA,GAEPZ,EAAA,MAAIuG,KAAK,SAAStC,MAAM,QACrBb,G,CAMD,mBAAAG,GACN,OAAOxG,KAAKuJ,sBACVvJ,KAAKgB,WAAW8B,YAAYxB,OAAOgF,KAAKvC,GACtCd,EAACwG,EAAgB,IACXzJ,KAAK0J,gBACTC,WAAY5F,EAAM6F,MAClBC,UAAW,IAAM7J,KAAKI,MAAM0C,YAAYgH,QAAQ/F,GAChDgG,SAAU,IAAM/J,KAAKI,MAAM0C,YAAY6D,OAAO5C,GAC9CgB,WAAYhB,EAAMiG,a,CAMlB,YAAAV,GACN,OAAOtJ,KAAKuJ,sBACVvJ,KAAKgB,WAAWM,OAAOgF,KAAI,CAACvC,EAAOwC,KACjC,MAAM0D,EAAwC1D,IAAM,EACpD,MAAM2D,EAAwC3D,IAAM,EAEpD,OACEtD,EAACkH,EAAU,IACLnK,KAAK0J,gBACTC,WAAY5F,EAAMyB,gBAClBqE,UAAW,IAAM7J,KAAKI,MAAMgK,cAAcrG,GAC1CgG,SAAU,IAAM/J,KAAKI,MAAM6E,aAAalB,GACxCgB,WAAYhB,EAAMA,MAClB/C,WAAY+C,EAAMmC,MAClBP,OAAS0E,IACP,GAAIJ,EAAuC,CACzCjK,KAAK2B,eAAe+B,UAAU2G,E,CAEhC,GAAIH,EAAuC,CACzClK,KAAK6B,eAAe6B,UAAU2G,E,IAGlC,I,CAMF,kBAAApD,GACN,OACEhE,EAACkE,EAAiB,CAChBtG,MAAOb,KAAKO,YACZI,KAAMX,KAAKU,SAASC,KACpByG,WAAY,KACVpH,KAAK0B,aAAa4I,SAAShH,mBAC3BtD,KAAKI,MAAMiH,gBAAgB,EAE7BC,WAAY,KACVtH,KAAK0B,aAAa6I,SAASjH,mBAC3BtD,KAAKI,MAAMmH,gBAAgB,EAE7BE,kBAAmBzH,KAAKgB,WAAWyG,kBACnCD,kBAAmBxH,KAAKgB,WAAWwG,mB,CAKjC,aAAAZ,GACN,OACE3D,EAAC4D,EAAkB,CACjBlG,KAAMX,KAAKU,SAASC,KACpBkD,MAAO7D,KAAKgB,WAAW8B,YAAYe,MACnCiD,gBAAiB9G,KAAKgB,WAAW8B,YAAYxB,OAAOC,OACpDwF,eAAgB/G,KAAKgB,WAAW8B,YAAYkE,qB,CAKlD,gBAAYiC,GACV,OAAOjJ,KAAKgB,WAAWM,OAAOkJ,QAAO,EAAEtE,WAAWA,IAAU,Q,CAG9D,eAAY3F,GACV,OAAOP,KAAKgB,WAAWT,aAAe,U,CAGxC,mBAAYmJ,GAQV,MAAO,CACLe,iBAAkBzK,KAAKgB,WAAW8B,YAAYe,MAC9C6G,gBAAiB,WACjBC,gBAAiB,MACjB3F,MAAOhF,KAAKgB,WAAWgE,MACvBrE,KAAMX,KAAKU,SAASC,K,CAIxB,YAAYQ,GACV,OAAQnB,KAAKgB,WAAWM,OAAOC,M,CAGzB,WAAAwH,GACN3H,EAAkBpB,KAAKkB,KAAM,IACxBlB,KAAKY,UACRS,UAAW,MAAQrB,KAAKgB,WAAWM,OAAOC,OAC1CC,qBAAsB,IAAMxB,KAAKiJ,aAAa1H,Q,CAI1C,YAAAuH,GACNxI,EACEN,KAAKI,MACLJ,KAAKO,aACJC,GAASR,KAAKS,uBAAyBD,GACxCR,KAAKU,SAASC,K,CAIlB,aAAYC,GACV,MAAO,CACLC,MAAO,IAAMb,KAAKU,SAASC,KAAKG,EAAEd,KAAKO,aACvCQ,QAASf,KAAKgB,WAAWD,QACzBE,QAASjB,KAAKkB,KACdC,SAAU,IAAMnB,KAAKmB,S,CAIzB,gBAAYO,GAKV,IAAK1B,KAAK2B,cAAe,CACvB3B,KAAK2B,cAAgB,IAAIC,EAAsB5B,K,CAEjD,IAAKA,KAAK6B,cAAe,CACvB7B,KAAK6B,cAAgB,IAAID,EAAsB5B,K,CAEjD,IAAKA,KAAK8B,YAAa,CACrB9B,KAAK8B,YAAc,IAAIF,EAAsB5B,K,CAG/C,MAAO,CACLuK,SAAUvK,KAAK2B,cACf2I,SAAUtK,KAAK6B,cACf4B,OAAQzD,KAAK8B,Y,CAIT,YAAAkH,CACN9C,EACAvD,GAEA,OACEA,IAAa,qBACLuD,GAA6BnF,UAAY,Q,CAI7C,gBAAAV,GACN,GAAIL,KAAKkC,2BAA4B,CACnC,M,CAEFlC,KAAKkC,2BAA6BlC,KAAKI,MAAMkI,WAC3C,IAAOtI,KAAKgB,WAAahB,KAAKI,MAAM8F,O,6BA7TXqC,IAA5BC,K,gCAyBMD,IAFNE,EAAsB,Y,oCAYbF,IADTG,EAAe,iB,2aC7FLkC,GAAoB,M,yBAaD5K,KAAA6K,oBAAsB,EAOnC7K,KAAA8K,YAAc,M,yBAPqB,E,yEAOrB,K,CAExB,UAAA3K,GACLH,KAAK+K,gBACL,MAAMC,OAACA,GAAUhL,KAAKU,SACtB,MAAMuK,EAAajL,KAAKkL,kBAAkBF,GAC1ChL,KAAKmL,eAAiBF,EAAWE,iBACjCnL,KAAKoL,QAAUH,EAAWG,UAC1BC,EAAwBrL,KAAKU,SAAS4K,OAAQR,IAC5C9K,KAAK8K,YAAcA,CAAW,G,CAI1B,gBAAAS,GACN,OAAOvL,KAAKU,SAAS8K,iBAAiBC,OAAS,iB,CAGjD,qBAAYP,GACV,OAAOlL,KAAKuL,mBAAqBG,EAAsBC,C,CAGjD,aAAAZ,GACN,IAAIa,EAAO,CACTC,mBAAoB,IAAIC,EAAY,CAACC,KAAM,EAAGC,SAAU,SACvDC,SAAS,CACVJ,mBAAoB7L,KAAK6K,qB,CAIrB,mBAAAqB,CAAoBC,GAC1B,GAAInM,KAAK6K,uBAAyB,EAAG,CACnC,OAAO,K,CAET,OAAO7K,KAAK6K,oBACRsB,EAAQ,EAAInM,KAAK6K,oBACjB,I,CAGC,MAAAnD,GACL,IAAK1H,KAAK8K,YAAa,CACrB,MAAO,IAAIsB,MAAMC,KAAK,CAAC9K,OAAQvB,KAAK6K,uBAAuBvE,KAAI,IAC7DrD,EAACqJ,EAAgB,CAACrM,YAAa,MAAOsM,eAAgB,K,CAG1D,OACEtJ,EAACkF,EAAQ,KACNnI,KAAKmL,eAAeqB,OAAOlG,KAAI,CAAClG,EAAO+L,KACtC,GAAI/L,EAAM8F,MAAM5E,OAAOC,SAAW,EAAG,CACnC,M,CAGF,MAAMkL,EAAQ,MACZxM,YAAaD,KAAKkM,oBAAoBC,GACtCf,QAASpL,KAAKoL,QACdhL,MAAOA,EACP4E,MAAO5E,EAAM8F,MAAMlB,MACnB6C,IAAKzH,EAAM8F,MAAMnF,UAGnB,OAAQX,EAAM8F,MAAMuF,MAClB,IAAK,UACH,OACExI,EAAA,4BACMwJ,MAGV,IAAK,iBACH,OACExJ,EAAA,oCACMwJ,MAGV,IAAK,YACH,OACExJ,EAAA,sCACMwJ,MAGV,IAAK,eACH,OACExJ,EAAA,qCACMwJ,MAGV,QAAS,CAEPzM,KAAKU,SAASsK,OAAO0B,OAAOC,KAAK,0BACjC,M,mCA1GiBpE,IAA5BC,K,gCAgBMD,IAFNE,EAAsB,mB,2CCjDzB,MAAMmE,GAAgC,8g9EACtC,MAAAC,GAAeD,G,kXC0CFE,GAA0B,M,yBAmB7B9M,KAAA+M,aAA2D,GAatB/M,KAAAC,YAAc,M,wIAAA,M,qBAQ3D,eAAY+M,GACV,IAAKhN,KAAK8B,YAAa,CACrB9B,KAAK8B,YAAc,IAAIF,EAAsB5B,K,CAE/C,OAAOA,KAAK8B,W,CAKP,UAAA3B,GACL,IAAKH,KAAKI,MAAO,CACf,M,CAGFJ,KAAKiN,QAAUC,EAAalN,KAAKU,SAASsK,QAC1ChL,KAAKK,mBACLL,KAAKmN,sB,CAGA,iBAAA/K,GACLpC,KAAKK,kB,CAGA,oBAAA2B,GACLhC,KAAKkC,+BACLlC,KAAKkC,2BAA6BC,S,CAGpC,aAAYiL,GACV,GAAIpN,KAAKgF,QAAU,YAAchF,KAAKgF,QAAU,iBAAkB,CAChE,OAAOqI,EAAyBrN,KAAKsN,aAAaC,S,CAEpD,OAAOC,C,CAGD,oBAAAL,GACN,MAAMpM,QAACA,GAAWf,KAAKgB,WACvB,MAAMJ,EAAuB,CAC3BC,MAAO,IAAMb,KAAKU,SAASC,KAAKG,EAAEd,KAAKO,aACvCQ,QAASA,EACTE,QAASjB,KAAKkB,KACdC,SAAU,IAAMnB,KAAKmB,UAGvBC,EAAkBpB,KAAKkB,KAAM,IACxBN,EACHS,UAAW,IAAMrB,KAAKqB,UACtBG,qBAAsB,IAAMxB,KAAKyN,wB,CAK9B,gBAAAC,EAAiBC,OAACA,IACvB,MAAMC,MAACA,EAAKC,IAAEA,GAAOF,EACrB3N,KAAKI,MAAM0N,UAAU,CACnB,CACEF,QACAC,MACAE,aAAc,KACd7H,MAAO,a,CAKN,MAAAwB,GACL,MACEhH,UAAUC,KAACA,IACTX,KACJ,MAAM2H,qBAACA,EAAoBrF,SAAEA,GAAYtC,KAAKqC,aAC9C,OACEY,EAAC2E,EAAU,CAAAC,IAAA,2CACTC,QAAS,KACTC,oBAAqBJ,EACrBrF,SAAUA,EACV0F,WAAYhI,KAAKgO,mBAGf/K,EAACgF,EAAc,CAAAJ,IAAA,4CACb5E,EAACC,EAAW,CAAA2E,IAAA,2CACVlH,KAAMA,EACNE,MAAOb,KAAKO,YACZ8C,eAAgB,KACdrD,KAAKgN,YAAY1J,mBACjBtD,KAAKI,MAAMmD,aAAa,EAE1B/B,qBAAsBxB,KAAKyN,uBAC3BxN,YAAaD,KAAKC,YAClBkD,aAAc,EACdC,iBAAkB,IAAOpD,KAAKC,aAAeD,KAAKC,YAClDuD,UAAYoC,GAAO5F,KAAKgN,YAAYtJ,UAAUkC,MAE9C5F,KAAKC,aAAe,CACpBD,KAAKiO,oBAAsBjO,KAAKsJ,eAChCtJ,KAAKkO,mBACHjL,EAAA,sCAAA4E,IAAA,2CACEnH,SAAUV,KAAKU,SACfG,MAAOb,KAAKO,YACZH,MAAOJ,KAAKI,MACZ+N,MAAOnO,KAAKgB,WAAWoN,gB,CAU/B,YAAA9E,GACN,MAAMyD,aACJA,EAAYxM,YACZA,EACAG,UAAUC,KACRA,EACAqK,QAAQ0B,OAACA,IACVU,UACDA,GACEpN,KAEJ,OACEiD,EAACoL,EAA2B,CAAC1N,KAAMA,EAAME,MAAON,GAC7CP,KAAKsO,eAAehI,KAAKvC,GACxBd,EAACsL,EAAqB,CACpBnB,UAAWA,EACX1C,gBAAiB,WACjB3F,WAAYhB,EACZiB,MAAOhF,KAAKgB,WAAWgE,MACvBrE,KAAMA,EACN+L,OAAQA,EACRK,aAAcA,EACdrI,QAAS,IAAM1E,KAAKI,MAAM6E,aAAalB,O,CAOjD,eAAYxD,GACV,OAAOP,KAAKgB,WAAWT,aAAe,U,CAGxC,0BAAYkN,GACV,OACEzN,KAAKgB,WAAWM,OAAOkJ,QAAO,EAAEtE,WAAWA,IAAU,aAAY3E,QACjE,C,CAIJ,iBAAYiN,GACV,QAASxO,KAAKgB,WAAWoN,aAAepO,KAAKqC,aAAaoM,S,CAG5D,sBAAYR,GACV,OAAQjO,KAAKwO,iBAAmBxO,KAAKsO,eAAe/M,M,CAGtD,kBAAY+M,GACV,OACEtO,KAAKgB,WAAWM,OAAOkJ,QACpBzG,GAAUA,EAAMyB,iBAAmBzB,EAAMmC,QAAU,UACjD,E,CAIT,qBAAYgI,GACV,MACEvG,qBAAsBI,EAAmBzF,SACzCA,EAAQmM,UACRA,EACAC,YAAa1G,GACXhI,KAAKqC,aACT,OAAOsM,EAAgC,CACrCH,cAAexO,KAAKwO,cACpBI,kBAAmB,CACjB7G,sBACAzF,WACA0F,aACAyG,aAEFI,YAAa7O,KAAKgB,WAAWM,OAC7BwN,SAAU,M,CAId,YAAY3N,GACV,OAAQnB,KAAKgO,iB,CAGf,qBAAYA,GACV,OAAOhO,KAAKkO,mBAAqBlO,KAAKiO,kB,CAGxC,aAAY5M,GACV,GAAIrB,KAAKgB,WAAWM,OAAOC,OAAQ,CACjC,OAAO,I,CAGT,QAASvB,KAAKsO,eAAe/M,M,CAGvB,gBAAAlB,GACN,GAAIL,KAAKkC,2BAA4B,CACnC,M,CAEFlC,KAAKkC,2BAA6BlC,KAAKI,MAAMkI,WAC3C,IAAOtI,KAAKgB,WAAahB,KAAKI,MAAM8F,O,6BAlPXqC,IAA5BC,K,gCAKMD,IAFNE,EAAsB,U,kCAMhBF,IAFNE,EAAsB,Y,oCAKWF,IAAjCE,EAAsB,Y,gDC1DzB,MAAMsG,GAAkC,o32DACxC,MAAAC,GAAeD,G,kXCwCFE,GAA4B,M,yBAiBMjP,KAAAC,YAAc,M,6DAAA,M,0HAmB3D,eAAYM,GACV,OAAOP,KAAKgB,WAAWT,aAAe,U,CAGxC,eAAYyM,GACV,IAAKhN,KAAK8B,YAAa,CACrB9B,KAAK8B,YAAc,IAAIF,EAAsB5B,K,CAE/C,OAAOA,KAAK8B,W,CAKP,UAAA3B,GACL,IAAKH,KAAKI,MAAO,CACf,M,CAEFJ,KAAKK,mBACLL,KAAKmN,sB,CAGA,iBAAA/K,GACLpC,KAAKK,kB,CAIA,cAAA6O,EAAevB,OAACA,IACrB3N,KAAKmP,WAAa,CAACvB,MAAOD,EAAOC,MAAOC,IAAKF,EAAOE,I,CAGtD,kBAAYS,GACV,OACEtO,KAAKgB,WAAWM,OAAOkJ,QACpBzG,GAAUA,EAAMyB,iBAAmBzB,EAAMmC,QAAU,UACjD,E,CAIT,sBAAY+H,GACV,OAAQjO,KAAKwO,iBAAmBxO,KAAKsO,eAAe/M,M,CAGtD,qBAAYyM,GACV,OAAOhO,KAAKkO,mBAAqBlO,KAAKiO,kB,CAGxC,qBAAYC,GACV,MACEvG,qBAAsBI,EAAmBzF,SACzCA,EAAQmM,UACRA,EACAC,YAAa1G,GACXhI,KAAKqC,aACT,OAAOsM,EAAgC,CACrCH,cAAexO,KAAKwO,cACpBI,kBAAmB,CACjB7G,sBACAzF,WACA0F,aACAyG,aAEFI,YAAa7O,KAAKgB,WAAWM,QAAU,GACvCwN,SAAU,M,CAId,aAAYzN,GACV,GAAIrB,KAAKgB,WAAWM,OAAOC,OAAQ,CACjC,OAAO,I,CAGT,QAASvB,KAAKsO,eAAe/M,M,CAG/B,0BAAYkM,GACV,GAAIzN,KAAKwO,cAAe,CACtB,OAAO,C,CAGT,OACExO,KAAKgB,WAAWM,OAAOkJ,QAAO,EAAEtE,WAAWA,IAAU,aAAY3E,QACjE,C,CAIJ,iBAAYiN,GACV,QAASxO,KAAKmP,U,CAGT,oBAAAnN,GACL,GAAIhC,KAAKkB,KAAKe,YAAa,CACzB,M,CAEFjC,KAAKkC,+BACLlC,KAAKkC,2BAA6BC,S,CAGpC,YAAYhB,GACV,OAAQnB,KAAKgO,iB,CAGP,UAAAoB,GACNpP,KAAKmP,WAAahN,UAClBnC,KAAKI,MAAM0N,UAAU,G,CAGf,oBAAAX,GACN,MAAMvM,EAAuB,CAC3BC,MAAO,IAAMb,KAAKU,SAASC,KAAKG,EAAEd,KAAKO,aACvCQ,QAASf,KAAKgB,WAAWD,QACzBE,QAASjB,KAAKkB,KACdC,SAAU,IAAMnB,KAAKmB,UAGvBC,EAAkBpB,KAAKkB,KAAM,IACxBN,EACHS,UAAW,IAAMrB,KAAKqB,UACtBG,qBAAsB,IAAMxB,KAAKyN,wB,CAI7B,gBAAA4B,CAAiBtK,GACvB,IACE,MAAMuK,EAAYC,EAAwBxK,EAAW6I,OACrD,MAAM4B,EACJF,EAAUG,SAAW,OACjBH,EACAC,EAAwBxK,EAAW8I,KAEzC,OAAO7N,KAAKU,SAASC,KAAKG,EACxB,GAAG0O,EAAaC,UAAUD,EAAaE,OACvC,CACE9F,MAAO4F,EAAaG,Q,CAGxB,MAAOC,GACP,OAAO5P,KAAKU,SAASC,KAAKG,EAAE,KAAM,CAChC8M,MAAOiC,EAAU9K,EAAW6I,OAAOkC,OAAO,cAC1CjC,IAAKgC,EAAU9K,EAAW8I,KAAKiC,OAAO,e,EAIpC,YAAAxG,GACN,OAAOtJ,KAAKuJ,sBACVvJ,KAAKsO,eAAehI,KAAKvC,GAAU/D,KAAK+P,YAAYhM,K,CAIhD,WAAAgM,CAAYhL,GAClB,MAAMQ,EAAevF,KAAKqP,iBAAiBtK,GAC3C,MAAMkB,EAAalB,EAAWmB,QAAU,WACxC,MAAM8J,EAAajL,EAAWmB,QAAU,WACxC,OACEjD,EAACgN,EAAc,CACb1K,aAAcA,EACdU,WAAYA,EACZT,gBAAiBT,EAAWS,gBAC5B7E,KAAMX,KAAKU,SAASC,KACpB+D,QAAS,IAAM1E,KAAKI,MAAM8P,mBAAmBnL,IAE7C9B,EAACkN,EAAwB,CACvB5K,aAAcA,EACdU,WAAYA,EACZ+J,WAAYA,I,CAMZ,qBAAAzG,CAAsBlD,GAC5B,OACEpD,EAACmF,EAAgB,CAACzH,KAAMX,KAAKU,SAASC,KAAME,MAAOb,KAAKO,aACtD0C,EAAA,MAAIiE,MAAM,OAAOsC,KAAK,UACnBnD,G,CAMD,YAAArD,GACN,OACEC,EAACC,EAAW,CACVvC,KAAMX,KAAKU,SAASC,KACpBE,MAAOb,KAAKO,YACZ8C,eAAgB,KACdrD,KAAKgN,YAAY1J,mBACjB,GAAItD,KAAKwO,cAAe,CACtBxO,KAAKoP,aACL,M,CAEFpP,KAAKI,MAAMmD,aAAa,EAE1B/B,qBAAsBxB,KAAKyN,uBAC3BxN,YAAaD,KAAKC,YAClBkD,aAAc,EACdC,iBAAkB,IAAOpD,KAAKC,aAAeD,KAAKC,YAClDuD,UAAYoC,GAAO5F,KAAKgN,YAAYtJ,UAAUkC,I,CAK5C,eAAAwK,GACN,OACEnN,EAAA,2BACEvC,SAAUV,KAAKU,SACfG,MAAOb,KAAKO,YACZ8P,YAAa,IAAMrQ,KAAKmP,WACxBpO,QAASf,KAAKgB,WAAWD,QACzBuP,YAAa,EAAE1C,QAAOC,MAAKE,mBACzB/N,KAAKI,MAAM0N,UAAU,CACnB,CACEF,QACAC,MACAE,eACA7H,MAAO,aAET,G,CAMH,MAAAwB,GACL,MAAMpF,SAACA,EAAQqF,qBAAEA,GAAwB3H,KAAKqC,aAE9C,OACEY,EAAC2E,EAAU,CAAAC,IAAA,2CACTC,QAAS,KACTC,oBAAqBJ,EACrBrF,SAAUA,EACV0F,WAAYhI,KAAKgO,mBAGf/K,EAACgF,EAAc,CAAAJ,IAAA,4CACZ7H,KAAKgD,gBACJhD,KAAKC,aAAe,CACpBD,KAAKiO,oBAAsBjO,KAAKsJ,eAChCtJ,KAAKkO,mBAAqBlO,KAAKoQ,oB,CAQnC,gBAAA/P,GACN,GAAIL,KAAKkC,2BAA4B,CACnC,M,CAEFlC,KAAKkC,2BAA6BlC,KAAKI,MAAMkI,WAC3C,IAAOtI,KAAKgB,WAAahB,KAAKI,MAAM8F,O,6BA3RXqC,GAAA,CAA5BC,K,gCAyBMD,GAAA,CAFNE,EAAsB,Y","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{h as t}from"./p-dc3df5ce.js";import{p as s}from"./p-54fca818.js";import{g as e}from"./p-55d2bcf3.js";import{r as i}from"./p-7e34e6f5.js";import{H as r}from"./p-d6e6dbc3.js";import{F as h,b as a,a as n}from"./p-1cb2280d.js";import{F as u}from"./p-d4c2b7c0.js";import{F as l}from"./p-a7301a38.js";import{F as o}from"./p-2a02812b.js";import{i as d}from"./p-406f7e5a.js";import{b as c}from"./p-66f4521a.js";class f{constructor(t){this.props=t;this.manualTimeframes=[];this.facetId=this.determineFacetId;this.props.setFacetId(this.facetId);this.manualTimeframes=this.getManualTimeframes();if(this.manualTimeframes.length>0){this.facetForDateRange=this.props.initializeFacetForDateRange(this.currentValues)}if(this.props.withDatePicker){this.facetForDatePicker=this.props.initializeFacetForDatePicker();this.facetForDatePickerDependenciesManager=this.props.buildDependenciesManager(this.facetForDatePicker.state.facetId);this.filter=this.props.initializeFilter()}if(this.facetForDateRange){this.facetForDateRangeDependenciesManager=this.props.buildDependenciesManager(this.facetForDateRange?.state.facetId)}if(this.filter){this.filterDependenciesManager=this.props.buildDependenciesManager(this.filter?.state.facetId)}this.registerFacetToStore()}get determineFacetId(){if(this.props.facetId){return this.props.facetId}if(this.props.bindings.store.state.dateFacets[this.props.field]){return i(`${this.props.field}_`)}return this.props.field}get enabled(){return this.facetForDateRange?.state.enabled??this.filter?.state.enabled??true}get valuesToRender(){return this.facetForDateRange?.state.values.filter((t=>t.numberOfResults||t.state!=="idle"))||[]}get shouldRenderValues(){return!this.hasInputRange&&!!this.valuesToRender.length}get shouldRenderFacet(){return this.shouldRenderInput||this.shouldRenderValues}get shouldRenderInput(){return c({hasInput:this.props.withDatePicker,hasInputRange:this.hasInputRange,searchStatusState:this.props.getSearchStatusState(),facetValues:this.facetForDatePicker?.state?.values||[]})}get hasValues(){if(this.facetForDatePicker?.state.values.length){return true}return!!this.valuesToRender.length}get numberOfSelectedValues(){if(this.filter?.state?.range){return 1}return this.facetForDateRange?.state.values.filter((({state:t})=>t==="selected")).length||0}get hasInputRange(){return!!this.filter?.state.range}get currentValues(){return this.manualTimeframes.map((({period:t,amount:s,unit:e})=>t==="past"?this.props.buildDateRange({start:{period:t,unit:e,amount:s},end:{period:"now"}}):this.props.buildDateRange({start:{period:"now"},end:{period:t,unit:e,amount:s}})))}disconnectedCallback(){if(this.props.host.isConnected){return}this.facetForDateRangeDependenciesManager?.stopWatching();this.facetForDatePickerDependenciesManager?.stopWatching();this.filterDependenciesManager?.stopWatching()}get isHidden(){return!this.shouldRenderFacet||!this.enabled}registerFacetToStore(){const t={label:()=>this.props.bindings.i18n.t(this.props.label),facetId:this.facetId,element:this.props.host,isHidden:()=>this.isHidden};this.props.bindings.store.registerFacet("dateFacets",{...t,format:t=>this.formatFacetValue(t)});d(this.props.host,{...t,hasValues:()=>this.hasValues,numberOfActiveValues:()=>this.numberOfSelectedValues});if(this.filter){this.props.bindings.store.state.dateFacets[this.filter.state.facetId]=this.props.bindings.store.state.dateFacets[this.facetId]}}getManualTimeframes(){return Array.from(this.props.host.querySelectorAll("atomic-timeframe")).map((({label:t,amount:s,unit:e,period:i})=>({label:t,amount:s,unit:e,period:i})))}formatFacetValue(t){try{const s=this.props.deserializeRelativeDate(t.start);const i=s.period==="past"?s:this.props.deserializeRelativeDate(t.end);const r=this.getManualTimeframes().find((t=>t.period===i.period&&t.unit===i.unit&&t.amount===i.amount));if(r?.label){return e(this.props.field,r.label,this.props.bindings.i18n)}return this.props.bindings.i18n.t(`${i.period}-${i.unit}`,{count:i.amount})}catch(e){return this.props.bindings.i18n.t("to",{start:s(t.start).format("YYYY-MM-DD"),end:s(t.end).format("YYYY-MM-DD")})}}renderValues(){return this.renderValuesContainer(this.valuesToRender.map((t=>this.renderValue(t))))}renderValue(s){const e=this.formatFacetValue(s);const i=s.state==="selected";const r=s.state==="excluded";return t(l,{displayValue:e,isSelected:i,numberOfResults:s.numberOfResults,i18n:this.props.bindings.i18n,onClick:()=>this.facetForDateRange.toggleSingleSelect(s)},t(u,{displayValue:e,isSelected:i,isExcluded:r}))}renderValuesContainer(s){return t(o,{i18n:this.props.bindings.i18n,label:this.props.label},t("ul",{class:"mt-3",part:"values"},s))}renderHeader(s,e,i){return t(h,{i18n:this.props.bindings.i18n,label:this.props.label,onClearFilters:()=>{e.focusAfterSearch();if(this.filter?.state.range){this.filter?.clear();return}this.facetForDateRange?.deselectAll()},numberOfActiveValues:this.numberOfSelectedValues,isCollapsed:s,headingLevel:this.props.headingLevel,onToggleCollapse:i,headerRef:t=>e.setTarget(t)})}renderDateInput(){return t("atomic-facet-date-input",{min:this.props.min,max:this.props.max,bindings:this.props.bindings,label:this.props.label,facetId:this.filter.state.facetId,rangeGetter:()=>this.filter.state.range,rangeSetter:t=>{this.filter.setRange(t)}})}render({hasError:s,firstSearchExecuted:e,isCollapsed:i,headerFocus:h,onToggleCollapse:u}){if(s||!this.enabled){return t(r,null)}if(!e){return t(a,{numberOfValues:this.currentValues.length,isCollapsed:i})}if(!this.shouldRenderFacet){return t(r,null)}return t(n,null,this.renderHeader(i,h,u),!i&&[this.shouldRenderValues&&this.renderValues(),this.shouldRenderInput&&this.renderDateInput()])}}export{f as T};
2
+ //# sourceMappingURL=p-cd725265.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TimeframeFacetCommon","constructor","props","this","manualTimeframes","facetId","determineFacetId","setFacetId","getManualTimeframes","length","facetForDateRange","initializeFacetForDateRange","currentValues","withDatePicker","facetForDatePicker","initializeFacetForDatePicker","facetForDatePickerDependenciesManager","buildDependenciesManager","state","filter","initializeFilter","facetForDateRangeDependenciesManager","filterDependenciesManager","registerFacetToStore","bindings","store","dateFacets","field","randomID","enabled","valuesToRender","values","value","numberOfResults","shouldRenderValues","hasInputRange","shouldRenderFacet","shouldRenderInput","shouldDisplayInputForFacetRange","hasInput","searchStatusState","getSearchStatusState","facetValues","hasValues","numberOfSelectedValues","range","map","period","amount","unit","buildDateRange","start","end","disconnectedCallback","host","isConnected","stopWatching","isHidden","facetInfo","label","i18n","t","element","registerFacet","format","formatFacetValue","initializePopover","numberOfActiveValues","Array","from","querySelectorAll","facetValue","startDate","deserializeRelativeDate","relativeDate","timeframe","find","getFieldValueCaption","count","error","parseDate","renderValues","renderValuesContainer","renderValue","displayValue","isSelected","isExcluded","h","FacetValueLink","onClick","toggleSingleSelect","FacetValueLabelHighlight","children","FacetValuesGroup","class","part","renderHeader","isCollapsed","headerFocus","onToggleCollapse","FacetHeader","onClearFilters","focusAfterSearch","clear","deselectAll","headingLevel","headerRef","el","setTarget","renderDateInput","min","max","rangeGetter","rangeSetter","request","setRange","render","hasError","firstSearchExecuted","Hidden","FacetPlaceholder","numberOfValues","FacetContainer"],"sources":["src/components/common/facets/timeframe-facet-common.tsx"],"sourcesContent":["import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["TimeframeFacetCommon","constructor","props","this","manualTimeframes","facetId","determineFacetId","setFacetId","getManualTimeframes","length","facetForDateRange","initializeFacetForDateRange","currentValues","withDatePicker","facetForDatePicker","initializeFacetForDatePicker","facetForDatePickerDependenciesManager","buildDependenciesManager","state","filter","initializeFilter","facetForDateRangeDependenciesManager","filterDependenciesManager","registerFacetToStore","bindings","store","dateFacets","field","randomID","enabled","valuesToRender","values","value","numberOfResults","shouldRenderValues","hasInputRange","shouldRenderFacet","shouldRenderInput","shouldDisplayInputForFacetRange","hasInput","searchStatusState","getSearchStatusState","facetValues","hasValues","numberOfSelectedValues","range","map","period","amount","unit","buildDateRange","start","end","disconnectedCallback","host","isConnected","stopWatching","isHidden","facetInfo","label","i18n","t","element","registerFacet","format","formatFacetValue","initializePopover","numberOfActiveValues","Array","from","querySelectorAll","facetValue","startDate","deserializeRelativeDate","relativeDate","timeframe","find","getFieldValueCaption","count","error","parseDate","renderValues","renderValuesContainer","renderValue","displayValue","isSelected","isExcluded","h","FacetValueLink","onClick","toggleSingleSelect","FacetValueLabelHighlight","children","FacetValuesGroup","class","part","renderHeader","isCollapsed","headerFocus","onToggleCollapse","FacetHeader","onClearFilters","focusAfterSearch","clear","deselectAll","headingLevel","headerRef","el","setTarget","renderDateInput","min","max","rangeGetter","rangeSetter","request","setRange","render","hasError","firstSearchExecuted","Hidden","FacetPlaceholder","numberOfValues","FacetContainer"],"sources":["src/components/common/facets/timeframe-facet-common.tsx"],"sourcesContent":["import {FocusTargetController} from '@/src/utils/stencil-accessibility-utils';\nimport {\n DateFacet,\n DateFacetValue,\n DateFilter,\n DateRangeOptions,\n DateRangeRequest,\n FacetConditionsManager,\n RangeFacetSortCriterion,\n RelativeDate,\n RelativeDatePeriod,\n RelativeDateUnit,\n SearchStatusState,\n} from '@coveo/headless';\nimport {h, VNode} from '@stencil/core';\nimport {parseDate} from '../../../utils/date-utils';\nimport {getFieldValueCaption} from '../../../utils/field-utils';\nimport {randomID} from '../../../utils/utils';\nimport {InsightBindings} from '../../insight/atomic-insight-interface/atomic-insight-interface';\nimport {Bindings as SearchBindings} from '../../search/atomic-search-interface/atomic-search-interface';\nimport {Hidden} from '../stencil-hidden';\nimport {FacetInfo} from './facet-common-store';\nimport {FacetContainer} from './facet-container/stencil-facet-container';\nimport {FacetHeader} from './facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from './facet-placeholder/facet-placeholder';\nimport {FacetValueLabelHighlight} from './facet-value-label-highlight/stencil-facet-value-label-highlight';\nimport {FacetValueLink} from './facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from './facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from './popover/popover-type';\nimport {shouldDisplayInputForFacetRange} from './stencil-facet-common';\n\nexport interface Timeframe {\n period: RelativeDatePeriod;\n unit?: RelativeDateUnit;\n amount?: number;\n label?: string;\n}\n\ninterface TimeframeFacetCommonOptions {\n facetId?: string;\n host: HTMLElement;\n bindings: SearchBindings | InsightBindings;\n label: string;\n field: string;\n headingLevel: number;\n dependsOn: Record<string, string>;\n withDatePicker: boolean;\n setFacetId(id: string): string;\n getSearchStatusState(): SearchStatusState;\n buildDependenciesManager(facetId: string): FacetConditionsManager;\n deserializeRelativeDate(date: string): RelativeDate;\n buildDateRange(config: DateRangeOptions): DateRangeRequest;\n initializeFacetForDatePicker(): DateFacet;\n initializeFacetForDateRange(values: DateRangeRequest[]): DateFacet;\n initializeFilter(): DateFilter;\n min?: string;\n max?: string;\n sortCriteria: RangeFacetSortCriterion;\n}\n\ninterface TimeframeFacetCommonRenderProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n isCollapsed: boolean;\n headerFocus: FocusTargetController;\n onToggleCollapse: () => boolean;\n}\n\nexport class TimeframeFacetCommon {\n private facetId?: string;\n private facetForDatePicker?: DateFacet;\n private facetForDateRange?: DateFacet;\n private filter?: DateFilter;\n private manualTimeframes: Timeframe[] = [];\n private facetForDateRangeDependenciesManager?: FacetConditionsManager;\n private facetForDatePickerDependenciesManager?: FacetConditionsManager;\n private filterDependenciesManager?: FacetConditionsManager;\n\n constructor(private props: TimeframeFacetCommonOptions) {\n this.facetId = this.determineFacetId;\n this.props.setFacetId(this.facetId);\n\n this.manualTimeframes = this.getManualTimeframes();\n\n // Initialize two facets: One that is actually used to display values for end users, which only exists\n // if we need to display something to the end user (ie: timeframes > 0)\n\n // A second facet is initialized only to verify the results count. It is never used to display results to end user.\n // It serves as a way to determine if the input should be rendered or not, independent of the ranges configured in the component\n if (this.manualTimeframes.length > 0) {\n this.facetForDateRange = this.props.initializeFacetForDateRange(\n this.currentValues\n );\n }\n\n if (this.props.withDatePicker) {\n this.facetForDatePicker = this.props.initializeFacetForDatePicker();\n this.facetForDatePickerDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDatePicker.state.facetId\n );\n this.filter = this.props.initializeFilter();\n }\n\n if (this.facetForDateRange) {\n this.facetForDateRangeDependenciesManager =\n this.props.buildDependenciesManager(\n this.facetForDateRange?.state.facetId\n );\n }\n\n if (this.filter) {\n this.filterDependenciesManager = this.props.buildDependenciesManager(\n this.filter?.state.facetId\n );\n }\n\n this.registerFacetToStore();\n }\n\n private get determineFacetId() {\n if (this.props.facetId) {\n return this.props.facetId;\n }\n\n if (this.props.bindings.store.state.dateFacets[this.props.field]) {\n return randomID(`${this.props.field}_`);\n }\n\n return this.props.field;\n }\n\n private get enabled() {\n return (\n this.facetForDateRange?.state.enabled ??\n this.filter?.state.enabled ??\n true\n );\n }\n\n private get valuesToRender() {\n return (\n this.facetForDateRange?.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n ) || []\n );\n }\n\n private get shouldRenderValues() {\n return !this.hasInputRange && !!this.valuesToRender.length;\n }\n\n private get shouldRenderFacet() {\n return this.shouldRenderInput || this.shouldRenderValues;\n }\n\n private get shouldRenderInput() {\n return shouldDisplayInputForFacetRange({\n hasInput: this.props.withDatePicker,\n hasInputRange: this.hasInputRange,\n searchStatusState: this.props.getSearchStatusState(),\n facetValues: this.facetForDatePicker?.state?.values || [],\n });\n }\n\n private get hasValues() {\n if (this.facetForDatePicker?.state.values.length) {\n return true;\n }\n\n return !!this.valuesToRender.length;\n }\n\n private get numberOfSelectedValues() {\n if (this.filter?.state?.range) {\n return 1;\n }\n\n return (\n this.facetForDateRange?.state.values.filter(\n ({state}) => state === 'selected'\n ).length || 0\n );\n }\n\n private get hasInputRange() {\n return !!this.filter?.state.range;\n }\n\n public get currentValues(): DateRangeRequest[] {\n return this.manualTimeframes.map(({period, amount, unit}) =>\n period === 'past'\n ? this.props.buildDateRange({\n start: {period, unit, amount},\n end: {period: 'now'},\n })\n : this.props.buildDateRange({\n start: {period: 'now'},\n end: {period, unit, amount},\n })\n );\n }\n\n public disconnectedCallback() {\n if (this.props.host.isConnected) {\n return;\n }\n this.facetForDateRangeDependenciesManager?.stopWatching();\n this.facetForDatePickerDependenciesManager?.stopWatching();\n this.filterDependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return !this.shouldRenderFacet || !this.enabled;\n }\n\n private registerFacetToStore() {\n const facetInfo: FacetInfo = {\n label: () => this.props.bindings.i18n.t(this.props.label),\n facetId: this.facetId!,\n element: this.props.host,\n isHidden: () => this.isHidden,\n };\n\n this.props.bindings.store.registerFacet('dateFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n });\n\n initializePopover(this.props.host, {\n ...facetInfo,\n hasValues: () => this.hasValues,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n\n if (this.filter) {\n this.props.bindings.store.state.dateFacets[this.filter.state.facetId] =\n this.props.bindings.store.state.dateFacets[this.facetId!];\n }\n }\n\n private getManualTimeframes(): Timeframe[] {\n return Array.from(this.props.host.querySelectorAll('atomic-timeframe')).map(\n ({label, amount, unit, period}) => ({\n label,\n amount,\n unit,\n period,\n })\n );\n }\n\n private formatFacetValue(facetValue: DateFacetValue) {\n try {\n const startDate = this.props.deserializeRelativeDate(facetValue.start);\n const relativeDate =\n startDate.period === 'past'\n ? startDate\n : this.props.deserializeRelativeDate(facetValue.end);\n const timeframe = this.getManualTimeframes().find(\n (timeframe) =>\n timeframe.period === relativeDate.period &&\n timeframe.unit === relativeDate.unit &&\n timeframe.amount === relativeDate.amount\n );\n\n if (timeframe?.label) {\n return getFieldValueCaption(\n this.props.field,\n timeframe.label,\n this.props.bindings.i18n\n );\n }\n return this.props.bindings.i18n.t(\n `${relativeDate.period}-${relativeDate.unit}`,\n {\n count: relativeDate.amount,\n }\n );\n } catch (error) {\n return this.props.bindings.i18n.t('to', {\n start: parseDate(facetValue.start).format('YYYY-MM-DD'),\n end: parseDate(facetValue.end).format('YYYY-MM-DD'),\n });\n }\n }\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) => this.renderValue(value))\n );\n }\n private renderValue(facetValue: DateFacetValue) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const isExcluded = facetValue.state === 'excluded';\n return (\n <FacetValueLink\n displayValue={displayValue}\n isSelected={isSelected}\n numberOfResults={facetValue.numberOfResults}\n i18n={this.props.bindings.i18n}\n onClick={() => this.facetForDateRange!.toggleSingleSelect(facetValue)}\n >\n <FacetValueLabelHighlight\n displayValue={displayValue}\n isSelected={isSelected}\n isExcluded={isExcluded}\n ></FacetValueLabelHighlight>\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n >\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderHeader(\n isCollapsed: boolean,\n headerFocus: FocusTargetController,\n onToggleCollapse: () => void\n ) {\n return (\n <FacetHeader\n i18n={this.props.bindings.i18n}\n label={this.props.label}\n onClearFilters={() => {\n headerFocus.focusAfterSearch();\n if (this.filter?.state.range) {\n this.filter?.clear();\n return;\n }\n this.facetForDateRange?.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={isCollapsed}\n headingLevel={this.props.headingLevel}\n onToggleCollapse={onToggleCollapse}\n headerRef={(el) => headerFocus.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderDateInput() {\n return (\n <atomic-facet-date-input\n min={this.props.min}\n max={this.props.max}\n bindings={this.props.bindings}\n label={this.props.label}\n facetId={this.filter!.state!.facetId}\n rangeGetter={() => this.filter!.state.range}\n rangeSetter={(request: DateRangeRequest) => {\n this.filter!.setRange(request);\n }}\n ></atomic-facet-date-input>\n );\n }\n\n public render({\n hasError,\n firstSearchExecuted,\n isCollapsed,\n headerFocus,\n onToggleCollapse,\n }: TimeframeFacetCommonRenderProps) {\n if (hasError || !this.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.currentValues.length}\n isCollapsed={isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.shouldRenderFacet) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader(isCollapsed, headerFocus, onToggleCollapse)}\n {!isCollapsed && [\n this.shouldRenderValues && this.renderValues(),\n this.shouldRenderInput && this.renderDateInput(),\n ]}\n </FacetContainer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as e,g as s}from"./p-dc3df5ce.js";import{Schema as a,NumberValue as i}from"@coveo/bueno";import{buildFacetManager as o}from"@coveo/headless";import{I as c,B as n}from"./p-d6e6dbc3.js";import{g as r,s as f,a as d,c as h}from"./p-66f4521a.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-05de7ca3.js";import"./p-f77160c6.js";var l=undefined&&undefined.__decorate||function(t,e,s,a){var i=arguments.length,o=i<3?e:a===null?a=Object.getOwnPropertyDescriptor(e,s):a,c;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(t,e,s,a);else for(var n=t.length-1;n>=0;n--)if(c=t[n])o=(i<3?c(o):i>3?c(e,s,o):c(e,s))||o;return i>3&&o&&Object.defineProperty(e,s,o),o};const p=class{constructor(e){t(this,e);this.collapseFacetsAfter=4;this.sortFacets=()=>{const t=r(this.host);const e=this.sortFacetsUsingManager(t,this.facetManager);const{visibleFacets:s,invisibleFacets:a}=f(e,this.bindings.store.getAllFacets());const i=d(this.host);h(s,this.collapseFacetsAfter);i?.updateCollapseFacetsDependingOnFacetsVisibility(this.collapseFacetsAfter,s.length);this.host.append(...[...s,...a,...i?[i]:[]])};this.facetManagerState=undefined;this.error=undefined;this.collapseFacetsAfter=4}initialize(){this.validateProps();this.facetManager=o(this.bindings.engine);this.bindings.i18n.on("languageChanged",this.sortFacets)}validateProps(){new a({collapseFacetAfter:new i({min:-1,required:true})}).validate({collapseFacetAfter:this.collapseFacetsAfter})}sortFacetsUsingManager(t,e){const s=t.map((t=>({facetId:t.facetId,payload:t})));return e.sort(s).map((t=>t.payload))}disconnectedCallback(){this.bindings?.i18n.off("languageChanged",this.sortFacets)}render(){return e("slot",{key:"bcc28b06b5f7faa7787b5aa9acb3614616fe1759"})}get host(){return s(this)}};l([c()],p.prototype,"bindings",void 0);l([n("facetManager",{onUpdateCallbackMethod:"sortFacets"})],p.prototype,"facetManagerState",void 0);export{p as atomic_facet_manager};
2
- //# sourceMappingURL=p-faee1f57.entry.js.map
1
+ import{r as t,h as e,g as s}from"./p-dc3df5ce.js";import{Schema as i,NumberValue as a}from"@coveo/bueno";import{buildFacetManager as o}from"@coveo/headless";import{I as c,B as n}from"./p-d6e6dbc3.js";import{g as r,s as d,a as f,c as h}from"./p-66f4521a.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-05de7ca3.js";import"./p-f77160c6.js";var l=undefined&&undefined.__decorate||function(t,e,s,i){var a=arguments.length,o=a<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,s):i,c;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(t,e,s,i);else for(var n=t.length-1;n>=0;n--)if(c=t[n])o=(a<3?c(o):a>3?c(e,s,o):c(e,s))||o;return a>3&&o&&Object.defineProperty(e,s,o),o};const p=class{constructor(e){t(this,e);this.collapseFacetsAfter=4;this.sortFacets=()=>{const t=r(this.host);const e=this.sortFacetsUsingManager(t,this.facetManager);const{visibleFacets:s,invisibleFacets:i}=d(e,this.bindings.store.getAllFacets());const a=f(this.host);h(s,this.collapseFacetsAfter);a?.updateCollapseFacetsDependingOnFacetsVisibility(this.collapseFacetsAfter,s.length);this.host.append(...[...s,...i,...a?[a]:[]])};this.facetManagerState=undefined;this.error=undefined;this.collapseFacetsAfter=4}initialize(){this.validateProps();this.facetManager=o(this.bindings.engine);this.bindings.i18n.on("languageChanged",this.sortFacets)}validateProps(){new i({collapseFacetAfter:new a({min:-1,required:true})}).validate({collapseFacetAfter:this.collapseFacetsAfter})}sortFacetsUsingManager(t,e){const s=t.map((t=>({facetId:t.facetId,payload:t})));return e.sort(s).map((t=>t.payload))}disconnectedCallback(){this.bindings?.i18n.off("languageChanged",this.sortFacets)}render(){return e("slot",{key:"961131ac67d2b2d74ecd11a504b5e2bf5d3b78b5"})}get host(){return s(this)}};l([c()],p.prototype,"bindings",void 0);l([n("facetManager",{onUpdateCallbackMethod:"sortFacets"})],p.prototype,"facetManagerState",void 0);export{p as atomic_facet_manager};
2
+ //# sourceMappingURL=p-cd87574b.entry.js.map