@empathyco/x-components 3.0.0-alpha.31 → 3.0.0-alpha.35

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 (768) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/core/index.js +26 -22
  3. package/core/index.js.map +1 -1
  4. package/docs/API-reference/api/x-adapter.empathyrelatedtag.md +1 -0
  5. package/docs/API-reference/api/x-adapter.empathyrelatedtag.source.md +11 -0
  6. package/docs/API-reference/api/x-components.baseidtogglepanel.md +0 -1
  7. package/docs/API-reference/api/x-components.baseresultlink.md +1 -1
  8. package/docs/API-reference/api/x-components.defaultsessionservice.clearsessionid.md +2 -0
  9. package/docs/API-reference/api/x-components.defaultsessionservice.getsessionid.md +4 -0
  10. package/docs/API-reference/api/x-components.defaultsessionservice.md +3 -3
  11. package/docs/API-reference/api/x-components.defaultsessionservice.session_id_key.md +3 -1
  12. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  13. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.isbackdropvisible.md +11 -0
  14. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.leftasideanimation.md +11 -0
  15. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.md +30 -0
  16. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.rightasideanimation.md +11 -0
  17. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.scrollposition.md +11 -0
  18. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.setposition.md +22 -0
  19. package/docs/API-reference/api/x-components.getrootxcomponent.md +2 -2
  20. package/docs/API-reference/api/x-components.globalxbus.created.md +15 -0
  21. package/docs/API-reference/api/x-components.globalxbus.md +21 -0
  22. package/docs/API-reference/api/x-components.isxcomponent.md +2 -2
  23. package/docs/API-reference/api/x-components.maybearray.md +13 -0
  24. package/docs/API-reference/api/x-components.md +16 -7
  25. package/docs/API-reference/api/x-components.namespaceddebounce.md +2 -2
  26. package/docs/API-reference/api/x-components.namespacedthrottle.md +2 -2
  27. package/docs/API-reference/api/{x-components.namespacedtimeretrieving.md → x-components.namespacedtimeselector.md} +3 -3
  28. package/docs/API-reference/api/x-components.namespacedtimewireoperator.md +3 -3
  29. package/docs/API-reference/api/x-components.relatedtag.highlightcurated.md +13 -0
  30. package/docs/API-reference/api/x-components.relatedtag.md +1 -0
  31. package/docs/API-reference/api/x-components.relatedtags.highlightcurated.md +13 -0
  32. package/docs/API-reference/api/x-components.searchxevents.md +2 -0
  33. package/docs/API-reference/api/x-components.searchxevents.userclickedabanner.md +13 -0
  34. package/docs/API-reference/api/x-components.searchxevents.userclickedapromoted.md +13 -0
  35. package/docs/API-reference/api/x-components.setconsent.md +1 -1
  36. package/docs/API-reference/api/x-components.setquerytaggingdebounce.md +1 -1
  37. package/docs/API-reference/api/x-components.setsessionduration.md +1 -1
  38. package/docs/API-reference/api/x-components.snippetcallbacks.md +15 -0
  39. package/docs/API-reference/api/x-components.snippetconfig.callbacks.md +13 -0
  40. package/docs/API-reference/api/x-components.snippetconfig.isspa.md +13 -0
  41. package/docs/API-reference/api/x-components.snippetconfig.md +2 -0
  42. package/docs/API-reference/api/x-components.tagging.activeconsent.md +18 -0
  43. package/docs/API-reference/api/x-components.tagging.consent.md +13 -0
  44. package/docs/API-reference/api/x-components.tagging.md +28 -0
  45. package/docs/API-reference/api/x-components.tagging.render.md +15 -0
  46. package/docs/API-reference/api/x-components.tagicon.md +11 -0
  47. package/docs/API-reference/api/x-components.throttle.md +3 -3
  48. package/docs/API-reference/api/x-components.timedwireoperatoroptions.cancelon.md +13 -0
  49. package/docs/API-reference/api/x-components.timedwireoperatoroptions.forceon.md +13 -0
  50. package/docs/API-reference/api/x-components.timedwireoperatoroptions.md +21 -0
  51. package/docs/API-reference/api/{x-components.timeretrieving.md → x-components.timeselector.md} +3 -3
  52. package/docs/API-reference/api/x-components.trackaddtocartwire.md +13 -0
  53. package/docs/API-reference/api/{x-components.trackwire.md → x-components.trackquerywire.md} +3 -3
  54. package/docs/API-reference/api/x-components.trackresultclickedwire.md +13 -0
  55. package/docs/API-reference/api/x-components.xeventlisteners.md +17 -0
  56. package/docs/API-reference/api/x-components.xeventstypes.md +1 -1
  57. package/docs/API-reference/api/x-components.xeventstypes.snippetcallbackexecuted.md +16 -0
  58. package/docs/API-reference/api/x-components.xinstaller.md +1 -1
  59. package/docs/API-reference/api/x-types.relatedtag.iscurated.md +13 -0
  60. package/docs/API-reference/api/x-types.relatedtag.md +1 -0
  61. package/docs/API-reference/components/common/animations/x-components.animate-width.md +6 -7
  62. package/docs/API-reference/components/common/animations/x-components.collapse-from-top.md +7 -8
  63. package/docs/API-reference/components/common/animations/x-components.collapse-height.md +8 -9
  64. package/docs/API-reference/components/common/animations/x-components.collapse-width.md +8 -9
  65. package/docs/API-reference/components/common/animations/x-components.cross-fade.md +7 -8
  66. package/docs/API-reference/components/common/animations/x-components.fade-and-slide.md +7 -8
  67. package/docs/API-reference/components/common/animations/x-components.staggered-fade-and-slide.md +7 -8
  68. package/docs/API-reference/components/common/{x-components.staggering-transition-group.md → animations/x-components.staggering-transition-group.md} +8 -9
  69. package/docs/API-reference/components/common/animations/x-components.translate-from-left.md +7 -8
  70. package/docs/API-reference/components/common/animations/x-components.translate-from-right.md +7 -8
  71. package/docs/API-reference/components/common/column-picker/x-components.base-column-picker-dropdown.md +12 -13
  72. package/docs/API-reference/components/common/column-picker/x-components.base-column-picker-list.md +11 -12
  73. package/docs/API-reference/components/common/currency/x-components.base-currency.md +9 -12
  74. package/docs/API-reference/components/common/filters/labels/x-components.base-price-filter-label.md +9 -10
  75. package/docs/API-reference/components/common/filters/labels/x-components.base-rating-filter-label.md +11 -12
  76. package/docs/API-reference/components/common/icons/x-components.arrow.md +3 -4
  77. package/docs/API-reference/components/common/icons/x-components.bag.md +3 -4
  78. package/docs/API-reference/components/common/icons/x-components.bar-code.md +4 -5
  79. package/docs/API-reference/components/common/icons/x-components.barcode-tiny.md +4 -5
  80. package/docs/API-reference/components/common/icons/x-components.cart.md +3 -4
  81. package/docs/API-reference/components/common/icons/x-components.check-tiny.md +4 -5
  82. package/docs/API-reference/components/common/icons/x-components.check.md +3 -4
  83. package/docs/API-reference/components/common/icons/x-components.checkbox-card-selected.md +4 -5
  84. package/docs/API-reference/components/common/icons/x-components.checkbox-card-unselected.md +4 -5
  85. package/docs/API-reference/components/common/icons/x-components.checkbox-selected.md +4 -5
  86. package/docs/API-reference/components/common/icons/x-components.checkbox-unselected.md +4 -5
  87. package/docs/API-reference/components/common/icons/x-components.chevron-down.md +4 -5
  88. package/docs/API-reference/components/common/icons/x-components.chevron-left.md +4 -5
  89. package/docs/API-reference/components/common/icons/x-components.chevron-right.md +4 -5
  90. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-down.md +4 -5
  91. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-left.md +4 -5
  92. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-right.md +4 -5
  93. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-up.md +4 -5
  94. package/docs/API-reference/components/common/icons/x-components.chevron-up.md +4 -5
  95. package/docs/API-reference/components/common/icons/x-components.cross-tiny.md +4 -5
  96. package/docs/API-reference/components/common/icons/x-components.cross.md +3 -4
  97. package/docs/API-reference/components/common/icons/x-components.filters.md +3 -4
  98. package/docs/API-reference/components/common/icons/x-components.grid-1-col.md +4 -5
  99. package/docs/API-reference/components/common/icons/x-components.grid-2-col.md +4 -5
  100. package/docs/API-reference/components/common/icons/x-components.hide.md +3 -4
  101. package/docs/API-reference/components/common/icons/x-components.history-tiny.md +4 -5
  102. package/docs/API-reference/components/common/icons/x-components.history.md +3 -4
  103. package/docs/API-reference/components/common/icons/x-components.menu.md +3 -4
  104. package/docs/API-reference/components/common/icons/x-components.minus-tiny.md +4 -5
  105. package/docs/API-reference/components/common/icons/x-components.minus.md +3 -4
  106. package/docs/API-reference/components/common/icons/x-components.nq-1.md +4 -5
  107. package/docs/API-reference/components/common/icons/x-components.nq-2.md +4 -5
  108. package/docs/API-reference/components/common/icons/x-components.nq-3.md +4 -5
  109. package/docs/API-reference/components/common/icons/x-components.nq-4.md +4 -5
  110. package/docs/API-reference/components/common/icons/x-components.plus.md +3 -4
  111. package/docs/API-reference/components/common/icons/x-components.search-tiny.md +4 -5
  112. package/docs/API-reference/components/common/icons/x-components.search.md +3 -4
  113. package/docs/API-reference/components/common/icons/x-components.show.md +3 -4
  114. package/docs/API-reference/components/common/icons/x-components.star.md +3 -4
  115. package/docs/API-reference/components/common/icons/x-components.tag.md +7 -0
  116. package/docs/API-reference/components/common/icons/x-components.trash-open.md +4 -5
  117. package/docs/API-reference/components/common/icons/x-components.trash.md +3 -4
  118. package/docs/API-reference/components/common/icons/x-components.trending-tiny.md +4 -5
  119. package/docs/API-reference/components/common/icons/x-components.trending.md +3 -4
  120. package/docs/API-reference/components/common/icons/x-components.user.md +3 -4
  121. package/docs/API-reference/components/common/layouts/x-components.fixed-header-and-asides-layout.md +8 -9
  122. package/docs/API-reference/components/common/layouts/x-components.multi-column-max-width-layout.md +8 -9
  123. package/docs/API-reference/components/common/layouts/x-components.single-column-layout.md +6 -5
  124. package/docs/API-reference/components/common/modals/x-components.base-events-modal-close.md +10 -11
  125. package/docs/API-reference/components/common/modals/x-components.base-events-modal-open.md +10 -11
  126. package/docs/API-reference/components/common/modals/x-components.base-events-modal.md +15 -16
  127. package/docs/API-reference/components/common/modals/x-components.base-id-modal-close.md +9 -10
  128. package/docs/API-reference/components/common/modals/x-components.base-id-modal-open.md +9 -10
  129. package/docs/API-reference/components/common/modals/x-components.base-id-modal.md +11 -12
  130. package/docs/API-reference/components/common/modals/x-components.base-modal.md +7 -8
  131. package/docs/API-reference/components/common/panels/x-components.base-header-toggle-panel.md +11 -12
  132. package/docs/API-reference/components/common/panels/x-components.base-id-toggle-panel-button.md +10 -11
  133. package/docs/API-reference/components/common/panels/x-components.base-id-toggle-panel.md +10 -11
  134. package/docs/API-reference/components/common/panels/x-components.base-toggle-panel.md +8 -9
  135. package/docs/API-reference/components/common/result/x-components.base-result-add-to-cart.md +9 -10
  136. package/docs/API-reference/components/common/result/x-components.base-result-current-price.md +10 -11
  137. package/docs/API-reference/components/common/result/x-components.base-result-fallback-image.md +4 -5
  138. package/docs/API-reference/components/common/result/x-components.base-result-image.md +9 -10
  139. package/docs/API-reference/components/common/result/x-components.base-result-link.md +15 -24
  140. package/docs/API-reference/components/common/result/x-components.base-result-placeholder-image.md +4 -5
  141. package/docs/API-reference/components/common/result/x-components.base-result-previous-price.md +9 -10
  142. package/docs/API-reference/components/common/scroll/x-components.base-scroll.md +8 -9
  143. package/docs/API-reference/components/common/suggestions/x-components.base-suggestion.md +10 -11
  144. package/docs/API-reference/components/common/suggestions/x-components.base-suggestions.md +7 -8
  145. package/docs/API-reference/components/common/x-components.auto-progress-bar.md +5 -6
  146. package/docs/API-reference/components/common/x-components.base-dropdown.md +8 -9
  147. package/docs/API-reference/components/common/x-components.base-event-button.md +11 -12
  148. package/docs/API-reference/components/common/x-components.base-grid.md +15 -16
  149. package/docs/API-reference/components/common/x-components.base-keyboard-navigation.md +10 -11
  150. package/docs/API-reference/components/common/x-components.base-rating.md +10 -11
  151. package/docs/API-reference/components/common/x-components.base-variable-column-grid.md +10 -11
  152. package/docs/API-reference/components/common/x-components.global-x-bus.md +50 -0
  153. package/docs/API-reference/components/common/x-components.items-list.md +6 -5
  154. package/docs/API-reference/components/common/x-components.location-provider.md +6 -7
  155. package/docs/API-reference/components/common/x-components.sliding-panel.md +10 -11
  156. package/docs/API-reference/components/common/x-components.snippet-callbacks.md +36 -0
  157. package/docs/API-reference/components/device/x-components.device-detector.md +8 -9
  158. package/docs/API-reference/components/empathize/x-components.empathize.md +8 -9
  159. package/docs/API-reference/components/extra-params/x-components.extra-params.md +7 -8
  160. package/docs/API-reference/components/extra-params/x-components.renderless-extra-param.md +9 -10
  161. package/docs/API-reference/components/extra-params/x-components.snippet-config-extra-params.md +6 -7
  162. package/docs/API-reference/components/facets/x-components.clear-filters.md +9 -10
  163. package/docs/API-reference/components/facets/x-components.facets/facets-provider.md +10 -11
  164. package/docs/API-reference/components/facets/x-components.facets/facets.md +12 -13
  165. package/docs/API-reference/components/facets/x-components.filters/all-filter.md +15 -16
  166. package/docs/API-reference/components/facets/x-components.filters/base-filter.md +12 -13
  167. package/docs/API-reference/components/facets/x-components.filters/editable-number-range-filter.md +12 -13
  168. package/docs/API-reference/components/facets/x-components.filters/hierarchical-filter.md +9 -10
  169. package/docs/API-reference/components/facets/x-components.filters/number-range-filter.md +9 -10
  170. package/docs/API-reference/components/facets/x-components.filters/renderless-filter.md +12 -13
  171. package/docs/API-reference/components/facets/x-components.filters/simple-filter.md +10 -11
  172. package/docs/API-reference/components/facets/x-components.lists/exclude-filters-with-no-results.md +11 -12
  173. package/docs/API-reference/components/facets/x-components.lists/filters-list.md +11 -12
  174. package/docs/API-reference/components/facets/x-components.lists/filters-search.md +9 -10
  175. package/docs/API-reference/components/facets/x-components.lists/selected-filters-list.md +12 -13
  176. package/docs/API-reference/components/facets/x-components.lists/selected-filters.md +11 -12
  177. package/docs/API-reference/components/facets/x-components.lists/sliced-filters.md +11 -12
  178. package/docs/API-reference/components/facets/x-components.lists/sorted-filters.md +11 -12
  179. package/docs/API-reference/components/history-queries/x-components.clear-history-queries.md +10 -11
  180. package/docs/API-reference/components/history-queries/x-components.history-queries.md +10 -11
  181. package/docs/API-reference/components/history-queries/x-components.history-query.md +11 -12
  182. package/docs/API-reference/components/history-queries/x-components.remove-history-query.md +10 -11
  183. package/docs/API-reference/components/identifier-results/x-components.identifier-result.md +9 -10
  184. package/docs/API-reference/components/identifier-results/x-components.identifier-results.md +10 -11
  185. package/docs/API-reference/components/next-queries/x-components.next-queries-list.md +7 -8
  186. package/docs/API-reference/components/next-queries/x-components.next-queries.md +14 -15
  187. package/docs/API-reference/components/next-queries/x-components.next-query.md +11 -12
  188. package/docs/API-reference/components/popular-searches/x-components.popular-search.md +11 -12
  189. package/docs/API-reference/components/popular-searches/x-components.popular-searches.md +13 -14
  190. package/docs/API-reference/components/query-suggestions/x-components.query-suggestion.md +8 -9
  191. package/docs/API-reference/components/query-suggestions/x-components.query-suggestions.md +8 -9
  192. package/docs/API-reference/components/recommendations/x-components.recommendations.md +14 -15
  193. package/docs/API-reference/components/related-tags/x-components.related-tag.md +19 -17
  194. package/docs/API-reference/components/related-tags/x-components.related-tags.md +19 -19
  195. package/docs/API-reference/components/scroll/x-components.main-scroll-item.md +7 -8
  196. package/docs/API-reference/components/scroll/x-components.main-scroll.md +7 -8
  197. package/docs/API-reference/components/scroll/x-components.scroll-to-top.md +9 -10
  198. package/docs/API-reference/components/scroll/x-components.scroll.md +25 -30
  199. package/docs/API-reference/components/scroll/x-components.window-scroll.md +13 -16
  200. package/docs/API-reference/components/search/x-components.banner.md +8 -9
  201. package/docs/API-reference/components/search/x-components.banners-list.md +7 -8
  202. package/docs/API-reference/components/search/x-components.partial-query-button.md +11 -12
  203. package/docs/API-reference/components/search/x-components.partial-results-list.md +11 -12
  204. package/docs/API-reference/components/search/x-components.promoted.md +7 -8
  205. package/docs/API-reference/components/search/x-components.promoteds-list.md +7 -8
  206. package/docs/API-reference/components/search/x-components.redirection.md +8 -9
  207. package/docs/API-reference/components/search/x-components.results-list.md +7 -8
  208. package/docs/API-reference/components/search/x-components.sort-dropdown.md +8 -9
  209. package/docs/API-reference/components/search/x-components.sort-list.md +8 -9
  210. package/docs/API-reference/components/search/x-components.spellcheck-button.md +11 -12
  211. package/docs/API-reference/components/search/x-components.spellcheck.md +11 -12
  212. package/docs/API-reference/components/search-box/x-components.clear-search-input.md +6 -7
  213. package/docs/API-reference/components/search-box/x-components.search-button.md +6 -7
  214. package/docs/API-reference/components/search-box/x-components.search-input.md +7 -8
  215. package/docs/API-reference/components/tagging/x-components.tagging.md +8 -5
  216. package/docs/API-reference/components/url/x-components.url-handler.md +7 -8
  217. package/docs/build-search-ui/README.md +0 -5
  218. package/docs/build-search-ui/web-archetype-development-guide.md +178 -0
  219. package/docs/build-search-ui/web-archetype-integration-guide.md +146 -143
  220. package/docs/build-search-ui/web-use-x-components-guide.md +0 -5
  221. package/docs/build-search-ui/web-x-components-integration-guide.md +3 -8
  222. package/docs/build-search-ui/x-architecture/README.md +0 -5
  223. package/js/components/animations/animate-width.vue.js +3 -3
  224. package/js/components/animations/animate-width.vue.js.map +1 -1
  225. package/js/components/animations/collapse-from-top.vue.js +3 -3
  226. package/js/components/animations/collapse-from-top.vue.js.map +1 -1
  227. package/js/components/animations/collapse-height.vue.js +5 -5
  228. package/js/components/animations/collapse-height.vue.js.map +1 -1
  229. package/js/components/animations/collapse-width.vue.js +5 -5
  230. package/js/components/animations/collapse-width.vue.js.map +1 -1
  231. package/js/components/animations/cross-fade.vue.js +3 -3
  232. package/js/components/animations/cross-fade.vue.js.map +1 -1
  233. package/js/components/animations/fade-and-slide.vue.js +4 -4
  234. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  235. package/js/components/animations/staggered-fade-and-slide.vue.js +4 -4
  236. package/js/components/animations/staggered-fade-and-slide.vue.js.map +1 -1
  237. package/js/components/animations/staggered-fade-and-slide.vue_rollup-plugin-vue=script.js +1 -1
  238. package/js/components/animations/staggered-fade-and-slide.vue_rollup-plugin-vue=script.js.map +1 -1
  239. package/js/components/{staggering-transition-group.vue.js → animations/staggering-transition-group.vue.js} +2 -2
  240. package/js/components/animations/staggering-transition-group.vue.js.map +1 -0
  241. package/js/components/{staggering-transition-group.vue_rollup-plugin-vue=script.js → animations/staggering-transition-group.vue_rollup-plugin-vue=script.js} +17 -17
  242. package/js/components/animations/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +1 -0
  243. package/js/components/animations/translate-from-left.vue.js +3 -3
  244. package/js/components/animations/translate-from-left.vue.js.map +1 -1
  245. package/js/components/animations/translate-from-right.vue.js +3 -3
  246. package/js/components/animations/translate-from-right.vue.js.map +1 -1
  247. package/js/components/auto-progress-bar.vue.js +4 -5
  248. package/js/components/auto-progress-bar.vue.js.map +1 -1
  249. package/js/components/base-dropdown.vue.js +35 -47
  250. package/js/components/base-dropdown.vue.js.map +1 -1
  251. package/js/components/base-event-button.vue.js +1 -1
  252. package/js/components/base-event-button.vue.js.map +1 -1
  253. package/js/components/base-grid.vue.js +9 -11
  254. package/js/components/base-grid.vue.js.map +1 -1
  255. package/js/components/base-keyboard-navigation.vue.js +7 -10
  256. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  257. package/js/components/base-rating.vue.js +21 -22
  258. package/js/components/base-rating.vue.js.map +1 -1
  259. package/js/components/base-variable-column-grid.vue.js +6 -7
  260. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  261. package/js/components/column-picker/base-column-picker-dropdown.vue.js +11 -14
  262. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  263. package/js/components/column-picker/base-column-picker-list.vue.js +11 -13
  264. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  265. package/js/components/currency/base-currency.vue.js +2 -3
  266. package/js/components/currency/base-currency.vue.js.map +1 -1
  267. package/js/components/filters/labels/base-price-filter-label.vue.js.map +1 -1
  268. package/js/components/filters/labels/base-rating-filter-label.vue.js +7 -8
  269. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  270. package/js/components/global-x-bus.vue.js +39 -0
  271. package/js/components/global-x-bus.vue.js.map +1 -0
  272. package/js/components/global-x-bus.vue_rollup-plugin-vue=script.js +47 -0
  273. package/js/components/global-x-bus.vue_rollup-plugin-vue=script.js.map +1 -0
  274. package/js/components/icons/arrow.vue.js +4 -6
  275. package/js/components/icons/arrow.vue.js.map +1 -1
  276. package/js/components/icons/bag.vue.js +8 -12
  277. package/js/components/icons/bag.vue.js.map +1 -1
  278. package/js/components/icons/bar-code.vue.js +6 -9
  279. package/js/components/icons/bar-code.vue.js.map +1 -1
  280. package/js/components/icons/barcode-tiny.vue.js +6 -9
  281. package/js/components/icons/barcode-tiny.vue.js.map +1 -1
  282. package/js/components/icons/cart.vue.js +10 -13
  283. package/js/components/icons/cart.vue.js.map +1 -1
  284. package/js/components/icons/check-tiny.vue.js +4 -6
  285. package/js/components/icons/check-tiny.vue.js.map +1 -1
  286. package/js/components/icons/check.vue.js +4 -6
  287. package/js/components/icons/check.vue.js.map +1 -1
  288. package/js/components/icons/checkbox-card-selected.vue.js +5 -7
  289. package/js/components/icons/checkbox-card-selected.vue.js.map +1 -1
  290. package/js/components/icons/checkbox-card-unselected.vue.js +5 -7
  291. package/js/components/icons/checkbox-card-unselected.vue.js.map +1 -1
  292. package/js/components/icons/checkbox-selected.vue.js +5 -7
  293. package/js/components/icons/checkbox-selected.vue.js.map +1 -1
  294. package/js/components/icons/checkbox-unselected.vue.js +6 -6
  295. package/js/components/icons/chevron-down.vue.js +6 -8
  296. package/js/components/icons/chevron-down.vue.js.map +1 -1
  297. package/js/components/icons/chevron-left.vue.js +6 -8
  298. package/js/components/icons/chevron-left.vue.js.map +1 -1
  299. package/js/components/icons/chevron-right.vue.js +4 -6
  300. package/js/components/icons/chevron-right.vue.js.map +1 -1
  301. package/js/components/icons/chevron-tiny-down.vue.js +6 -8
  302. package/js/components/icons/chevron-tiny-down.vue.js.map +1 -1
  303. package/js/components/icons/chevron-tiny-left.vue.js +6 -8
  304. package/js/components/icons/chevron-tiny-left.vue.js.map +1 -1
  305. package/js/components/icons/chevron-tiny-right.vue.js +6 -8
  306. package/js/components/icons/chevron-tiny-right.vue.js.map +1 -1
  307. package/js/components/icons/chevron-tiny-up.vue.js +6 -8
  308. package/js/components/icons/chevron-tiny-up.vue.js.map +1 -1
  309. package/js/components/icons/chevron-up.vue.js +6 -8
  310. package/js/components/icons/chevron-up.vue.js.map +1 -1
  311. package/js/components/icons/cross-tiny.vue.js +4 -6
  312. package/js/components/icons/cross-tiny.vue.js.map +1 -1
  313. package/js/components/icons/cross.vue.js +4 -6
  314. package/js/components/icons/cross.vue.js.map +1 -1
  315. package/js/components/icons/filters.vue.js +10 -15
  316. package/js/components/icons/filters.vue.js.map +1 -1
  317. package/js/components/icons/grid-1-col.vue.js +6 -9
  318. package/js/components/icons/grid-1-col.vue.js.map +1 -1
  319. package/js/components/icons/grid-2-col.vue.js +8 -10
  320. package/js/components/icons/grid-2-col.vue.js.map +1 -1
  321. package/js/components/icons/hide.vue.js +10 -15
  322. package/js/components/icons/hide.vue.js.map +1 -1
  323. package/js/components/icons/history-tiny.vue.js +9 -12
  324. package/js/components/icons/history-tiny.vue.js.map +1 -1
  325. package/js/components/icons/history.vue.js +9 -12
  326. package/js/components/icons/history.vue.js.map +1 -1
  327. package/js/components/icons/menu.vue.js +6 -8
  328. package/js/components/icons/menu.vue.js.map +1 -1
  329. package/js/components/icons/minus-tiny.vue.js +4 -6
  330. package/js/components/icons/minus-tiny.vue.js.map +1 -1
  331. package/js/components/icons/minus.vue.js +4 -6
  332. package/js/components/icons/minus.vue.js.map +1 -1
  333. package/js/components/icons/nq-1.vue.js +4 -6
  334. package/js/components/icons/nq-1.vue.js.map +1 -1
  335. package/js/components/icons/nq-2.vue.js +4 -6
  336. package/js/components/icons/nq-2.vue.js.map +1 -1
  337. package/js/components/icons/nq-3.vue.js +6 -8
  338. package/js/components/icons/nq-3.vue.js.map +1 -1
  339. package/js/components/icons/nq-4.vue.js +9 -12
  340. package/js/components/icons/nq-4.vue.js.map +1 -1
  341. package/js/components/icons/plus.vue.js +4 -6
  342. package/js/components/icons/plus.vue.js.map +1 -1
  343. package/js/components/icons/search-tiny.vue.js +6 -9
  344. package/js/components/icons/search-tiny.vue.js.map +1 -1
  345. package/js/components/icons/search.vue.js +6 -8
  346. package/js/components/icons/search.vue.js.map +1 -1
  347. package/js/components/icons/show.vue.js +7 -10
  348. package/js/components/icons/show.vue.js.map +1 -1
  349. package/js/components/icons/star.vue.js +6 -9
  350. package/js/components/icons/star.vue.js.map +1 -1
  351. package/js/components/icons/tag.vue.js +59 -0
  352. package/js/components/icons/tag.vue.js.map +1 -0
  353. package/js/components/icons/tag.vue_rollup-plugin-vue=script.js +4 -0
  354. package/js/components/icons/tag.vue_rollup-plugin-vue=script.js.map +1 -0
  355. package/js/components/icons/trash-open.vue.js +12 -15
  356. package/js/components/icons/trash-open.vue.js.map +1 -1
  357. package/js/components/icons/trash.vue.js +8 -11
  358. package/js/components/icons/trash.vue.js.map +1 -1
  359. package/js/components/icons/trending-tiny.vue.js +8 -10
  360. package/js/components/icons/trending-tiny.vue.js.map +1 -1
  361. package/js/components/icons/trending.vue.js +8 -10
  362. package/js/components/icons/trending.vue.js.map +1 -1
  363. package/js/components/icons/user.vue.js +6 -9
  364. package/js/components/icons/user.vue.js.map +1 -1
  365. package/js/components/items-list.vue.js +6 -7
  366. package/js/components/items-list.vue.js.map +1 -1
  367. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +212 -0
  368. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -0
  369. package/js/components/layouts/fixed-header-and-asides-layout.vue_rollup-plugin-vue=script.js +57 -0
  370. package/js/components/layouts/fixed-header-and-asides-layout.vue_rollup-plugin-vue=script.js.map +1 -0
  371. package/js/components/layouts/multi-column-max-width-layout.vue.js +57 -91
  372. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  373. package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js +1 -1
  374. package/js/components/layouts/single-column-layout.vue.js +39 -67
  375. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  376. package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js +1 -1
  377. package/js/components/modals/base-events-modal-close.vue.js +2 -2
  378. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  379. package/js/components/modals/base-events-modal-open.vue.js +2 -2
  380. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  381. package/js/components/modals/base-events-modal.vue.js +3 -3
  382. package/js/components/modals/base-events-modal.vue.js.map +1 -1
  383. package/js/components/modals/base-id-modal-close.vue.js +2 -2
  384. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  385. package/js/components/modals/base-id-modal-open.vue.js +2 -2
  386. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  387. package/js/components/modals/base-id-modal.vue.js +3 -3
  388. package/js/components/modals/base-id-modal.vue.js.map +1 -1
  389. package/js/components/modals/base-modal.vue.js +11 -13
  390. package/js/components/modals/base-modal.vue.js.map +1 -1
  391. package/js/components/panels/base-header-toggle-panel.vue.js +7 -9
  392. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  393. package/js/components/panels/base-id-toggle-panel-button.vue.js +2 -2
  394. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  395. package/js/components/panels/base-id-toggle-panel.vue.js +1 -1
  396. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  397. package/js/components/panels/base-id-toggle-panel.vue_rollup-plugin-vue=script.js +4 -9
  398. package/js/components/panels/base-id-toggle-panel.vue_rollup-plugin-vue=script.js.map +1 -1
  399. package/js/components/panels/base-toggle-panel.vue.js +3 -4
  400. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  401. package/js/components/result/base-result-add-to-cart.vue.js +2 -2
  402. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  403. package/js/components/result/base-result-current-price.vue.js +6 -8
  404. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  405. package/js/components/result/base-result-fallback-image.vue.js +7 -9
  406. package/js/components/result/base-result-fallback-image.vue.js.map +1 -1
  407. package/js/components/result/base-result-image.vue.js +11 -14
  408. package/js/components/result/base-result-image.vue.js.map +1 -1
  409. package/js/components/result/base-result-link.vue.js +8 -8
  410. package/js/components/result/base-result-link.vue.js.map +1 -1
  411. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js +3 -12
  412. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js.map +1 -1
  413. package/js/components/result/base-result-placeholder-image.vue.js +7 -9
  414. package/js/components/result/base-result-placeholder-image.vue.js.map +1 -1
  415. package/js/components/result/base-result-previous-price.vue.js +7 -9
  416. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  417. package/js/components/scroll/base-scroll.vue.js +4 -4
  418. package/js/components/scroll/base-scroll.vue.js.map +1 -1
  419. package/js/components/sliding-panel.vue.js +13 -16
  420. package/js/components/sliding-panel.vue.js.map +1 -1
  421. package/js/components/snippet-callbacks.vue.js +47 -0
  422. package/js/components/snippet-callbacks.vue.js.map +1 -0
  423. package/js/components/snippet-callbacks.vue_rollup-plugin-vue=script.js +58 -0
  424. package/js/components/snippet-callbacks.vue_rollup-plugin-vue=script.js.map +1 -0
  425. package/js/components/suggestions/base-suggestion.vue.js +6 -8
  426. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  427. package/js/components/suggestions/base-suggestions.vue.js +8 -9
  428. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  429. package/js/components/x-component.mixin.js +1 -4
  430. package/js/components/x-component.mixin.js.map +1 -1
  431. package/js/components/x-component.utils.js +4 -20
  432. package/js/components/x-component.utils.js.map +1 -1
  433. package/js/index.js +35 -30
  434. package/js/index.js.map +1 -1
  435. package/js/plugins/x-plugin.alias.js +21 -20
  436. package/js/plugins/x-plugin.alias.js.map +1 -1
  437. package/js/plugins/x-plugin.mixin.js +2 -2
  438. package/js/plugins/x-plugin.mixin.js.map +1 -1
  439. package/js/utils/origin.js +5 -3
  440. package/js/utils/origin.js.map +1 -1
  441. package/js/utils/storage.js +2 -2
  442. package/js/utils/storage.js.map +1 -1
  443. package/js/wiring/namespaced-wires.operators.js +3 -4
  444. package/js/wiring/namespaced-wires.operators.js.map +1 -1
  445. package/js/wiring/wires-operators.utils.js +55 -0
  446. package/js/wiring/wires-operators.utils.js.map +1 -0
  447. package/js/wiring/wires.operators.js +17 -12
  448. package/js/wiring/wires.operators.js.map +1 -1
  449. package/js/x-installer/x-installer/x-installer.js +1 -1
  450. package/js/x-installer/x-installer/x-installer.js.map +1 -1
  451. package/js/x-modules/device/components/device-detector.vue.js +2 -2
  452. package/js/x-modules/empathize/components/empathize.vue.js +5 -6
  453. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  454. package/js/x-modules/empathize/components/empathize.vue_rollup-plugin-vue=script.js +1 -1
  455. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js +16 -12
  456. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  457. package/js/x-modules/extra-params/components/renderless-extra-param.vue.js +3 -4
  458. package/js/x-modules/extra-params/components/renderless-extra-param.vue.js.map +1 -1
  459. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js +16 -12
  460. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js.map +1 -1
  461. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js +1 -1
  462. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js.map +1 -1
  463. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js +25 -12
  464. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  465. package/js/x-modules/facets/components/clear-filters.vue.js +6 -8
  466. package/js/x-modules/facets/components/clear-filters.vue.js.map +1 -1
  467. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js +16 -12
  468. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  469. package/js/x-modules/facets/components/facets/facets-provider.vue.js +2 -2
  470. package/js/x-modules/facets/components/facets/facets-provider.vue.js.map +1 -1
  471. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js +20 -23
  472. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js.map +1 -1
  473. package/js/x-modules/facets/components/facets/facets.vue.js +12 -13
  474. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  475. package/js/x-modules/facets/components/filters/all-filter.vue.js +5 -6
  476. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  477. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js +16 -12
  478. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  479. package/js/x-modules/facets/components/filters/base-filter.vue.js +5 -6
  480. package/js/x-modules/facets/components/filters/base-filter.vue.js.map +1 -1
  481. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js +16 -12
  482. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  483. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +20 -24
  484. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  485. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +29 -38
  486. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  487. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js +16 -12
  488. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  489. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +5 -6
  490. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  491. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js +16 -12
  492. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  493. package/js/x-modules/facets/components/filters/renderless-filter.vue.js.map +1 -1
  494. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js +16 -12
  495. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  496. package/js/x-modules/facets/components/filters/simple-filter.vue.js +13 -17
  497. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  498. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js +16 -12
  499. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  500. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue.js.map +1 -1
  501. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js +16 -12
  502. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js.map +1 -1
  503. package/js/x-modules/facets/components/lists/filters-list.vue.js +6 -6
  504. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  505. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js +16 -12
  506. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js.map +1 -1
  507. package/js/x-modules/facets/components/lists/filters-search.vue.js +10 -12
  508. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  509. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js +16 -12
  510. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js.map +1 -1
  511. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +14 -20
  512. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  513. package/js/x-modules/facets/components/lists/selected-filters.vue.js +3 -4
  514. package/js/x-modules/facets/components/lists/selected-filters.vue.js.map +1 -1
  515. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js +16 -12
  516. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  517. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +12 -18
  518. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  519. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js +16 -12
  520. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  521. package/js/x-modules/facets/components/lists/sorted-filters.vue.js.map +1 -1
  522. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js +16 -12
  523. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  524. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +5 -6
  525. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  526. package/js/x-modules/history-queries/components/history-queries.vue.js +19 -25
  527. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  528. package/js/x-modules/history-queries/components/history-queries.vue_rollup-plugin-vue=script.js +1 -1
  529. package/js/x-modules/history-queries/components/history-query.vue.js +13 -17
  530. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  531. package/js/x-modules/history-queries/components/history-query.vue_rollup-plugin-vue=script.js +1 -1
  532. package/js/x-modules/history-queries/components/remove-history-query.vue.js +2 -2
  533. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  534. package/js/x-modules/history-queries/wiring.js +1 -1
  535. package/js/x-modules/history-queries/wiring.js.map +1 -1
  536. package/js/x-modules/identifier-results/components/identifier-result.vue.js +2 -2
  537. package/js/x-modules/identifier-results/components/identifier-result.vue.js.map +1 -1
  538. package/js/x-modules/identifier-results/components/identifier-results.vue.js +4 -4
  539. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  540. package/js/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.js +4 -2
  541. package/js/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.js.map +1 -1
  542. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js +2 -3
  543. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js.map +1 -1
  544. package/js/x-modules/identifier-results/wiring.js +3 -2
  545. package/js/x-modules/identifier-results/wiring.js.map +1 -1
  546. package/js/x-modules/next-queries/components/next-queries-list.vue.js +9 -12
  547. package/js/x-modules/next-queries/components/next-queries-list.vue.js.map +1 -1
  548. package/js/x-modules/next-queries/components/next-queries-list.vue_rollup-plugin-vue=script.js +1 -1
  549. package/js/x-modules/next-queries/components/next-queries.vue.js +15 -20
  550. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  551. package/js/x-modules/next-queries/components/next-queries.vue_rollup-plugin-vue=script.js +1 -1
  552. package/js/x-modules/next-queries/components/next-query.vue.js +8 -10
  553. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  554. package/js/x-modules/next-queries/components/next-query.vue_rollup-plugin-vue=script.js +1 -1
  555. package/js/x-modules/popular-searches/components/popular-search.vue.js +8 -10
  556. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  557. package/js/x-modules/popular-searches/components/popular-search.vue_rollup-plugin-vue=script.js +1 -1
  558. package/js/x-modules/popular-searches/components/popular-searches.vue.js +15 -20
  559. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  560. package/js/x-modules/popular-searches/components/popular-searches.vue_rollup-plugin-vue=script.js +1 -1
  561. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +9 -11
  562. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  563. package/js/x-modules/query-suggestions/components/query-suggestion.vue_rollup-plugin-vue=script.js +1 -1
  564. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +15 -20
  565. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js.map +1 -1
  566. package/js/x-modules/query-suggestions/components/query-suggestions.vue_rollup-plugin-vue=script.js +1 -1
  567. package/js/x-modules/query-suggestions/wiring.js +1 -1
  568. package/js/x-modules/query-suggestions/wiring.js.map +1 -1
  569. package/js/x-modules/recommendations/components/recommendations.vue.js +11 -14
  570. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  571. package/js/x-modules/related-tags/components/related-tag.vue.js +11 -8
  572. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  573. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js +20 -0
  574. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js.map +1 -1
  575. package/js/x-modules/related-tags/components/related-tags.vue.js +28 -21
  576. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  577. package/js/x-modules/related-tags/components/related-tags.vue_rollup-plugin-vue=script.js +3 -0
  578. package/js/x-modules/related-tags/components/related-tags.vue_rollup-plugin-vue=script.js.map +1 -1
  579. package/js/x-modules/scroll/components/main-scroll-item.vue.js +1 -1
  580. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js +18 -14
  581. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js.map +1 -1
  582. package/js/x-modules/scroll/components/scroll-to-top.vue.js +3 -4
  583. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  584. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js +18 -14
  585. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js.map +1 -1
  586. package/js/x-modules/scroll/components/scroll.vue.js +4 -4
  587. package/js/x-modules/scroll/components/scroll.vue.js.map +1 -1
  588. package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js +1 -1
  589. package/js/x-modules/scroll/components/window-scroll.vue.js.map +1 -1
  590. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js +18 -14
  591. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js.map +1 -1
  592. package/js/x-modules/search/components/banner.vue.js +6 -7
  593. package/js/x-modules/search/components/banner.vue.js.map +1 -1
  594. package/js/x-modules/search/components/banner.vue_rollup-plugin-vue=script.js +8 -0
  595. package/js/x-modules/search/components/banner.vue_rollup-plugin-vue=script.js.map +1 -1
  596. package/js/x-modules/search/components/banners-list.vue.js +9 -12
  597. package/js/x-modules/search/components/banners-list.vue.js.map +1 -1
  598. package/js/x-modules/search/components/banners-list.vue_rollup-plugin-vue=script.js +1 -1
  599. package/js/x-modules/search/components/partial-query-button.vue.js +4 -5
  600. package/js/x-modules/search/components/partial-query-button.vue.js.map +1 -1
  601. package/js/x-modules/search/components/partial-results-list.vue.js +6 -6
  602. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  603. package/js/x-modules/search/components/promoted.vue.js +6 -7
  604. package/js/x-modules/search/components/promoted.vue.js.map +1 -1
  605. package/js/x-modules/search/components/promoted.vue_rollup-plugin-vue=script.js +8 -0
  606. package/js/x-modules/search/components/promoted.vue_rollup-plugin-vue=script.js.map +1 -1
  607. package/js/x-modules/search/components/promoteds-list.vue.js +9 -12
  608. package/js/x-modules/search/components/promoteds-list.vue.js.map +1 -1
  609. package/js/x-modules/search/components/promoteds-list.vue_rollup-plugin-vue=script.js +1 -1
  610. package/js/x-modules/search/components/redirection.vue.js +4 -5
  611. package/js/x-modules/search/components/redirection.vue.js.map +1 -1
  612. package/js/x-modules/search/components/redirection.vue_rollup-plugin-vue=script.js.map +1 -1
  613. package/js/x-modules/search/components/results-list.vue.js +9 -12
  614. package/js/x-modules/search/components/results-list.vue.js.map +1 -1
  615. package/js/x-modules/search/components/results-list.vue_rollup-plugin-vue=script.js +2 -2
  616. package/js/x-modules/search/components/sort-dropdown.vue.js +13 -16
  617. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  618. package/js/x-modules/search/components/sort-list.vue.js +10 -12
  619. package/js/x-modules/search/components/sort-list.vue.js.map +1 -1
  620. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js +16 -12
  621. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js.map +1 -1
  622. package/js/x-modules/search/components/sort.mixin.js +16 -12
  623. package/js/x-modules/search/components/sort.mixin.js.map +1 -1
  624. package/js/x-modules/search/components/spellcheck-button.vue.js +4 -5
  625. package/js/x-modules/search/components/spellcheck-button.vue.js.map +1 -1
  626. package/js/x-modules/search/components/spellcheck.vue.js +4 -6
  627. package/js/x-modules/search/components/spellcheck.vue.js.map +1 -1
  628. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js +16 -12
  629. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js.map +1 -1
  630. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +7 -2
  631. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  632. package/js/x-modules/search/store/getters/request.getter.js +2 -3
  633. package/js/x-modules/search/store/getters/request.getter.js.map +1 -1
  634. package/js/x-modules/search/wiring.js +4 -3
  635. package/js/x-modules/search/wiring.js.map +1 -1
  636. package/js/x-modules/search-box/components/clear-search-input.vue.js +5 -6
  637. package/js/x-modules/search-box/components/clear-search-input.vue.js.map +1 -1
  638. package/js/x-modules/search-box/components/search-button.vue.js +4 -5
  639. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  640. package/js/x-modules/search-box/components/search-input.vue.js +9 -11
  641. package/js/x-modules/search-box/components/search-input.vue.js.map +1 -1
  642. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js +7 -5
  643. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js.map +1 -1
  644. package/js/x-modules/tagging/components/tagging.vue.js +39 -0
  645. package/js/x-modules/tagging/components/tagging.vue.js.map +1 -0
  646. package/js/x-modules/tagging/components/tagging.vue_rollup-plugin-vue=script.js +65 -0
  647. package/js/x-modules/tagging/components/tagging.vue_rollup-plugin-vue=script.js.map +1 -0
  648. package/js/x-modules/tagging/service/session.service.js +23 -6
  649. package/js/x-modules/tagging/service/session.service.js.map +1 -1
  650. package/js/x-modules/tagging/store/actions/track.action.js +2 -2
  651. package/js/x-modules/tagging/store/actions/track.action.js.map +1 -1
  652. package/js/x-modules/tagging/wiring.js +52 -5
  653. package/js/x-modules/tagging/wiring.js.map +1 -1
  654. package/js/x-modules/url/components/url-handler.vue.js +2 -2
  655. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  656. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js +101 -5
  657. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js.map +1 -1
  658. package/package.json +18 -16
  659. package/report/tsdoc-metadata.json +1 -1
  660. package/report/x-adapter.api.json +29 -3
  661. package/report/x-components.api.json +999 -231
  662. package/report/x-components.api.md +132 -45
  663. package/report/x-types.api.json +27 -1
  664. package/tagging/index.js +3 -2
  665. package/types/adapter/mocked-adapter.d.ts.map +1 -1
  666. package/types/components/animations/index.d.ts +1 -0
  667. package/types/components/animations/index.d.ts.map +1 -1
  668. package/types/components/{staggering-transition-group.vue.d.ts → animations/staggering-transition-group.vue.d.ts} +0 -0
  669. package/types/components/animations/staggering-transition-group.vue.d.ts.map +1 -0
  670. package/types/components/global-x-bus.vue.d.ts +25 -0
  671. package/types/components/global-x-bus.vue.d.ts.map +1 -0
  672. package/types/components/icons/index.d.ts +1 -0
  673. package/types/components/icons/index.d.ts.map +1 -1
  674. package/types/components/icons/tag.vue.d.ts +3 -0
  675. package/types/components/icons/tag.vue.d.ts.map +1 -0
  676. package/types/components/index.d.ts +3 -4
  677. package/types/components/index.d.ts.map +1 -1
  678. package/types/components/layouts/fixed-header-and-asides-layout.vue.d.ts +17 -0
  679. package/types/components/layouts/fixed-header-and-asides-layout.vue.d.ts.map +1 -0
  680. package/types/components/layouts/index.d.ts +4 -0
  681. package/types/components/layouts/index.d.ts.map +1 -0
  682. package/types/components/panels/base-id-toggle-panel.vue.d.ts +0 -5
  683. package/types/components/panels/base-id-toggle-panel.vue.d.ts.map +1 -1
  684. package/types/components/result/base-result-link.vue.d.ts +3 -10
  685. package/types/components/result/base-result-link.vue.d.ts.map +1 -1
  686. package/types/components/snippet-callbacks.vue.d.ts +27 -0
  687. package/types/components/snippet-callbacks.vue.d.ts.map +1 -0
  688. package/types/components/x-component.mixin.d.ts.map +1 -1
  689. package/types/components/x-component.utils.d.ts +1 -16
  690. package/types/components/x-component.utils.d.ts.map +1 -1
  691. package/types/plugins/x-plugin.alias.d.ts +4 -6
  692. package/types/plugins/x-plugin.alias.d.ts.map +1 -1
  693. package/types/plugins/x-plugin.mixin.d.ts +13 -3
  694. package/types/plugins/x-plugin.mixin.d.ts.map +1 -1
  695. package/types/types/origin.d.ts +1 -1
  696. package/types/types/origin.d.ts.map +1 -1
  697. package/types/utils/origin.d.ts +3 -1
  698. package/types/utils/origin.d.ts.map +1 -1
  699. package/types/utils/storage.d.ts +1 -7
  700. package/types/utils/storage.d.ts.map +1 -1
  701. package/types/utils/types.d.ts +6 -0
  702. package/types/utils/types.d.ts.map +1 -1
  703. package/types/wiring/events.types.d.ts +8 -5
  704. package/types/wiring/events.types.d.ts.map +1 -1
  705. package/types/wiring/namespaced-wires.operators.d.ts +2 -3
  706. package/types/wiring/namespaced-wires.operators.d.ts.map +1 -1
  707. package/types/wiring/namespaced-wiring.types.d.ts +9 -10
  708. package/types/wiring/namespaced-wiring.types.d.ts.map +1 -1
  709. package/types/wiring/wires-operators.utils.d.ts +36 -0
  710. package/types/wiring/wires-operators.utils.d.ts.map +1 -0
  711. package/types/wiring/wires.operators.d.ts +5 -8
  712. package/types/wiring/wires.operators.d.ts.map +1 -1
  713. package/types/wiring/wiring.types.d.ts +17 -4
  714. package/types/wiring/wiring.types.d.ts.map +1 -1
  715. package/types/x-installer/api/api.types.d.ts +14 -0
  716. package/types/x-installer/api/api.types.d.ts.map +1 -1
  717. package/types/x-installer/x-installer/x-installer.d.ts +1 -1
  718. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts +6 -0
  719. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts.map +1 -1
  720. package/types/x-modules/facets/components/facets/facets-provider.vue.d.ts +0 -8
  721. package/types/x-modules/facets/components/facets/facets-provider.vue.d.ts.map +1 -1
  722. package/types/x-modules/history-queries/wiring.d.ts +1 -1
  723. package/types/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.d.ts.map +1 -1
  724. package/types/x-modules/identifier-results/store/getters/identifier-results-request.getter.d.ts.map +1 -1
  725. package/types/x-modules/identifier-results/wiring.d.ts +2 -1
  726. package/types/x-modules/identifier-results/wiring.d.ts.map +1 -1
  727. package/types/x-modules/query-suggestions/wiring.d.ts +1 -1
  728. package/types/x-modules/related-tags/components/related-tag.vue.d.ts +14 -0
  729. package/types/x-modules/related-tags/components/related-tag.vue.d.ts.map +1 -1
  730. package/types/x-modules/related-tags/components/related-tags.vue.d.ts +6 -0
  731. package/types/x-modules/related-tags/components/related-tags.vue.d.ts.map +1 -1
  732. package/types/x-modules/search/components/banner.vue.d.ts +6 -0
  733. package/types/x-modules/search/components/banner.vue.d.ts.map +1 -1
  734. package/types/x-modules/search/components/promoted.vue.d.ts +6 -0
  735. package/types/x-modules/search/components/promoted.vue.d.ts.map +1 -1
  736. package/types/x-modules/search/components/redirection.vue.d.ts +1 -1
  737. package/types/x-modules/search/components/redirection.vue.d.ts.map +1 -1
  738. package/types/x-modules/search/events.types.d.ts +11 -1
  739. package/types/x-modules/search/events.types.d.ts.map +1 -1
  740. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  741. package/types/x-modules/search/store/getters/request.getter.d.ts.map +1 -1
  742. package/types/x-modules/search/wiring.d.ts +2 -1
  743. package/types/x-modules/search/wiring.d.ts.map +1 -1
  744. package/types/x-modules/search-box/components/search-input.vue.d.ts +5 -2
  745. package/types/x-modules/search-box/components/search-input.vue.d.ts.map +1 -1
  746. package/types/x-modules/tagging/components/tagging.vue.d.ts +47 -0
  747. package/types/x-modules/tagging/components/tagging.vue.d.ts.map +1 -0
  748. package/types/x-modules/tagging/index.d.ts +1 -0
  749. package/types/x-modules/tagging/index.d.ts.map +1 -1
  750. package/types/x-modules/tagging/service/session.service.d.ts +18 -1
  751. package/types/x-modules/tagging/service/session.service.d.ts.map +1 -1
  752. package/types/x-modules/tagging/wiring.d.ts +29 -9
  753. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  754. package/types/x-modules/url/components/url-handler.vue.d.ts +70 -7
  755. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  756. package/docs/API-reference/api/x-components.baseidtogglepanel.created.md +0 -17
  757. package/docs/API-reference/api/x-components.xcomponent.md +0 -15
  758. package/docs/API-reference/api/x-components.xeventstypes.userrightclickedaresult.md +0 -13
  759. package/docs/sidebar.json +0 -1
  760. package/js/components/staggering-transition-group.vue.js.map +0 -1
  761. package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +0 -1
  762. package/js/wiring/utils/wire-racing-handling.js +0 -108
  763. package/js/wiring/utils/wire-racing-handling.js.map +0 -1
  764. package/types/components/staggering-transition-group.vue.d.ts.map +0 -1
  765. package/types/components/x-component.types.d.ts +0 -19
  766. package/types/components/x-component.types.d.ts.map +0 -1
  767. package/types/wiring/utils/wire-racing-handling.d.ts +0 -27
  768. package/types/wiring/utils/wire-racing-handling.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"exclude-filters-with-no-results.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/exclude-filters-with-no-results.vue"],"sourcesContent":["<script lang=\"ts\">\n import { Filter, isBooleanFilter } from '@empathyco/x-types';\n import { CreateElement, VNode } from 'vue';\n import { mixins } from 'vue-class-component';\n import { Component } from 'vue-property-decorator';\n import { xComponentMixin, XProvide } from '../../../../components';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * The `ExcludeFiltersWithNoResults` component filters the provided list of filters, excluding\n * those which have the `totalResults` property exactly equal to `0`. It won't remove filters with\n * no `totalResults` property.\n *\n * The new list of filters is bound to the default scoped slot. As this component does not render\n * no root element, this default slot must contain a single root node.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class ExcludeFiltersWithNoResults extends mixins(FiltersInjectionMixin) {\n /**\n * Removes the filters that have exactly 0 results associated.\n *\n * @returns A sublist of the filters prop, excluding the ones with no results.\n * @internal\n */\n @XProvide('filters')\n public get filtersWithResults(): Filter[] {\n return this.renderedFilters.filter(\n filter => !isBooleanFilter(filter) || filter.totalResults !== 0\n );\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.filtersWithResults })?.[0] ?? h();\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Example\n\nThe `ExcludeFiltersWithNoResults` component filters the provided list of filter, excluding those\nwhich have the `totalResults` property exactly equal to `0`. It won't remove filters with no\n`totalResults` property.\n\nThe new list of filters is bound to the default scoped slot. As this component does not render no\nroot element, this default slot must contain a single root node.\n\n## Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n## Basic Usage\n\n```vue\n<template>\n <ExcludeFiltersWithNoResults v-slot=\"{ filters }\" :filters=\"filters\">\n <div>\n <span v-for=\"filter in filters\" :key=\"filter.id\">{{ filter.label }}</span>\n </div>\n </ExcludeFiltersWithNoResults>\n</template>\n\n<script>\n import { ExcludeFiltersWithNoResults } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n ExcludeFiltersWithNoResults\n },\n data() {\n return {\n filters: [\n {\n // This is the only filter that will be removed.\n facetId: 'category',\n id: 'category:men',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Men',\n totalResults: 0\n },\n {\n facetId: 'category',\n id: 'category:women',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Women',\n totalResults: 10\n },\n {\n facetId: 'category',\n id: 'category:kids',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Kids',\n totalResults: undefined\n }\n ]\n };\n }\n };\n</script>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component,\n> the rest of components will inject this list.\n\n```vue\n<template>\n <ExcludeFiltersWithNoResults :filters=\"filters\">\n <FiltersSearch>\n <Filters v-slot=\"{ filter }\">\n <SimpleFilter :filter=\"filter\" data-test=\"brand-filter\" />\n </Filters>\n </FiltersSearch>\n </ExcludeFiltersWithNoResults>\n</template>\n\n<script>\n import {\n ExcludeFiltersWithNoResults,\n FiltersSearch,\n Filters,\n SimpleFilter\n } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n ExcludeFiltersWithNoResults,\n FiltersSearch,\n Filters,\n SimpleFilter\n },\n data() {\n return {\n filters: [\n {\n // This is the only filter that will be removed.\n facetId: 'category',\n id: 'category:men',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Men',\n totalResults: 0\n },\n {\n facetId: 'category',\n id: 'category:women',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Women',\n totalResults: 10\n },\n {\n facetId: 'category',\n id: 'category:kids',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Kids',\n totalResults: undefined\n }\n ]\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"exclude-filters-with-no-results.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/exclude-filters-with-no-results.vue"],"sourcesContent":["<script lang=\"ts\">\n import { Filter, isBooleanFilter } from '@empathyco/x-types';\n import { CreateElement, VNode } from 'vue';\n import { mixins } from 'vue-class-component';\n import { Component } from 'vue-property-decorator';\n import { xComponentMixin, XProvide } from '../../../../components';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * The `ExcludeFiltersWithNoResults` component filters the provided list of filters, excluding\n * those which have the `totalResults` property exactly equal to `0`. It won't remove filters with\n * no `totalResults` property.\n *\n * The new list of filters is bound to the default scoped slot. As this component does not render\n * no root element, this default slot must contain a single root node.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class ExcludeFiltersWithNoResults extends mixins(FiltersInjectionMixin) {\n /**\n * Removes the filters that have exactly 0 results associated.\n *\n * @returns A sublist of the filters prop, excluding the ones with no results.\n * @internal\n */\n @XProvide('filters')\n public get filtersWithResults(): Filter[] {\n return this.renderedFilters.filter(\n filter => !isBooleanFilter(filter) || filter.totalResults !== 0\n );\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.filtersWithResults })?.[0] ?? h();\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Example\n\nThe `ExcludeFiltersWithNoResults` component filters the provided list of filter, excluding those\nwhich have the `totalResults` property exactly equal to `0`. It won't remove filters with no\n`totalResults` property.\n\nThe new list of filters is bound to the default scoped slot. As this component does not render no\nroot element, this default slot must contain a single root node.\n\n### Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n### Basic Usage\n\n```vue\n<template>\n <ExcludeFiltersWithNoResults v-slot=\"{ filters }\" :filters=\"filters\">\n <div>\n <span v-for=\"filter in filters\" :key=\"filter.id\">{{ filter.label }}</span>\n </div>\n </ExcludeFiltersWithNoResults>\n</template>\n\n<script>\n import { ExcludeFiltersWithNoResults } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n ExcludeFiltersWithNoResults\n },\n data() {\n return {\n filters: [\n {\n // This is the only filter that will be removed.\n facetId: 'category',\n id: 'category:men',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Men',\n totalResults: 0\n },\n {\n facetId: 'category',\n id: 'category:women',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Women',\n totalResults: 10\n },\n {\n facetId: 'category',\n id: 'category:kids',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Kids',\n totalResults: undefined\n }\n ]\n };\n }\n };\n</script>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component,\n> the rest of components will inject this list.\n\n```vue\n<template>\n <ExcludeFiltersWithNoResults :filters=\"filters\">\n <FiltersSearch>\n <Filters v-slot=\"{ filter }\">\n <SimpleFilter :filter=\"filter\" data-test=\"brand-filter\" />\n </Filters>\n </FiltersSearch>\n </ExcludeFiltersWithNoResults>\n</template>\n\n<script>\n import {\n ExcludeFiltersWithNoResults,\n FiltersSearch,\n Filters,\n SimpleFilter\n } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n ExcludeFiltersWithNoResults,\n FiltersSearch,\n Filters,\n SimpleFilter\n },\n data() {\n return {\n filters: [\n {\n // This is the only filter that will be removed.\n facetId: 'category',\n id: 'category:men',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Men',\n totalResults: 0\n },\n {\n facetId: 'category',\n id: 'category:women',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Women',\n totalResults: 10\n },\n {\n facetId: 'category',\n id: 'category:kids',\n modelName: 'SimpleFilter',\n selected: false,\n label: 'Kids',\n totalResults: undefined\n }\n ]\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,7 +7,7 @@ import '../../../../components/animations/collapse-height.vue.js';
7
7
  import '../../../../components/animations/collapse-width.vue.js';
8
8
  import '../../../../components/animations/cross-fade.vue.js';
9
9
  import '../../../../components/animations/fade-and-slide.vue.js';
10
- import '../../../../components/staggering-transition-group.vue.js';
10
+ import '../../../../components/animations/staggering-transition-group.vue.js';
11
11
  import '../../../../components/animations/staggered-fade-and-slide.vue.js';
12
12
  import '../../../../components/animations/translate-from-left.vue.js';
13
13
  import '../../../../components/animations/translate-from-right.vue.js';
@@ -63,21 +63,30 @@ import '../../../../components/icons/plus.vue.js';
63
63
  import '../../../../components/icons/search.vue.js';
64
64
  import '../../../../components/icons/show.vue.js';
65
65
  import '../../../../components/icons/search-tiny.vue.js';
66
+ import '../../../../components/icons/tag.vue.js';
66
67
  import '../../../../components/icons/trash-open.vue.js';
67
68
  import '../../../../components/icons/trash.vue.js';
68
69
  import '../../../../components/icons/trending-tiny.vue.js';
69
70
  import '../../../../components/icons/trending.vue.js';
70
71
  import '../../../../components/icons/user.vue.js';
71
- import '../../../../components/modals/base-events-modal-close.vue.js';
72
+ import '../../../../components/decorators/store.decorators.js';
73
+ import '../../../../components/x-component.utils.js';
74
+ import { xComponentMixin } from '../../../../components/x-component.mixin.js';
72
75
  import '../../../../components/modals/base-modal.vue.js';
76
+ import '../../../../components/modals/base-id-modal.vue.js';
77
+ import '../../../../components/scroll/scroll.mixin.js';
78
+ import '../../../../components/scroll/base-scroll.vue.js';
79
+ import '../../../../components/layouts/fixed-header-and-asides-layout.vue.js';
80
+ import '../../../../components/panels/base-toggle-panel.vue.js';
81
+ import '../../../../components/panels/base-id-toggle-panel.vue.js';
82
+ import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
83
+ import '../../../../components/layouts/single-column-layout.vue.js';
84
+ import '../../../../components/modals/base-events-modal-close.vue.js';
73
85
  import '../../../../components/modals/base-events-modal.vue.js';
74
86
  import '../../../../components/modals/base-events-modal-open.vue.js';
75
- import '../../../../components/modals/base-id-modal.vue.js';
76
87
  import '../../../../components/modals/base-id-modal-close.vue.js';
77
88
  import '../../../../components/modals/base-id-modal-open.vue.js';
78
- import '../../../../components/panels/base-toggle-panel.vue.js';
79
89
  import '../../../../components/panels/base-header-toggle-panel.vue.js';
80
- import '../../../../components/panels/base-id-toggle-panel.vue.js';
81
90
  import '../../../../components/panels/base-id-toggle-panel-button.vue.js';
82
91
  import '../../../../components/result/base-result-add-to-cart.vue.js';
83
92
  import '../../../../components/result/base-result-current-price.vue.js';
@@ -86,8 +95,6 @@ import '../../../../components/result/base-result-link.vue.js';
86
95
  import '../../../../components/result/base-result-previous-price.vue.js';
87
96
  import '../../../../components/result/base-result-fallback-image.vue.js';
88
97
  import '../../../../components/result/base-result-placeholder-image.vue.js';
89
- import '../../../../components/scroll/scroll.mixin.js';
90
- import '../../../../components/scroll/base-scroll.vue.js';
91
98
  import '../../../../components/suggestions/base-suggestion.vue.js';
92
99
  import '../../../../components/suggestions/base-suggestions.vue.js';
93
100
  import '../../../../components/auto-progress-bar.vue.js';
@@ -98,12 +105,9 @@ import '../../../../components/base-variable-column-grid.vue.js';
98
105
  import '../../../../components/decorators/debounce.decorators.js';
99
106
  import '../../../../components/sliding-panel.vue.js';
100
107
  import '../../../../components/items-list.vue.js';
101
- import '../../../../components/decorators/store.decorators.js';
102
- import '../../../../components/x-component.utils.js';
103
- import { xComponentMixin } from '../../../../components/x-component.mixin.js';
104
- import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
105
- import '../../../../components/layouts/single-column-layout.vue.js';
106
108
  import '../../../../components/location-provider.vue.js';
109
+ import '../../../../components/global-x-bus.vue.js';
110
+ import '../../../../components/snippet-callbacks.vue.js';
107
111
  import '../../../../components/items-list-injection.mixin.js';
108
112
  import { isBooleanFilter } from '@empathyco/x-types';
109
113
  import { facetsXModule } from '../../x-module.js';
@@ -1 +1 @@
1
- {"version":3,"file":"exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/exclude-filters-with-no-results.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { CreateElement, VNode } from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * The `ExcludeFiltersWithNoResults` component filters the provided list of filters, excluding\n * those which have the `totalResults` property exactly equal to `0`. It won't remove filters with\n * no `totalResults` property.\n *\n * The new list of filters is bound to the default scoped slot. As this component does not render\n * no root element, this default slot must contain a single root node.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class ExcludeFiltersWithNoResults extends mixins(FiltersInjectionMixin) {\n /**\n * Removes the filters that have exactly 0 results associated.\n *\n * @returns A sublist of the filters prop, excluding the ones with no results.\n * @internal\n */\n @XProvide('filters')\n public get filtersWithResults(): Filter[] {\n return this.renderedFilters.filter(\n filter => !isBooleanFilter(filter) || filter.totalResults !== 0\n );\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.filtersWithResults })?.[0] ?? h();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;;;AAaA;IAAyD,+CAA6B;IAAtF;;KAiBC;IATC,sBAAW,2DAAkB;;;;;;;aAA7B;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAChC,UAAA,MAAM,IAAI,OAAA,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,GAAA,CAChE,CAAC;SACH;;;OAAA;IAED,4CAAM,GAAN,UAAO,CAAgB;;QACrB,OAAO,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,OAAO,mDAAG,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,0CAAG,CAAC,CAAC,mCAAI,CAAC,EAAE,CAAC;KACtF;IARD;QADC,QAAQ,CAAC,SAAS,CAAC;yEAKnB;IAZkB,2BAA2B;QAH/C,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,2BAA2B,CAiB/C;IAAD,kCAAC;CAjBD,CAAyD,MAAM,CAAC,qBAAqB,CAAC;;;;"}
1
+ {"version":3,"file":"exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/exclude-filters-with-no-results.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { CreateElement, VNode } from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * The `ExcludeFiltersWithNoResults` component filters the provided list of filters, excluding\n * those which have the `totalResults` property exactly equal to `0`. It won't remove filters with\n * no `totalResults` property.\n *\n * The new list of filters is bound to the default scoped slot. As this component does not render\n * no root element, this default slot must contain a single root node.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class ExcludeFiltersWithNoResults extends mixins(FiltersInjectionMixin) {\n /**\n * Removes the filters that have exactly 0 results associated.\n *\n * @returns A sublist of the filters prop, excluding the ones with no results.\n * @internal\n */\n @XProvide('filters')\n public get filtersWithResults(): Filter[] {\n return this.renderedFilters.filter(\n filter => !isBooleanFilter(filter) || filter.totalResults !== 0\n );\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.filtersWithResults })?.[0] ?? h();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;;;AAaA;IAAyD,+CAA6B;IAAtF;;KAiBC;IATC,sBAAW,2DAAkB;;;;;;;aAA7B;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAChC,UAAA,MAAM,IAAI,OAAA,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,GAAA,CAChE,CAAC;SACH;;;OAAA;IAED,4CAAM,GAAN,UAAO,CAAgB;;QACrB,OAAO,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,OAAO,mDAAG,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,0CAAG,CAAC,CAAC,mCAAI,CAAC,EAAE,CAAC;KACtF;IARD;QADC,QAAQ,CAAC,SAAS,CAAC;yEAKnB;IAZkB,2BAA2B;QAH/C,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,2BAA2B,CAiB/C;IAAD,kCAAC;CAjBD,CAAyD,MAAM,CAAC,qBAAqB,CAAC;;;;"}
@@ -6,7 +6,7 @@ import script from './filters-list.vue_rollup-plugin-vue=script.js';
6
6
  var __vue_script__ = script;
7
7
 
8
8
  /* template */
9
- var __vue_render__ = function() {
9
+ var __vue_render__ = function () {
10
10
  var _vm = this;
11
11
  var _h = _vm.$createElement;
12
12
  var _c = _vm._self._c || _h;
@@ -17,15 +17,15 @@ var __vue_render__ = function() {
17
17
  tag: "component",
18
18
  staticClass: "x-list x-filters",
19
19
  class: _vm.cssClasses,
20
- attrs: { tag: "ul", "data-test": "base-filters" }
20
+ attrs: { tag: "ul", "data-test": "base-filters" },
21
21
  },
22
- _vm._l(_vm.renderedFilters, function(filter) {
22
+ _vm._l(_vm.renderedFilters, function (filter) {
23
23
  return _c(
24
24
  "li",
25
25
  {
26
26
  key: filter.id,
27
27
  staticClass: "x-filters__item",
28
- attrs: { "data-test": "base-filters-item" }
28
+ attrs: { "data-test": "base-filters-item" },
29
29
  },
30
30
  [_vm._t("default", null, { filter: filter })],
31
31
  2
@@ -41,11 +41,11 @@ __vue_render__._withStripped = true;
41
41
  /* style */
42
42
  var __vue_inject_styles__ = function (inject) {
43
43
  if (!inject) { return }
44
- inject("data-v-60b93f3f_0", { source: ".x-filters[data-v-60b93f3f] {\n list-style-type: none;\n}", map: undefined, media: undefined });
44
+ inject("data-v-235e2554_0", { source: ".x-filters[data-v-235e2554] {\n list-style-type: none;\n}", map: undefined, media: undefined });
45
45
 
46
46
  };
47
47
  /* scoped */
48
- var __vue_scope_id__ = "data-v-60b93f3f";
48
+ var __vue_scope_id__ = "data-v-235e2554";
49
49
  /* module identifier */
50
50
  var __vue_module_identifier__ = undefined;
51
51
  /* functional template */
@@ -1 +1 @@
1
- {"version":3,"file":"filters-list.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"hasFiltersToRender\"\n tag=\"ul\"\n class=\"x-list x-filters\"\n :class=\"cssClasses\"\n data-test=\"base-filters\"\n >\n <li\n v-for=\"filter in renderedFilters\"\n :key=\"filter.id\"\n class=\"x-filters__item\"\n data-test=\"base-filters-item\"\n >\n <!--\n @slot (Required) Filter content\n @binding {Filter} filter - Search-types filter data.\n -->\n <slot :filter=\"filter\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { mixins } from 'vue-class-component';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../../components';\n import { VueCSSClasses } from '../../../../utils/types';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * Renders a list with a list item per each\n * {@link @empathyco/x-types#BooleanFilter | BooleanFilter} in the filters prop array.\n * Each list item has a scoped slot, passing the filter as slot prop.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class FiltersList extends mixins(FiltersInjectionMixin) {\n /**\n * Animation component that will be used to animate the base filters.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * It handles if the filters should be rendered.\n *\n * @returns True if there are filters.\n *\n * @public\n */\n protected get hasFiltersToRender(): boolean {\n return this.renderedFilters?.length > 0;\n }\n\n /**\n * Checks if at least one filter is selected.\n *\n * @returns True if at least one filter is selected. False otherwise.\n * @internal\n */\n protected get hasSelectedFilters(): boolean {\n return !!this.renderedFilters?.some(filter => filter.selected);\n }\n\n /**\n * Dynamic CSS classes for the root element of this component.\n *\n * @returns An object containing the dynamic CSS classes and a boolean indicating if they should\n * be added or not.\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-filters {\n list-style-type: none;\n }\n</style>\n\n<docs lang=\"mdx\">\n# Examples\n\nRenders a list with a list item per each filter in the filters prop array. Each list item has a\nscoped slot, passing the filter as slot prop.\n\n## Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n## Basic usage\n\nUsing default slot:\n\n```vue\n<FiltersList :filters=\"filters\">\n <template #default=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </template>\n</FiltersList>\n```\n\nUsing default slot abbreviated syntax:\n\n```vue\n<FiltersList :filters=\"filters\" v-slot=\"{ filter }\">\n <p>{{ filter.label }}</p>\n</FiltersList>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component ,\n> the rest of components will inject this list.\n\n```vue\n<SlicedFilters :filters=\"filters\">\n <FiltersList v-slot=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </FiltersList>\n</SlicedFilters>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"filters-list.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"hasFiltersToRender\"\n tag=\"ul\"\n class=\"x-list x-filters\"\n :class=\"cssClasses\"\n data-test=\"base-filters\"\n >\n <li\n v-for=\"filter in renderedFilters\"\n :key=\"filter.id\"\n class=\"x-filters__item\"\n data-test=\"base-filters-item\"\n >\n <!--\n @slot (Required) Filter content\n @binding {Filter} filter - Search-types filter data.\n -->\n <slot :filter=\"filter\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { mixins } from 'vue-class-component';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../../components';\n import { VueCSSClasses } from '../../../../utils/types';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * Renders a list with a list item per each\n * {@link @empathyco/x-types#BooleanFilter | BooleanFilter} in the filters prop array.\n * Each list item has a scoped slot, passing the filter as slot prop.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class FiltersList extends mixins(FiltersInjectionMixin) {\n /**\n * Animation component that will be used to animate the base filters.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * It handles if the filters should be rendered.\n *\n * @returns True if there are filters.\n *\n * @public\n */\n protected get hasFiltersToRender(): boolean {\n return this.renderedFilters?.length > 0;\n }\n\n /**\n * Checks if at least one filter is selected.\n *\n * @returns True if at least one filter is selected. False otherwise.\n * @internal\n */\n protected get hasSelectedFilters(): boolean {\n return !!this.renderedFilters?.some(filter => filter.selected);\n }\n\n /**\n * Dynamic CSS classes for the root element of this component.\n *\n * @returns An object containing the dynamic CSS classes and a boolean indicating if they should\n * be added or not.\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-filters {\n list-style-type: none;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nRenders a list with a list item per each filter in the filters prop array. Each list item has a\nscoped slot, passing the filter as slot prop.\n\n### Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n### Basic usage\n\nUsing default slot:\n\n```vue\n<FiltersList :filters=\"filters\">\n <template #default=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </template>\n</FiltersList>\n```\n\nUsing default slot abbreviated syntax:\n\n```vue\n<FiltersList :filters=\"filters\" v-slot=\"{ filter }\">\n <p>{{ filter.label }}</p>\n</FiltersList>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component ,\n> the rest of components will inject this list.\n\n```vue\n<SlicedFilters :filters=\"filters\">\n <FiltersList v-slot=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </FiltersList>\n</SlicedFilters>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,7 +7,7 @@ import '../../../../components/animations/collapse-height.vue.js';
7
7
  import '../../../../components/animations/collapse-width.vue.js';
8
8
  import '../../../../components/animations/cross-fade.vue.js';
9
9
  import '../../../../components/animations/fade-and-slide.vue.js';
10
- import '../../../../components/staggering-transition-group.vue.js';
10
+ import '../../../../components/animations/staggering-transition-group.vue.js';
11
11
  import '../../../../components/animations/staggered-fade-and-slide.vue.js';
12
12
  import '../../../../components/animations/translate-from-left.vue.js';
13
13
  import '../../../../components/animations/translate-from-right.vue.js';
@@ -63,21 +63,30 @@ import '../../../../components/icons/plus.vue.js';
63
63
  import '../../../../components/icons/search.vue.js';
64
64
  import '../../../../components/icons/show.vue.js';
65
65
  import '../../../../components/icons/search-tiny.vue.js';
66
+ import '../../../../components/icons/tag.vue.js';
66
67
  import '../../../../components/icons/trash-open.vue.js';
67
68
  import '../../../../components/icons/trash.vue.js';
68
69
  import '../../../../components/icons/trending-tiny.vue.js';
69
70
  import '../../../../components/icons/trending.vue.js';
70
71
  import '../../../../components/icons/user.vue.js';
71
- import '../../../../components/modals/base-events-modal-close.vue.js';
72
+ import '../../../../components/decorators/store.decorators.js';
73
+ import '../../../../components/x-component.utils.js';
74
+ import { xComponentMixin } from '../../../../components/x-component.mixin.js';
72
75
  import '../../../../components/modals/base-modal.vue.js';
76
+ import '../../../../components/modals/base-id-modal.vue.js';
77
+ import '../../../../components/scroll/scroll.mixin.js';
78
+ import '../../../../components/scroll/base-scroll.vue.js';
79
+ import '../../../../components/layouts/fixed-header-and-asides-layout.vue.js';
80
+ import '../../../../components/panels/base-toggle-panel.vue.js';
81
+ import '../../../../components/panels/base-id-toggle-panel.vue.js';
82
+ import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
83
+ import '../../../../components/layouts/single-column-layout.vue.js';
84
+ import '../../../../components/modals/base-events-modal-close.vue.js';
73
85
  import '../../../../components/modals/base-events-modal.vue.js';
74
86
  import '../../../../components/modals/base-events-modal-open.vue.js';
75
- import '../../../../components/modals/base-id-modal.vue.js';
76
87
  import '../../../../components/modals/base-id-modal-close.vue.js';
77
88
  import '../../../../components/modals/base-id-modal-open.vue.js';
78
- import '../../../../components/panels/base-toggle-panel.vue.js';
79
89
  import '../../../../components/panels/base-header-toggle-panel.vue.js';
80
- import '../../../../components/panels/base-id-toggle-panel.vue.js';
81
90
  import '../../../../components/panels/base-id-toggle-panel-button.vue.js';
82
91
  import '../../../../components/result/base-result-add-to-cart.vue.js';
83
92
  import '../../../../components/result/base-result-current-price.vue.js';
@@ -86,8 +95,6 @@ import '../../../../components/result/base-result-link.vue.js';
86
95
  import '../../../../components/result/base-result-previous-price.vue.js';
87
96
  import '../../../../components/result/base-result-fallback-image.vue.js';
88
97
  import '../../../../components/result/base-result-placeholder-image.vue.js';
89
- import '../../../../components/scroll/scroll.mixin.js';
90
- import '../../../../components/scroll/base-scroll.vue.js';
91
98
  import '../../../../components/suggestions/base-suggestion.vue.js';
92
99
  import '../../../../components/suggestions/base-suggestions.vue.js';
93
100
  import '../../../../components/auto-progress-bar.vue.js';
@@ -98,12 +105,9 @@ import '../../../../components/base-variable-column-grid.vue.js';
98
105
  import '../../../../components/decorators/debounce.decorators.js';
99
106
  import '../../../../components/sliding-panel.vue.js';
100
107
  import '../../../../components/items-list.vue.js';
101
- import '../../../../components/decorators/store.decorators.js';
102
- import '../../../../components/x-component.utils.js';
103
- import { xComponentMixin } from '../../../../components/x-component.mixin.js';
104
- import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
105
- import '../../../../components/layouts/single-column-layout.vue.js';
106
108
  import '../../../../components/location-provider.vue.js';
109
+ import '../../../../components/global-x-bus.vue.js';
110
+ import '../../../../components/snippet-callbacks.vue.js';
107
111
  import '../../../../components/items-list-injection.mixin.js';
108
112
  import { facetsXModule } from '../../x-module.js';
109
113
  import FiltersInjectionMixin from './filters-injection.mixin.js';
@@ -1 +1 @@
1
- {"version":3,"file":"filters-list.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-list.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { xComponentMixin } from '../../../../components';\nimport { VueCSSClasses } from '../../../../utils/types';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Renders a list with a list item per each\n * {@link @empathyco/x-types#BooleanFilter | BooleanFilter} in the filters prop array.\n * Each list item has a scoped slot, passing the filter as slot prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FiltersList extends mixins(FiltersInjectionMixin) {\n /**\n * Animation component that will be used to animate the base filters.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * It handles if the filters should be rendered.\n *\n * @returns True if there are filters.\n *\n * @public\n */\n protected get hasFiltersToRender(): boolean {\n return this.renderedFilters?.length > 0;\n }\n\n /**\n * Checks if at least one filter is selected.\n *\n * @returns True if at least one filter is selected. False otherwise.\n * @internal\n */\n protected get hasSelectedFilters(): boolean {\n return !!this.renderedFilters?.some(filter => filter.selected);\n }\n\n /**\n * Dynamic CSS classes for the root element of this component.\n *\n * @returns An object containing the dynamic CSS classes and a boolean indicating if they should\n * be added or not.\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA;;;;;;;AAUA;IAAyC,+BAA6B;IAAtE;;KAyCC;IAzBC,sBAAc,2CAAkB;;;;;;;;aAAhC;;YACE,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,MAAM,IAAG,CAAC,CAAC;SACzC;;;OAAA;IAQD,sBAAc,2CAAkB;;;;;;;aAAhC;;YACE,OAAO,CAAC,EAAC,MAAA,IAAI,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,QAAQ,GAAA,CAAC,CAAA,CAAC;SAChE;;;OAAA;IAQD,sBAAc,mCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,iCAAiC,EAAE,IAAI,CAAC,kBAAkB;aAC3D,CAAC;SACH;;;OAAA;IAjCD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACW;IAPhB,WAAW;QAH/B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,WAAW,CAyC/B;IAAD,kBAAC;CAzCD,CAAyC,MAAM,CAAC,qBAAqB,CAAC;;;;"}
1
+ {"version":3,"file":"filters-list.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-list.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { xComponentMixin } from '../../../../components';\nimport { VueCSSClasses } from '../../../../utils/types';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Renders a list with a list item per each\n * {@link @empathyco/x-types#BooleanFilter | BooleanFilter} in the filters prop array.\n * Each list item has a scoped slot, passing the filter as slot prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FiltersList extends mixins(FiltersInjectionMixin) {\n /**\n * Animation component that will be used to animate the base filters.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * It handles if the filters should be rendered.\n *\n * @returns True if there are filters.\n *\n * @public\n */\n protected get hasFiltersToRender(): boolean {\n return this.renderedFilters?.length > 0;\n }\n\n /**\n * Checks if at least one filter is selected.\n *\n * @returns True if at least one filter is selected. False otherwise.\n * @internal\n */\n protected get hasSelectedFilters(): boolean {\n return !!this.renderedFilters?.some(filter => filter.selected);\n }\n\n /**\n * Dynamic CSS classes for the root element of this component.\n *\n * @returns An object containing the dynamic CSS classes and a boolean indicating if they should\n * be added or not.\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters--has-selected-filters': this.hasSelectedFilters\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA;;;;;;;AAUA;IAAyC,+BAA6B;IAAtE;;KAyCC;IAzBC,sBAAc,2CAAkB;;;;;;;;aAAhC;;YACE,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,MAAM,IAAG,CAAC,CAAC;SACzC;;;OAAA;IAQD,sBAAc,2CAAkB;;;;;;;aAAhC;;YACE,OAAO,CAAC,EAAC,MAAA,IAAI,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,QAAQ,GAAA,CAAC,CAAA,CAAC;SAChE;;;OAAA;IAQD,sBAAc,mCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,iCAAiC,EAAE,IAAI,CAAC,kBAAkB;aAC3D,CAAC;SACH;;;OAAA;IAjCD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACW;IAPhB,WAAW;QAH/B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,WAAW,CAyC/B;IAAD,kBAAC;CAzCD,CAAyC,MAAM,CAAC,qBAAqB,CAAC;;;;"}
@@ -6,7 +6,7 @@ import script from './filters-search.vue_rollup-plugin-vue=script.js';
6
6
  var __vue_script__ = script;
7
7
 
8
8
  /* template */
9
- var __vue_render__ = function() {
9
+ var __vue_render__ = function () {
10
10
  var _vm = this;
11
11
  var _h = _vm.$createElement;
12
12
  var _c = _vm._self._c || _h;
@@ -15,31 +15,29 @@ var __vue_render__ = function() {
15
15
  {
16
16
  staticClass: "x-list x-filters-search",
17
17
  class: _vm.cssClasses,
18
- attrs: { "data-test": "filters-search" }
18
+ attrs: { "data-test": "filters-search" },
19
19
  },
20
20
  [
21
21
  _vm._t(
22
22
  "search",
23
- function() {
23
+ function () {
24
24
  return [
25
25
  _c("input", {
26
26
  staticClass: "x-input x-filters-search__input",
27
27
  attrs: { type: "search", "data-test": "filters-search-input" },
28
28
  domProps: { value: _vm.query },
29
29
  on: {
30
- input: function($event) {
30
+ input: function ($event) {
31
31
  return _vm.setQuery($event.target.value)
32
- }
33
- }
34
- })
35
- ]
32
+ },
33
+ },
34
+ }) ]
36
35
  },
37
36
  null,
38
37
  { query: _vm.query, setQuery: _vm.setQuery, clearQuery: _vm.clearQuery }
39
38
  ),
40
39
  _vm._v(" "),
41
- _vm._t("default", null, { siftedFilters: _vm.siftedFilters })
42
- ],
40
+ _vm._t("default", null, { siftedFilters: _vm.siftedFilters }) ],
43
41
  2
44
42
  )
45
43
  };
@@ -49,11 +47,11 @@ __vue_render__._withStripped = true;
49
47
  /* style */
50
48
  var __vue_inject_styles__ = function (inject) {
51
49
  if (!inject) { return }
52
- inject("data-v-6dea32a6_0", { source: ".x-filters-search__input[data-v-6dea32a6]::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n}\n.x-filters-search__input[data-v-6dea32a6]::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n}\n.x-filters-search__input[data-v-6dea32a6]::-webkit-search-decoration, .x-filters-search__input[data-v-6dea32a6]::-webkit-search-cancel-button, .x-filters-search__input[data-v-6dea32a6]::-webkit-search-results-button, .x-filters-search__input[data-v-6dea32a6]::-webkit-search-results-decoration {\n display: none;\n}", map: undefined, media: undefined });
50
+ inject("data-v-79468ae4_0", { source: ".x-filters-search__input[data-v-79468ae4]::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n}\n.x-filters-search__input[data-v-79468ae4]::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n}\n.x-filters-search__input[data-v-79468ae4]::-webkit-search-decoration, .x-filters-search__input[data-v-79468ae4]::-webkit-search-cancel-button, .x-filters-search__input[data-v-79468ae4]::-webkit-search-results-button, .x-filters-search__input[data-v-79468ae4]::-webkit-search-results-decoration {\n display: none;\n}", map: undefined, media: undefined });
53
51
 
54
52
  };
55
53
  /* scoped */
56
- var __vue_scope_id__ = "data-v-6dea32a6";
54
+ var __vue_scope_id__ = "data-v-79468ae4";
57
55
  /* module identifier */
58
56
  var __vue_module_identifier__ = undefined;
59
57
  /* functional template */
@@ -1 +1 @@
1
- {"version":3,"file":"filters-search.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-search.vue"],"sourcesContent":["<template>\n <div class=\"x-list x-filters-search\" :class=\"cssClasses\" data-test=\"filters-search\">\n <!--\n @slot Search content. It is the content which triggers the filters sifting.\n @binding {string} query - The query to search in filters.\n @binding {Function} setQuery - The function to set the query. The query is passed as\n parameter.\n @binding {Function} clearQuery - The function to clear the query.\n -->\n <slot name=\"search\" v-bind=\"{ query, setQuery, clearQuery }\">\n <input\n @input=\"setQuery($event.target.value)\"\n :value=\"query\"\n type=\"search\"\n class=\"x-input x-filters-search__input\"\n data-test=\"filters-search-input\"\n />\n </slot>\n <!--\n @slot (Required) Sifted filters content.\n @binding {Filter[]} siftedFilters - Sifted filters data.\n -->\n <slot :siftedFilters=\"siftedFilters\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { Filter, isBooleanFilter } from '@empathyco/x-types';\n import { mixins } from 'vue-class-component';\n import { Component, Prop, Watch } from 'vue-property-decorator';\n import { xComponentMixin, XProvide } from '../../../../components';\n import { debounce } from '../../../../utils/debounce';\n import { normalizeString } from '../../../../utils/normalize';\n import { DebouncedFunction, VueCSSClasses } from '../../../../utils/types';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * Renders the filters sifted with the input query.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class FiltersSearch extends mixins(FiltersInjectionMixin) {\n /** The debounce time for applying the filter sifting. */\n @Prop({ default: 200 })\n protected debounceInMs!: number;\n\n protected query = '';\n protected setQueryDebounced!: DebouncedFunction<[string]>;\n\n /**\n * Set the debounce function for setting the query debounced.\n *\n * @internal\n */\n @Watch('debounceInMs', { immediate: true })\n updateSetQueryDebounced(): void {\n this.setQueryDebounced = debounce(query => {\n this.query = query;\n }, this.debounceInMs);\n }\n\n /**\n * Sift the array of filters which matches with the query.\n *\n * @returns Array of sifted filters.\n * @internal\n */\n @XProvide('filters')\n public get siftedFilters(): Filter[] {\n const normalizedQuery = normalizeString(this.query);\n return this.renderedFilters.filter(\n filter => isBooleanFilter(filter) && normalizeString(filter.label).includes(normalizedQuery)\n );\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The class to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters-search--is-sifted': !!this.query\n };\n }\n\n /**\n * Set the query through the debounced function.\n *\n * @param query - The query to sift filters.\n * @internal\n */\n protected setQuery(query: string): void {\n this.setQueryDebounced(query);\n }\n\n /**\n * Clear the query.\n *\n * @internal\n */\n protected clearQuery(): void {\n this.query = '';\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-filters-search__input {\n &::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n }\n\n &::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n# Examples\n\nIt renders an input and a list of filters passed as prop or being injected. The list of filters can\nbe sifted with the query typed in the input. This component has also a debounce prop to set the time\nin milliseconds to apply the filters search. Moreover, it has two scoped slots. The first one for\ncustomize the search triggering with three slot props; the query, a function to set the query by\nsifting and a third one for cleaning the query. The second scoped slot is required and it is for\ndisplaying the list of filters sifted. It has a slot prop with these filters sifted.\n\n## Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n## Basic usage\n\nUsing default and required slot:\n\n```vue\n<FiltersSearch :filters=\"filters\" v-slot=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n</FiltersSearch>\n```\n\nSetting debounce time:\n\n```vue\n<FiltersSearch :filters=\"filters\" :debounceInMs=\"500\" v-slot=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n</FiltersSearch>\n```\n\nReplacing search triggering:\n\n```vue\n<FiltersSearch :filters=\"filters\">\n <template #search=\"{ query, setQuery, clearQuery }\">\n <input\n @input=\"setQuery($event.target.value)\"\n :value=\"query\"\n class=\"x-input x-filters-search__input\"/>\n <button @click=\"clearQuery\">X</button>\n </template>\n <template #default=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n </template>\n</FiltersSearch>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component,\n> the rest of components will inject this list.\n\n```vue\n<Facets v-slot=\"{ facet }\">\n <SlicedFilters :filters=\"facet.filters\" :max=\"8\">\n <FiltersSearch >\n <Filters v-slot=\"{ filter }\">\n <SimpleFilter :filter=\"filter\" data-test=\"brand-filter\" />\n </Filters>\n </FiltersSearch>\n </SlicedFilters>\n</Facets>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"filters-search.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-search.vue"],"sourcesContent":["<template>\n <div class=\"x-list x-filters-search\" :class=\"cssClasses\" data-test=\"filters-search\">\n <!--\n @slot Search content. It is the content which triggers the filters sifting.\n @binding {string} query - The query to search in filters.\n @binding {Function} setQuery - The function to set the query. The query is passed as\n parameter.\n @binding {Function} clearQuery - The function to clear the query.\n -->\n <slot name=\"search\" v-bind=\"{ query, setQuery, clearQuery }\">\n <input\n @input=\"setQuery($event.target.value)\"\n :value=\"query\"\n type=\"search\"\n class=\"x-input x-filters-search__input\"\n data-test=\"filters-search-input\"\n />\n </slot>\n <!--\n @slot (Required) Sifted filters content.\n @binding {Filter[]} siftedFilters - Sifted filters data.\n -->\n <slot :siftedFilters=\"siftedFilters\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { Filter, isBooleanFilter } from '@empathyco/x-types';\n import { mixins } from 'vue-class-component';\n import { Component, Prop, Watch } from 'vue-property-decorator';\n import { xComponentMixin, XProvide } from '../../../../components';\n import { debounce } from '../../../../utils/debounce';\n import { normalizeString } from '../../../../utils/normalize';\n import { DebouncedFunction, VueCSSClasses } from '../../../../utils/types';\n import { facetsXModule } from '../../x-module';\n import FiltersInjectionMixin from './filters-injection.mixin';\n\n /**\n * Renders the filters sifted with the input query.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class FiltersSearch extends mixins(FiltersInjectionMixin) {\n /** The debounce time for applying the filter sifting. */\n @Prop({ default: 200 })\n protected debounceInMs!: number;\n\n protected query = '';\n protected setQueryDebounced!: DebouncedFunction<[string]>;\n\n /**\n * Set the debounce function for setting the query debounced.\n *\n * @internal\n */\n @Watch('debounceInMs', { immediate: true })\n updateSetQueryDebounced(): void {\n this.setQueryDebounced = debounce(query => {\n this.query = query;\n }, this.debounceInMs);\n }\n\n /**\n * Sift the array of filters which matches with the query.\n *\n * @returns Array of sifted filters.\n * @internal\n */\n @XProvide('filters')\n public get siftedFilters(): Filter[] {\n const normalizedQuery = normalizeString(this.query);\n return this.renderedFilters.filter(\n filter => isBooleanFilter(filter) && normalizeString(filter.label).includes(normalizedQuery)\n );\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The class to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters-search--is-sifted': !!this.query\n };\n }\n\n /**\n * Set the query through the debounced function.\n *\n * @param query - The query to sift filters.\n * @internal\n */\n protected setQuery(query: string): void {\n this.setQueryDebounced(query);\n }\n\n /**\n * Clear the query.\n *\n * @internal\n */\n protected clearQuery(): void {\n this.query = '';\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-filters-search__input {\n &::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n }\n\n &::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nIt renders an input and a list of filters passed as prop or being injected. The list of filters can\nbe sifted with the query typed in the input. This component has also a debounce prop to set the time\nin milliseconds to apply the filters search. Moreover, it has two scoped slots. The first one for\ncustomize the search triggering with three slot props; the query, a function to set the query by\nsifting and a third one for cleaning the query. The second scoped slot is required and it is for\ndisplaying the list of filters sifted. It has a slot prop with these filters sifted.\n\n### Important\n\nThe component has two ways of receive the filters list, it can be injected by another component or\nbe send it as a prop. If the component doesnt have a parent component that receive and exposed a\nfilters list to their children, it is mandatory to send it as prop.\n\n### Basic usage\n\nUsing default and required slot:\n\n```vue\n<FiltersSearch :filters=\"filters\" v-slot=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n</FiltersSearch>\n```\n\nSetting debounce time:\n\n```vue\n<FiltersSearch :filters=\"filters\" :debounceInMs=\"500\" v-slot=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n</FiltersSearch>\n```\n\nReplacing search triggering:\n\n```vue\n<FiltersSearch :filters=\"filters\">\n <template #search=\"{ query, setQuery, clearQuery }\">\n <input\n @input=\"setQuery($event.target.value)\"\n :value=\"query\"\n class=\"x-input x-filters-search__input\"/>\n <button @click=\"clearQuery\">X</button>\n </template>\n <template #default=\"{ siftedFilters }\">\n <ul v-for=\"filter in siftedFilters\">\n <li :key=\"filter.id\">{{ filter.label }}</li>\n </ul>\n </template>\n</FiltersSearch>\n```\n\n> **Using injection**: It can receive the filters list by injection. It only works if it has a\n> parent component that receives and exposes the filters list. Using the injection, It is not\n> necessary to send the prop to the child components, it has to be send it in the parent component,\n> the rest of components will inject this list.\n\n```vue\n<Facets v-slot=\"{ facet }\">\n <SlicedFilters :filters=\"facet.filters\" :max=\"8\">\n <FiltersSearch >\n <Filters v-slot=\"{ filter }\">\n <SimpleFilter :filter=\"filter\" data-test=\"brand-filter\" />\n </Filters>\n </FiltersSearch>\n </SlicedFilters>\n</Facets>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,7 +9,7 @@ import '../../../../components/animations/cross-fade.vue.js';
9
9
  import '../../../../components/animations/fade-and-slide.vue.js';
10
10
  import { debounce } from '../../../../utils/debounce.js';
11
11
  import { normalizeString } from '../../../../utils/normalize.js';
12
- import '../../../../components/staggering-transition-group.vue.js';
12
+ import '../../../../components/animations/staggering-transition-group.vue.js';
13
13
  import '../../../../components/animations/staggered-fade-and-slide.vue.js';
14
14
  import '../../../../components/animations/translate-from-left.vue.js';
15
15
  import '../../../../components/animations/translate-from-right.vue.js';
@@ -65,21 +65,30 @@ import '../../../../components/icons/plus.vue.js';
65
65
  import '../../../../components/icons/search.vue.js';
66
66
  import '../../../../components/icons/show.vue.js';
67
67
  import '../../../../components/icons/search-tiny.vue.js';
68
+ import '../../../../components/icons/tag.vue.js';
68
69
  import '../../../../components/icons/trash-open.vue.js';
69
70
  import '../../../../components/icons/trash.vue.js';
70
71
  import '../../../../components/icons/trending-tiny.vue.js';
71
72
  import '../../../../components/icons/trending.vue.js';
72
73
  import '../../../../components/icons/user.vue.js';
73
- import '../../../../components/modals/base-events-modal-close.vue.js';
74
+ import '../../../../components/decorators/store.decorators.js';
75
+ import '../../../../components/x-component.utils.js';
76
+ import { xComponentMixin } from '../../../../components/x-component.mixin.js';
74
77
  import '../../../../components/modals/base-modal.vue.js';
78
+ import '../../../../components/modals/base-id-modal.vue.js';
79
+ import '../../../../components/scroll/scroll.mixin.js';
80
+ import '../../../../components/scroll/base-scroll.vue.js';
81
+ import '../../../../components/layouts/fixed-header-and-asides-layout.vue.js';
82
+ import '../../../../components/panels/base-toggle-panel.vue.js';
83
+ import '../../../../components/panels/base-id-toggle-panel.vue.js';
84
+ import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
85
+ import '../../../../components/layouts/single-column-layout.vue.js';
86
+ import '../../../../components/modals/base-events-modal-close.vue.js';
75
87
  import '../../../../components/modals/base-events-modal.vue.js';
76
88
  import '../../../../components/modals/base-events-modal-open.vue.js';
77
- import '../../../../components/modals/base-id-modal.vue.js';
78
89
  import '../../../../components/modals/base-id-modal-close.vue.js';
79
90
  import '../../../../components/modals/base-id-modal-open.vue.js';
80
- import '../../../../components/panels/base-toggle-panel.vue.js';
81
91
  import '../../../../components/panels/base-header-toggle-panel.vue.js';
82
- import '../../../../components/panels/base-id-toggle-panel.vue.js';
83
92
  import '../../../../components/panels/base-id-toggle-panel-button.vue.js';
84
93
  import '../../../../components/result/base-result-add-to-cart.vue.js';
85
94
  import '../../../../components/result/base-result-current-price.vue.js';
@@ -88,8 +97,6 @@ import '../../../../components/result/base-result-link.vue.js';
88
97
  import '../../../../components/result/base-result-previous-price.vue.js';
89
98
  import '../../../../components/result/base-result-fallback-image.vue.js';
90
99
  import '../../../../components/result/base-result-placeholder-image.vue.js';
91
- import '../../../../components/scroll/scroll.mixin.js';
92
- import '../../../../components/scroll/base-scroll.vue.js';
93
100
  import '../../../../components/suggestions/base-suggestion.vue.js';
94
101
  import '../../../../components/suggestions/base-suggestions.vue.js';
95
102
  import '../../../../components/auto-progress-bar.vue.js';
@@ -100,12 +107,9 @@ import '../../../../components/base-variable-column-grid.vue.js';
100
107
  import '../../../../components/decorators/debounce.decorators.js';
101
108
  import '../../../../components/sliding-panel.vue.js';
102
109
  import '../../../../components/items-list.vue.js';
103
- import '../../../../components/decorators/store.decorators.js';
104
- import '../../../../components/x-component.utils.js';
105
- import { xComponentMixin } from '../../../../components/x-component.mixin.js';
106
- import '../../../../components/layouts/multi-column-max-width-layout.vue.js';
107
- import '../../../../components/layouts/single-column-layout.vue.js';
108
110
  import '../../../../components/location-provider.vue.js';
111
+ import '../../../../components/global-x-bus.vue.js';
112
+ import '../../../../components/snippet-callbacks.vue.js';
109
113
  import '../../../../components/items-list-injection.mixin.js';
110
114
  import { isBooleanFilter } from '@empathyco/x-types';
111
115
  import { facetsXModule } from '../../x-module.js';
@@ -1 +1 @@
1
- {"version":3,"file":"filters-search.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-search.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { debounce } from '../../../../utils/debounce';\nimport { normalizeString } from '../../../../utils/normalize';\nimport { DebouncedFunction, VueCSSClasses } from '../../../../utils/types';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Renders the filters sifted with the input query.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FiltersSearch extends mixins(FiltersInjectionMixin) {\n /** The debounce time for applying the filter sifting. */\n @Prop({ default: 200 })\n protected debounceInMs!: number;\n\n protected query = '';\n protected setQueryDebounced!: DebouncedFunction<[string]>;\n\n /**\n * Set the debounce function for setting the query debounced.\n *\n * @internal\n */\n @Watch('debounceInMs', { immediate: true })\n updateSetQueryDebounced(): void {\n this.setQueryDebounced = debounce(query => {\n this.query = query;\n }, this.debounceInMs);\n }\n\n /**\n * Sift the array of filters which matches with the query.\n *\n * @returns Array of sifted filters.\n * @internal\n */\n @XProvide('filters')\n public get siftedFilters(): Filter[] {\n const normalizedQuery = normalizeString(this.query);\n return this.renderedFilters.filter(\n filter => isBooleanFilter(filter) && normalizeString(filter.label).includes(normalizedQuery)\n );\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The class to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters-search--is-sifted': !!this.query\n };\n }\n\n /**\n * Set the query through the debounced function.\n *\n * @param query - The query to sift filters.\n * @internal\n */\n protected setQuery(query: string): void {\n this.setQueryDebounced(query);\n }\n\n /**\n * Clear the query.\n *\n * @internal\n */\n protected clearQuery(): void {\n this.query = '';\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA;;;;;AAQA;IAA2C,iCAA6B;IAAxE;QAAA,qEAgEC;QA3DW,WAAK,GAAG,EAAE,CAAC;;KA2DtB;;;;;;IAlDC,+CAAuB,GAAvB;QADA,iBAKC;QAHC,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAA,KAAK;YACrC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACvB;IASD,sBAAW,wCAAa;;;;;;;aAAxB;YACE,IAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAChC,UAAA,MAAM,IAAI,OAAA,eAAe,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAA,CAC7F,CAAC;SACH;;;OAAA;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,6BAA6B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;aAC5C,CAAC;SACH;;;OAAA;;;;;;;IAQS,gCAAQ,GAAlB,UAAmB,KAAa;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAC/B;;;;;;IAOS,kCAAU,GAApB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;IA5DD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;uDACS;IAWhC;QADC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gEAK1C;IASD;QADC,QAAQ,CAAC,SAAS,CAAC;sDAMnB;IAhCkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAgEjC;IAAD,oBAAC;CAhED,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
1
+ {"version":3,"file":"filters-search.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/filters-search.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { debounce } from '../../../../utils/debounce';\nimport { normalizeString } from '../../../../utils/normalize';\nimport { DebouncedFunction, VueCSSClasses } from '../../../../utils/types';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Renders the filters sifted with the input query.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class FiltersSearch extends mixins(FiltersInjectionMixin) {\n /** The debounce time for applying the filter sifting. */\n @Prop({ default: 200 })\n protected debounceInMs!: number;\n\n protected query = '';\n protected setQueryDebounced!: DebouncedFunction<[string]>;\n\n /**\n * Set the debounce function for setting the query debounced.\n *\n * @internal\n */\n @Watch('debounceInMs', { immediate: true })\n updateSetQueryDebounced(): void {\n this.setQueryDebounced = debounce(query => {\n this.query = query;\n }, this.debounceInMs);\n }\n\n /**\n * Sift the array of filters which matches with the query.\n *\n * @returns Array of sifted filters.\n * @internal\n */\n @XProvide('filters')\n public get siftedFilters(): Filter[] {\n const normalizedQuery = normalizeString(this.query);\n return this.renderedFilters.filter(\n filter => isBooleanFilter(filter) && normalizeString(filter.label).includes(normalizedQuery)\n );\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The class to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-filters-search--is-sifted': !!this.query\n };\n }\n\n /**\n * Set the query through the debounced function.\n *\n * @param query - The query to sift filters.\n * @internal\n */\n protected setQuery(query: string): void {\n this.setQueryDebounced(query);\n }\n\n /**\n * Clear the query.\n *\n * @internal\n */\n protected clearQuery(): void {\n this.query = '';\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA;;;;;AAQA;IAA2C,iCAA6B;IAAxE;QAAA,qEAgEC;QA3DW,WAAK,GAAG,EAAE,CAAC;;KA2DtB;;;;;;IAlDC,+CAAuB,GAAvB;QADA,iBAKC;QAHC,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAA,KAAK;YACrC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACvB;IASD,sBAAW,wCAAa;;;;;;;aAAxB;YACE,IAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAChC,UAAA,MAAM,IAAI,OAAA,eAAe,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAA,CAC7F,CAAC;SACH;;;OAAA;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,6BAA6B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;aAC5C,CAAC;SACH;;;OAAA;;;;;;;IAQS,gCAAQ,GAAlB,UAAmB,KAAa;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAC/B;;;;;;IAOS,kCAAU,GAApB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;IA5DD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;uDACS;IAWhC;QADC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gEAK1C;IASD;QADC,QAAQ,CAAC,SAAS,CAAC;sDAMnB;IAhCkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAgEjC;IAAD,oBAAC;CAhED,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
@@ -5,7 +5,7 @@ import script from './selected-filters-list.vue_rollup-plugin-vue=script.js';
5
5
  var __vue_script__ = script;
6
6
 
7
7
  /* template */
8
- var __vue_render__ = function() {
8
+ var __vue_render__ = function () {
9
9
  var _vm = this;
10
10
  var _h = _vm.$createElement;
11
11
  var _c = _vm._self._c || _h;
@@ -15,7 +15,7 @@ var __vue_render__ = function() {
15
15
  [
16
16
  {
17
17
  key: "default",
18
- fn: function(ref) {
18
+ fn: function (ref) {
19
19
  var selectedFilters = ref.selectedFilters;
20
20
  return [
21
21
  _c(
@@ -23,9 +23,9 @@ var __vue_render__ = function() {
23
23
  {
24
24
  tag: "component",
25
25
  staticClass: "x-list x-selected-filters-list",
26
- attrs: { "data-test": "selected-filters-list", tag: "ul" }
26
+ attrs: { "data-test": "selected-filters-list", tag: "ul" },
27
27
  },
28
- _vm._l(_vm.mapSlot(selectedFilters), function(ref) {
28
+ _vm._l(_vm.mapSlot(selectedFilters), function (ref) {
29
29
  var slotName = ref.slotName;
30
30
  var selectedFilter = ref.selectedFilter;
31
31
  return _c(
@@ -33,47 +33,41 @@ var __vue_render__ = function() {
33
33
  {
34
34
  key: selectedFilter.id,
35
35
  staticClass: "x-selected-filters-list__item",
36
- attrs: { "data-test": "selected-filters-list-item" }
36
+ attrs: { "data-test": "selected-filters-list-item" },
37
37
  },
38
38
  [
39
39
  _vm.$scopedSlots[slotName]
40
40
  ? _vm._t(
41
41
  slotName,
42
- function() {
42
+ function () {
43
43
  return [
44
44
  _c("span", { staticClass: "x-tag" }, [
45
- _vm._v(_vm._s(selectedFilter.label))
46
- ])
47
- ]
45
+ _vm._v(_vm._s(selectedFilter.label)) ]) ]
48
46
  },
49
47
  { filter: selectedFilter }
50
48
  )
51
49
  : _vm._t(
52
50
  "default",
53
- function() {
51
+ function () {
54
52
  return [
55
53
  _vm._v(
56
54
  "\n " +
57
55
  _vm._s(selectedFilter.label) +
58
56
  "\n "
59
- )
60
- ]
57
+ ) ]
61
58
  },
62
59
  { filter: selectedFilter }
63
- )
64
- ],
60
+ ) ],
65
61
  2
66
62
  )
67
63
  }),
68
64
  0
69
- )
70
- ]
71
- }
72
- }
73
- ],
65
+ ) ]
66
+ },
67
+ } ],
74
68
  null,
75
69
  true
76
- )
70
+ ),
77
71
  })
78
72
  };
79
73
  var __vue_staticRenderFns__ = [];
@@ -1 +1 @@
1
- {"version":3,"file":"selected-filters-list.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/selected-filters-list.vue"],"sourcesContent":["<template>\n <SelectedFilters v-slot=\"{ selectedFilters }\" :facetId=\"facetId\" :alwaysVisible=\"alwaysVisible\">\n <component\n :is=\"animation\"\n class=\"x-list x-selected-filters-list\"\n data-test=\"selected-filters-list\"\n tag=\"ul\"\n >\n <li\n v-for=\"{ slotName, selectedFilter } in mapSlot(selectedFilters)\"\n :key=\"selectedFilter.id\"\n class=\"x-selected-filters-list__item\"\n data-test=\"selected-filters-list-item\"\n >\n <!--\n @slot Custom filter rendering. Dynamic slot defined in the template with the filter\n facet id. It renders the filter label by default.\n @binding {Filter} filter - Filter to render.\n -->\n <slot v-if=\"$scopedSlots[slotName]\" :name=\"slotName\" :filter=\"selectedFilter\">\n <span class=\"x-tag\">{{ selectedFilter.label }}</span>\n </slot>\n\n <!--\n @slot Default filter rendering. It renders the filter label by default.\n @binding {Filter} filter - Filter to render.\n -->\n <slot v-else name=\"default\" :filter=\"selectedFilter\">\n {{ selectedFilter.label }}\n </slot>\n </li>\n </component>\n </SelectedFilters>\n</template>\n\n<script lang=\"ts\">\n import { Component, Prop, Vue } from 'vue-property-decorator';\n import { Facet, Filter, isFacetFilter } from '@empathyco/x-types';\n import { xComponentMixin } from '../../../../components/x-component.mixin';\n import { toKebabCase } from '../../../../utils/string';\n import { facetsXModule } from '../../x-module';\n import SelectedFilters from './selected-filters.vue';\n\n /**\n * Custom interface to provide a slot name to a Filter.\n *\n * @internal\n */\n interface RenderFilter {\n slotName: string;\n selectedFilter: Filter;\n }\n\n /**\n * This component renders a list of selected filters from every facet, or from the facet\n * which facet id is passed as property. It uses the SelectedFilters component (state).\n *\n * It provides two slots: a scoped one which name is the filter facet id; and a default one.\n * Both exposes the filter and renders the filter label by default.\n *\n * The property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n *\n * @public\n */\n @Component({\n components: { SelectedFilters },\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class SelectedFiltersList extends Vue {\n /**\n * It is directly passed to the selected filters component. If a facet id is passed as prop,\n * the component filters the selected filters for that facet.\n *\n * @public\n */\n @Prop()\n protected facetId: Facet['id'] | undefined;\n\n /**\n * It is directly passed to the selected filters component. It handles if the SelectedFilters\n * component is always rendered no matter if no filters are selected.\n *\n * If true, the SelectedFilters component is always rendered.\n * If false, the SelectedFilters component is not rendered whether no filters are selected.\n *\n * @public\n */\n @Prop({ default: false })\n protected alwaysVisible!: boolean;\n\n /**\n * Animation component that will be used to animate the selected filters list.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * Transforms a dictionary of Filters including the slot name.\n *\n * @param selectedFilters - A list of selected filters without slot name.\n *\n * @returns A dictionary of facets with the slot name.\n *\n * @internal\n */\n protected mapSlot(selectedFilters: Filter[]): RenderFilter[] {\n return selectedFilters.map(filter => ({\n slotName: isFacetFilter(filter) ? toKebabCase(filter.facetId as string) : 'default',\n selectedFilter: filter\n }));\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Example\n\nThis component renders a list of selected filters from every facet, or from the facet which facet id\nis passed as property. It uses the SelectedFilters component (state).\n\nIt provides two slots: a scoped one which name is the filter facet id; and a default one. Both\nexposes the filter and renders the filter label by default.\n\nThe property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n\n## Default usage\n\n```vue\n<template>\n <SelectedFiltersList />\n</template>\n\n<script>\n import { SelectedFiltersList } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFiltersList\n }\n };\n</script>\n```\n\n## Customized usage\n\n```vue\n<template>\n <SelectedFiltersList #default=\"{ filter }\">Default: {{ filter.label }}</SelectedFiltersList>\n</template>\n\n<script>\n import { SelectedFilters } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFilters\n }\n };\n</script>\n```\n\n```vue\n<template>\n <SelectedFiltersList>\n <template #default=\"{ filter }\">Default: {{ filter.label }}</template>\n <template #brand_facet=\"{ filter }\">Brand: {{ filter.label }}</template>\n <template #age_facet=\"{ filter }\">Age: {{ filter.label }}</template>\n <template #price_facet=\"{ filter }\">Price: {{ filter.label }}</template>\n </SelectedFiltersList>\n</template>\n\n<script>\n import { SelectedFilters } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFilters\n }\n };\n</script>\n```\n\n## Always visible\n\nIf \"alwaysVisible\" is true, the component is rendered no matter if there are some filter selected.\nIf \"alwaysVisible\" is false (default), the component is rendered if there are some filter selected.\n\n```vue\n<SelectedFiltersList :alwaysVisible=\"true\" />\n```\n\nOutput:\n\n```html\n<div class=\"x-selected-filters\">\n <ul class=\"x-selected-filters-list\" data-test=\"selected-filters-list\"></ul>\n</div>\n```\n\n## Providing a facet id\n\nIn this example, the selected filters computed are the ones that match the facet passed as property.\n\n```vue\n<SelectedFilters facetId=\"brand_facet\" />\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"selected-filters-list.vue.js","sources":["../../../../../../src/x-modules/facets/components/lists/selected-filters-list.vue"],"sourcesContent":["<template>\n <SelectedFilters v-slot=\"{ selectedFilters }\" :facetId=\"facetId\" :alwaysVisible=\"alwaysVisible\">\n <component\n :is=\"animation\"\n class=\"x-list x-selected-filters-list\"\n data-test=\"selected-filters-list\"\n tag=\"ul\"\n >\n <li\n v-for=\"{ slotName, selectedFilter } in mapSlot(selectedFilters)\"\n :key=\"selectedFilter.id\"\n class=\"x-selected-filters-list__item\"\n data-test=\"selected-filters-list-item\"\n >\n <!--\n @slot Custom filter rendering. Dynamic slot defined in the template with the filter\n facet id. It renders the filter label by default.\n @binding {Filter} filter - Filter to render.\n -->\n <slot v-if=\"$scopedSlots[slotName]\" :name=\"slotName\" :filter=\"selectedFilter\">\n <span class=\"x-tag\">{{ selectedFilter.label }}</span>\n </slot>\n\n <!--\n @slot Default filter rendering. It renders the filter label by default.\n @binding {Filter} filter - Filter to render.\n -->\n <slot v-else name=\"default\" :filter=\"selectedFilter\">\n {{ selectedFilter.label }}\n </slot>\n </li>\n </component>\n </SelectedFilters>\n</template>\n\n<script lang=\"ts\">\n import { Component, Prop, Vue } from 'vue-property-decorator';\n import { Facet, Filter, isFacetFilter } from '@empathyco/x-types';\n import { xComponentMixin } from '../../../../components/x-component.mixin';\n import { toKebabCase } from '../../../../utils/string';\n import { facetsXModule } from '../../x-module';\n import SelectedFilters from './selected-filters.vue';\n\n /**\n * Custom interface to provide a slot name to a Filter.\n *\n * @internal\n */\n interface RenderFilter {\n slotName: string;\n selectedFilter: Filter;\n }\n\n /**\n * This component renders a list of selected filters from every facet, or from the facet\n * which facet id is passed as property. It uses the SelectedFilters component (state).\n *\n * It provides two slots: a scoped one which name is the filter facet id; and a default one.\n * Both exposes the filter and renders the filter label by default.\n *\n * The property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n *\n * @public\n */\n @Component({\n components: { SelectedFilters },\n mixins: [xComponentMixin(facetsXModule)]\n })\n export default class SelectedFiltersList extends Vue {\n /**\n * It is directly passed to the selected filters component. If a facet id is passed as prop,\n * the component filters the selected filters for that facet.\n *\n * @public\n */\n @Prop()\n protected facetId: Facet['id'] | undefined;\n\n /**\n * It is directly passed to the selected filters component. It handles if the SelectedFilters\n * component is always rendered no matter if no filters are selected.\n *\n * If true, the SelectedFilters component is always rendered.\n * If false, the SelectedFilters component is not rendered whether no filters are selected.\n *\n * @public\n */\n @Prop({ default: false })\n protected alwaysVisible!: boolean;\n\n /**\n * Animation component that will be used to animate the selected filters list.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n protected animation!: Vue | string;\n\n /**\n * Transforms a dictionary of Filters including the slot name.\n *\n * @param selectedFilters - A list of selected filters without slot name.\n *\n * @returns A dictionary of facets with the slot name.\n *\n * @internal\n */\n protected mapSlot(selectedFilters: Filter[]): RenderFilter[] {\n return selectedFilters.map(filter => ({\n slotName: isFacetFilter(filter) ? toKebabCase(filter.facetId as string) : 'default',\n selectedFilter: filter\n }));\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Example\n\nThis component renders a list of selected filters from every facet, or from the facet which facet id\nis passed as property. It uses the SelectedFilters component (state).\n\nIt provides two slots: a scoped one which name is the filter facet id; and a default one. Both\nexposes the filter and renders the filter label by default.\n\nThe property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n\n### Default usage\n\n```vue\n<template>\n <SelectedFiltersList />\n</template>\n\n<script>\n import { SelectedFiltersList } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFiltersList\n }\n };\n</script>\n```\n\n### Customized usage\n\n```vue\n<template>\n <SelectedFiltersList #default=\"{ filter }\">Default: {{ filter.label }}</SelectedFiltersList>\n</template>\n\n<script>\n import { SelectedFilters } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFilters\n }\n };\n</script>\n```\n\n```vue\n<template>\n <SelectedFiltersList>\n <template #default=\"{ filter }\">Default: {{ filter.label }}</template>\n <template #brand_facet=\"{ filter }\">Brand: {{ filter.label }}</template>\n <template #age_facet=\"{ filter }\">Age: {{ filter.label }}</template>\n <template #price_facet=\"{ filter }\">Price: {{ filter.label }}</template>\n </SelectedFiltersList>\n</template>\n\n<script>\n import { SelectedFilters } from '@empathyco/x-components/facets';\n\n export default {\n components: {\n SelectedFilters\n }\n };\n</script>\n```\n\n#### Always visible\n\nIf \"alwaysVisible\" is true, the component is rendered no matter if there are some filter selected.\nIf \"alwaysVisible\" is false (default), the component is rendered if there are some filter selected.\n\n```vue\n<SelectedFiltersList :alwaysVisible=\"true\" />\n```\n\nOutput:\n\n```html\n<div class=\"x-selected-filters\">\n <ul class=\"x-selected-filters-list\" data-test=\"selected-filters-list\"></ul>\n</div>\n```\n\n#### Providing a facet id\n\nIn this example, the selected filters computed are the ones that match the facet passed as property.\n\n```vue\n<SelectedFilters facetId=\"brand_facet\" />\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}