@coveo/atomic 3.31.2-pre.bd810aa426 → 3.31.2-pre.e1fe65e6c6

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 (250) 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 +2 -2
  4. package/dist/atomic/components/_index.js +1 -1
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-category-facet.js +1 -1
  7. package/dist/atomic/components/atomic-facet.js +1 -1
  8. package/dist/atomic/components/atomic-format-currency.js +1 -1
  9. package/dist/atomic/components/atomic-format-number.js +1 -1
  10. package/dist/atomic/components/atomic-format-unit.js +1 -1
  11. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  12. package/dist/atomic/components/atomic-product-description.d.ts +11 -0
  13. package/dist/atomic/components/atomic-product-description.js +153 -0
  14. package/dist/atomic/components/atomic-product-description.js.map +1 -0
  15. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  16. package/dist/atomic/components/atomic-quickview.js +1 -1
  17. package/dist/atomic/components/atomic-result-children.js +1 -1
  18. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  19. package/dist/atomic/components/atomic-result-link.js +1 -1
  20. package/dist/atomic/components/atomic-result-list.js +1 -1
  21. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  22. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  23. package/dist/atomic/components/atomic-search-interface.js +1 -7
  24. package/dist/atomic/components/atomic-search-interface.js.map +1 -1
  25. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  26. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  27. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  28. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  29. package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +0 -1
  30. package/dist/atomic/components/components/commerce/index.js +0 -1
  31. package/dist/atomic/components/components/commerce/lazy-index.js +0 -1
  32. package/dist/atomic/components/components/common/atomic-aria-live/atomic-aria-live.js +102 -0
  33. package/dist/atomic/components/components/common/index.js +1 -0
  34. package/dist/atomic/components/components/common/lazy-index.js +1 -0
  35. package/dist/atomic/components/debounce-utils.js +1 -34
  36. package/dist/atomic/components/debounce-utils.js.map +1 -1
  37. package/dist/atomic/components/global/environment.js +1 -1
  38. package/dist/atomic/components/plus.js +10 -0
  39. package/dist/atomic/components/plus.js.map +1 -0
  40. package/dist/atomic/components/stencil-accessibility-utils.js.map +1 -1
  41. package/dist/atomic/components/stencil-facet-show-more-less.js +1 -7
  42. package/dist/atomic/components/stencil-facet-show-more-less.js.map +1 -1
  43. package/dist/atomic/p-01c91b69.js +2 -0
  44. package/dist/atomic/p-01c91b69.js.map +1 -0
  45. package/dist/atomic/p-0873c1b8.entry.js +2 -0
  46. package/dist/atomic/{p-e8ba8acd.entry.js.map → p-0873c1b8.entry.js.map} +1 -1
  47. package/dist/atomic/{p-1b491649.entry.js → p-0af927f0.entry.js} +2 -2
  48. package/dist/atomic/{p-b043958c.entry.js → p-0b9cd281.entry.js} +2 -2
  49. package/dist/atomic/{p-e44ba87e.entry.js → p-0f5ae66e.entry.js} +2 -2
  50. package/dist/atomic/{p-0674783d.entry.js → p-1b329f85.entry.js} +2 -2
  51. package/dist/atomic/p-271cf67e.entry.js +2 -0
  52. package/dist/atomic/p-271cf67e.entry.js.map +1 -0
  53. package/dist/atomic/p-306161d1.entry.js +2 -0
  54. package/dist/atomic/{p-8b3df33c.entry.js → p-35a5a531.entry.js} +2 -2
  55. package/dist/atomic/p-3f881919.entry.js +2 -0
  56. package/dist/atomic/{p-91477908.entry.js.map → p-3f881919.entry.js.map} +1 -1
  57. package/dist/atomic/{p-773dcc60.entry.js → p-4588f63b.entry.js} +2 -2
  58. package/dist/atomic/{p-a0445771.entry.js → p-4c5702ba.entry.js} +2 -2
  59. package/dist/atomic/{p-00c7c8bc.entry.js → p-516bc402.entry.js} +2 -2
  60. package/dist/atomic/{p-acc4d5de.js → p-53bcc515.js} +2 -2
  61. package/dist/atomic/p-5c55e3ea.entry.js +2 -0
  62. package/dist/atomic/{p-29c272bb.entry.js.map → p-5c55e3ea.entry.js.map} +1 -1
  63. package/dist/atomic/{p-e2560da8.entry.js → p-5f64bbe0.entry.js} +2 -2
  64. package/dist/atomic/{p-fc73190d.entry.js → p-6638ca39.entry.js} +2 -2
  65. package/dist/atomic/{p-1176959c.entry.js → p-6f8ae3d2.entry.js} +2 -2
  66. package/dist/atomic/{p-0ed0e8b8.entry.js → p-731f82ed.entry.js} +2 -2
  67. package/dist/atomic/{p-25f8b8d8.entry.js → p-7a07530d.entry.js} +2 -2
  68. package/dist/atomic/{p-c8d47706.entry.js → p-7a5d346b.entry.js} +2 -2
  69. package/dist/atomic/{p-5b888121.entry.js → p-89721f11.entry.js} +2 -2
  70. package/dist/atomic/p-8f20d930.js +2 -0
  71. package/dist/atomic/p-8f20d930.js.map +1 -0
  72. package/dist/atomic/p-96a6f84f.js.map +1 -1
  73. package/dist/atomic/p-998138e3.entry.js +2 -0
  74. package/dist/atomic/{p-1e0f2e91.entry.js.map → p-998138e3.entry.js.map} +1 -1
  75. package/dist/atomic/{p-11dd759c.entry.js → p-b1f7ac63.entry.js} +2 -2
  76. package/dist/atomic/{p-5fc9f751.entry.js → p-bf5d5c79.entry.js} +2 -2
  77. package/dist/atomic/{p-716e9e1d.entry.js → p-c0025d4c.entry.js} +2 -2
  78. package/dist/atomic/p-c100197d.js +2 -0
  79. package/dist/atomic/{p-417b1b64.js.map → p-c100197d.js.map} +1 -1
  80. package/dist/atomic/{p-1e118dbf.js → p-ca4d4bb9.js} +2 -2
  81. package/dist/atomic/p-e215ba76.entry.js +2 -0
  82. package/dist/atomic/{p-44a3c052.entry.js.map → p-e215ba76.entry.js.map} +1 -1
  83. package/dist/atomic/{p-494c57a0.entry.js → p-e406cacd.entry.js} +2 -2
  84. package/dist/atomic/p-f0e861c5.entry.js +2 -0
  85. package/dist/atomic/p-f2d31b97.entry.js +2 -0
  86. package/dist/atomic/p-f2d31b97.entry.js.map +1 -0
  87. package/dist/atomic/{p-391c26ba.entry.js → p-f9bfd18b.entry.js} +2 -2
  88. package/dist/cjs/_loader.cjs.js +1 -1
  89. package/dist/cjs/{analytics-config-edaf0d1e.js → analytics-config-ebbdfacc.js} +2 -2
  90. package/dist/cjs/{analytics-config-edaf0d1e.js.map → analytics-config-ebbdfacc.js.map} +1 -1
  91. package/dist/cjs/atomic-category-facet.cjs.entry.js +3 -2
  92. package/dist/cjs/atomic-category-facet.cjs.entry.js.map +1 -1
  93. package/dist/cjs/atomic-color-facet.cjs.entry.js +2 -1
  94. package/dist/cjs/atomic-color-facet.cjs.entry.js.map +1 -1
  95. package/dist/cjs/atomic-commerce-category-facet_4.cjs.entry.js +2 -1
  96. package/dist/cjs/atomic-commerce-category-facet_4.cjs.entry.js.map +1 -1
  97. package/dist/cjs/atomic-facet.cjs.entry.js +3 -2
  98. package/dist/cjs/atomic-facet.cjs.entry.js.map +1 -1
  99. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  100. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  101. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  102. package/dist/cjs/atomic-generated-answer.cjs.entry.js +1 -1
  103. package/dist/cjs/atomic-insight-facet.cjs.entry.js +2 -1
  104. package/dist/cjs/atomic-insight-facet.cjs.entry.js.map +1 -1
  105. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +1 -1
  106. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  107. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  108. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  109. package/dist/cjs/atomic-product-description.cjs.entry.js +141 -0
  110. package/dist/cjs/atomic-product-description.cjs.entry.js.map +1 -0
  111. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  112. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  113. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  114. package/dist/cjs/{atomic-aria-live_2.cjs.entry.js → atomic-relevance-inspector.cjs.entry.js} +1 -68
  115. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js.map +1 -0
  116. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  117. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  118. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  119. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  120. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  121. package/dist/cjs/atomic-search-box.cjs.entry.js +2 -2
  122. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  123. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  124. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  125. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  126. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  127. package/dist/cjs/atomic.cjs.js +1 -1
  128. package/dist/cjs/debounce-utils-d26bcad4.js +15 -0
  129. package/dist/cjs/debounce-utils-d26bcad4.js.map +1 -0
  130. package/dist/cjs/index-757bc886.js +8 -4
  131. package/dist/cjs/plus-07843914.js +13 -0
  132. package/dist/cjs/plus-07843914.js.map +1 -0
  133. package/dist/cjs/stencil-accessibility-utils-aa4c9f6c.js.map +1 -1
  134. package/dist/cjs/{stencil-facet-show-more-less-541e1544.js → stencil-facet-show-more-less-21d22973.js} +4 -10
  135. package/dist/cjs/stencil-facet-show-more-less-21d22973.js.map +1 -0
  136. package/dist/cjs/{stencil-suggestion-manager-6f778cf0.js → stencil-suggestion-manager-5fa3ac70.js} +2 -2
  137. package/dist/cjs/{stencil-suggestion-manager-6f778cf0.js.map → stencil-suggestion-manager-5fa3ac70.js.map} +1 -1
  138. package/dist/cjs/version.cjs.js +1 -1
  139. package/dist/esm/_loader.js +1 -1
  140. package/dist/esm/{analytics-config-1fab55eb.js → analytics-config-a3369b26.js} +2 -2
  141. package/dist/esm/{analytics-config-1fab55eb.js.map → analytics-config-a3369b26.js.map} +1 -1
  142. package/dist/esm/atomic-category-facet.entry.js +3 -2
  143. package/dist/esm/atomic-category-facet.entry.js.map +1 -1
  144. package/dist/esm/atomic-color-facet.entry.js +2 -1
  145. package/dist/esm/atomic-color-facet.entry.js.map +1 -1
  146. package/dist/esm/atomic-commerce-category-facet_4.entry.js +2 -1
  147. package/dist/esm/atomic-commerce-category-facet_4.entry.js.map +1 -1
  148. package/dist/esm/atomic-facet.entry.js +3 -2
  149. package/dist/esm/atomic-facet.entry.js.map +1 -1
  150. package/dist/esm/atomic-format-currency.entry.js +1 -1
  151. package/dist/esm/atomic-format-number.entry.js +1 -1
  152. package/dist/esm/atomic-format-unit.entry.js +1 -1
  153. package/dist/esm/atomic-generated-answer.entry.js +1 -1
  154. package/dist/esm/atomic-insight-facet.entry.js +2 -1
  155. package/dist/esm/atomic-insight-facet.entry.js.map +1 -1
  156. package/dist/esm/atomic-insight-generated-answer.entry.js +1 -1
  157. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  158. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  159. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  160. package/dist/esm/atomic-product-description.entry.js +137 -0
  161. package/dist/esm/atomic-product-description.entry.js.map +1 -0
  162. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  163. package/dist/esm/atomic-quickview.entry.js +1 -1
  164. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  165. package/dist/esm/{atomic-aria-live_2.entry.js → atomic-relevance-inspector.entry.js} +3 -69
  166. package/dist/esm/atomic-relevance-inspector.entry.js.map +1 -0
  167. package/dist/esm/atomic-result-children.entry.js +1 -1
  168. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  169. package/dist/esm/atomic-result-link.entry.js +1 -1
  170. package/dist/esm/atomic-result-list.entry.js +1 -1
  171. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
  172. package/dist/esm/atomic-search-box.entry.js +2 -2
  173. package/dist/esm/atomic-search-interface.entry.js +1 -1
  174. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  175. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  176. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  177. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  178. package/dist/esm/atomic.js +1 -1
  179. package/dist/esm/debounce-utils-8619dece.js +13 -0
  180. package/dist/esm/{debounce-utils-efa015c0.js.map → debounce-utils-8619dece.js.map} +1 -1
  181. package/dist/esm/index-3f35faca.js +8 -4
  182. package/dist/esm/plus-00840ff6.js +10 -0
  183. package/dist/esm/plus-00840ff6.js.map +1 -0
  184. package/dist/esm/stencil-accessibility-utils-bc273be5.js.map +1 -1
  185. package/dist/esm/{stencil-facet-show-more-less-1198472f.js → stencil-facet-show-more-less-4b023ee3.js} +2 -8
  186. package/dist/esm/stencil-facet-show-more-less-4b023ee3.js.map +1 -0
  187. package/dist/esm/{stencil-suggestion-manager-91706623.js → stencil-suggestion-manager-f52c6e39.js} +2 -2
  188. package/dist/esm/{stencil-suggestion-manager-91706623.js.map → stencil-suggestion-manager-f52c6e39.js.map} +1 -1
  189. package/dist/esm/version.js +1 -1
  190. package/dist/types/components/commerce/atomic-product-description/atomic-product-description.d.ts +10 -21
  191. package/dist/types/components/commerce/atomic-product-template/atomic-product-template.d.ts +0 -1
  192. package/dist/types/components/commerce/index.d.ts +0 -1
  193. package/dist/types/components/common/atomic-aria-live/atomic-aria-live.d.ts +38 -0
  194. package/dist/types/components/common/index.d.ts +1 -0
  195. package/dist/types/components.d.ts +51 -27
  196. package/dist/types/utils/accessibility-utils.d.ts +2 -1
  197. package/dist/types/utils/stencil-accessibility-utils.d.ts +2 -1
  198. package/docs/atomic-docs.json +124 -34
  199. package/package.json +1 -1
  200. package/dist/atomic/components/atomic-aria-live.d.ts +0 -11
  201. package/dist/atomic/components/atomic-aria-live.js +0 -8
  202. package/dist/atomic/components/atomic-aria-live.js.map +0 -1
  203. package/dist/atomic/components/atomic-aria-live2.js +0 -87
  204. package/dist/atomic/components/atomic-aria-live2.js.map +0 -1
  205. package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +0 -149
  206. package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.tw.css.js +0 -3
  207. package/dist/atomic/p-1e0f2e91.entry.js +0 -2
  208. package/dist/atomic/p-29c272bb.entry.js +0 -2
  209. package/dist/atomic/p-37b7705c.js +0 -2
  210. package/dist/atomic/p-37b7705c.js.map +0 -1
  211. package/dist/atomic/p-3f2442d3.entry.js +0 -2
  212. package/dist/atomic/p-3f2442d3.entry.js.map +0 -1
  213. package/dist/atomic/p-417b1b64.js +0 -2
  214. package/dist/atomic/p-44a3c052.entry.js +0 -2
  215. package/dist/atomic/p-91477908.entry.js +0 -2
  216. package/dist/atomic/p-e790d557.entry.js +0 -2
  217. package/dist/atomic/p-e8ba8acd.entry.js +0 -2
  218. package/dist/atomic/p-efd2bb5f.entry.js +0 -2
  219. package/dist/cjs/atomic-aria-live_2.cjs.entry.js.map +0 -1
  220. package/dist/cjs/debounce-utils-e014935f.js +0 -49
  221. package/dist/cjs/debounce-utils-e014935f.js.map +0 -1
  222. package/dist/cjs/stencil-facet-show-more-less-541e1544.js.map +0 -1
  223. package/dist/esm/atomic-aria-live_2.entry.js.map +0 -1
  224. package/dist/esm/debounce-utils-efa015c0.js +0 -46
  225. package/dist/esm/stencil-facet-show-more-less-1198472f.js.map +0 -1
  226. package/dist/types/components/search/atomic-search-interface/atomic-aria-live.d.ts +0 -23
  227. /package/dist/atomic/{p-1b491649.entry.js.map → p-0af927f0.entry.js.map} +0 -0
  228. /package/dist/atomic/{p-b043958c.entry.js.map → p-0b9cd281.entry.js.map} +0 -0
  229. /package/dist/atomic/{p-e44ba87e.entry.js.map → p-0f5ae66e.entry.js.map} +0 -0
  230. /package/dist/atomic/{p-0674783d.entry.js.map → p-1b329f85.entry.js.map} +0 -0
  231. /package/dist/atomic/{p-efd2bb5f.entry.js.map → p-306161d1.entry.js.map} +0 -0
  232. /package/dist/atomic/{p-8b3df33c.entry.js.map → p-35a5a531.entry.js.map} +0 -0
  233. /package/dist/atomic/{p-773dcc60.entry.js.map → p-4588f63b.entry.js.map} +0 -0
  234. /package/dist/atomic/{p-a0445771.entry.js.map → p-4c5702ba.entry.js.map} +0 -0
  235. /package/dist/atomic/{p-00c7c8bc.entry.js.map → p-516bc402.entry.js.map} +0 -0
  236. /package/dist/atomic/{p-acc4d5de.js.map → p-53bcc515.js.map} +0 -0
  237. /package/dist/atomic/{p-e2560da8.entry.js.map → p-5f64bbe0.entry.js.map} +0 -0
  238. /package/dist/atomic/{p-fc73190d.entry.js.map → p-6638ca39.entry.js.map} +0 -0
  239. /package/dist/atomic/{p-1176959c.entry.js.map → p-6f8ae3d2.entry.js.map} +0 -0
  240. /package/dist/atomic/{p-0ed0e8b8.entry.js.map → p-731f82ed.entry.js.map} +0 -0
  241. /package/dist/atomic/{p-25f8b8d8.entry.js.map → p-7a07530d.entry.js.map} +0 -0
  242. /package/dist/atomic/{p-c8d47706.entry.js.map → p-7a5d346b.entry.js.map} +0 -0
  243. /package/dist/atomic/{p-5b888121.entry.js.map → p-89721f11.entry.js.map} +0 -0
  244. /package/dist/atomic/{p-11dd759c.entry.js.map → p-b1f7ac63.entry.js.map} +0 -0
  245. /package/dist/atomic/{p-5fc9f751.entry.js.map → p-bf5d5c79.entry.js.map} +0 -0
  246. /package/dist/atomic/{p-716e9e1d.entry.js.map → p-c0025d4c.entry.js.map} +0 -0
  247. /package/dist/atomic/{p-1e118dbf.js.map → p-ca4d4bb9.js.map} +0 -0
  248. /package/dist/atomic/{p-494c57a0.entry.js.map → p-e406cacd.entry.js.map} +0 -0
  249. /package/dist/atomic/{p-e790d557.entry.js.map → p-f0e861c5.entry.js.map} +0 -0
  250. /package/dist/atomic/{p-391c26ba.entry.js.map → p-f9bfd18b.entry.js.map} +0 -0
@@ -23,7 +23,7 @@ const AtomicFormatCurrency = class {
23
23
  }
24
24
  render() {
25
25
  if (this.error) {
26
- return (index.h("atomic-component-error", { key: 'df481fb73dc229d41d7823862c4c92cca917ab1f', element: this.host, error: this.error }));
26
+ return (index.h("atomic-component-error", { key: '04c54ca29f491225940446522ffc6d0d1834fedb', element: this.host, error: this.error }));
27
27
  }
28
28
  }
29
29
  get host() { return index.getElement(this); }
@@ -35,7 +35,7 @@ const AtomicFormatNumber = class {
35
35
  }
36
36
  render() {
37
37
  if (this.error) {
38
- return (index.h("atomic-component-error", { key: '48dab5cc8f85c18e87323082dc295661dc168dbb', element: this.host, error: this.error }));
38
+ return (index.h("atomic-component-error", { key: 'eec4d9c8a004dfc60570489184df6404b12a1146', element: this.host, error: this.error }));
39
39
  }
40
40
  }
41
41
  get host() { return index.getElement(this); }
@@ -38,7 +38,7 @@ const AtomicFormatUnit = class {
38
38
  }
39
39
  render() {
40
40
  if (this.error) {
41
- return (index.h("atomic-component-error", { key: '71f437914ebce57238bb7962e33ea8868ee12e3d', element: this.host, error: this.error }));
41
+ return (index.h("atomic-component-error", { key: 'bf7403ed73ad2d6a642003d2a407ecd47ae08662', element: this.host, error: this.error }));
42
42
  }
43
43
  }
44
44
  get host() { return index.getElement(this); }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
6
  const headless = require('@coveo/headless');
7
- const debounceUtils = require('./debounce-utils-e014935f.js');
7
+ const debounceUtils = require('./debounce-utils-d26bcad4.js');
8
8
  const initializationUtils = require('./initialization-utils-62dc9852.js');
9
9
  const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
@@ -10,7 +10,7 @@ const dependsOn = require('./depends-on-0d4e4f15.js');
10
10
  const stencilFacetHeader = require('./stencil-facet-header-60732c1b.js');
11
11
  const facetGuard = require('./facet-guard-6c335975.js');
12
12
  const facetPlaceholder = require('./facet-placeholder-0111f0f1.js');
13
- const stencilFacetShowMoreLess = require('./stencil-facet-show-more-less-541e1544.js');
13
+ const stencilFacetShowMoreLess = require('./stencil-facet-show-more-less-21d22973.js');
14
14
  const stencilFacetValue = require('./stencil-facet-value-a4da653b.js');
15
15
  const stencilFacetValuesGroup = require('./stencil-facet-values-group-07b50fc0.js');
16
16
  const popoverType = require('./popover-type-b1385b27.js');
@@ -30,6 +30,7 @@ require('./stencil-button-style-ba779fe2.js');
30
30
  require('./stencil-heading-2faee1f7.js');
31
31
  require('./stencil-facet-value-label-highlight-c2421e8f.js');
32
32
  require('./string-utils-bdf08f8c.js');
33
+ require('./plus-07843914.js');
33
34
  require('./field-utils-a715deca.js');
34
35
  require('./stencil-facet-value-box-2949669d.js');
35
36
  require('./stencil-facet-value-checkbox-49e6843d.js');
@@ -1 +1 @@
1
- {"file":"atomic-insight-facet.entry.cjs.js","mappings":"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","names":["buildInsightFacet","buildInsightSearchStatus","FocusTargetController","h","FacetGuard","FacetContainer","FacetHeader","FacetPlaceholder","FacetValuesGroup","FacetValue","FacetShowMoreLess","announceFacetSearchResultsWithAriaLive","buildInsightFacetConditionsManager","parseDependsOn","initializePopover","InitializeBindings","BindStateToController","AriaLiveRegion"],"sources":["src/components/insight/atomic-insight-facet/atomic-insight-facet.pcss?tag=atomic-insight-facet&encapsulation=shadow","src/components/insight/atomic-insight-facet/atomic-insight-facet.tsx"],"sourcesContent":["@import '../../common/facets/facet-common.pcss';\n@import '../../common/facets/facet-search/facet-search.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 {FacetResultsMustMatch} from '@coveo/headless';\nimport {\n buildFacet as buildInsightFacet,\n buildFacetConditionsManager as buildInsightFacetConditionsManager,\n buildSearchStatus as buildInsightSearchStatus,\n CategoryFacetValueRequest as InsightCategoryFacetValueRequest,\n Facet as InsightFacet,\n FacetConditionsManager as InsightFacetConditionsManager,\n FacetOptions as InsightFacetOptions,\n FacetSortCriterion as InsightFacetSortCriterion,\n FacetState as InsightFacetState,\n FacetValueRequest as InsightFacetValueRequest,\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n} from '@coveo/headless/insight';\nimport {Component, h, State, Prop, Element, VNode} 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 {parseDependsOn} from '../../common/facets/depends-on';\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 {FacetPlaceholder} from '../../common/facets/facet-placeholder/facet-placeholder';\nimport {announceFacetSearchResultsWithAriaLive} from '../../common/facets/facet-search/facet-search-aria-live';\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 {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-facet',\n styleUrl: 'atomic-insight-facet.pcss',\n shadow: true,\n})\nexport class AtomicInsightFacet\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public facet!: InsightFacet;\n public searchStatus!: InsightSearchStatus;\n public dependsOn = {};\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: InsightFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: InsightSearchStatusState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The number of values to request for this facet.\n * Also determines the number of additional values to request each time more values are shown.\n */\n @Prop({reflect: true}) public numberOfValues = 8;\n /**\n * The sort criterion to apply to the returned facet values.\n * Possible values are 'score', 'alphanumeric', 'alphanumericDescending', 'occurrences', alphanumericNatural', 'alphanumericNaturalDescending' and 'automatic'.\n */\n @Prop({reflect: true}) public sortCriteria: InsightFacetSortCriterion =\n 'automatic';\n /**\n * Specifies how a result must match the selected facet values.\n * Allowed values:\n * - `atLeastOneValue`: A result will match if at least one of the corresponding facet values is selected.\n * - `allValues`: A result will match if all corresponding facet values are selected.\n */\n @Prop({reflect: true}) public resultsMustMatch: FacetResultsMustMatch =\n 'atLeastOneValue';\n /**\n * Whether to display the facet values as checkboxes (multiple selection), links (single selection) or boxes (multiple selection).\n * Possible values are 'checkbox', 'link', and 'box'.\n */\n @Prop({reflect: true}) public displayValuesAs: 'checkbox' | 'link' | 'box' =\n 'checkbox';\n /**\n * Specifies if the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop() public injectionDepth = 1000;\n /**\n * Whether to allow excluding values from the facet.\n */\n @Prop({reflect: true}) public enableExclusion = false;\n\n private showLessFocus?: FocusTargetController;\n private showMoreFocus?: FocusTargetController;\n private headerFocus?: FocusTargetController;\n private facetConditionsManager?: InsightFacetConditionsManager;\n\n @AriaLiveRegion('facet-search')\n protected facetSearchAriaMessage!: string;\n\n public initialize() {\n const options: InsightFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfValues,\n sortCriteria: this.sortCriteria,\n facetSearch: {numberOfValues: this.numberOfValues},\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n };\n\n this.facet = buildInsightFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n this.initAriaLive();\n this.initConditionManager();\n this.initPopover();\n this.registerFacet();\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 return {\n showLess: this.showLessFocus,\n showMore: this.showMoreFocus,\n header: this.headerFocus,\n };\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.facetConditionsManager?.stopWatching();\n }\n\n public render() {\n return (\n <FacetGuard\n enabled={this.facetState.enabled}\n hasError={this.searchStatusState.hasError}\n firstSearchExecuted={this.searchStatusState.firstSearchExecuted}\n hasResults={this.facetState.values.length > 0}\n >\n {this.searchStatusState.firstSearchExecuted ? (\n <FacetContainer>\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTargets.header.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.activeValues.length}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTargets.header.setTarget(el)}\n ></FacetHeader>\n {this.renderBody()}\n </FacetContainer>\n ) : (\n <FacetPlaceholder\n numberOfValues={this.numberOfValues}\n isCollapsed={this.isCollapsed}\n />\n )}\n </FacetGuard>\n );\n }\n\n private renderBody() {\n if (this.isCollapsed) {\n return;\n }\n return [this.renderValues(), this.renderShowMoreLess()];\n }\n\n private renderValuesContainer(children: VNode[], query?: string) {\n const classes = `mt-3 ${\n this.displayValuesAs === 'box' ? 'box-container' : ''\n }`;\n return (\n <FacetValuesGroup\n i18n={this.bindings.i18n}\n label={this.label}\n query={query}\n >\n <ul class={classes} part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.facet.state.values.map((value, i) => {\n const shouldFocusOnShowLessAfterInteraction = i === 0;\n const shouldFocusOnShowMoreAfterInteraction =\n i ===\n (this.sortCriteria === 'automatic'\n ? 0\n : this.facetState.values.length - 1);\n\n return (\n <FacetValue\n {...this.facetValueProps}\n facetCount={value.numberOfResults}\n onExclude={() => this.facet.toggleExclude(value)}\n onSelect={() =>\n this.displayValuesAs === 'link'\n ? this.facet.toggleSingleSelect(value)\n : this.facet.toggleSelect(value)\n }\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.label}\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.facet.state.canShowMoreValues}\n canShowLessValues={this.facet.state.canShowLessValues}\n ></FacetShowMoreLess>\n );\n }\n\n private get activeValues() {\n return this.facet.state.values.filter(({state}) => state !== 'idle');\n }\n\n private get facetValueProps(): Pick<\n FacetValueProps,\n | 'displayValuesAs'\n | 'facetSearchQuery'\n | 'enableExclusion'\n | 'field'\n | 'i18n'\n > {\n return {\n facetSearchQuery: this.facetState.facetSearch.query,\n displayValuesAs: this.displayValuesAs,\n enableExclusion: this.enableExclusion,\n field: this.field,\n i18n: this.bindings.i18n,\n };\n }\n\n private initAriaLive() {\n announceFacetSearchResultsWithAriaLive(\n this.facet,\n this.label,\n (msg) => (this.facetSearchAriaMessage = msg),\n this.bindings.i18n\n );\n }\n\n private initConditionManager() {\n this.facetConditionsManager = buildInsightFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n InsightFacetValueRequest | InsightCategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private initPopover() {\n initializePopover(this.host, {\n ...this.facetInfo,\n hasValues: () => !!this.facet.state.values.length,\n numberOfActiveValues: () => this.activeValues.length,\n });\n }\n\n private get isHidden() {\n return !this.facet.state.enabled || !this.facet.state.values.length;\n }\n\n private get facetInfo(): FacetInfo {\n return {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n }\n\n private registerFacet() {\n this.bindings.store.registerFacet('facets', this.facetInfo);\n }\n}\n"],"version":3}
1
+ {"file":"atomic-insight-facet.entry.cjs.js","mappings":"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","names":["buildInsightFacet","buildInsightSearchStatus","FocusTargetController","h","FacetGuard","FacetContainer","FacetHeader","FacetPlaceholder","FacetValuesGroup","FacetValue","FacetShowMoreLess","announceFacetSearchResultsWithAriaLive","buildInsightFacetConditionsManager","parseDependsOn","initializePopover","InitializeBindings","BindStateToController","AriaLiveRegion"],"sources":["src/components/insight/atomic-insight-facet/atomic-insight-facet.pcss?tag=atomic-insight-facet&encapsulation=shadow","src/components/insight/atomic-insight-facet/atomic-insight-facet.tsx"],"sourcesContent":["@import '../../common/facets/facet-common.pcss';\n@import '../../common/facets/facet-search/facet-search.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 {FacetResultsMustMatch} from '@coveo/headless';\nimport {\n buildFacet as buildInsightFacet,\n buildFacetConditionsManager as buildInsightFacetConditionsManager,\n buildSearchStatus as buildInsightSearchStatus,\n CategoryFacetValueRequest as InsightCategoryFacetValueRequest,\n Facet as InsightFacet,\n FacetConditionsManager as InsightFacetConditionsManager,\n FacetOptions as InsightFacetOptions,\n FacetSortCriterion as InsightFacetSortCriterion,\n FacetState as InsightFacetState,\n FacetValueRequest as InsightFacetValueRequest,\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n} from '@coveo/headless/insight';\nimport {Component, h, State, Prop, Element, VNode} 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 {parseDependsOn} from '../../common/facets/depends-on';\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 {FacetPlaceholder} from '../../common/facets/facet-placeholder/facet-placeholder';\nimport {announceFacetSearchResultsWithAriaLive} from '../../common/facets/facet-search/facet-search-aria-live';\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 {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-facet',\n styleUrl: 'atomic-insight-facet.pcss',\n shadow: true,\n})\nexport class AtomicInsightFacet\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public facet!: InsightFacet;\n public searchStatus!: InsightSearchStatus;\n public dependsOn = {};\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: InsightFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: InsightSearchStatusState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The number of values to request for this facet.\n * Also determines the number of additional values to request each time more values are shown.\n */\n @Prop({reflect: true}) public numberOfValues = 8;\n /**\n * The sort criterion to apply to the returned facet values.\n * Possible values are 'score', 'alphanumeric', 'alphanumericDescending', 'occurrences', alphanumericNatural', 'alphanumericNaturalDescending' and 'automatic'.\n */\n @Prop({reflect: true}) public sortCriteria: InsightFacetSortCriterion =\n 'automatic';\n /**\n * Specifies how a result must match the selected facet values.\n * Allowed values:\n * - `atLeastOneValue`: A result will match if at least one of the corresponding facet values is selected.\n * - `allValues`: A result will match if all corresponding facet values are selected.\n */\n @Prop({reflect: true}) public resultsMustMatch: FacetResultsMustMatch =\n 'atLeastOneValue';\n /**\n * Whether to display the facet values as checkboxes (multiple selection), links (single selection) or boxes (multiple selection).\n * Possible values are 'checkbox', 'link', and 'box'.\n */\n @Prop({reflect: true}) public displayValuesAs: 'checkbox' | 'link' | 'box' =\n 'checkbox';\n /**\n * Specifies if the facet is collapsed.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop() public injectionDepth = 1000;\n /**\n * Whether to allow excluding values from the facet.\n */\n @Prop({reflect: true}) public enableExclusion = false;\n\n private showLessFocus?: FocusTargetController;\n private showMoreFocus?: FocusTargetController;\n private headerFocus?: FocusTargetController;\n private facetConditionsManager?: InsightFacetConditionsManager;\n\n @AriaLiveRegion('facet-search')\n protected facetSearchAriaMessage!: string;\n\n public initialize() {\n const options: InsightFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfValues,\n sortCriteria: this.sortCriteria,\n facetSearch: {numberOfValues: this.numberOfValues},\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n };\n\n this.facet = buildInsightFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n this.initAriaLive();\n this.initConditionManager();\n this.initPopover();\n this.registerFacet();\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 return {\n showLess: this.showLessFocus,\n showMore: this.showMoreFocus,\n header: this.headerFocus,\n };\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.facetConditionsManager?.stopWatching();\n }\n\n public render() {\n return (\n <FacetGuard\n enabled={this.facetState.enabled}\n hasError={this.searchStatusState.hasError}\n firstSearchExecuted={this.searchStatusState.firstSearchExecuted}\n hasResults={this.facetState.values.length > 0}\n >\n {this.searchStatusState.firstSearchExecuted ? (\n <FacetContainer>\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTargets.header.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.activeValues.length}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTargets.header.setTarget(el)}\n ></FacetHeader>\n {this.renderBody()}\n </FacetContainer>\n ) : (\n <FacetPlaceholder\n numberOfValues={this.numberOfValues}\n isCollapsed={this.isCollapsed}\n />\n )}\n </FacetGuard>\n );\n }\n\n private renderBody() {\n if (this.isCollapsed) {\n return;\n }\n return [this.renderValues(), this.renderShowMoreLess()];\n }\n\n private renderValuesContainer(children: VNode[], query?: string) {\n const classes = `mt-3 ${\n this.displayValuesAs === 'box' ? 'box-container' : ''\n }`;\n return (\n <FacetValuesGroup\n i18n={this.bindings.i18n}\n label={this.label}\n query={query}\n >\n <ul class={classes} part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.facet.state.values.map((value, i) => {\n const shouldFocusOnShowLessAfterInteraction = i === 0;\n const shouldFocusOnShowMoreAfterInteraction =\n i ===\n (this.sortCriteria === 'automatic'\n ? 0\n : this.facetState.values.length - 1);\n\n return (\n <FacetValue\n {...this.facetValueProps}\n facetCount={value.numberOfResults}\n onExclude={() => this.facet.toggleExclude(value)}\n onSelect={() =>\n this.displayValuesAs === 'link'\n ? this.facet.toggleSingleSelect(value)\n : this.facet.toggleSelect(value)\n }\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.label}\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.facet.state.canShowMoreValues}\n canShowLessValues={this.facet.state.canShowLessValues}\n ></FacetShowMoreLess>\n );\n }\n\n private get activeValues() {\n return this.facet.state.values.filter(({state}) => state !== 'idle');\n }\n\n private get facetValueProps(): Pick<\n FacetValueProps,\n | 'displayValuesAs'\n | 'facetSearchQuery'\n | 'enableExclusion'\n | 'field'\n | 'i18n'\n > {\n return {\n facetSearchQuery: this.facetState.facetSearch.query,\n displayValuesAs: this.displayValuesAs,\n enableExclusion: this.enableExclusion,\n field: this.field,\n i18n: this.bindings.i18n,\n };\n }\n\n private initAriaLive() {\n announceFacetSearchResultsWithAriaLive(\n this.facet,\n this.label,\n (msg) => (this.facetSearchAriaMessage = msg),\n this.bindings.i18n\n );\n }\n\n private initConditionManager() {\n this.facetConditionsManager = buildInsightFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n InsightFacetValueRequest | InsightCategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private initPopover() {\n initializePopover(this.host, {\n ...this.facetInfo,\n hasValues: () => !!this.facet.state.values.length,\n numberOfActiveValues: () => this.activeValues.length,\n });\n }\n\n private get isHidden() {\n return !this.facet.state.enabled || !this.facet.state.values.length;\n }\n\n private get facetInfo(): FacetInfo {\n return {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n }\n\n private registerFacet() {\n this.bindings.store.registerFacet('facets', this.facetInfo);\n }\n}\n"],"version":3}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
6
  const insight = require('@coveo/headless/insight');
7
- const debounceUtils = require('./debounce-utils-e014935f.js');
7
+ const debounceUtils = require('./debounce-utils-d26bcad4.js');
8
8
  const initializationUtils = require('./initialization-utils-62dc9852.js');
9
9
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
10
10
  const generatedAnswerCommon = require('./generated-answer-common-1f7e3c88.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const initQueue = require('./init-queue-a18aa323.js');
7
7
  const insight = require('@coveo/headless/insight');
8
- const analyticsConfig = require('./analytics-config-edaf0d1e.js');
8
+ const analyticsConfig = require('./analytics-config-ebbdfacc.js');
9
9
  const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const replaceBreakpoint = require('./replace-breakpoint-9e1c0efa.js');
11
11
  const store = require('./store-82abd941.js');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-757bc886.js');
6
6
  const insight = require('@coveo/headless/insight');
7
- const stencilSuggestionManager = require('./stencil-suggestion-manager-6f778cf0.js');
7
+ const stencilSuggestionManager = require('./stencil-suggestion-manager-5fa3ac70.js');
8
8
  const deviceUtils = require('./device-utils-da0ee5bd.js');
9
9
  const initializationUtils = require('./initialization-utils-62dc9852.js');
10
10
  const stencilAccessibilityUtils = require('./stencil-accessibility-utils-aa4c9f6c.js');
@@ -18,7 +18,7 @@ require('./stencil-button-style-ba779fe2.js');
18
18
  require('@coveo/bueno');
19
19
  require('./purify-85b542e2.js');
20
20
  require('./_commonjsHelpers-b3309d7b.js');
21
- require('./debounce-utils-e014935f.js');
21
+ require('./debounce-utils-d26bcad4.js');
22
22
  require('./dom-utils-d4790328.js');
23
23
  require('./init-queue-a18aa323.js');
24
24
  require('./initialization-lit-stencil-common-utils-24279cfa.js');
@@ -311,7 +311,7 @@ const AtomicNumericFacet = class {
311
311
  }
312
312
  render() {
313
313
  const { searchStatusState: { firstSearchExecuted, hasError }, bindings: { i18n }, } = this;
314
- return (index.h(facetGuard.FacetGuard, { key: '35108f440f37268b12f4e1c0096c143d0831d67b', enabled: this.enabled, firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: this.shouldRenderFacet }, firstSearchExecuted ? (index.h(stencilFacetHeader.FacetContainer, null, index.h(stencilFacetHeader.FacetHeader, { i18n: i18n, label: this.label, onClearFilters: () => {
314
+ return (index.h(facetGuard.FacetGuard, { key: 'a50d5cb3c147242acae8adfb0e105f35a599a51e', enabled: this.enabled, firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: this.shouldRenderFacet }, firstSearchExecuted ? (index.h(stencilFacetHeader.FacetContainer, null, index.h(stencilFacetHeader.FacetHeader, { i18n: i18n, label: this.label, onClearFilters: () => {
315
315
  this.focusTarget.focusAfterSearch();
316
316
  if (this.filterState?.range) {
317
317
  this.filter?.clear();
@@ -0,0 +1,141 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-757bc886.js');
6
+ const bueno = require('@coveo/bueno');
7
+ const initializationUtils = require('./initialization-utils-62dc9852.js');
8
+ const plus = require('./plus-07843914.js');
9
+ const stencilButton = require('./stencil-button-aa4c0879.js');
10
+ const stencilProductTemplateDecorators = require('./stencil-product-template-decorators-1edee0eb.js');
11
+ require('./dom-utils-d4790328.js');
12
+ require('./event-utils-9bfcf3c5.js');
13
+ require('./init-queue-a18aa323.js');
14
+ require('./initialization-lit-stencil-common-utils-24279cfa.js');
15
+ require('./ripple-4070d750.js');
16
+ require('./stencil-button-style-ba779fe2.js');
17
+ require('./stencil-item-decorators-43a96f33.js');
18
+
19
+ const getLineClampClass = (truncateAfter) => {
20
+ const lineClampMap = {
21
+ none: 'line-clamp-none',
22
+ 1: 'line-clamp-1',
23
+ 2: 'line-clamp-2',
24
+ 3: 'line-clamp-3',
25
+ 4: 'line-clamp-4',
26
+ };
27
+ return lineClampMap[truncateAfter] || 'line-clamp-2';
28
+ };
29
+ const renderShowHideButton = (isExpanded, isTruncated, isCollapsible, onToggleExpand, showMoreLabel, showLessLabel) => {
30
+ let buttonClass = 'expandable-text-button p-1 text-xs leading-[calc(1/.75)]';
31
+ if (!isTruncated && !isExpanded) {
32
+ buttonClass += ' invisible';
33
+ }
34
+ else if (!isCollapsible && !isTruncated && isExpanded) {
35
+ buttonClass += ' hidden';
36
+ }
37
+ const label = isExpanded ? showLessLabel : showMoreLabel;
38
+ return (index.h(stencilButton.Button, { style: "text-primary", class: buttonClass, title: label, onClick: onToggleExpand },
39
+ index.h("atomic-icon", { icon: isExpanded ? plus.MinusIcon : plus.PlusIcon, class: "mx-1 w-2 align-baseline" }),
40
+ label));
41
+ };
42
+ const ExpandableText = ({ isExpanded, isTruncated, truncateAfter, onToggleExpand, showMoreLabel, showLessLabel, isCollapsible = false, }, children) => {
43
+ return (index.h("div", { class: "flex flex-col items-start" },
44
+ index.h("div", { part: "expandable-text", class: `expandable-text ${!isExpanded ? getLineClampClass(truncateAfter) : ''} min-lines-${truncateAfter}` }, children),
45
+ renderShowHideButton(isExpanded, isTruncated, isCollapsible, onToggleExpand, showMoreLabel, showLessLabel)));
46
+ };
47
+
48
+ const atomicProductDescriptionCss = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.expandable-text{line-height:var(--line-height)}.min-lines-1{min-height:calc(var(--line-height) * 1)}.min-lines-2{min-height:calc(var(--line-height) * 2)}.min-lines-3{min-height:calc(var(--line-height) * 3)}.min-lines-4{min-height:calc(var(--line-height) * 4)}";
49
+ const AtomicProductDescriptionStyle0 = atomicProductDescriptionCss;
50
+
51
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
54
+ r = Reflect.decorate(decorators, target, key, desc);
55
+ else
56
+ for (var i = decorators.length - 1; i >= 0; i--)
57
+ if (d = decorators[i])
58
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
59
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
60
+ };
61
+ const AtomicProductDescription = class {
62
+ constructor(hostRef) {
63
+ index.registerInstance(this, hostRef);
64
+ this.isExpanded = false;
65
+ this.isTruncated = false;
66
+ /**
67
+ * The number of lines after which the product description should be truncated. A value of "none" will disable truncation.
68
+ */
69
+ this.truncateAfter = '2';
70
+ /**
71
+ * The name of the description field to use.
72
+ */
73
+ this.field = 'ec_shortdesc';
74
+ /**
75
+ * Whether the description should be collapsible after being expanded.
76
+ */
77
+ this.isCollapsible = true;
78
+ this.isExpanded = false;
79
+ this.isTruncated = false;
80
+ this.truncateAfter = '2';
81
+ this.field = 'ec_shortdesc';
82
+ this.isCollapsible = true;
83
+ this.resizeObserver = new ResizeObserver(() => {
84
+ if (this.descriptionText &&
85
+ this.descriptionText.scrollHeight > this.descriptionText.clientHeight) {
86
+ this.isTruncated = true;
87
+ }
88
+ else {
89
+ this.isTruncated = false;
90
+ }
91
+ });
92
+ this.validateProps();
93
+ }
94
+ validateProps() {
95
+ new bueno.Schema({
96
+ truncateAfter: new bueno.StringValue({
97
+ constrainTo: ['none', '1', '2', '3', '4'],
98
+ }),
99
+ field: new bueno.StringValue({
100
+ constrainTo: ['ec_shortdesc', 'ec_description'],
101
+ }),
102
+ }).validate({
103
+ truncateAfter: this.truncateAfter,
104
+ field: this.field,
105
+ });
106
+ }
107
+ componentDidLoad() {
108
+ this.descriptionText = this.hostElement.querySelector('.expandable-text');
109
+ if (this.descriptionText) {
110
+ this.resizeObserver.observe(this.descriptionText);
111
+ }
112
+ }
113
+ onToggleExpand(e) {
114
+ if (e) {
115
+ e.stopPropagation();
116
+ }
117
+ this.isExpanded = !this.isExpanded;
118
+ }
119
+ disconnectedCallback() {
120
+ this.resizeObserver.disconnect();
121
+ }
122
+ render() {
123
+ const productDescription = this.product[this.field] ?? null;
124
+ if (!productDescription) {
125
+ return index.h(initializationUtils.Hidden, null);
126
+ }
127
+ return (index.h(ExpandableText, { isExpanded: this.isExpanded, isTruncated: this.isTruncated, truncateAfter: this.truncateAfter, onToggleExpand: (e) => this.onToggleExpand(e), showMoreLabel: this.bindings.i18n.t('show-more'), showLessLabel: this.bindings.i18n.t('show-less'), isCollapsible: this.isCollapsible }, index.h("atomic-product-text", { field: this.field })));
128
+ }
129
+ get hostElement() { return index.getElement(this); }
130
+ };
131
+ __decorate([
132
+ initializationUtils.InitializeBindings()
133
+ ], AtomicProductDescription.prototype, "bindings", void 0);
134
+ __decorate([
135
+ stencilProductTemplateDecorators.ProductContext()
136
+ ], AtomicProductDescription.prototype, "product", void 0);
137
+ AtomicProductDescription.style = AtomicProductDescriptionStyle0;
138
+
139
+ exports.atomic_product_description = AtomicProductDescription;
140
+
141
+ //# sourceMappingURL=atomic-product-description.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"atomic-product-description.entry.cjs.js","mappings":"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","names":["h","Button","MinusIcon","PlusIcon","Schema","StringValue","Hidden","InitializeBindings","ProductContext"],"sources":["src/components/common/expandable-text/stencil-expandable-text.tsx","src/components/commerce/atomic-product-description/atomic-product-description.pcss?tag=atomic-product-description","src/components/commerce/atomic-product-description/atomic-product-description.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport MinusIcon from '../../../images/minus.svg';\nimport PlusIcon from '../../../images/plus.svg';\nimport {Button} from '../stencil-button';\n\nexport type TruncateAfter = 'none' | '1' | '2' | '3' | '4';\n\ninterface ExpandableTextProps {\n isExpanded: boolean;\n isTruncated: boolean;\n isCollapsible?: boolean;\n truncateAfter: TruncateAfter;\n onToggleExpand: (e: MouseEvent | undefined) => void;\n showMoreLabel: string;\n showLessLabel: string;\n}\n\nconst getLineClampClass = (truncateAfter: TruncateAfter) => {\n const lineClampMap: Record<TruncateAfter, string> = {\n none: 'line-clamp-none',\n 1: 'line-clamp-1',\n 2: 'line-clamp-2',\n 3: 'line-clamp-3',\n 4: 'line-clamp-4',\n };\n return lineClampMap[truncateAfter] || 'line-clamp-2';\n};\n\nconst renderShowHideButton = (\n isExpanded: boolean,\n isTruncated: boolean,\n isCollapsible: boolean,\n onToggleExpand: (e?: MouseEvent) => void,\n showMoreLabel: string,\n showLessLabel: string\n) => {\n let buttonClass = 'expandable-text-button p-1 text-xs leading-[calc(1/.75)]';\n if (!isTruncated && !isExpanded) {\n buttonClass += ' invisible';\n } else if (!isCollapsible && !isTruncated && isExpanded) {\n buttonClass += ' hidden';\n }\n\n const label = isExpanded ? showLessLabel : showMoreLabel;\n\n return (\n <Button\n style=\"text-primary\"\n class={buttonClass}\n title={label}\n onClick={onToggleExpand}\n >\n <atomic-icon\n icon={isExpanded ? MinusIcon : PlusIcon}\n class=\"mx-1 w-2 align-baseline\"\n ></atomic-icon>\n {label}\n </Button>\n );\n};\n\nexport const ExpandableText: FunctionalComponent<ExpandableTextProps> = (\n {\n isExpanded,\n isTruncated,\n truncateAfter,\n onToggleExpand,\n showMoreLabel,\n showLessLabel,\n isCollapsible = false,\n },\n children\n) => {\n return (\n <div class=\"flex flex-col items-start\">\n <div\n part=\"expandable-text\"\n class={`expandable-text ${!isExpanded ? getLineClampClass(truncateAfter) : ''} min-lines-${truncateAfter}`}\n >\n {children}\n </div>\n {renderShowHideButton(\n isExpanded,\n isTruncated,\n isCollapsible,\n onToggleExpand,\n showMoreLabel,\n showLessLabel\n )}\n </div>\n );\n};\n","@import '../../common/expandable-text/expandable-text.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {Product} from '@coveo/headless/commerce';\nimport {Component, State, h, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {\n ExpandableText,\n TruncateAfter,\n} from '../../common/expandable-text/stencil-expandable-text';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {ProductContext} from '../product-template-component-utils/stencil-product-template-decorators';\n\n/**\n * @alpha\n * The `atomic-product-description` component renders the description of a product.\n */\n@Component({\n tag: 'atomic-product-description',\n styleUrl: 'atomic-product-description.pcss',\n shadow: false,\n})\nexport class AtomicProductDescription\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n @ProductContext() private product!: Product;\n\n @Element() hostElement!: HTMLElement;\n\n public error!: Error;\n\n @State() private isExpanded = false;\n @State() private isTruncated = false;\n\n private descriptionText!: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n /**\n * The number of lines after which the product description should be truncated. A value of \"none\" will disable truncation.\n */\n @Prop() public truncateAfter: TruncateAfter = '2';\n\n /**\n * The name of the description field to use.\n */\n @Prop() public field: 'ec_description' | 'ec_shortdesc' = 'ec_shortdesc';\n\n /**\n * Whether the description should be collapsible after being expanded.\n */\n @Prop() public isCollapsible = true;\n\n constructor() {\n this.resizeObserver = new ResizeObserver(() => {\n if (\n this.descriptionText &&\n this.descriptionText.scrollHeight > this.descriptionText.clientHeight\n ) {\n this.isTruncated = true;\n } else {\n this.isTruncated = false;\n }\n });\n this.validateProps();\n }\n\n private validateProps() {\n new Schema({\n truncateAfter: new StringValue({\n constrainTo: ['none', '1', '2', '3', '4'],\n }),\n field: new StringValue({\n constrainTo: ['ec_shortdesc', 'ec_description'],\n }),\n }).validate({\n truncateAfter: this.truncateAfter,\n field: this.field,\n });\n }\n\n componentDidLoad() {\n this.descriptionText = this.hostElement.querySelector(\n '.expandable-text'\n ) as HTMLDivElement;\n if (this.descriptionText) {\n this.resizeObserver.observe(this.descriptionText);\n }\n }\n\n private onToggleExpand(e?: MouseEvent) {\n if (e) {\n e.stopPropagation();\n }\n\n this.isExpanded = !this.isExpanded;\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n public render() {\n const productDescription = this.product[this.field] ?? null;\n\n if (!productDescription) {\n return <Hidden />;\n }\n\n return (\n <ExpandableText\n isExpanded={this.isExpanded}\n isTruncated={this.isTruncated}\n truncateAfter={this.truncateAfter}\n onToggleExpand={(e) => this.onToggleExpand(e)}\n showMoreLabel={this.bindings.i18n.t('show-more')}\n showLessLabel={this.bindings.i18n.t('show-less')}\n isCollapsible={this.isCollapsible}\n >\n <atomic-product-text field={this.field}></atomic-product-text>\n </ExpandableText>\n );\n }\n}\n"],"version":3}
@@ -591,7 +591,7 @@ const AtomicQuickviewModal = class {
591
591
  });
592
592
  }
593
593
  render() {
594
- return (index.h("atomic-modal", { key: '3538cc54522d1d134282ec0528a17d97011aebdc', fullscreen: this.bindings.store.isMobile(), class: 'atomic-quickview-modal', isOpen: this.isOpen, close: () => this.onClose(), exportparts: exportParts.ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
594
+ return (index.h("atomic-modal", { key: '7036f047934649ee00ea3bb3068b813daf0e9607', fullscreen: this.bindings.store.isMobile(), class: 'atomic-quickview-modal', isOpen: this.isOpen, close: () => this.onClose(), exportparts: exportParts.ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
595
595
  }
596
596
  static get watchers() { return {
597
597
  "highlightKeywords": ["watchHighlightKeywords"]
@@ -117,7 +117,7 @@ const AtomicQuickview = class {
117
117
  }
118
118
  render() {
119
119
  if (this.quickviewState.resultHasPreview) {
120
- return (index.h(stencilButton.Button, { key: 'c043bb39ed2ce14e84f669f912d111b3cddd59a5', part: "button", title: this.bindings.i18n.t('quickview'), style: "outline-primary", class: "p-2", onClick: (event) => this.onClick(event), ref: this.focusTarget.setTarget }, index.h("atomic-icon", { key: 'e413d964e1fc691350dc0b6e6b1ba98be131cde0', part: "icon", class: "flex w-5 justify-center", icon: quickview.QuickviewIcon })));
120
+ return (index.h(stencilButton.Button, { key: 'df1be543ce43e436bc9813f0173536f4c87f1b24', part: "button", title: this.bindings.i18n.t('quickview'), style: "outline-primary", class: "p-2", onClick: (event) => this.onClick(event), ref: this.focusTarget.setTarget }, index.h("atomic-icon", { key: 'e8baa6d6234bac7e148895d84380109cba0f5079', part: "icon", class: "flex w-5 justify-center", icon: quickview.QuickviewIcon })));
121
121
  }
122
122
  }
123
123
  };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-757bc886.js');
6
6
  const initQueue = require('./init-queue-a18aa323.js');
7
7
  const recommendation = require('@coveo/headless/recommendation');
8
- const analyticsConfig = require('./analytics-config-edaf0d1e.js');
8
+ const analyticsConfig = require('./analytics-config-ebbdfacc.js');
9
9
  const propsUtils = require('./props-utils-1e4ba1b0.js');
10
10
  const store = require('./store-82abd941.js');
11
11
  require('./dayjs.min-8b80e6d1.js');