@empathyco/x-components 3.0.0-alpha.44 → 3.0.0-alpha.48

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 (229) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/build-helpers/plugins/polyfills-wrapper.plugin.js +4 -5
  3. package/build-helpers/utils/polyfills.util.js +1 -1
  4. package/core/index.js +3 -0
  5. package/core/index.js.map +1 -1
  6. package/design-system/default-theme.css +164 -8
  7. package/design-system/full-theme.css +139 -9
  8. package/design-system/suggestion-default.css +25 -2
  9. package/design-system/suggestion-group-default.css +27 -4
  10. package/design-system/tag-default.css +75 -1
  11. package/design-system/tag-ghost.css +12 -2
  12. package/docs/API-reference/api/x-components.basexapi.addproducttocart.md +24 -0
  13. package/docs/API-reference/api/x-components.basexapi.md +1 -0
  14. package/docs/API-reference/api/x-components.curatedcheckicon.md +11 -0
  15. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice._constructor_.md +21 -0
  16. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragekey.md +11 -0
  17. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragettlms.md +11 -0
  18. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.instance.md +13 -0
  19. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.localstorageservice.md +11 -0
  20. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.md +41 -0
  21. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.movetosessionstorage.md +24 -0
  22. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.result_clicked_id_key.md +13 -0
  23. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.sessionstorageservice.md +11 -0
  24. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.store.md +11 -0
  25. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.storeresultclicked.md +24 -0
  26. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.trackaddtocart.md +24 -0
  27. package/docs/API-reference/api/x-components.lightbulboff.md +11 -0
  28. package/docs/API-reference/api/x-components.lightbulbon.md +11 -0
  29. package/docs/API-reference/api/x-components.md +6 -3
  30. package/docs/API-reference/api/x-components.pdpaddtocartservice.md +22 -0
  31. package/docs/API-reference/api/x-components.pdpaddtocartservice.movetosessionstorage.md +24 -0
  32. package/docs/API-reference/api/x-components.pdpaddtocartservice.storeresultclicked.md +24 -0
  33. package/docs/API-reference/api/x-components.pdpaddtocartservice.trackaddtocart.md +24 -0
  34. package/docs/API-reference/api/x-components.settaggingconfig.md +13 -0
  35. package/docs/API-reference/api/x-components.snippetconfig.md +1 -0
  36. package/docs/API-reference/api/x-components.snippetconfig.productid.md +13 -0
  37. package/docs/API-reference/api/x-components.snippetconfigextraparams.md +6 -0
  38. package/docs/API-reference/api/x-components.snippetconfigextraparams.values.md +13 -0
  39. package/docs/API-reference/api/x-components.tagging.clickedresultstoragekey.md +13 -0
  40. package/docs/API-reference/api/x-components.tagging.clickedresultstoragettlms.md +13 -0
  41. package/docs/API-reference/api/x-components.tagging.config.md +11 -0
  42. package/docs/API-reference/api/x-components.tagging.created.md +17 -0
  43. package/docs/API-reference/api/x-components.tagging.md +4 -0
  44. package/docs/API-reference/api/x-components.taggingconfig.clickedresultstoragekey.md +13 -0
  45. package/docs/API-reference/api/x-components.taggingconfig.clickedresultstoragettlms.md +13 -0
  46. package/docs/API-reference/api/x-components.taggingconfig.md +2 -0
  47. package/docs/API-reference/api/x-components.taggingmutations.md +1 -2
  48. package/docs/API-reference/api/x-components.taggingmutations.settaggingconfig.md +24 -0
  49. package/docs/API-reference/api/x-components.taggingxevents.md +4 -2
  50. package/docs/API-reference/api/x-components.taggingxevents.pdpisloaded.md +13 -0
  51. package/docs/API-reference/api/x-components.taggingxevents.resulturltrackingenabled.md +13 -0
  52. package/docs/API-reference/api/x-components.taggingxevents.taggingconfigprovided.md +13 -0
  53. package/docs/API-reference/api/x-components.taggingxevents.userclickedpdpaddtocart.md +13 -0
  54. package/docs/API-reference/api/x-components.urlhandler.initialextraparams.md +11 -0
  55. package/docs/API-reference/api/x-components.urlhandler.md +6 -0
  56. package/docs/API-reference/api/x-components.xapi.addproducttocart.md +28 -0
  57. package/docs/API-reference/api/x-components.xapi.md +1 -0
  58. package/docs/API-reference/api/x-components.xeventstypes.md +1 -1
  59. package/docs/API-reference/api/x-components.xeventstypes.snippetcallbackexecuted.md +3 -1
  60. package/docs/API-reference/components/common/filters/labels/x-components.base-price-filter-label.md +7 -7
  61. package/docs/API-reference/components/common/icons/x-components.curated-check.md +7 -0
  62. package/docs/API-reference/components/common/icons/x-components.light-bulb-off.md +7 -0
  63. package/docs/API-reference/components/common/icons/x-components.light-bulb-on.md +7 -0
  64. package/docs/API-reference/components/extra-params/x-components.snippet-config-extra-params.md +6 -0
  65. package/docs/API-reference/components/facets/x-components.filters/number-range-filter.md +4 -3
  66. package/docs/API-reference/components/tagging/x-components.tagging.md +38 -14
  67. package/facets/index.js +1 -2
  68. package/js/components/base-grid.vue.js +2 -2
  69. package/js/components/base-grid.vue.js.map +1 -1
  70. package/js/components/base-grid.vue_rollup-plugin-vue=script.js +1 -1
  71. package/js/components/base-grid.vue_rollup-plugin-vue=script.js.map +1 -1
  72. package/js/components/icons/curated-check.vue.js +60 -0
  73. package/js/components/icons/curated-check.vue.js.map +1 -0
  74. package/js/components/icons/curated-check.vue_rollup-plugin-vue=script.js +4 -0
  75. package/js/components/icons/curated-check.vue_rollup-plugin-vue=script.js.map +1 -0
  76. package/js/components/icons/light-bulb-off.vue.js +84 -0
  77. package/js/components/icons/light-bulb-off.vue.js.map +1 -0
  78. package/js/components/icons/light-bulb-off.vue_rollup-plugin-vue=script.js +4 -0
  79. package/js/components/icons/light-bulb-off.vue_rollup-plugin-vue=script.js.map +1 -0
  80. package/js/components/icons/light-bulb-on.vue.js +151 -0
  81. package/js/components/icons/light-bulb-on.vue.js.map +1 -0
  82. package/js/components/icons/light-bulb-on.vue_rollup-plugin-vue=script.js +4 -0
  83. package/js/components/icons/light-bulb-on.vue_rollup-plugin-vue=script.js.map +1 -0
  84. package/js/components/result/base-result-add-to-cart.vue.js +7 -4
  85. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  86. package/js/components/result/base-result-add-to-cart.vue_rollup-plugin-vue=script.js.map +1 -1
  87. package/js/components/snippet-callbacks.vue.js.map +1 -1
  88. package/js/components/snippet-callbacks.vue_rollup-plugin-vue=script.js +3 -1
  89. package/js/components/snippet-callbacks.vue_rollup-plugin-vue=script.js.map +1 -1
  90. package/js/components/suggestions/base-suggestions.vue.js +3 -3
  91. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  92. package/js/index.js +6 -3
  93. package/js/index.js.map +1 -1
  94. package/js/plugins/x-plugin.js +3 -1
  95. package/js/plugins/x-plugin.js.map +1 -1
  96. package/js/x-installer/api/base-api.js +9 -0
  97. package/js/x-installer/api/base-api.js.map +1 -1
  98. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js +3 -0
  99. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  100. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js +3 -0
  101. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js.map +1 -1
  102. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js.map +1 -1
  103. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js +20 -6
  104. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  105. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js +3 -0
  106. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  107. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js +3 -0
  108. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js.map +1 -1
  109. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js +3 -0
  110. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  111. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js +4 -1
  112. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  113. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +42 -4
  114. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  115. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js +5 -2
  116. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  117. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js +3 -0
  118. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  119. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  120. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js +4 -2
  121. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  122. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js +3 -0
  123. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js.map +1 -1
  124. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js +3 -0
  125. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js.map +1 -1
  126. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js +3 -0
  127. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js.map +1 -1
  128. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js +3 -0
  129. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  130. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js +3 -0
  131. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  132. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js +3 -0
  133. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  134. package/js/x-modules/related-tags/wiring.js +3 -3
  135. package/js/x-modules/related-tags/wiring.js.map +1 -1
  136. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js +3 -0
  137. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js.map +1 -1
  138. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js +3 -0
  139. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js.map +1 -1
  140. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js +3 -0
  141. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js.map +1 -1
  142. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js +3 -0
  143. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js.map +1 -1
  144. package/js/x-modules/search/components/sort.mixin.js +3 -0
  145. package/js/x-modules/search/components/sort.mixin.js.map +1 -1
  146. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js +3 -0
  147. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js.map +1 -1
  148. package/js/x-modules/tagging/components/tagging.vue.js.map +1 -1
  149. package/js/x-modules/tagging/components/tagging.vue_rollup-plugin-vue=script.js +42 -5
  150. package/js/x-modules/tagging/components/tagging.vue_rollup-plugin-vue=script.js.map +1 -1
  151. package/js/x-modules/tagging/service/pdp-add-to-cart.service.js +168 -0
  152. package/js/x-modules/tagging/service/pdp-add-to-cart.service.js.map +1 -0
  153. package/js/x-modules/tagging/store/actions/track.action.js +1 -0
  154. package/js/x-modules/tagging/store/actions/track.action.js.map +1 -1
  155. package/js/x-modules/tagging/store/emitters.js +5 -1
  156. package/js/x-modules/tagging/store/emitters.js.map +1 -1
  157. package/js/x-modules/tagging/store/module.js +6 -7
  158. package/js/x-modules/tagging/store/module.js.map +1 -1
  159. package/js/x-modules/tagging/wiring.js +42 -16
  160. package/js/x-modules/tagging/wiring.js.map +1 -1
  161. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  162. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js +118 -1
  163. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js.map +1 -1
  164. package/package.json +2 -2
  165. package/report/x-components.api.json +1194 -306
  166. package/report/x-components.api.md +87 -31
  167. package/tagging/index.js +2 -1
  168. package/types/components/icons/curated-check.vue.d.ts +3 -0
  169. package/types/components/icons/curated-check.vue.d.ts.map +1 -0
  170. package/types/components/icons/index.d.ts +3 -0
  171. package/types/components/icons/index.d.ts.map +1 -1
  172. package/types/components/icons/light-bulb-off.vue.d.ts +3 -0
  173. package/types/components/icons/light-bulb-off.vue.d.ts.map +1 -0
  174. package/types/components/icons/light-bulb-on.vue.d.ts +3 -0
  175. package/types/components/icons/light-bulb-on.vue.d.ts.map +1 -0
  176. package/types/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
  177. package/types/components/snippet-callbacks.vue.d.ts.map +1 -1
  178. package/types/plugins/x-plugin.d.ts.map +1 -1
  179. package/types/router.d.ts.map +1 -1
  180. package/types/wiring/events.types.d.ts +6 -1
  181. package/types/wiring/events.types.d.ts.map +1 -1
  182. package/types/x-installer/api/api.types.d.ts +11 -0
  183. package/types/x-installer/api/api.types.d.ts.map +1 -1
  184. package/types/x-installer/api/base-api.d.ts +6 -0
  185. package/types/x-installer/api/base-api.d.ts.map +1 -1
  186. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts +7 -1
  187. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts.map +1 -1
  188. package/types/x-modules/facets/components/filters/number-range-filter.vue.d.ts.map +1 -1
  189. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  190. package/types/x-modules/facets/components/index.d.ts +0 -1
  191. package/types/x-modules/facets/components/index.d.ts.map +1 -1
  192. package/types/x-modules/related-tags/wiring.d.ts +3 -3
  193. package/types/x-modules/tagging/components/tagging.vue.d.ts +26 -0
  194. package/types/x-modules/tagging/components/tagging.vue.d.ts.map +1 -1
  195. package/types/x-modules/tagging/config.types.d.ts +8 -0
  196. package/types/x-modules/tagging/config.types.d.ts.map +1 -1
  197. package/types/x-modules/tagging/events.types.d.ts +18 -6
  198. package/types/x-modules/tagging/events.types.d.ts.map +1 -1
  199. package/types/x-modules/tagging/service/index.d.ts +1 -0
  200. package/types/x-modules/tagging/service/index.d.ts.map +1 -1
  201. package/types/x-modules/tagging/service/pdp-add-to-cart.service.d.ts +82 -0
  202. package/types/x-modules/tagging/service/pdp-add-to-cart.service.d.ts.map +1 -0
  203. package/types/x-modules/tagging/service/types.d.ts +29 -0
  204. package/types/x-modules/tagging/service/types.d.ts.map +1 -1
  205. package/types/x-modules/tagging/store/emitters.d.ts +4 -0
  206. package/types/x-modules/tagging/store/emitters.d.ts.map +1 -1
  207. package/types/x-modules/tagging/store/module.d.ts.map +1 -1
  208. package/types/x-modules/tagging/store/types.d.ts +6 -12
  209. package/types/x-modules/tagging/store/types.d.ts.map +1 -1
  210. package/types/x-modules/tagging/wiring.d.ts +13 -12
  211. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  212. package/types/x-modules/url/components/url-handler.vue.d.ts +1 -0
  213. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  214. package/docs/API-reference/api/x-components.basefilter.clickevents.md +0 -13
  215. package/docs/API-reference/api/x-components.basefilter.filter.md +0 -13
  216. package/docs/API-reference/api/x-components.basefilter.md +0 -22
  217. package/docs/API-reference/api/x-components.setquerytaggingdebounce.md +0 -13
  218. package/docs/API-reference/api/x-components.setsessionduration.md +0 -13
  219. package/docs/API-reference/api/x-components.taggingmutations.setquerytaggingdebounce.md +0 -24
  220. package/docs/API-reference/api/x-components.taggingmutations.setsessionduration.md +0 -24
  221. package/docs/API-reference/api/x-components.taggingxevents.querytaggingdebounceprovided.md +0 -13
  222. package/docs/API-reference/api/x-components.taggingxevents.sessiondurationprovided.md +0 -13
  223. package/docs/API-reference/components/facets/x-components.filters/base-filter.md +0 -77
  224. package/js/x-modules/facets/components/filters/base-filter.vue.js +0 -69
  225. package/js/x-modules/facets/components/filters/base-filter.vue.js.map +0 -1
  226. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js +0 -189
  227. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js.map +0 -1
  228. package/types/x-modules/facets/components/filters/base-filter.vue.d.ts +0 -39
  229. package/types/x-modules/facets/components/filters/base-filter.vue.d.ts.map +0 -1
@@ -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;;;;"}
@@ -51,6 +51,7 @@ import '../../../../components/icons/chevron-tiny-up.vue.js';
51
51
  import '../../../../components/icons/chevron-up.vue.js';
52
52
  import '../../../../components/icons/cross-tiny.vue.js';
53
53
  import '../../../../components/icons/cross.vue.js';
54
+ import '../../../../components/icons/curated-check.vue.js';
54
55
  import '../../../../components/icons/filters.vue.js';
55
56
  import '../../../../components/icons/grid-1-col.vue.js';
56
57
  import '../../../../components/icons/grid-2-col.vue.js';
@@ -58,6 +59,8 @@ import '../../../../components/icons/grid-2-rows.vue.js';
58
59
  import '../../../../components/icons/hide.vue.js';
59
60
  import '../../../../components/icons/history-tiny.vue.js';
60
61
  import '../../../../components/icons/history.vue.js';
62
+ import '../../../../components/icons/light-bulb-off.vue.js';
63
+ import '../../../../components/icons/light-bulb-on.vue.js';
61
64
  import '../../../../components/icons/menu.vue.js';
62
65
  import '../../../../components/icons/minus-tiny.vue.js';
63
66
  import '../../../../components/icons/minus.vue.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;;;;"}
@@ -48,6 +48,7 @@ import '../../../../components/icons/chevron-tiny-up.vue.js';
48
48
  import '../../../../components/icons/chevron-up.vue.js';
49
49
  import '../../../../components/icons/cross-tiny.vue.js';
50
50
  import '../../../../components/icons/cross.vue.js';
51
+ import '../../../../components/icons/curated-check.vue.js';
51
52
  import '../../../../components/icons/filters.vue.js';
52
53
  import '../../../../components/icons/grid-1-col.vue.js';
53
54
  import '../../../../components/icons/grid-2-col.vue.js';
@@ -55,6 +56,8 @@ import '../../../../components/icons/grid-2-rows.vue.js';
55
56
  import '../../../../components/icons/hide.vue.js';
56
57
  import '../../../../components/icons/history-tiny.vue.js';
57
58
  import '../../../../components/icons/history.vue.js';
59
+ import '../../../../components/icons/light-bulb-off.vue.js';
60
+ import '../../../../components/icons/light-bulb-on.vue.js';
58
61
  import '../../../../components/icons/menu.vue.js';
59
62
  import '../../../../components/icons/minus-tiny.vue.js';
60
63
  import '../../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"selected-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/selected-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport { Facet, Filter } from '@empathyco/x-types';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Getter } from '../../../../components/decorators/store.decorators';\nimport { NoElement } from '../../../../components';\nimport { xComponentMixin } from '../../../../components/x-component.mixin';\nimport { FiltersByFacet } from '../../store/types';\nimport { facetsXModule } from '../../x-module';\n\n/**\n * Provides a scoped slot with the selected filters from every facet, or from the facet which\n * facet id is passed as property.\n *\n * The default slot renders the length of the selected filters array.\n * The property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)],\n components: {\n NoElement\n }\n})\nexport default class SelectedFilters extends Vue {\n /**\n * If a facet id is passed as prop, 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 handles if the SelectedFilters component is always rendered no matter if no filters are\n * selected.\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 * Array of selected filters from every facet.\n *\n * @public\n */\n @Getter('facets', 'selectedFilters')\n public selectedFiltersGetter!: Filter[];\n\n /**\n * Dictionary of selected filters grouped by facet.\n *\n * @public\n */\n @Getter('facets', 'selectedFiltersByFacet')\n public selectedFiltersByFacet!: FiltersByFacet;\n\n /**\n * It returns an array of selected filters. If a facet id is passed as prop to the component,\n * only the selected filters of that facet are returned. If not, it returns selected filters of\n * every facet.\n *\n * @returns Array of selected filters.\n *\n * @internal\n */\n protected get selectedFilters(): Filter[] {\n return this.facetId === undefined\n ? this.selectedFiltersGetter\n : this.selectedFiltersByFacet[this.facetId] ?? [];\n }\n\n /**\n * If \"alwaysVisible\" prop is true, returns true.\n * If \"alwaysVisible\" prop is false, returns true or false depending on if there are some\n * filter selected.\n *\n * @returns True if \"alwaysVisible\" is true. True or false depending on if there are some filter\n * selected.\n *\n * @internal\n */\n protected get show(): boolean {\n return this.alwaysVisible || this.selectedFilters.length > 0;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;;;;AAeA;IAA6C,mCAAG;IAAhD;;KAgEC;IAnBC,sBAAc,4CAAe;;;;;;;;;;aAA7B;;YACE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;kBAC7B,IAAI,CAAC,qBAAqB;kBAC1B,MAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;SACrD;;;OAAA;IAYD,sBAAc,iCAAI;;;;;;;;;;;aAAlB;YACE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9D;;;OAAA;IAxDD;QADC,IAAI,EAAE;oDACoC;IAW3C;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;0DACS;IAQlC;QADC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;kEACI;IAQxC;QADC,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;mEACI;IAlC5B,eAAe;QANnC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE;gBACV,SAAS,WAAA;aACV;SACF,CAAC;OACmB,eAAe,CAgEnC;IAAD,sBAAC;CAAA,CAhE4C,GAAG;;;;"}
1
+ {"version":3,"file":"selected-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/selected-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport { Facet, Filter } from '@empathyco/x-types';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Getter } from '../../../../components/decorators/store.decorators';\nimport { NoElement } from '../../../../components';\nimport { xComponentMixin } from '../../../../components/x-component.mixin';\nimport { FiltersByFacet } from '../../store/types';\nimport { facetsXModule } from '../../x-module';\n\n/**\n * Provides a scoped slot with the selected filters from every facet, or from the facet which\n * facet id is passed as property.\n *\n * The default slot renders the length of the selected filters array.\n * The property \"alwaysVisible\" handles if the component is rendered if no filters are selected.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)],\n components: {\n NoElement\n }\n})\nexport default class SelectedFilters extends Vue {\n /**\n * If a facet id is passed as prop, 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 handles if the SelectedFilters component is always rendered no matter if no filters are\n * selected.\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 * Array of selected filters from every facet.\n *\n * @public\n */\n @Getter('facets', 'selectedFilters')\n public selectedFiltersGetter!: Filter[];\n\n /**\n * Dictionary of selected filters grouped by facet.\n *\n * @public\n */\n @Getter('facets', 'selectedFiltersByFacet')\n public selectedFiltersByFacet!: FiltersByFacet;\n\n /**\n * It returns an array of selected filters. If a facet id is passed as prop to the component,\n * only the selected filters of that facet are returned. If not, it returns selected filters of\n * every facet.\n *\n * @returns Array of selected filters.\n *\n * @internal\n */\n protected get selectedFilters(): Filter[] {\n return this.facetId === undefined\n ? this.selectedFiltersGetter\n : this.selectedFiltersByFacet[this.facetId] ?? [];\n }\n\n /**\n * If \"alwaysVisible\" prop is true, returns true.\n * If \"alwaysVisible\" prop is false, returns true or false depending on if there are some\n * filter selected.\n *\n * @returns True if \"alwaysVisible\" is true. True or false depending on if there are some filter\n * selected.\n *\n * @internal\n */\n protected get show(): boolean {\n return this.alwaysVisible || this.selectedFilters.length > 0;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;;;;AAeA;IAA6C,mCAAG;IAAhD;;KAgEC;IAnBC,sBAAc,4CAAe;;;;;;;;;;aAA7B;;YACE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;kBAC7B,IAAI,CAAC,qBAAqB;kBAC1B,MAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;SACrD;;;OAAA;IAYD,sBAAc,iCAAI;;;;;;;;;;;aAAlB;YACE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9D;;;OAAA;IAxDD;QADC,IAAI,EAAE;oDACoC;IAW3C;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;0DACS;IAQlC;QADC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;kEACI;IAQxC;QADC,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;mEACI;IAlC5B,eAAe;QANnC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE;gBACV,SAAS,WAAA;aACV;SACF,CAAC;OACmB,eAAe,CAgEnC;IAAD,sBAAC;CAAA,CAhE4C,GAAG;;;;"}
@@ -49,6 +49,7 @@ import '../../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../../components/icons/cross.vue.js';
52
+ import '../../../../components/icons/curated-check.vue.js';
52
53
  import '../../../../components/icons/filters.vue.js';
53
54
  import '../../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../../components/icons/hide.vue.js';
57
58
  import '../../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../../components/icons/history.vue.js';
60
+ import '../../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../../components/icons/menu.vue.js';
60
63
  import '../../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sliced-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/sliced-filters.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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Filter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { VueCSSClasses } from '../../../../utils';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Component that slices a list of filters and returns them using the default scoped slot,\n * allowing the user to show the full list of them or slicing them again using the\n * show more/less buttons.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class SlicedFilters extends mixins(FiltersInjectionMixin) {\n /** The maximum number of filters to show.\n *\n * @public\n * */\n @Prop({ required: true })\n protected max!: number;\n\n /** For showing the remaining filters. */\n public showMoreFilters = true;\n\n /**\n * Show the buttons template when length filters is greater than property max.\n *\n * @returns Boolean if length filters is greater than property max.\n * @internal\n */\n protected get showButton(): boolean {\n return this.renderedFilters.length > this.max;\n }\n\n /**\n * Sliced the array of filters depends on click button show more.\n *\n * @returns Array of sliced filters or all filters.\n * @internal\n */\n @XProvide('filters')\n public get slicedFilters(): Filter[] {\n return this.showMoreFilters ? this.renderedFilters.slice(0, this.max) : this.renderedFilters;\n }\n\n /**\n * The difference between length filters and max to show.\n *\n * @returns Number of remaining filters to show.\n * @internal\n */\n protected get difference(): number {\n return this.renderedFilters.length - this.max;\n }\n\n /**\n * Show or hide the remaining filters. It also emits a Vue event based on the clicked button.\n *\n * @param event - The click event.\n *\n * @internal\n */\n protected toggleShowMoreFilters(event: MouseEvent): void {\n this.showMoreFilters = !this.showMoreFilters;\n this.$emit(this.showMoreFilters ? 'click:show-less' : 'click:show-more', event);\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The classes to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-sliced-filters--is-sliced': this.showButton\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA;;;;;;;AAUA;IAA2C,iCAA6B;IAAxE;QAAA,qEAiEC;;QAxDQ,qBAAe,GAAG,IAAI,CAAC;;KAwD/B;IAhDC,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;SAC/C;;;OAAA;IASD,sBAAW,wCAAa;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SAC9F;;;OAAA;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;SAC/C;;;OAAA;;;;;;;;IASS,6CAAqB,GAA/B,UAAgC,KAAiB;QAC/C,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAC;KACjF;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,6BAA6B,EAAE,IAAI,CAAC,UAAU;aAC/C,CAAC;SACH;;;OAAA;IA1DD;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CACF;IAsBvB;QADC,QAAQ,CAAC,SAAS,CAAC;sDAGnB;IA9BkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAiEjC;IAAD,oBAAC;CAjED,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
1
+ {"version":3,"file":"sliced-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/sliced-filters.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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Filter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { VueCSSClasses } from '../../../../utils';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Component that slices a list of filters and returns them using the default scoped slot,\n * allowing the user to show the full list of them or slicing them again using the\n * show more/less buttons.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class SlicedFilters extends mixins(FiltersInjectionMixin) {\n /** The maximum number of filters to show.\n *\n * @public\n * */\n @Prop({ required: true })\n protected max!: number;\n\n /** For showing the remaining filters. */\n public showMoreFilters = true;\n\n /**\n * Show the buttons template when length filters is greater than property max.\n *\n * @returns Boolean if length filters is greater than property max.\n * @internal\n */\n protected get showButton(): boolean {\n return this.renderedFilters.length > this.max;\n }\n\n /**\n * Sliced the array of filters depends on click button show more.\n *\n * @returns Array of sliced filters or all filters.\n * @internal\n */\n @XProvide('filters')\n public get slicedFilters(): Filter[] {\n return this.showMoreFilters ? this.renderedFilters.slice(0, this.max) : this.renderedFilters;\n }\n\n /**\n * The difference between length filters and max to show.\n *\n * @returns Number of remaining filters to show.\n * @internal\n */\n protected get difference(): number {\n return this.renderedFilters.length - this.max;\n }\n\n /**\n * Show or hide the remaining filters. It also emits a Vue event based on the clicked button.\n *\n * @param event - The click event.\n *\n * @internal\n */\n protected toggleShowMoreFilters(event: MouseEvent): void {\n this.showMoreFilters = !this.showMoreFilters;\n this.$emit(this.showMoreFilters ? 'click:show-less' : 'click:show-more', event);\n }\n\n /**\n * Adds the dynamic css classes to the component.\n *\n * @returns The classes to be added to the component.\n * @internal\n */\n protected get cssClasses(): VueCSSClasses {\n return {\n 'x-sliced-filters--is-sliced': this.showButton\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA;;;;;;;AAUA;IAA2C,iCAA6B;IAAxE;QAAA,qEAiEC;;QAxDQ,qBAAe,GAAG,IAAI,CAAC;;KAwD/B;IAhDC,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;SAC/C;;;OAAA;IASD,sBAAW,wCAAa;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;SAC9F;;;OAAA;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;SAC/C;;;OAAA;;;;;;;;IASS,6CAAqB,GAA/B,UAAgC,KAAiB;QAC/C,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAC;KACjF;IAQD,sBAAc,qCAAU;;;;;;;aAAxB;YACE,OAAO;gBACL,6BAA6B,EAAE,IAAI,CAAC,UAAU;aAC/C,CAAC;SACH;;;OAAA;IA1DD;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CACF;IAsBvB;QADC,QAAQ,CAAC,SAAS,CAAC;sDAGnB;IA9BkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAiEjC;IAAD,oBAAC;CAjED,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
@@ -66,6 +66,7 @@ import '../../../../components/icons/chevron-tiny-up.vue.js';
66
66
  import '../../../../components/icons/chevron-up.vue.js';
67
67
  import '../../../../components/icons/cross-tiny.vue.js';
68
68
  import '../../../../components/icons/cross.vue.js';
69
+ import '../../../../components/icons/curated-check.vue.js';
69
70
  import '../../../../components/icons/filters.vue.js';
70
71
  import '../../../../components/icons/grid-1-col.vue.js';
71
72
  import '../../../../components/icons/grid-2-col.vue.js';
@@ -73,6 +74,8 @@ import '../../../../components/icons/grid-2-rows.vue.js';
73
74
  import '../../../../components/icons/hide.vue.js';
74
75
  import '../../../../components/icons/history-tiny.vue.js';
75
76
  import '../../../../components/icons/history.vue.js';
77
+ import '../../../../components/icons/light-bulb-off.vue.js';
78
+ import '../../../../components/icons/light-bulb-on.vue.js';
76
79
  import '../../../../components/icons/menu.vue.js';
77
80
  import '../../../../components/icons/minus-tiny.vue.js';
78
81
  import '../../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sorted-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/sorted-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { BooleanFilter, Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component } from 'vue-property-decorator';\nimport { CreateElement, VNode } from 'vue';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { isArrayEmpty } from '../../../../utils';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Component that sorts a list of filters and returns them using the default scoped slot.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class SortedFilters extends mixins(FiltersInjectionMixin) {\n /**\n * An array of filters with the selected filters at the beginning of the list.\n *\n * @returns Array of filters.\n * @internal\n */\n @XProvide('filters')\n public get sortedFilters(): Filter[] {\n if (!isArrayEmpty(this.renderedFilters) && isBooleanFilter(this.renderedFilters[0])) {\n return ([...this.renderedFilters] as BooleanFilter[]).sort(({ selected }) => {\n return selected ? -1 : 1;\n });\n }\n\n return this.renderedFilters;\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.sortedFilters })?.[0] ?? h();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;;;;;AAQA;IAA2C,iCAA6B;IAAxE;;KAqBC;IAbC,sBAAW,wCAAa;;;;;;;aAAxB;YACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnF,OAAQ,kBAAI,IAAI,CAAC,eAAe,CAAqB,CAAC,IAAI,CAAC,UAAC,EAAY;wBAAV,QAAQ,cAAA;oBACpE,OAAO,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;;;OAAA;IAED,8BAAM,GAAN,UAAO,CAAgB;;QACrB,OAAO,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,OAAO,mDAAG,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,0CAAG,CAAC,CAAC,mCAAI,CAAC,EAAE,CAAC;KACjF;IAZD;QADC,QAAQ,CAAC,SAAS,CAAC;sDASnB;IAhBkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAqBjC;IAAD,oBAAC;CArBD,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
1
+ {"version":3,"file":"sorted-filters.vue_rollup-plugin-vue=script.js","sources":["../../../../../../src/x-modules/facets/components/lists/sorted-filters.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { BooleanFilter, Filter, isBooleanFilter } from '@empathyco/x-types';\nimport { mixins } from 'vue-class-component';\nimport { Component } from 'vue-property-decorator';\nimport { CreateElement, VNode } from 'vue';\nimport { xComponentMixin, XProvide } from '../../../../components';\nimport { isArrayEmpty } from '../../../../utils';\nimport { facetsXModule } from '../../x-module';\nimport FiltersInjectionMixin from './filters-injection.mixin';\n\n/**\n * Component that sorts a list of filters and returns them using the default scoped slot.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(facetsXModule)]\n})\nexport default class SortedFilters extends mixins(FiltersInjectionMixin) {\n /**\n * An array of filters with the selected filters at the beginning of the list.\n *\n * @returns Array of filters.\n * @internal\n */\n @XProvide('filters')\n public get sortedFilters(): Filter[] {\n if (!isArrayEmpty(this.renderedFilters) && isBooleanFilter(this.renderedFilters[0])) {\n return ([...this.renderedFilters] as BooleanFilter[]).sort(({ selected }) => {\n return selected ? -1 : 1;\n });\n }\n\n return this.renderedFilters;\n }\n\n render(h: CreateElement): VNode {\n return this.$scopedSlots.default?.({ filters: this.sortedFilters })?.[0] ?? h();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;;;;;AAQA;IAA2C,iCAA6B;IAAxE;;KAqBC;IAbC,sBAAW,wCAAa;;;;;;;aAAxB;YACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnF,OAAQ,kBAAI,IAAI,CAAC,eAAe,CAAqB,CAAC,IAAI,CAAC,UAAC,EAAY;wBAAV,QAAQ,cAAA;oBACpE,OAAO,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;;;OAAA;IAED,8BAAM,GAAN,UAAO,CAAgB;;QACrB,OAAO,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,OAAO,mDAAG,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,0CAAG,CAAC,CAAC,mCAAI,CAAC,EAAE,CAAC;KACjF;IAZD;QADC,QAAQ,CAAC,SAAS,CAAC;sDASnB;IAhBkB,aAAa;QAHjC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,aAAa,CAqBjC;IAAD,oBAAC;CArBD,CAA2C,MAAM,CAAC,qBAAqB,CAAC;;;;"}
@@ -79,6 +79,9 @@ var setUrlParamsWire = wireDispatch('setUrlParams');
79
79
  * @internal
80
80
  */
81
81
  var relatedTagsWiring = createWiring({
82
+ ParamsLoadedFromUrl: {
83
+ setUrlParamsWire: setUrlParamsWire
84
+ },
82
85
  UserAcceptedAQuery: {
83
86
  setRelatedTagsQuery: setRelatedTagsQuery,
84
87
  clearSelectedRelatedTags: clearSelectedRelatedTags
@@ -99,9 +102,6 @@ var relatedTagsWiring = createWiring({
99
102
  },
100
103
  ExtraParamsChanged: {
101
104
  setRelatedTagsExtraParams: setRelatedTagsExtraParams
102
- },
103
- ParamsLoadedFromUrl: {
104
- setUrlParamsWire: setUrlParamsWire
105
105
  }
106
106
  });
107
107
 
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/related-tags/wiring.ts"],"sourcesContent":["import {\n namespacedWireCommit,\n namespacedWireDispatch,\n namespacedWireDispatchWithoutPayload\n} from '../../wiring/namespaced-wires.factory';\nimport { NamespacedWireCommit, NamespacedWireDispatch } from '../../wiring/namespaced-wiring.types';\nimport { createWiring } from '../../wiring/wiring.utils';\n\n/**\n * `relatedTags` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'relatedTags';\n/**\n * WireCommit for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireCommit: NamespacedWireCommit<typeof moduleName> = namespacedWireCommit(moduleName);\n/**\n * WireDispatch for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireDispatch: NamespacedWireDispatch<typeof moduleName> = namespacedWireDispatch(moduleName);\n/**\n * WireDispatchWithoutPayload for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireDispatchWithoutPayload = namespacedWireDispatchWithoutPayload(moduleName);\n\n/**\n * Sets the related tags state `query`.\n *\n * @public\n */\nexport const setRelatedTagsQuery = wireCommit('setQuery');\n\n/**\n * Sets the related tags state `params`.\n *\n * @public\n */\nexport const setRelatedTagsExtraParams = wireCommit('setParams');\n\n/**\n * Requests and stores the related tags.\n *\n * @public\n */\nexport const fetchAndSaveRelatedTagsWire = wireDispatch('fetchAndSaveRelatedTags');\n\n/**\n * Cancels the {@link RelatedTagsActions.fetchAndSaveRelatedTags} request promise.\n *\n * @public\n */\nexport const cancelFetchAndSaveRelatedTagsWire = wireDispatchWithoutPayload(\n 'cancelFetchAndSaveRelatedTags'\n);\n\n/**\n * Sets the selected related tags.\n *\n * @public\n */\nexport const toggleRelatedTagWire = wireDispatch('toggleRelatedTag');\n\n/**\n * Clear the selected related tags.\n *\n * @public\n */\nexport const clearSelectedRelatedTags = wireCommit('setSelectedRelatedTags', []);\n\n/**\n * Clear the related tags query.\n *\n * @public\n */\nexport const clearRelatedTagsQuery = wireCommit('setQuery', '');\n\n/**\n * Saves the params from the url.\n *\n * @public\n */\nexport const setUrlParamsWire = wireDispatch('setUrlParams');\n\n/**\n * Wiring configuration for the {@link RelatedTagsXModule | related tags module}.\n *\n * @internal\n */\nexport const relatedTagsWiring = createWiring({\n UserAcceptedAQuery: {\n setRelatedTagsQuery,\n clearSelectedRelatedTags\n },\n UserPickedARelatedTag: {\n toggleRelatedTagWire\n },\n UserChangedExtraParams: {\n clearSelectedRelatedTags\n },\n RelatedTagsRequestChanged: {\n fetchAndSaveRelatedTagsWire\n },\n UserClearedQuery: {\n cancelFetchAndSaveRelatedTagsWire,\n clearRelatedTagsQuery,\n clearSelectedRelatedTags\n },\n ExtraParamsChanged: {\n setRelatedTagsExtraParams\n },\n ParamsLoadedFromUrl: {\n setUrlParamsWire\n }\n});\n"],"names":[],"mappings":";;;AAQA;;;;;AAKA,IAAM,UAAU,GAAG,aAAa,CAAC;AACjC;;;;;AAKA,IAAM,UAAU,GAA4C,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC7F;;;;;AAKA,IAAM,YAAY,GAA8C,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACnG;;;;;AAKA,IAAM,0BAA0B,GAAG,oCAAoC,CAAC,UAAU,CAAC,CAAC;AAEpF;;;;;IAKa,mBAAmB,GAAG,UAAU,CAAC,UAAU,EAAE;AAE1D;;;;;IAKa,yBAAyB,GAAG,UAAU,CAAC,WAAW,EAAE;AAEjE;;;;;IAKa,2BAA2B,GAAG,YAAY,CAAC,yBAAyB,EAAE;AAEnF;;;;;IAKa,iCAAiC,GAAG,0BAA0B,CACzE,+BAA+B,EAC/B;AAEF;;;;;IAKa,oBAAoB,GAAG,YAAY,CAAC,kBAAkB,EAAE;AAErE;;;;;IAKa,wBAAwB,GAAG,UAAU,CAAC,wBAAwB,EAAE,EAAE,EAAE;AAEjF;;;;;IAKa,qBAAqB,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE;AAEhE;;;;;IAKa,gBAAgB,GAAG,YAAY,CAAC,cAAc,EAAE;AAE7D;;;;;IAKa,iBAAiB,GAAG,YAAY,CAAC;IAC5C,kBAAkB,EAAE;QAClB,mBAAmB,qBAAA;QACnB,wBAAwB,0BAAA;KACzB;IACD,qBAAqB,EAAE;QACrB,oBAAoB,sBAAA;KACrB;IACD,sBAAsB,EAAE;QACtB,wBAAwB,0BAAA;KACzB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,6BAAA;KAC5B;IACD,gBAAgB,EAAE;QAChB,iCAAiC,mCAAA;QACjC,qBAAqB,uBAAA;QACrB,wBAAwB,0BAAA;KACzB;IACD,kBAAkB,EAAE;QAClB,yBAAyB,2BAAA;KAC1B;IACD,mBAAmB,EAAE;QACnB,gBAAgB,kBAAA;KACjB;CACF;;;;"}
1
+ {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/related-tags/wiring.ts"],"sourcesContent":["import {\n namespacedWireCommit,\n namespacedWireDispatch,\n namespacedWireDispatchWithoutPayload\n} from '../../wiring/namespaced-wires.factory';\nimport { NamespacedWireCommit, NamespacedWireDispatch } from '../../wiring/namespaced-wiring.types';\nimport { createWiring } from '../../wiring/wiring.utils';\n\n/**\n * `relatedTags` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'relatedTags';\n/**\n * WireCommit for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireCommit: NamespacedWireCommit<typeof moduleName> = namespacedWireCommit(moduleName);\n/**\n * WireDispatch for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireDispatch: NamespacedWireDispatch<typeof moduleName> = namespacedWireDispatch(moduleName);\n/**\n * WireDispatchWithoutPayload for {@link RelatedTagsXModule}.\n *\n * @internal\n */\nconst wireDispatchWithoutPayload = namespacedWireDispatchWithoutPayload(moduleName);\n\n/**\n * Sets the related tags state `query`.\n *\n * @public\n */\nexport const setRelatedTagsQuery = wireCommit('setQuery');\n\n/**\n * Sets the related tags state `params`.\n *\n * @public\n */\nexport const setRelatedTagsExtraParams = wireCommit('setParams');\n\n/**\n * Requests and stores the related tags.\n *\n * @public\n */\nexport const fetchAndSaveRelatedTagsWire = wireDispatch('fetchAndSaveRelatedTags');\n\n/**\n * Cancels the {@link RelatedTagsActions.fetchAndSaveRelatedTags} request promise.\n *\n * @public\n */\nexport const cancelFetchAndSaveRelatedTagsWire = wireDispatchWithoutPayload(\n 'cancelFetchAndSaveRelatedTags'\n);\n\n/**\n * Sets the selected related tags.\n *\n * @public\n */\nexport const toggleRelatedTagWire = wireDispatch('toggleRelatedTag');\n\n/**\n * Clear the selected related tags.\n *\n * @public\n */\nexport const clearSelectedRelatedTags = wireCommit('setSelectedRelatedTags', []);\n\n/**\n * Clear the related tags query.\n *\n * @public\n */\nexport const clearRelatedTagsQuery = wireCommit('setQuery', '');\n\n/**\n * Saves the params from the url.\n *\n * @public\n */\nexport const setUrlParamsWire = wireDispatch('setUrlParams');\n\n/**\n * Wiring configuration for the {@link RelatedTagsXModule | related tags module}.\n *\n * @internal\n */\nexport const relatedTagsWiring = createWiring({\n ParamsLoadedFromUrl: {\n setUrlParamsWire\n },\n UserAcceptedAQuery: {\n setRelatedTagsQuery,\n clearSelectedRelatedTags\n },\n UserPickedARelatedTag: {\n toggleRelatedTagWire\n },\n UserChangedExtraParams: {\n clearSelectedRelatedTags\n },\n RelatedTagsRequestChanged: {\n fetchAndSaveRelatedTagsWire\n },\n UserClearedQuery: {\n cancelFetchAndSaveRelatedTagsWire,\n clearRelatedTagsQuery,\n clearSelectedRelatedTags\n },\n ExtraParamsChanged: {\n setRelatedTagsExtraParams\n }\n});\n"],"names":[],"mappings":";;;AAQA;;;;;AAKA,IAAM,UAAU,GAAG,aAAa,CAAC;AACjC;;;;;AAKA,IAAM,UAAU,GAA4C,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC7F;;;;;AAKA,IAAM,YAAY,GAA8C,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACnG;;;;;AAKA,IAAM,0BAA0B,GAAG,oCAAoC,CAAC,UAAU,CAAC,CAAC;AAEpF;;;;;IAKa,mBAAmB,GAAG,UAAU,CAAC,UAAU,EAAE;AAE1D;;;;;IAKa,yBAAyB,GAAG,UAAU,CAAC,WAAW,EAAE;AAEjE;;;;;IAKa,2BAA2B,GAAG,YAAY,CAAC,yBAAyB,EAAE;AAEnF;;;;;IAKa,iCAAiC,GAAG,0BAA0B,CACzE,+BAA+B,EAC/B;AAEF;;;;;IAKa,oBAAoB,GAAG,YAAY,CAAC,kBAAkB,EAAE;AAErE;;;;;IAKa,wBAAwB,GAAG,UAAU,CAAC,wBAAwB,EAAE,EAAE,EAAE;AAEjF;;;;;IAKa,qBAAqB,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE;AAEhE;;;;;IAKa,gBAAgB,GAAG,YAAY,CAAC,cAAc,EAAE;AAE7D;;;;;IAKa,iBAAiB,GAAG,YAAY,CAAC;IAC5C,mBAAmB,EAAE;QACnB,gBAAgB,kBAAA;KACjB;IACD,kBAAkB,EAAE;QAClB,mBAAmB,qBAAA;QACnB,wBAAwB,0BAAA;KACzB;IACD,qBAAqB,EAAE;QACrB,oBAAoB,sBAAA;KACrB;IACD,sBAAsB,EAAE;QACtB,wBAAwB,0BAAA;KACzB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,6BAAA;KAC5B;IACD,gBAAgB,EAAE;QAChB,iCAAiC,mCAAA;QACjC,qBAAqB,uBAAA;QACrB,wBAAwB,0BAAA;KACzB;IACD,kBAAkB,EAAE;QAClB,yBAAyB,2BAAA;KAC1B;CACF;;;;"}
@@ -49,6 +49,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../components/icons/cross.vue.js';
52
+ import '../../../components/icons/curated-check.vue.js';
52
53
  import '../../../components/icons/filters.vue.js';
53
54
  import '../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../components/icons/hide.vue.js';
57
58
  import '../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../components/icons/history.vue.js';
60
+ import '../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../components/icons/menu.vue.js';
60
63
  import '../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"main-scroll-item.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/main-scroll-item.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\nimport { Identifiable } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { NoElement, State, xComponentMixin } from '../../../components';\nimport { XInject } from '../../../components/decorators/injection.decorators';\nimport { scrollXModule } from '../x-module';\nimport { ScrollObserverKey } from './scroll.const';\nimport { ScrollVisibilityObserver } from './scroll.types';\n\n/**\n * Wrapper for elements contained in the {@link MainScroll} that should store/restore its\n * position.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)]\n})\nexport default class MainScrollItem extends Vue {\n /**\n * Rendered HTML node.\n *\n * @public\n */\n public $el!: HTMLElement;\n\n /**\n * The item data. Used to set the scroll identifier.\n *\n * @public\n */\n @Prop({ required: true })\n public item!: Identifiable;\n\n /**\n * The tag to render.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n public tag!: string | typeof Vue;\n\n /**\n * Pending identifier scroll position to restore. If it matches the {@link MainScrollItem.item}\n * `id` property, this component should be scrolled into view.\n *\n * @internal\n */\n @State('scroll', 'pendingScrollTo')\n public pendingScrollTo!: string;\n\n /**\n * Observer to detect the first visible element.\n *\n * @internal\n */\n @XInject(ScrollObserverKey)\n public firstVisibleItemObserver!: ScrollVisibilityObserver | null;\n\n /**\n * Initialise scroll behavior.\n * - Observes the rendered element to detect if it is the first visible item.\n * - If the rendered element matches the {@link MainScrollItem.pendingScrollTo}, scrolls the\n * element into the first position of the view.\n *\n * @internal\n */\n async mounted(): Promise<void> {\n await this.$nextTick(); // Mounted does not guarantee that child components are mounted too\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('firstVisibleItemObserver', this.observeItem, { immediate: true });\n }\n\n /**\n * Detaches the observer from the rendered element to prevent memory leaks.\n *\n * @internal\n */\n beforeDestroy(): void {\n this.firstVisibleItemObserver?.unobserve(this.$el);\n }\n\n /**\n * Initialises the element visibility observation, stopping the previous one if it has.\n *\n * @param newObserver - The new observer for the HTML element.\n * @param oldObserver - The old observer for the HTML element.\n */\n observeItem(\n newObserver: ScrollVisibilityObserver | null,\n oldObserver: ScrollVisibilityObserver | null\n ): void {\n oldObserver?.unobserve(this.$el);\n newObserver?.observe(this.$el);\n if (this.pendingScrollTo === this.item.id) {\n this.$el.scrollIntoView();\n this.$x.emit('ScrollRestoreSucceeded');\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;AASA;IAA4C,kCAAG;IAA/C;;KAiFC;;;;;;;;;IAhCO,gCAAO,GAAb;;;;4BACE,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAAtB,SAAsB,CAAC;;wBAEvB,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;KAChF;;;;;;IAOD,sCAAa,GAAb;;QACE,MAAA,IAAI,CAAC,wBAAwB,0CAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpD;;;;;;;IAQD,oCAAW,GAAX,UACE,WAA4C,EAC5C,WAA4C;QAE5C,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACxC;KACF;IAlED;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACE;IAQ3B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;+CACF;IASjC;QADC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;2DACH;IAQhC;QADC,OAAO,CAAC,iBAAiB,CAAC;oEACuC;IAvC/C,cAAc;QAHlC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,cAAc,CAiFlC;IAAD,qBAAC;CAAA,CAjF2C,GAAG;;;;"}
1
+ {"version":3,"file":"main-scroll-item.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/main-scroll-item.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\nimport { Identifiable } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { NoElement, State, xComponentMixin } from '../../../components';\nimport { XInject } from '../../../components/decorators/injection.decorators';\nimport { scrollXModule } from '../x-module';\nimport { ScrollObserverKey } from './scroll.const';\nimport { ScrollVisibilityObserver } from './scroll.types';\n\n/**\n * Wrapper for elements contained in the {@link MainScroll} that should store/restore its\n * position.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)]\n})\nexport default class MainScrollItem extends Vue {\n /**\n * Rendered HTML node.\n *\n * @public\n */\n public $el!: HTMLElement;\n\n /**\n * The item data. Used to set the scroll identifier.\n *\n * @public\n */\n @Prop({ required: true })\n public item!: Identifiable;\n\n /**\n * The tag to render.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n public tag!: string | typeof Vue;\n\n /**\n * Pending identifier scroll position to restore. If it matches the {@link MainScrollItem.item}\n * `id` property, this component should be scrolled into view.\n *\n * @internal\n */\n @State('scroll', 'pendingScrollTo')\n public pendingScrollTo!: string;\n\n /**\n * Observer to detect the first visible element.\n *\n * @internal\n */\n @XInject(ScrollObserverKey)\n public firstVisibleItemObserver!: ScrollVisibilityObserver | null;\n\n /**\n * Initialise scroll behavior.\n * - Observes the rendered element to detect if it is the first visible item.\n * - If the rendered element matches the {@link MainScrollItem.pendingScrollTo}, scrolls the\n * element into the first position of the view.\n *\n * @internal\n */\n async mounted(): Promise<void> {\n await this.$nextTick(); // Mounted does not guarantee that child components are mounted too\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('firstVisibleItemObserver', this.observeItem, { immediate: true });\n }\n\n /**\n * Detaches the observer from the rendered element to prevent memory leaks.\n *\n * @internal\n */\n beforeDestroy(): void {\n this.firstVisibleItemObserver?.unobserve(this.$el);\n }\n\n /**\n * Initialises the element visibility observation, stopping the previous one if it has.\n *\n * @param newObserver - The new observer for the HTML element.\n * @param oldObserver - The old observer for the HTML element.\n */\n observeItem(\n newObserver: ScrollVisibilityObserver | null,\n oldObserver: ScrollVisibilityObserver | null\n ): void {\n oldObserver?.unobserve(this.$el);\n newObserver?.observe(this.$el);\n if (this.pendingScrollTo === this.item.id) {\n this.$el.scrollIntoView();\n this.$x.emit('ScrollRestoreSucceeded');\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;AASA;IAA4C,kCAAG;IAA/C;;KAiFC;;;;;;;;;IAhCO,gCAAO,GAAb;;;;4BACE,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAAtB,SAAsB,CAAC;;wBAEvB,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;KAChF;;;;;;IAOD,sCAAa,GAAb;;QACE,MAAA,IAAI,CAAC,wBAAwB,0CAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpD;;;;;;;IAQD,oCAAW,GAAX,UACE,WAA4C,EAC5C,WAA4C;QAE5C,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACxC;KACF;IAlED;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACE;IAQ3B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;+CACF;IASjC;QADC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;2DACH;IAQhC;QADC,OAAO,CAAC,iBAAiB,CAAC;oEACuC;IAvC/C,cAAc;QAHlC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,cAAc,CAiFlC;IAAD,qBAAC;CAAA,CAjF2C,GAAG;;;;"}
@@ -49,6 +49,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../components/icons/cross.vue.js';
52
+ import '../../../components/icons/curated-check.vue.js';
52
53
  import '../../../components/icons/filters.vue.js';
53
54
  import '../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../components/icons/hide.vue.js';
57
58
  import '../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../components/icons/history.vue.js';
60
+ import '../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../components/icons/menu.vue.js';
60
63
  import '../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-to-top.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/scroll-to-top.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { State, xComponentMixin } from '../../../components';\nimport BaseEventButton from '../../../components/base-event-button.vue';\nimport { NoElement } from '../../../components/no-element';\nimport { Dictionary } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { ScrollComponentState } from '../store';\nimport { scrollXModule } from '../x-module';\nimport { MainScrollId } from './scroll.const';\n\n/**\n * The `ScrollToTop` component is a button that the user can click to make a container scroll\n * up to its initial position.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)],\n components: { BaseEventButton }\n})\nexport default class ScrollToTop extends Vue {\n /**\n * Animation to use for showing/hiding the button.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n public animation!: Vue | string;\n\n /**\n * Threshold in pixels from the top to show the button.\n *\n * @public\n */\n @Prop()\n public thresholdPx?: number;\n\n /**\n * Id of the target scroll component.\n *\n * @public\n */\n @Prop({ default: MainScrollId })\n public scrollId!: string;\n\n /**\n * State of all the scroll components in this module.\n *\n * @internal\n */\n // TODO: Directly retrieve the needed data in this computed property\n @State('scroll', 'data')\n public scrollPositionsMap!: Dictionary<ScrollComponentState>;\n\n /**\n * The scroll data retrieved for this component.\n *\n * @returns The scroll data for this component if a valid {@link ScrollToTop.scrollId} has been\n * passed. Otherwise it returns `null`.\n * @internal\n */\n protected get scrollData(): ScrollComponentState {\n return this.scrollId && this.scrollPositionsMap[this.scrollId]\n ? this.scrollPositionsMap[this.scrollId]\n : {\n position: 0,\n direction: 'UP',\n hasReachedStart: false,\n hasAlmostReachedEnd: false,\n hasReachedEnd: false\n };\n }\n\n /**\n * Event that will be emitted when the scroll to top is clicked.\n *\n * @returns The event to be emitted when the scroll to top is clicked. The id as a payload.\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedScrollToTop: this.scrollId };\n }\n\n /**\n * Checks if the thresholdPx prop has been provided and if it is a number.\n *\n * @returns If the thresholdPx is a number or not.\n * @internal\n */\n protected get useThresholdStrategy(): boolean {\n return typeof this.thresholdPx === 'number';\n }\n\n /**\n * Checks if the threshold has been reached in case the threshold strategy is in use.\n *\n * @returns If the scrollTop is bigger than the thresholdPx.\n * @internal\n */\n protected get isThresholdReached(): boolean {\n return this.useThresholdStrategy && this.scrollData.position > this.thresholdPx!;\n }\n\n /**\n * Whether if the button is visible or not depending on the strategy being used.\n *\n * @returns If the button should be visible or not.\n * @internal\n */\n protected get isVisible(): boolean {\n return this.useThresholdStrategy ? this.isThresholdReached : this.hasAlmostReachedScrollEnd;\n }\n\n /**\n * Returns if the scroll has almost reached its end or not.\n *\n * @returns True if the scroll has almost reached the end and the user is still scrolling down.\n * @internal\n */\n protected get hasAlmostReachedScrollEnd(): boolean {\n return this.scrollData.hasAlmostReachedEnd && this.scrollData.direction === 'DOWN';\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;;;;AAUA;IAAyC,+BAAG;IAA5C;;KAsGC;IA7DC,sBAAc,mCAAU;;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;kBAC1D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;kBACtC;oBACE,QAAQ,EAAE,CAAC;oBACX,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,KAAK;oBACtB,mBAAmB,EAAE,KAAK;oBAC1B,aAAa,EAAE,KAAK;iBACrB,CAAC;SACP;;;OAAA;IAQD,sBAAc,+BAAM;;;;;;;aAApB;YACE,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SAClD;;;OAAA;IAQD,sBAAc,6CAAoB;;;;;;;aAAlC;YACE,OAAO,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC;SAC7C;;;OAAA;IAQD,sBAAc,2CAAkB;;;;;;;aAAhC;YACE,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAY,CAAC;SAClF;;;OAAA;IAQD,sBAAc,kCAAS;;;;;;;aAAvB;YACE,OAAO,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC;SAC7F;;;OAAA;IAQD,sBAAc,kDAAyB;;;;;;;aAAvC;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC;SACpF;;;OAAA;IA9FD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;kDACH;IAQhC;QADC,IAAI,EAAE;oDACqB;IAQ5B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;iDACP;IASzB;QADC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;2DACqC;IAhC1C,WAAW;QAJ/B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE,EAAE,eAAe,iBAAA,EAAE;SAChC,CAAC;OACmB,WAAW,CAsG/B;IAAD,kBAAC;CAAA,CAtGwC,GAAG;;;;"}
1
+ {"version":3,"file":"scroll-to-top.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/scroll-to-top.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { State, xComponentMixin } from '../../../components';\nimport BaseEventButton from '../../../components/base-event-button.vue';\nimport { NoElement } from '../../../components/no-element';\nimport { Dictionary } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { ScrollComponentState } from '../store';\nimport { scrollXModule } from '../x-module';\nimport { MainScrollId } from './scroll.const';\n\n/**\n * The `ScrollToTop` component is a button that the user can click to make a container scroll\n * up to its initial position.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)],\n components: { BaseEventButton }\n})\nexport default class ScrollToTop extends Vue {\n /**\n * Animation to use for showing/hiding the button.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n public animation!: Vue | string;\n\n /**\n * Threshold in pixels from the top to show the button.\n *\n * @public\n */\n @Prop()\n public thresholdPx?: number;\n\n /**\n * Id of the target scroll component.\n *\n * @public\n */\n @Prop({ default: MainScrollId })\n public scrollId!: string;\n\n /**\n * State of all the scroll components in this module.\n *\n * @internal\n */\n // TODO: Directly retrieve the needed data in this computed property\n @State('scroll', 'data')\n public scrollPositionsMap!: Dictionary<ScrollComponentState>;\n\n /**\n * The scroll data retrieved for this component.\n *\n * @returns The scroll data for this component if a valid {@link ScrollToTop.scrollId} has been\n * passed. Otherwise it returns `null`.\n * @internal\n */\n protected get scrollData(): ScrollComponentState {\n return this.scrollId && this.scrollPositionsMap[this.scrollId]\n ? this.scrollPositionsMap[this.scrollId]\n : {\n position: 0,\n direction: 'UP',\n hasReachedStart: false,\n hasAlmostReachedEnd: false,\n hasReachedEnd: false\n };\n }\n\n /**\n * Event that will be emitted when the scroll to top is clicked.\n *\n * @returns The event to be emitted when the scroll to top is clicked. The id as a payload.\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedScrollToTop: this.scrollId };\n }\n\n /**\n * Checks if the thresholdPx prop has been provided and if it is a number.\n *\n * @returns If the thresholdPx is a number or not.\n * @internal\n */\n protected get useThresholdStrategy(): boolean {\n return typeof this.thresholdPx === 'number';\n }\n\n /**\n * Checks if the threshold has been reached in case the threshold strategy is in use.\n *\n * @returns If the scrollTop is bigger than the thresholdPx.\n * @internal\n */\n protected get isThresholdReached(): boolean {\n return this.useThresholdStrategy && this.scrollData.position > this.thresholdPx!;\n }\n\n /**\n * Whether if the button is visible or not depending on the strategy being used.\n *\n * @returns If the button should be visible or not.\n * @internal\n */\n protected get isVisible(): boolean {\n return this.useThresholdStrategy ? this.isThresholdReached : this.hasAlmostReachedScrollEnd;\n }\n\n /**\n * Returns if the scroll has almost reached its end or not.\n *\n * @returns True if the scroll has almost reached the end and the user is still scrolling down.\n * @internal\n */\n protected get hasAlmostReachedScrollEnd(): boolean {\n return this.scrollData.hasAlmostReachedEnd && this.scrollData.direction === 'DOWN';\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;;;;AAUA;IAAyC,+BAAG;IAA5C;;KAsGC;IA7DC,sBAAc,mCAAU;;;;;;;;aAAxB;YACE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;kBAC1D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;kBACtC;oBACE,QAAQ,EAAE,CAAC;oBACX,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,KAAK;oBACtB,mBAAmB,EAAE,KAAK;oBAC1B,aAAa,EAAE,KAAK;iBACrB,CAAC;SACP;;;OAAA;IAQD,sBAAc,+BAAM;;;;;;;aAApB;YACE,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SAClD;;;OAAA;IAQD,sBAAc,6CAAoB;;;;;;;aAAlC;YACE,OAAO,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC;SAC7C;;;OAAA;IAQD,sBAAc,2CAAkB;;;;;;;aAAhC;YACE,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAY,CAAC;SAClF;;;OAAA;IAQD,sBAAc,kCAAS;;;;;;;aAAvB;YACE,OAAO,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC;SAC7F;;;OAAA;IAQD,sBAAc,kDAAyB;;;;;;;aAAvC;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC;SACpF;;;OAAA;IA9FD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;kDACH;IAQhC;QADC,IAAI,EAAE;oDACqB;IAQ5B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;iDACP;IASzB;QADC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;2DACqC;IAhC1C,WAAW;QAJ/B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE,EAAE,eAAe,iBAAA,EAAE;SAChC,CAAC;OACmB,WAAW,CAsG/B;IAAD,kBAAC;CAAA,CAtGwC,GAAG;;;;"}
@@ -49,6 +49,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../components/icons/cross.vue.js';
52
+ import '../../../components/icons/curated-check.vue.js';
52
53
  import '../../../components/icons/filters.vue.js';
53
54
  import '../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../components/icons/hide.vue.js';
57
58
  import '../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../components/icons/history.vue.js';
60
+ import '../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../components/icons/menu.vue.js';
60
63
  import '../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"window-scroll.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/window-scroll.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { ScrollDirection, ScrollMixin, xComponentMixin } from '../../../components';\nimport { WireMetadata } from '../../../wiring';\nimport { scrollXModule } from '../x-module';\nimport { MainScrollId } from './scroll.const';\n\ntype ScrollableElement = 'html' | 'body';\n\n/**\n * The `WindowScroll` component listens to either the `html` or `body` DOM scroll events, and\n * re-emits them as X Events. Additionally it also emits events related to the direction or\n * current position of these elements scroll.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)]\n})\nexport default class WindowScroll extends mixins(ScrollMixin) {\n /**\n * Tag to identify the main scrollable element.\n *\n * @public\n */\n @Prop({ default: 'html' })\n protected scrollableElement!: ScrollableElement;\n /**\n * Id to identify the component.\n *\n * @public\n */\n @Prop({ default: MainScrollId })\n protected id!: string;\n\n mounted(): void {\n this.initAndListenElement();\n this.$on('scroll', (position: number) => {\n this.$x.emit('UserScrolled', position, this.createXEventMetadata());\n });\n this.$on('scroll:direction-change', (direction: ScrollDirection) => {\n this.$x.emit('UserChangedScrollDirection', direction, this.createXEventMetadata());\n });\n this.$on('scroll:at-start', (hasReachedStart: boolean) => {\n this.$x.emit('UserReachedScrollStart', hasReachedStart, this.createXEventMetadata());\n });\n this.$on('scroll:almost-at-end', (hasAlmostReachedEnd: boolean) => {\n this.$x.emit(\n 'UserAlmostReachedScrollEnd',\n hasAlmostReachedEnd,\n this.createXEventMetadata()\n );\n });\n this.$on('scroll:at-end', (hasReachedEnd: boolean) => {\n this.$x.emit('UserReachedScrollEnd', hasReachedEnd, this.createXEventMetadata());\n });\n }\n\n /**\n * Sets the HTML element depending on {@link WindowScroll.scrollableElement}, and initialises\n * its events.\n *\n * @internal\n */\n protected initAndListenElement(): void {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n this.$el = this.scrollableElement === 'body' ? document.body : document.documentElement;\n this.$el.addEventListener('scroll', this.throttledStoreScrollData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n\n /**\n * Cleanup listeners.\n */\n beforeDestroy(): void {\n this.$el.removeEventListener('scroll', this.throttledStoreScrollData);\n }\n\n /**\n * Creates the metadata for the events of this component.\n *\n * @returns A {@link WireMetadata} for the events emitted by this component.\n * @internal\n */\n protected createXEventMetadata(): Partial<WireMetadata> {\n return { target: this.$el, id: this.id };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;;;;;;;AAUA;IAA0C,gCAAmB;IAA7D;;KAuEC;IAvDC,8BAAO,GAAP;QAAA,iBAqBC;QApBC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,QAAgB;YAClC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACrE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAC,SAA0B;YAC7D,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,SAAS,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACpF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAC,eAAwB;YACnD,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,eAAe,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACtF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAC,mBAA4B;YAC5D,KAAI,CAAC,EAAE,CAAC,IAAI,CACV,4BAA4B,EAC5B,mBAAmB,EACnB,KAAI,CAAC,oBAAoB,EAAE,CAC5B,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAC,aAAsB;YAC/C,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,aAAa,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SAClF,CAAC,CAAC;KACJ;;;;;;;IAQS,2CAAoB,GAA9B;;;QAGE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACxF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACpE;;IAGD,6BAAM,GAAN,eAAiB;;;;IAKjB,oCAAa,GAAb;QACE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvE;;;;;;;IAQS,2CAAoB,GAA9B;QACE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;KAC1C;IA/DD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;2DACsB;IAOhD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;4CACV;IAdH,YAAY;QAHhC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,YAAY,CAuEhC;IAAD,mBAAC;CAvED,CAA0C,MAAM,CAAC,WAAW,CAAC;;;;"}
1
+ {"version":3,"file":"window-scroll.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/scroll/components/window-scroll.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { ScrollDirection, ScrollMixin, xComponentMixin } from '../../../components';\nimport { WireMetadata } from '../../../wiring';\nimport { scrollXModule } from '../x-module';\nimport { MainScrollId } from './scroll.const';\n\ntype ScrollableElement = 'html' | 'body';\n\n/**\n * The `WindowScroll` component listens to either the `html` or `body` DOM scroll events, and\n * re-emits them as X Events. Additionally it also emits events related to the direction or\n * current position of these elements scroll.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(scrollXModule)]\n})\nexport default class WindowScroll extends mixins(ScrollMixin) {\n /**\n * Tag to identify the main scrollable element.\n *\n * @public\n */\n @Prop({ default: 'html' })\n protected scrollableElement!: ScrollableElement;\n /**\n * Id to identify the component.\n *\n * @public\n */\n @Prop({ default: MainScrollId })\n protected id!: string;\n\n mounted(): void {\n this.initAndListenElement();\n this.$on('scroll', (position: number) => {\n this.$x.emit('UserScrolled', position, this.createXEventMetadata());\n });\n this.$on('scroll:direction-change', (direction: ScrollDirection) => {\n this.$x.emit('UserChangedScrollDirection', direction, this.createXEventMetadata());\n });\n this.$on('scroll:at-start', (hasReachedStart: boolean) => {\n this.$x.emit('UserReachedScrollStart', hasReachedStart, this.createXEventMetadata());\n });\n this.$on('scroll:almost-at-end', (hasAlmostReachedEnd: boolean) => {\n this.$x.emit(\n 'UserAlmostReachedScrollEnd',\n hasAlmostReachedEnd,\n this.createXEventMetadata()\n );\n });\n this.$on('scroll:at-end', (hasReachedEnd: boolean) => {\n this.$x.emit('UserReachedScrollEnd', hasReachedEnd, this.createXEventMetadata());\n });\n }\n\n /**\n * Sets the HTML element depending on {@link WindowScroll.scrollableElement}, and initialises\n * its events.\n *\n * @internal\n */\n protected initAndListenElement(): void {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n this.$el = this.scrollableElement === 'body' ? document.body : document.documentElement;\n this.$el.addEventListener('scroll', this.throttledStoreScrollData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n\n /**\n * Cleanup listeners.\n */\n beforeDestroy(): void {\n this.$el.removeEventListener('scroll', this.throttledStoreScrollData);\n }\n\n /**\n * Creates the metadata for the events of this component.\n *\n * @returns A {@link WireMetadata} for the events emitted by this component.\n * @internal\n */\n protected createXEventMetadata(): Partial<WireMetadata> {\n return { target: this.$el, id: this.id };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;;;;;;;AAUA;IAA0C,gCAAmB;IAA7D;;KAuEC;IAvDC,8BAAO,GAAP;QAAA,iBAqBC;QApBC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,QAAgB;YAClC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACrE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAC,SAA0B;YAC7D,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,SAAS,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACpF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAC,eAAwB;YACnD,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,eAAe,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACtF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAC,mBAA4B;YAC5D,KAAI,CAAC,EAAE,CAAC,IAAI,CACV,4BAA4B,EAC5B,mBAAmB,EACnB,KAAI,CAAC,oBAAoB,EAAE,CAC5B,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAC,aAAsB;YAC/C,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,aAAa,EAAE,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SAClF,CAAC,CAAC;KACJ;;;;;;;IAQS,2CAAoB,GAA9B;;;QAGE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACxF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACpE;;IAGD,6BAAM,GAAN,eAAiB;;;;IAKjB,oCAAa,GAAb;QACE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvE;;;;;;;IAQS,2CAAoB,GAA9B;QACE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;KAC1C;IA/DD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;2DACsB;IAOhD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;4CACV;IAdH,YAAY;QAHhC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,YAAY,CAuEhC;IAAD,mBAAC;CAvED,CAA0C,MAAM,CAAC,WAAW,CAAC;;;;"}
@@ -49,6 +49,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../components/icons/cross.vue.js';
52
+ import '../../../components/icons/curated-check.vue.js';
52
53
  import '../../../components/icons/filters.vue.js';
53
54
  import '../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../components/icons/hide.vue.js';
57
58
  import '../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../components/icons/history.vue.js';
60
+ import '../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../components/icons/menu.vue.js';
60
63
  import '../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sort-list.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search/components/sort-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\n\n\n\nimport { Sort } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { BaseEventButton } from '../../../components';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { VueCSSClasses } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { searchXModule } from '../x-module';\nimport SortMixin from './sort.mixin';\n\n/**\n * Sort list item options.\n *\n * @public\n */\ninterface SortListItem {\n item: Sort;\n cssClasses: VueCSSClasses;\n event: Partial<XEventsTypes>;\n}\n/**\n * The `SortList` component allows user to select the search results order. This component\n * also allows to change the selected sort programmatically.\n *\n * @remarks It extends {@link SortMixin}.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchXModule)],\n components: {\n BaseEventButton\n }\n})\nexport default class SortList extends mixins(SortMixin) {\n /**\n * The transition to use for rendering the list.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n public animation?: string | typeof Vue;\n /**\n * Sort list items.\n *\n * @returns A list of items with their css class and the event associate to it.\n *\n * @internal\n */\n protected get listItems(): SortListItem[] {\n return this.items.map(item => ({\n item,\n cssClasses: [\n {\n 'x-sort-list__item--is-selected': item === this.selectedSort,\n 'x-option-list__item--is-selected': item === this.selectedSort\n }\n ],\n event: { UserClickedASort: item }\n }));\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA;;;;;;;;AAcA;IAAsC,4BAAiB;IAAvD;;KA2BC;IAZC,sBAAc,+BAAS;;;;;;;;aAAvB;YAAA,iBAWC;YAVC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,QAAC;gBAC7B,IAAI,MAAA;gBACJ,UAAU,EAAE;oBACV;wBACE,gCAAgC,EAAE,IAAI,KAAK,KAAI,CAAC,YAAY;wBAC5D,kCAAkC,EAAE,IAAI,KAAK,KAAI,CAAC,YAAY;qBAC/D;iBACF;gBACD,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;aAClC,IAAC,CAAC,CAAC;SACL;;;OAAA;IAnBD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACe;IAPpB,QAAQ;QAN5B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE;gBACV,eAAe,iBAAA;aAChB;SACF,CAAC;OACmB,QAAQ,CA2B5B;IAAD,eAAC;CA3BD,CAAsC,MAAM,CAAC,SAAS,CAAC;;;;"}
1
+ {"version":3,"file":"sort-list.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search/components/sort-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\n\n\n\nimport { Sort } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { mixins } from 'vue-class-component';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { BaseEventButton } from '../../../components';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { VueCSSClasses } from '../../../utils';\nimport { XEventsTypes } from '../../../wiring';\nimport { searchXModule } from '../x-module';\nimport SortMixin from './sort.mixin';\n\n/**\n * Sort list item options.\n *\n * @public\n */\ninterface SortListItem {\n item: Sort;\n cssClasses: VueCSSClasses;\n event: Partial<XEventsTypes>;\n}\n/**\n * The `SortList` component allows user to select the search results order. This component\n * also allows to change the selected sort programmatically.\n *\n * @remarks It extends {@link SortMixin}.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchXModule)],\n components: {\n BaseEventButton\n }\n})\nexport default class SortList extends mixins(SortMixin) {\n /**\n * The transition to use for rendering the list.\n *\n * @public\n */\n @Prop({ default: 'ul' })\n public animation?: string | typeof Vue;\n /**\n * Sort list items.\n *\n * @returns A list of items with their css class and the event associate to it.\n *\n * @internal\n */\n protected get listItems(): SortListItem[] {\n return this.items.map(item => ({\n item,\n cssClasses: [\n {\n 'x-sort-list__item--is-selected': item === this.selectedSort,\n 'x-option-list__item--is-selected': item === this.selectedSort\n }\n ],\n event: { UserClickedASort: item }\n }));\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA;;;;;;;;AAcA;IAAsC,4BAAiB;IAAvD;;KA2BC;IAZC,sBAAc,+BAAS;;;;;;;;aAAvB;YAAA,iBAWC;YAVC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,QAAC;gBAC7B,IAAI,MAAA;gBACJ,UAAU,EAAE;oBACV;wBACE,gCAAgC,EAAE,IAAI,KAAK,KAAI,CAAC,YAAY;wBAC5D,kCAAkC,EAAE,IAAI,KAAK,KAAI,CAAC,YAAY;qBAC/D;iBACF;gBACD,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;aAClC,IAAC,CAAC,CAAC;SACL;;;OAAA;IAnBD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACe;IAPpB,QAAQ;QAN5B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACxC,UAAU,EAAE;gBACV,eAAe,iBAAA;aAChB;SACF,CAAC;OACmB,QAAQ,CA2B5B;IAAD,eAAC;CA3BD,CAAsC,MAAM,CAAC,SAAS,CAAC;;;;"}
@@ -50,6 +50,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
50
50
  import '../../../components/icons/chevron-up.vue.js';
51
51
  import '../../../components/icons/cross-tiny.vue.js';
52
52
  import '../../../components/icons/cross.vue.js';
53
+ import '../../../components/icons/curated-check.vue.js';
53
54
  import '../../../components/icons/filters.vue.js';
54
55
  import '../../../components/icons/grid-1-col.vue.js';
55
56
  import '../../../components/icons/grid-2-col.vue.js';
@@ -57,6 +58,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
57
58
  import '../../../components/icons/hide.vue.js';
58
59
  import '../../../components/icons/history-tiny.vue.js';
59
60
  import '../../../components/icons/history.vue.js';
61
+ import '../../../components/icons/light-bulb-off.vue.js';
62
+ import '../../../components/icons/light-bulb-on.vue.js';
60
63
  import '../../../components/icons/menu.vue.js';
61
64
  import '../../../components/icons/minus-tiny.vue.js';
62
65
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mixin.js","sources":["../../../../../src/x-modules/search/components/sort.mixin.ts"],"sourcesContent":["import { Sort } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { State, XEmit } from '../../../components';\n\n/**\n * Mixin to share Sort logic.\n *\n * @public\n */\n@Component\nexport default class SortMixin extends Vue {\n /**\n * The list of possible sort values. If there are no values selected, the first item of\n * this list will be selected.\n *\n * @public\n */\n @Prop({ required: true })\n public items!: Sort[];\n\n /**\n * The search module selected sort. This is the source of truth when checking which\n * sort is selected.\n *\n * @internal\n */\n @State('search', 'sort')\n public selectedSort!: Sort;\n\n /**\n * Emits the {@link SearchXEvents.SelectedSortProvided | SelectedSortProvided} event whenever the\n * provided {@link SortMixin.selectedSort} changes. If no value is provided, the first item of the\n * {@link SortMixin.items} will be used as fallback.\n *\n * @returns The sorting value.\n *\n * @public\n */\n @XEmit('SelectedSortProvided')\n public get providedSelectedSort(): Sort {\n return this.selectedSort;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;AAMA;IAAuC,6BAAG;IAA1C;;KAgCC;IAHC,sBAAW,2CAAoB;;;;;;;;;;aAA/B;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;;;OAAA;IAvBD;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;4CACH;IAStB;QADC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;mDACG;IAY3B;QADC,KAAK,CAAC,sBAAsB,CAAC;yDAG7B;IA/BkB,SAAS;QAD7B,SAAS;OACW,SAAS,CAgC7B;IAAD,gBAAC;CAAA,CAhCsC,GAAG;;;;"}
1
+ {"version":3,"file":"sort.mixin.js","sources":["../../../../../src/x-modules/search/components/sort.mixin.ts"],"sourcesContent":["import { Sort } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { State, XEmit } from '../../../components';\n\n/**\n * Mixin to share Sort logic.\n *\n * @public\n */\n@Component\nexport default class SortMixin extends Vue {\n /**\n * The list of possible sort values. If there are no values selected, the first item of\n * this list will be selected.\n *\n * @public\n */\n @Prop({ required: true })\n public items!: Sort[];\n\n /**\n * The search module selected sort. This is the source of truth when checking which\n * sort is selected.\n *\n * @internal\n */\n @State('search', 'sort')\n public selectedSort!: Sort;\n\n /**\n * Emits the {@link SearchXEvents.SelectedSortProvided | SelectedSortProvided} event whenever the\n * provided {@link SortMixin.selectedSort} changes. If no value is provided, the first item of the\n * {@link SortMixin.items} will be used as fallback.\n *\n * @returns The sorting value.\n *\n * @public\n */\n @XEmit('SelectedSortProvided')\n public get providedSelectedSort(): Sort {\n return this.selectedSort;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;AAMA;IAAuC,6BAAG;IAA1C;;KAgCC;IAHC,sBAAW,2CAAoB;;;;;;;;;;aAA/B;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;;;OAAA;IAvBD;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;4CACH;IAStB;QADC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;mDACG;IAY3B;QADC,KAAK,CAAC,sBAAsB,CAAC;yDAG7B;IA/BkB,SAAS;QAD7B,SAAS;OACW,SAAS,CAgC7B;IAAD,gBAAC;CAAA,CAhCsC,GAAG;;;;"}
@@ -49,6 +49,7 @@ import '../../../components/icons/chevron-tiny-up.vue.js';
49
49
  import '../../../components/icons/chevron-up.vue.js';
50
50
  import '../../../components/icons/cross-tiny.vue.js';
51
51
  import '../../../components/icons/cross.vue.js';
52
+ import '../../../components/icons/curated-check.vue.js';
52
53
  import '../../../components/icons/filters.vue.js';
53
54
  import '../../../components/icons/grid-1-col.vue.js';
54
55
  import '../../../components/icons/grid-2-col.vue.js';
@@ -56,6 +57,8 @@ import '../../../components/icons/grid-2-rows.vue.js';
56
57
  import '../../../components/icons/hide.vue.js';
57
58
  import '../../../components/icons/history-tiny.vue.js';
58
59
  import '../../../components/icons/history.vue.js';
60
+ import '../../../components/icons/light-bulb-off.vue.js';
61
+ import '../../../components/icons/light-bulb-on.vue.js';
59
62
  import '../../../components/icons/menu.vue.js';
60
63
  import '../../../components/icons/minus-tiny.vue.js';
61
64
  import '../../../components/icons/minus.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"spellcheck.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search/components/spellcheck.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport { State, xComponentMixin } from '../../../components';\nimport { searchXModule } from '../x-module';\n\n/**\n * The `Spellcheck` component allows to inform the user with a friendly message that he\n * might have misspelled the search query. This message can be set using the default slot\n * of the component, which gives access to the searched query using the `query` scope property,\n * and the spellchecked query proposal, using the `spellcheckedQuery` scope property.\n *\n * The component will only render itself if the `spellcheckedQuery` property has value.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchXModule)]\n})\nexport default class Spellcheck extends Vue {\n /**\n * The query from the search state.\n *\n * @public\n */\n @State('search', 'query')\n public query!: string;\n\n /**\n * The spellcheckedQuery from the search state.\n *\n * @public\n */\n @State('search', 'spellcheckedQuery')\n public spellcheckedQuery!: string;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;AAaA;IAAwC,8BAAG;IAA3C;;KAgBC;IATC;QADC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;6CACH;IAQtB;QADC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC;yDACH;IAff,UAAU;QAH9B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,UAAU,CAgB9B;IAAD,iBAAC;CAAA,CAhBuC,GAAG;;;;"}
1
+ {"version":3,"file":"spellcheck.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search/components/spellcheck.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport { State, xComponentMixin } from '../../../components';\nimport { searchXModule } from '../x-module';\n\n/**\n * The `Spellcheck` component allows to inform the user with a friendly message that he\n * might have misspelled the search query. This message can be set using the default slot\n * of the component, which gives access to the searched query using the `query` scope property,\n * and the spellchecked query proposal, using the `spellcheckedQuery` scope property.\n *\n * The component will only render itself if the `spellcheckedQuery` property has value.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchXModule)]\n})\nexport default class Spellcheck extends Vue {\n /**\n * The query from the search state.\n *\n * @public\n */\n @State('search', 'query')\n public query!: string;\n\n /**\n * The spellcheckedQuery from the search state.\n *\n * @public\n */\n @State('search', 'spellcheckedQuery')\n public spellcheckedQuery!: string;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;AAaA;IAAwC,8BAAG;IAA3C;;KAgBC;IATC;QADC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;6CACH;IAQtB;QADC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC;yDACH;IAff,UAAU;QAH9B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC;OACmB,UAAU,CAgB9B;IAAD,iBAAC;CAAA,CAhBuC,GAAG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tagging.vue.js","sources":["../../../../../src/x-modules/tagging/components/tagging.vue"],"sourcesContent":["<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Inject, Prop } from 'vue-property-decorator';\n import { XEmit } from '../../../components/decorators/bus.decorators';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { SnippetConfig } from '../../../x-installer/api/api.types';\n import { taggingXModule } from '../x-module';\n\n /**\n * This component enables and manages the sending of information to the\n * {@link https://empathy.co/docs/tagging-api/ | Empathy Tagging API}. It allows to enable or\n * disable the session id management through the `consent` prop.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(taggingXModule)]\n })\n export default class Tagging extends Vue {\n /**\n * It injects {@link SnippetConfig} provided by an ancestor as snippetConfig.\n *\n * @internal\n */\n @Inject('snippetConfig')\n protected snippetConfig?: SnippetConfig;\n\n /**\n * The session TTL in milliseconds.\n *\n * @internal\n */\n @Prop()\n @XEmit('SessionDurationProvided')\n public sessionTTLMs: number | undefined;\n\n /**\n * The debounce time in milliseconds to track the query.\n *\n * @internal\n */\n @Prop()\n @XEmit('QueryTaggingDebounceProvided')\n public queryTaggingDebounceMs: number | undefined;\n\n /**\n * The consent to be emitted.\n *\n * @public\n */\n @Prop()\n protected consent?: boolean;\n\n /**\n * The active consent, selected from the `consent` prop and the `snippetConfig.consent`\n * property. False by default.\n *\n * @remarks If the consent is undefined in the prop and in the snippetConfig, it will return\n * false.\n *\n * @returns A boolean that represents if the consent is accepted or not.\n */\n @XEmit('ConsentProvided')\n public get activeConsent(): boolean {\n return this.consent ?? this.snippetConfig?.consent ?? false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n }\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`ConsentProvided`](./../../api/x-components.taggingxevents.consentprovided.md)\n- [`SessionDurationProvided`](./../../api/x-components.taggingxevents.sessiondurationprovided.md)\n- `QueryTaggingDebounceProvided`[1]\n [1](./../../api/x-components.taggingxevents.querytaggingdebounceprovided.md)\n\n## See it in action\n\nThis component manages the tagging of the API to track the different features. This component\ndoesn't render elements to the DOM.\n\n```vue\n<template>\n <Tagging />\n</template>\n\n<script>\n import { Tagging } from '@empathyco/x-components/tagging';\n\n export default {\n name: 'TaggingDemo',\n components: {\n Tagging\n }\n };\n</script>\n```\n\n### Play with props\n\nIn this example, the `Tagging` component will emit `ConsentProvided` with payload false by default\nif the consent is not provided, the `SessionDurationProvided` and `QueryTaggingDebounceProvided`\nevents will be emitted only if the props are defined.\n\n```vue\n<template>\n <Tagging :consent=\"true\" :queryTaggingDebounceMs=\"300\" :sessionDurationMs=\"30000\" />\n</template>\n\n<script>\n import { Tagging } from '@empathyco/x-components/tagging';\n\n export default {\n name: 'TaggingDemo',\n components: {\n Tagging\n }\n };\n</script>\n```\n\n### Play with events\n\nThe `Tagging` will emit the `ConsentProvided` when the component is loaded and the consent is set by\nthe prop or getting the value from the snippet config.\n\nThe `Tagging` will emit the `SessionDurationProvided` when the component is loaded with a session\nduration using the prop.\n\nThe `Tagging` will emit the `QueryTaggingDebounceProvided` when the component is loaded with query\ndebounce using the prop.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tagging.vue.js","sources":["../../../../../src/x-modules/tagging/components/tagging.vue"],"sourcesContent":["<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Inject, Prop } from 'vue-property-decorator';\n import { XEmit } from '../../../components/decorators/bus.decorators';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { SnippetConfig } from '../../../x-installer/api/api.types';\n import { taggingXModule } from '../x-module';\n import { TaggingConfig } from '../config.types';\n\n /**\n * This component enables and manages the sending of information to the\n * {@link https://empathy.co/docs/tagging-api/ | Empathy Tagging API}. It allows to enable or\n * disable the session id management through the `consent` prop.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(taggingXModule)]\n })\n export default class Tagging extends Vue {\n /**\n * The TTL in milliseconds for storing the clicked result info.\n *\n * @public\n */\n @Prop({ default: 30000 })\n public clickedResultStorageTTLMs!: number;\n\n /**\n * The Object key of the {@link @empathyco/x-types#Result | result} clicked by the user\n * that will be used as id for the storage. By default, the Result url will be used.\n *\n * @public\n */\n @Prop({ default: 'url' })\n public clickedResultStorageKey!: string;\n\n /**\n * It injects {@link SnippetConfig} provided by an ancestor as snippetConfig.\n *\n * @internal\n */\n @Inject('snippetConfig')\n protected snippetConfig?: SnippetConfig;\n\n /**\n * The session TTL in milliseconds.\n *\n * @internal\n */\n @Prop()\n public sessionTTLMs: number | undefined;\n\n /**\n * The debounce time in milliseconds to track the query.\n *\n * @internal\n */\n @Prop()\n public queryTaggingDebounceMs: number | undefined;\n\n /**\n * The consent to be emitted.\n *\n * @public\n */\n @Prop()\n protected consent?: boolean;\n\n /**\n * The active consent, selected from the `consent` prop and the `snippetConfig.consent`\n * property. False by default.\n *\n * @remarks If the consent is undefined in the prop and in the snippetConfig, it will return\n * false.\n *\n * @returns A boolean that represents if the consent is accepted or not.\n */\n @XEmit('ConsentProvided')\n public get activeConsent(): boolean {\n return this.consent ?? this.snippetConfig?.consent ?? false;\n }\n\n @XEmit('TaggingConfigProvided')\n public get config(): TaggingConfig {\n return {\n queryTaggingDebounceMs: this.queryTaggingDebounceMs as number,\n sessionTTLMs: this.sessionTTLMs as number,\n clickedResultStorageTTLMs: this.clickedResultStorageTTLMs,\n clickedResultStorageKey: this.clickedResultStorageKey\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n\n /**\n * To emit the event that PDP is loaded just when the snippet config includes a product id.\n */\n created(): void {\n this.emitEvents();\n }\n\n /**\n * Emits the {@link TaggingXEvents.PDPIsLoaded} XEvent if the snippet config contains\n * a product id.\n *\n * @internal\n */\n protected emitEvents(): void {\n if (this.snippetConfig?.productId) {\n this.$x.emit('PDPIsLoaded', this.snippetConfig.productId);\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`ConsentProvided`](./../../api/x-components.taggingxevents.consentprovided.md)\n- [`TaggingConfigProvided`](./../../api/x-components.taggingxevents.taggingconfigprovided.md)\n\n## See it in action\n\nThis component manages the tagging of the API to track the different features. This component\ndoesn't render elements to the DOM.\n\n```vue\n<template>\n <Tagging />\n</template>\n\n<script>\n import { Tagging } from '@empathyco/x-components/tagging';\n\n export default {\n name: 'TaggingDemo',\n components: {\n Tagging\n }\n };\n</script>\n```\n\n### Play with props\n\nIn this example, the `Tagging` component will emit `ConsentProvided` with payload false by default\nif the consent is not provided, the `TaggingConfigProvided` event will be emitted only if the props\n`queryTaggingDebounceMs`, `sessionDurationMs`, `clickedResultStorageTTLMs` or\n`clickedResultStorageKey`are defined.\n\nEvery time the user clicks a result the information for the clicked product will be stored on the\nbrowser during 30 seconds which is the default value for the prop `clickedResultStorageTTLMs`. To\ndistinguish the storage information for the different results the product url will be used since\n`clickedResultStorageKey` default value is 'url'.\n\n```vue\n<template>\n <Tagging :consent=\"true\" :queryTaggingDebounceMs=\"300\" :sessionDurationMs=\"30000\" />\n</template>\n\n<script>\n import { Tagging } from '@empathyco/x-components/tagging';\n\n export default {\n name: 'TaggingDemo',\n components: {\n Tagging\n }\n };\n</script>\n```\n\nIn this example, the clicked result information will be stored on the browser during 60 seconds and\nthe product id will be used as storage key.\n\n```vue\n<template>\n <Tagging :clickedResultStorageTTLMs=\"60000\" :clickedResultStorageKey=\"'id'\" />\n</template>\n\n<script>\n import { Tagging } from '@empathyco/x-components/tagging';\n\n export default {\n name: 'TaggingDemo',\n components: {\n Tagging\n }\n };\n</script>\n```\n\n### Play with events\n\nThe `Tagging` will emit the `ConsentProvided` when the component is loaded and the consent is set by\nthe prop or getting the value from the snippet config.\n\nThe `Tagging` will emit the `TaggingConfigProvided` when the component is loaded with the new\n[`TaggingConfig`](./../../api/x-components.taggingconfig.md) using the prop values.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { __extends, __decorate } from 'tslib';
2
2
  import Vue from 'vue';
3
- import { Inject, Prop, Component } from 'vue-property-decorator';
3
+ import { Prop, Inject, Component } from 'vue-property-decorator';
4
4
  import { XEmit } from '../../../components/decorators/bus.decorators.js';
5
5
  import { xComponentMixin } from '../../../components/x-component.mixin.js';
6
6
  import { taggingXModule } from '../x-module.js';
@@ -34,18 +34,52 @@ var Tagging = /** @class */ (function (_super) {
34
34
  enumerable: false,
35
35
  configurable: true
36
36
  });
37
+ Object.defineProperty(Tagging.prototype, "config", {
38
+ get: function () {
39
+ return {
40
+ queryTaggingDebounceMs: this.queryTaggingDebounceMs,
41
+ sessionTTLMs: this.sessionTTLMs,
42
+ clickedResultStorageTTLMs: this.clickedResultStorageTTLMs,
43
+ clickedResultStorageKey: this.clickedResultStorageKey
44
+ };
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
37
49
  // eslint-disable-next-line @typescript-eslint/no-empty-function
38
50
  Tagging.prototype.render = function () { };
51
+ /**
52
+ * To emit the event that PDP is loaded just when the snippet config includes a product id.
53
+ */
54
+ Tagging.prototype.created = function () {
55
+ this.emitEvents();
56
+ };
57
+ /**
58
+ * Emits the {@link TaggingXEvents.PDPIsLoaded} XEvent if the snippet config contains
59
+ * a product id.
60
+ *
61
+ * @internal
62
+ */
63
+ Tagging.prototype.emitEvents = function () {
64
+ var _a;
65
+ if ((_a = this.snippetConfig) === null || _a === void 0 ? void 0 : _a.productId) {
66
+ this.$x.emit('PDPIsLoaded', this.snippetConfig.productId);
67
+ }
68
+ };
69
+ __decorate([
70
+ Prop({ default: 30000 })
71
+ ], Tagging.prototype, "clickedResultStorageTTLMs", void 0);
72
+ __decorate([
73
+ Prop({ default: 'url' })
74
+ ], Tagging.prototype, "clickedResultStorageKey", void 0);
39
75
  __decorate([
40
76
  Inject('snippetConfig')
41
77
  ], Tagging.prototype, "snippetConfig", void 0);
42
78
  __decorate([
43
- Prop(),
44
- XEmit('SessionDurationProvided')
79
+ Prop()
45
80
  ], Tagging.prototype, "sessionTTLMs", void 0);
46
81
  __decorate([
47
- Prop(),
48
- XEmit('QueryTaggingDebounceProvided')
82
+ Prop()
49
83
  ], Tagging.prototype, "queryTaggingDebounceMs", void 0);
50
84
  __decorate([
51
85
  Prop()
@@ -53,6 +87,9 @@ var Tagging = /** @class */ (function (_super) {
53
87
  __decorate([
54
88
  XEmit('ConsentProvided')
55
89
  ], Tagging.prototype, "activeConsent", null);
90
+ __decorate([
91
+ XEmit('TaggingConfigProvided')
92
+ ], Tagging.prototype, "config", null);
56
93
  Tagging = __decorate([
57
94
  Component({
58
95
  mixins: [xComponentMixin(taggingXModule)]
@@ -1 +1 @@
1
- {"version":3,"file":"tagging.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/tagging/components/tagging.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport Vue from 'vue';\nimport { Component, Inject, Prop } from 'vue-property-decorator';\nimport { XEmit } from '../../../components/decorators/bus.decorators';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { SnippetConfig } from '../../../x-installer/api/api.types';\nimport { taggingXModule } from '../x-module';\n\n/**\n * This component enables and manages the sending of information to the\n * {@link https://empathy.co/docs/tagging-api/ | Empathy Tagging API}. It allows to enable or\n * disable the session id management through the `consent` prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(taggingXModule)]\n})\nexport default class Tagging extends Vue {\n /**\n * It injects {@link SnippetConfig} provided by an ancestor as snippetConfig.\n *\n * @internal\n */\n @Inject('snippetConfig')\n protected snippetConfig?: SnippetConfig;\n\n /**\n * The session TTL in milliseconds.\n *\n * @internal\n */\n @Prop()\n @XEmit('SessionDurationProvided')\n public sessionTTLMs: number | undefined;\n\n /**\n * The debounce time in milliseconds to track the query.\n *\n * @internal\n */\n @Prop()\n @XEmit('QueryTaggingDebounceProvided')\n public queryTaggingDebounceMs: number | undefined;\n\n /**\n * The consent to be emitted.\n *\n * @public\n */\n @Prop()\n protected consent?: boolean;\n\n /**\n * The active consent, selected from the `consent` prop and the `snippetConfig.consent`\n * property. False by default.\n *\n * @remarks If the consent is undefined in the prop and in the snippetConfig, it will return\n * false.\n *\n * @returns A boolean that represents if the consent is accepted or not.\n */\n @XEmit('ConsentProvided')\n public get activeConsent(): boolean {\n return this.consent ?? this.snippetConfig?.consent ?? false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n}\n"],"names":[],"mappings":";;;;;;;AAQA;;;;;;;AAUA;IAAqC,2BAAG;IAAxC;;KAmDC;IANC,sBAAW,kCAAa;;;;;;;;;;aAAxB;;YACE,OAAO,MAAA,MAAA,IAAI,CAAC,OAAO,mCAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,mCAAI,KAAK,CAAC;SAC7D;;;OAAA;;IAGD,wBAAM,GAAN,eAAiB;IA3CjB;QADC,MAAM,CAAC,eAAe,CAAC;kDACgB;IASxC;QAFC,IAAI,EAAE;QACN,KAAK,CAAC,yBAAyB,CAAC;iDACO;IASxC;QAFC,IAAI,EAAE;QACN,KAAK,CAAC,8BAA8B,CAAC;2DACY;IAQlD;QADC,IAAI,EAAE;4CACqB;IAY5B;QADC,KAAK,CAAC,iBAAiB,CAAC;gDAGxB;IA/CkB,OAAO;QAH3B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;SAC1C,CAAC;OACmB,OAAO,CAmD3B;IAAD,cAAC;CAAA,CAnDoC,GAAG;;;;"}
1
+ {"version":3,"file":"tagging.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/tagging/components/tagging.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\nimport Vue from 'vue';\nimport { Component, Inject, Prop } from 'vue-property-decorator';\nimport { XEmit } from '../../../components/decorators/bus.decorators';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { SnippetConfig } from '../../../x-installer/api/api.types';\nimport { taggingXModule } from '../x-module';\nimport { TaggingConfig } from '../config.types';\n\n/**\n * This component enables and manages the sending of information to the\n * {@link https://empathy.co/docs/tagging-api/ | Empathy Tagging API}. It allows to enable or\n * disable the session id management through the `consent` prop.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(taggingXModule)]\n})\nexport default class Tagging extends Vue {\n /**\n * The TTL in milliseconds for storing the clicked result info.\n *\n * @public\n */\n @Prop({ default: 30000 })\n public clickedResultStorageTTLMs!: number;\n\n /**\n * The Object key of the {@link @empathyco/x-types#Result | result} clicked by the user\n * that will be used as id for the storage. By default, the Result url will be used.\n *\n * @public\n */\n @Prop({ default: 'url' })\n public clickedResultStorageKey!: string;\n\n /**\n * It injects {@link SnippetConfig} provided by an ancestor as snippetConfig.\n *\n * @internal\n */\n @Inject('snippetConfig')\n protected snippetConfig?: SnippetConfig;\n\n /**\n * The session TTL in milliseconds.\n *\n * @internal\n */\n @Prop()\n public sessionTTLMs: number | undefined;\n\n /**\n * The debounce time in milliseconds to track the query.\n *\n * @internal\n */\n @Prop()\n public queryTaggingDebounceMs: number | undefined;\n\n /**\n * The consent to be emitted.\n *\n * @public\n */\n @Prop()\n protected consent?: boolean;\n\n /**\n * The active consent, selected from the `consent` prop and the `snippetConfig.consent`\n * property. False by default.\n *\n * @remarks If the consent is undefined in the prop and in the snippetConfig, it will return\n * false.\n *\n * @returns A boolean that represents if the consent is accepted or not.\n */\n @XEmit('ConsentProvided')\n public get activeConsent(): boolean {\n return this.consent ?? this.snippetConfig?.consent ?? false;\n }\n\n @XEmit('TaggingConfigProvided')\n public get config(): TaggingConfig {\n return {\n queryTaggingDebounceMs: this.queryTaggingDebounceMs as number,\n sessionTTLMs: this.sessionTTLMs as number,\n clickedResultStorageTTLMs: this.clickedResultStorageTTLMs,\n clickedResultStorageKey: this.clickedResultStorageKey\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render(): void {}\n\n /**\n * To emit the event that PDP is loaded just when the snippet config includes a product id.\n */\n created(): void {\n this.emitEvents();\n }\n\n /**\n * Emits the {@link TaggingXEvents.PDPIsLoaded} XEvent if the snippet config contains\n * a product id.\n *\n * @internal\n */\n protected emitEvents(): void {\n if (this.snippetConfig?.productId) {\n this.$x.emit('PDPIsLoaded', this.snippetConfig.productId);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AASA;;;;;;;AAUA;IAAqC,2BAAG;IAAxC;;KA+FC;IAnCC,sBAAW,kCAAa;;;;;;;;;;aAAxB;;YACE,OAAO,MAAA,MAAA,IAAI,CAAC,OAAO,mCAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,mCAAI,KAAK,CAAC;SAC7D;;;OAAA;IAGD,sBAAW,2BAAM;aAAjB;YACE,OAAO;gBACL,sBAAsB,EAAE,IAAI,CAAC,sBAAgC;gBAC7D,YAAY,EAAE,IAAI,CAAC,YAAsB;gBACzC,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;gBACzD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;aACtD,CAAC;SACH;;;OAAA;;IAGD,wBAAM,GAAN,eAAiB;;;;IAKjB,yBAAO,GAAP;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;;;;IAQS,4BAAU,GAApB;;QACE,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,SAAS,EAAE;YACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC3D;KACF;IAvFD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;8DACiB;IAS1C;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;4DACe;IAQxC;QADC,MAAM,CAAC,eAAe,CAAC;kDACgB;IAQxC;QADC,IAAI,EAAE;iDACiC;IAQxC;QADC,IAAI,EAAE;2DAC2C;IAQlD;QADC,IAAI,EAAE;4CACqB;IAY5B;QADC,KAAK,CAAC,iBAAiB,CAAC;gDAGxB;IAGD;QADC,KAAK,CAAC,uBAAuB,CAAC;yCAQ9B;IAxEkB,OAAO;QAH3B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;SAC1C,CAAC;OACmB,OAAO,CA+F3B;IAAD,cAAC;CAAA,CA/FoC,GAAG;;;;"}