@empathyco/x-components 3.0.0-alpha.32 → 3.0.0-alpha.36

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 (568) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/core/index.js +24 -22
  3. package/core/index.js.map +1 -1
  4. package/docs/API-reference/api/x-adapter.empathyrelatedtag.md +1 -0
  5. package/docs/API-reference/api/x-adapter.empathyrelatedtag.source.md +11 -0
  6. package/docs/API-reference/api/x-components.baseidtogglepanel.md +0 -1
  7. package/docs/API-reference/api/x-components.baseresultlink.md +1 -1
  8. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  9. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.isbackdropvisible.md +11 -0
  10. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.leftasideanimation.md +11 -0
  11. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.md +30 -0
  12. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.rightasideanimation.md +11 -0
  13. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.scrollposition.md +11 -0
  14. package/docs/API-reference/api/x-components.fixedheaderandasideslayout.setposition.md +22 -0
  15. package/docs/API-reference/api/x-components.getrootxcomponent.md +2 -2
  16. package/docs/API-reference/api/x-components.isxcomponent.md +2 -2
  17. package/docs/API-reference/api/x-components.maybearray.md +13 -0
  18. package/docs/API-reference/api/x-components.md +12 -7
  19. package/docs/API-reference/api/x-components.namespaceddebounce.md +2 -2
  20. package/docs/API-reference/api/x-components.namespacedthrottle.md +2 -2
  21. package/docs/API-reference/api/{x-components.namespacedtimeretrieving.md → x-components.namespacedtimeselector.md} +3 -3
  22. package/docs/API-reference/api/x-components.namespacedtimewireoperator.md +3 -3
  23. package/docs/API-reference/api/x-components.relatedtag.highlightcurated.md +13 -0
  24. package/docs/API-reference/api/x-components.relatedtag.md +1 -0
  25. package/docs/API-reference/api/x-components.relatedtags.highlightcurated.md +13 -0
  26. package/docs/API-reference/api/x-components.searchxevents.md +2 -0
  27. package/docs/API-reference/api/x-components.searchxevents.userclickedabanner.md +13 -0
  28. package/docs/API-reference/api/x-components.searchxevents.userclickedapromoted.md +13 -0
  29. package/docs/API-reference/api/x-components.setconsent.md +1 -1
  30. package/docs/API-reference/api/x-components.setquerytaggingdebounce.md +1 -1
  31. package/docs/API-reference/api/x-components.setsessionduration.md +1 -1
  32. package/docs/API-reference/api/x-components.snippetconfig.isspa.md +13 -0
  33. package/docs/API-reference/api/x-components.snippetconfig.md +1 -0
  34. package/docs/API-reference/api/x-components.tagicon.md +11 -0
  35. package/docs/API-reference/api/x-components.throttle.md +3 -3
  36. package/docs/API-reference/api/x-components.timedwireoperatoroptions.cancelon.md +13 -0
  37. package/docs/API-reference/api/x-components.timedwireoperatoroptions.forceon.md +13 -0
  38. package/docs/API-reference/api/x-components.timedwireoperatoroptions.md +21 -0
  39. package/docs/API-reference/api/{x-components.timeretrieving.md → x-components.timeselector.md} +3 -3
  40. package/docs/API-reference/api/x-components.trackaddtocartwire.md +13 -0
  41. package/docs/API-reference/api/{x-components.trackwire.md → x-components.trackquerywire.md} +3 -3
  42. package/docs/API-reference/api/x-components.trackresultclickedwire.md +13 -0
  43. package/docs/API-reference/api/x-components.xeventstypes.md +0 -1
  44. package/docs/API-reference/api/x-components.xinstaller.md +1 -1
  45. package/docs/API-reference/api/x-types.relatedtag.iscurated.md +13 -0
  46. package/docs/API-reference/api/x-types.relatedtag.md +1 -0
  47. package/docs/API-reference/components/common/animations/x-components.animate-width.md +6 -7
  48. package/docs/API-reference/components/common/animations/x-components.collapse-from-top.md +7 -8
  49. package/docs/API-reference/components/common/animations/x-components.collapse-height.md +8 -9
  50. package/docs/API-reference/components/common/animations/x-components.collapse-width.md +8 -9
  51. package/docs/API-reference/components/common/animations/x-components.cross-fade.md +7 -8
  52. package/docs/API-reference/components/common/animations/x-components.fade-and-slide.md +7 -8
  53. package/docs/API-reference/components/common/animations/x-components.staggered-fade-and-slide.md +7 -8
  54. package/docs/API-reference/components/common/{x-components.staggering-transition-group.md → animations/x-components.staggering-transition-group.md} +8 -9
  55. package/docs/API-reference/components/common/animations/x-components.translate-from-left.md +7 -8
  56. package/docs/API-reference/components/common/animations/x-components.translate-from-right.md +7 -8
  57. package/docs/API-reference/components/common/column-picker/x-components.base-column-picker-dropdown.md +12 -13
  58. package/docs/API-reference/components/common/column-picker/x-components.base-column-picker-list.md +11 -12
  59. package/docs/API-reference/components/common/currency/x-components.base-currency.md +9 -12
  60. package/docs/API-reference/components/common/filters/labels/x-components.base-price-filter-label.md +9 -10
  61. package/docs/API-reference/components/common/filters/labels/x-components.base-rating-filter-label.md +11 -12
  62. package/docs/API-reference/components/common/icons/x-components.arrow.md +3 -4
  63. package/docs/API-reference/components/common/icons/x-components.bag.md +3 -4
  64. package/docs/API-reference/components/common/icons/x-components.bar-code.md +4 -5
  65. package/docs/API-reference/components/common/icons/x-components.barcode-tiny.md +4 -5
  66. package/docs/API-reference/components/common/icons/x-components.cart.md +3 -4
  67. package/docs/API-reference/components/common/icons/x-components.check-tiny.md +4 -5
  68. package/docs/API-reference/components/common/icons/x-components.check.md +3 -4
  69. package/docs/API-reference/components/common/icons/x-components.checkbox-card-selected.md +4 -5
  70. package/docs/API-reference/components/common/icons/x-components.checkbox-card-unselected.md +4 -5
  71. package/docs/API-reference/components/common/icons/x-components.checkbox-selected.md +4 -5
  72. package/docs/API-reference/components/common/icons/x-components.checkbox-unselected.md +4 -5
  73. package/docs/API-reference/components/common/icons/x-components.chevron-down.md +4 -5
  74. package/docs/API-reference/components/common/icons/x-components.chevron-left.md +4 -5
  75. package/docs/API-reference/components/common/icons/x-components.chevron-right.md +4 -5
  76. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-down.md +4 -5
  77. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-left.md +4 -5
  78. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-right.md +4 -5
  79. package/docs/API-reference/components/common/icons/x-components.chevron-tiny-up.md +4 -5
  80. package/docs/API-reference/components/common/icons/x-components.chevron-up.md +4 -5
  81. package/docs/API-reference/components/common/icons/x-components.cross-tiny.md +4 -5
  82. package/docs/API-reference/components/common/icons/x-components.cross.md +3 -4
  83. package/docs/API-reference/components/common/icons/x-components.filters.md +3 -4
  84. package/docs/API-reference/components/common/icons/x-components.grid-1-col.md +4 -5
  85. package/docs/API-reference/components/common/icons/x-components.grid-2-col.md +4 -5
  86. package/docs/API-reference/components/common/icons/x-components.hide.md +3 -4
  87. package/docs/API-reference/components/common/icons/x-components.history-tiny.md +4 -5
  88. package/docs/API-reference/components/common/icons/x-components.history.md +3 -4
  89. package/docs/API-reference/components/common/icons/x-components.menu.md +3 -4
  90. package/docs/API-reference/components/common/icons/x-components.minus-tiny.md +4 -5
  91. package/docs/API-reference/components/common/icons/x-components.minus.md +3 -4
  92. package/docs/API-reference/components/common/icons/x-components.nq-1.md +4 -5
  93. package/docs/API-reference/components/common/icons/x-components.nq-2.md +4 -5
  94. package/docs/API-reference/components/common/icons/x-components.nq-3.md +4 -5
  95. package/docs/API-reference/components/common/icons/x-components.nq-4.md +4 -5
  96. package/docs/API-reference/components/common/icons/x-components.plus.md +3 -4
  97. package/docs/API-reference/components/common/icons/x-components.search-tiny.md +4 -5
  98. package/docs/API-reference/components/common/icons/x-components.search.md +3 -4
  99. package/docs/API-reference/components/common/icons/x-components.show.md +3 -4
  100. package/docs/API-reference/components/common/icons/x-components.star.md +3 -4
  101. package/docs/API-reference/components/common/icons/x-components.tag.md +7 -0
  102. package/docs/API-reference/components/common/icons/x-components.trash-open.md +4 -5
  103. package/docs/API-reference/components/common/icons/x-components.trash.md +3 -4
  104. package/docs/API-reference/components/common/icons/x-components.trending-tiny.md +4 -5
  105. package/docs/API-reference/components/common/icons/x-components.trending.md +3 -4
  106. package/docs/API-reference/components/common/icons/x-components.user.md +3 -4
  107. package/docs/API-reference/components/common/layouts/x-components.fixed-header-and-asides-layout.md +8 -9
  108. package/docs/API-reference/components/common/layouts/x-components.multi-column-max-width-layout.md +8 -9
  109. package/docs/API-reference/components/common/layouts/x-components.single-column-layout.md +6 -5
  110. package/docs/API-reference/components/common/modals/x-components.base-events-modal-close.md +10 -11
  111. package/docs/API-reference/components/common/modals/x-components.base-events-modal-open.md +10 -11
  112. package/docs/API-reference/components/common/modals/x-components.base-events-modal.md +15 -16
  113. package/docs/API-reference/components/common/modals/x-components.base-id-modal-close.md +9 -10
  114. package/docs/API-reference/components/common/modals/x-components.base-id-modal-open.md +9 -10
  115. package/docs/API-reference/components/common/modals/x-components.base-id-modal.md +11 -12
  116. package/docs/API-reference/components/common/modals/x-components.base-modal.md +7 -8
  117. package/docs/API-reference/components/common/panels/x-components.base-header-toggle-panel.md +11 -12
  118. package/docs/API-reference/components/common/panels/x-components.base-id-toggle-panel-button.md +10 -11
  119. package/docs/API-reference/components/common/panels/x-components.base-id-toggle-panel.md +10 -11
  120. package/docs/API-reference/components/common/panels/x-components.base-toggle-panel.md +8 -9
  121. package/docs/API-reference/components/common/result/x-components.base-result-add-to-cart.md +9 -10
  122. package/docs/API-reference/components/common/result/x-components.base-result-current-price.md +10 -11
  123. package/docs/API-reference/components/common/result/x-components.base-result-fallback-image.md +4 -5
  124. package/docs/API-reference/components/common/result/x-components.base-result-image.md +9 -10
  125. package/docs/API-reference/components/common/result/x-components.base-result-link.md +15 -24
  126. package/docs/API-reference/components/common/result/x-components.base-result-placeholder-image.md +4 -5
  127. package/docs/API-reference/components/common/result/x-components.base-result-previous-price.md +9 -10
  128. package/docs/API-reference/components/common/scroll/x-components.base-scroll.md +8 -9
  129. package/docs/API-reference/components/common/suggestions/x-components.base-suggestion.md +10 -11
  130. package/docs/API-reference/components/common/suggestions/x-components.base-suggestions.md +7 -8
  131. package/docs/API-reference/components/common/x-components.auto-progress-bar.md +5 -6
  132. package/docs/API-reference/components/common/x-components.base-dropdown.md +8 -9
  133. package/docs/API-reference/components/common/x-components.base-event-button.md +11 -12
  134. package/docs/API-reference/components/common/x-components.base-grid.md +15 -16
  135. package/docs/API-reference/components/common/x-components.base-keyboard-navigation.md +10 -11
  136. package/docs/API-reference/components/common/x-components.base-rating.md +10 -11
  137. package/docs/API-reference/components/common/x-components.base-variable-column-grid.md +10 -11
  138. package/docs/API-reference/components/common/x-components.global-x-bus.md +6 -7
  139. package/docs/API-reference/components/common/x-components.items-list.md +6 -5
  140. package/docs/API-reference/components/common/x-components.location-provider.md +6 -7
  141. package/docs/API-reference/components/common/x-components.sliding-panel.md +10 -11
  142. package/docs/API-reference/components/common/x-components.snippet-callbacks.md +6 -7
  143. package/docs/API-reference/components/device/x-components.device-detector.md +8 -9
  144. package/docs/API-reference/components/empathize/x-components.empathize.md +8 -9
  145. package/docs/API-reference/components/extra-params/x-components.extra-params.md +7 -8
  146. package/docs/API-reference/components/extra-params/x-components.renderless-extra-param.md +9 -10
  147. package/docs/API-reference/components/extra-params/x-components.snippet-config-extra-params.md +6 -7
  148. package/docs/API-reference/components/facets/x-components.clear-filters.md +9 -10
  149. package/docs/API-reference/components/facets/x-components.facets/facets-provider.md +10 -11
  150. package/docs/API-reference/components/facets/x-components.facets/facets.md +12 -13
  151. package/docs/API-reference/components/facets/x-components.filters/all-filter.md +15 -16
  152. package/docs/API-reference/components/facets/x-components.filters/base-filter.md +12 -13
  153. package/docs/API-reference/components/facets/x-components.filters/editable-number-range-filter.md +12 -13
  154. package/docs/API-reference/components/facets/x-components.filters/hierarchical-filter.md +9 -10
  155. package/docs/API-reference/components/facets/x-components.filters/number-range-filter.md +9 -10
  156. package/docs/API-reference/components/facets/x-components.filters/renderless-filter.md +12 -13
  157. package/docs/API-reference/components/facets/x-components.filters/simple-filter.md +10 -11
  158. package/docs/API-reference/components/facets/x-components.lists/exclude-filters-with-no-results.md +11 -12
  159. package/docs/API-reference/components/facets/x-components.lists/filters-list.md +11 -12
  160. package/docs/API-reference/components/facets/x-components.lists/filters-search.md +9 -10
  161. package/docs/API-reference/components/facets/x-components.lists/selected-filters-list.md +12 -13
  162. package/docs/API-reference/components/facets/x-components.lists/selected-filters.md +11 -12
  163. package/docs/API-reference/components/facets/x-components.lists/sliced-filters.md +11 -12
  164. package/docs/API-reference/components/facets/x-components.lists/sorted-filters.md +11 -12
  165. package/docs/API-reference/components/history-queries/x-components.clear-history-queries.md +10 -11
  166. package/docs/API-reference/components/history-queries/x-components.history-queries.md +10 -11
  167. package/docs/API-reference/components/history-queries/x-components.history-query.md +11 -12
  168. package/docs/API-reference/components/history-queries/x-components.remove-history-query.md +10 -11
  169. package/docs/API-reference/components/identifier-results/x-components.identifier-result.md +9 -10
  170. package/docs/API-reference/components/identifier-results/x-components.identifier-results.md +10 -11
  171. package/docs/API-reference/components/next-queries/x-components.next-queries-list.md +7 -8
  172. package/docs/API-reference/components/next-queries/x-components.next-queries.md +14 -15
  173. package/docs/API-reference/components/next-queries/x-components.next-query.md +11 -12
  174. package/docs/API-reference/components/popular-searches/x-components.popular-search.md +11 -12
  175. package/docs/API-reference/components/popular-searches/x-components.popular-searches.md +13 -14
  176. package/docs/API-reference/components/query-suggestions/x-components.query-suggestion.md +8 -9
  177. package/docs/API-reference/components/query-suggestions/x-components.query-suggestions.md +8 -9
  178. package/docs/API-reference/components/recommendations/x-components.recommendations.md +14 -15
  179. package/docs/API-reference/components/related-tags/x-components.related-tag.md +19 -17
  180. package/docs/API-reference/components/related-tags/x-components.related-tags.md +19 -19
  181. package/docs/API-reference/components/scroll/x-components.main-scroll-item.md +7 -8
  182. package/docs/API-reference/components/scroll/x-components.main-scroll.md +7 -8
  183. package/docs/API-reference/components/scroll/x-components.scroll-to-top.md +9 -10
  184. package/docs/API-reference/components/scroll/x-components.scroll.md +25 -30
  185. package/docs/API-reference/components/scroll/x-components.window-scroll.md +13 -16
  186. package/docs/API-reference/components/search/x-components.banner.md +8 -9
  187. package/docs/API-reference/components/search/x-components.banners-list.md +7 -8
  188. package/docs/API-reference/components/search/x-components.partial-query-button.md +11 -12
  189. package/docs/API-reference/components/search/x-components.partial-results-list.md +11 -12
  190. package/docs/API-reference/components/search/x-components.promoted.md +7 -8
  191. package/docs/API-reference/components/search/x-components.promoteds-list.md +7 -8
  192. package/docs/API-reference/components/search/x-components.redirection.md +8 -9
  193. package/docs/API-reference/components/search/x-components.results-list.md +7 -8
  194. package/docs/API-reference/components/search/x-components.sort-dropdown.md +8 -9
  195. package/docs/API-reference/components/search/x-components.sort-list.md +8 -9
  196. package/docs/API-reference/components/search/x-components.spellcheck-button.md +11 -12
  197. package/docs/API-reference/components/search/x-components.spellcheck.md +11 -12
  198. package/docs/API-reference/components/search-box/x-components.clear-search-input.md +6 -7
  199. package/docs/API-reference/components/search-box/x-components.search-button.md +6 -7
  200. package/docs/API-reference/components/search-box/x-components.search-input.md +7 -8
  201. package/docs/API-reference/components/tagging/x-components.tagging.md +7 -8
  202. package/docs/API-reference/components/url/x-components.url-handler.md +7 -8
  203. package/docs/build-search-ui/README.md +0 -5
  204. package/docs/build-search-ui/web-archetype-development-guide.md +178 -0
  205. package/docs/build-search-ui/web-archetype-integration-guide.md +146 -143
  206. package/docs/build-search-ui/web-use-x-components-guide.md +0 -5
  207. package/docs/build-search-ui/web-x-components-integration-guide.md +3 -8
  208. package/docs/build-search-ui/x-architecture/README.md +0 -5
  209. package/js/components/animations/animate-width.vue.js +2 -2
  210. package/js/components/animations/animate-width.vue.js.map +1 -1
  211. package/js/components/animations/collapse-from-top.vue.js +2 -2
  212. package/js/components/animations/collapse-from-top.vue.js.map +1 -1
  213. package/js/components/animations/collapse-height.vue.js +2 -2
  214. package/js/components/animations/collapse-height.vue.js.map +1 -1
  215. package/js/components/animations/collapse-width.vue.js +2 -2
  216. package/js/components/animations/collapse-width.vue.js.map +1 -1
  217. package/js/components/animations/cross-fade.vue.js +2 -2
  218. package/js/components/animations/cross-fade.vue.js.map +1 -1
  219. package/js/components/animations/fade-and-slide.vue.js +2 -2
  220. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  221. package/js/components/animations/staggered-fade-and-slide.vue.js +2 -2
  222. package/js/components/animations/staggered-fade-and-slide.vue.js.map +1 -1
  223. package/js/components/animations/staggered-fade-and-slide.vue_rollup-plugin-vue=script.js +1 -1
  224. package/js/components/animations/staggered-fade-and-slide.vue_rollup-plugin-vue=script.js.map +1 -1
  225. package/js/components/{staggering-transition-group.vue.js → animations/staggering-transition-group.vue.js} +2 -2
  226. package/js/components/animations/staggering-transition-group.vue.js.map +1 -0
  227. package/js/components/{staggering-transition-group.vue_rollup-plugin-vue=script.js → animations/staggering-transition-group.vue_rollup-plugin-vue=script.js} +17 -17
  228. package/js/components/animations/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +1 -0
  229. package/js/components/animations/translate-from-left.vue.js +2 -2
  230. package/js/components/animations/translate-from-left.vue.js.map +1 -1
  231. package/js/components/animations/translate-from-right.vue.js +2 -2
  232. package/js/components/animations/translate-from-right.vue.js.map +1 -1
  233. package/js/components/base-dropdown.vue.js +2 -2
  234. package/js/components/base-dropdown.vue.js.map +1 -1
  235. package/js/components/base-event-button.vue.js.map +1 -1
  236. package/js/components/base-grid.vue.js +2 -2
  237. package/js/components/base-grid.vue.js.map +1 -1
  238. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  239. package/js/components/base-rating.vue.js +2 -2
  240. package/js/components/base-rating.vue.js.map +1 -1
  241. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  242. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  243. package/js/components/column-picker/base-column-picker-list.vue.js +2 -2
  244. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  245. package/js/components/currency/base-currency.vue.js.map +1 -1
  246. package/js/components/filters/labels/base-price-filter-label.vue.js.map +1 -1
  247. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  248. package/js/components/global-x-bus.vue.js.map +1 -1
  249. package/js/components/global-x-bus.vue_rollup-plugin-vue=script.js +2 -1
  250. package/js/components/global-x-bus.vue_rollup-plugin-vue=script.js.map +1 -1
  251. package/js/components/icons/tag.vue.js +59 -0
  252. package/js/components/icons/tag.vue.js.map +1 -0
  253. package/js/components/icons/tag.vue_rollup-plugin-vue=script.js +4 -0
  254. package/js/components/icons/tag.vue_rollup-plugin-vue=script.js.map +1 -0
  255. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +212 -0
  256. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -0
  257. package/js/components/layouts/fixed-header-and-asides-layout.vue_rollup-plugin-vue=script.js +57 -0
  258. package/js/components/layouts/fixed-header-and-asides-layout.vue_rollup-plugin-vue=script.js.map +1 -0
  259. package/js/components/layouts/multi-column-max-width-layout.vue.js +3 -3
  260. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  261. package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js +1 -1
  262. package/js/components/layouts/single-column-layout.vue.js +1 -1
  263. package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js +1 -1
  264. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  265. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  266. package/js/components/modals/base-events-modal.vue.js.map +1 -1
  267. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  268. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  269. package/js/components/modals/base-id-modal.vue.js.map +1 -1
  270. package/js/components/modals/base-modal.vue.js +2 -2
  271. package/js/components/modals/base-modal.vue.js.map +1 -1
  272. package/js/components/panels/base-header-toggle-panel.vue.js +2 -2
  273. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  274. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  275. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  276. package/js/components/panels/base-id-toggle-panel.vue_rollup-plugin-vue=script.js +4 -9
  277. package/js/components/panels/base-id-toggle-panel.vue_rollup-plugin-vue=script.js.map +1 -1
  278. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  279. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  280. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  281. package/js/components/result/base-result-image.vue.js +2 -2
  282. package/js/components/result/base-result-image.vue.js.map +1 -1
  283. package/js/components/result/base-result-link.vue.js +5 -5
  284. package/js/components/result/base-result-link.vue.js.map +1 -1
  285. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js +3 -12
  286. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js.map +1 -1
  287. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  288. package/js/components/scroll/base-scroll.vue.js +2 -2
  289. package/js/components/scroll/base-scroll.vue.js.map +1 -1
  290. package/js/components/sliding-panel.vue.js +2 -2
  291. package/js/components/sliding-panel.vue.js.map +1 -1
  292. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  293. package/js/components/suggestions/base-suggestions.vue.js +2 -2
  294. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  295. package/js/components/x-component.mixin.js +1 -4
  296. package/js/components/x-component.mixin.js.map +1 -1
  297. package/js/components/x-component.utils.js +4 -20
  298. package/js/components/x-component.utils.js.map +1 -1
  299. package/js/index.js +32 -30
  300. package/js/index.js.map +1 -1
  301. package/js/plugins/x-plugin.alias.js +21 -20
  302. package/js/plugins/x-plugin.alias.js.map +1 -1
  303. package/js/plugins/x-plugin.mixin.js +2 -2
  304. package/js/plugins/x-plugin.mixin.js.map +1 -1
  305. package/js/utils/origin.js +5 -3
  306. package/js/utils/origin.js.map +1 -1
  307. package/js/wiring/namespaced-wires.operators.js +3 -4
  308. package/js/wiring/namespaced-wires.operators.js.map +1 -1
  309. package/js/wiring/wires-operators.utils.js +55 -0
  310. package/js/wiring/wires-operators.utils.js.map +1 -0
  311. package/js/wiring/wires.operators.js +17 -12
  312. package/js/wiring/wires.operators.js.map +1 -1
  313. package/js/x-installer/x-installer/x-installer.js +1 -1
  314. package/js/x-installer/x-installer/x-installer.js.map +1 -1
  315. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  316. package/js/x-modules/empathize/components/empathize.vue_rollup-plugin-vue=script.js +1 -1
  317. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js +14 -12
  318. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  319. package/js/x-modules/extra-params/components/renderless-extra-param.vue.js.map +1 -1
  320. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js +14 -12
  321. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js.map +1 -1
  322. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js.map +1 -1
  323. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js +23 -12
  324. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  325. package/js/x-modules/facets/components/clear-filters.vue.js.map +1 -1
  326. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js +14 -12
  327. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  328. package/js/x-modules/facets/components/facets/facets-provider.vue.js +2 -2
  329. package/js/x-modules/facets/components/facets/facets-provider.vue.js.map +1 -1
  330. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js +18 -23
  331. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js.map +1 -1
  332. package/js/x-modules/facets/components/facets/facets.vue.js +2 -2
  333. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  334. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  335. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js +14 -12
  336. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  337. package/js/x-modules/facets/components/filters/base-filter.vue.js.map +1 -1
  338. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js +14 -12
  339. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  340. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +1 -1
  341. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  342. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  343. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js +14 -12
  344. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  345. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  346. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js +14 -12
  347. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  348. package/js/x-modules/facets/components/filters/renderless-filter.vue.js.map +1 -1
  349. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js +14 -12
  350. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  351. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  352. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js +14 -12
  353. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  354. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue.js.map +1 -1
  355. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js +14 -12
  356. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js.map +1 -1
  357. package/js/x-modules/facets/components/lists/filters-list.vue.js +2 -2
  358. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  359. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js +14 -12
  360. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js.map +1 -1
  361. package/js/x-modules/facets/components/lists/filters-search.vue.js +2 -2
  362. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  363. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js +14 -12
  364. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js.map +1 -1
  365. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  366. package/js/x-modules/facets/components/lists/selected-filters.vue.js.map +1 -1
  367. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js +14 -12
  368. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  369. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  370. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js +14 -12
  371. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  372. package/js/x-modules/facets/components/lists/sorted-filters.vue.js.map +1 -1
  373. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js +14 -12
  374. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  375. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  376. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  377. package/js/x-modules/history-queries/components/history-queries.vue_rollup-plugin-vue=script.js +1 -1
  378. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  379. package/js/x-modules/history-queries/components/history-query.vue_rollup-plugin-vue=script.js +1 -1
  380. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  381. package/js/x-modules/history-queries/wiring.js +1 -1
  382. package/js/x-modules/history-queries/wiring.js.map +1 -1
  383. package/js/x-modules/identifier-results/components/identifier-result.vue.js.map +1 -1
  384. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  385. package/js/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.js +4 -2
  386. package/js/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.js.map +1 -1
  387. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js +2 -3
  388. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js.map +1 -1
  389. package/js/x-modules/identifier-results/wiring.js +3 -2
  390. package/js/x-modules/identifier-results/wiring.js.map +1 -1
  391. package/js/x-modules/next-queries/components/next-queries-list.vue_rollup-plugin-vue=script.js +1 -1
  392. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  393. package/js/x-modules/next-queries/components/next-queries.vue_rollup-plugin-vue=script.js +1 -1
  394. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  395. package/js/x-modules/next-queries/components/next-query.vue_rollup-plugin-vue=script.js +1 -1
  396. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  397. package/js/x-modules/popular-searches/components/popular-search.vue_rollup-plugin-vue=script.js +1 -1
  398. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  399. package/js/x-modules/popular-searches/components/popular-searches.vue_rollup-plugin-vue=script.js +1 -1
  400. package/js/x-modules/query-suggestions/components/query-suggestion.vue_rollup-plugin-vue=script.js +1 -1
  401. package/js/x-modules/query-suggestions/components/query-suggestions.vue_rollup-plugin-vue=script.js +1 -1
  402. package/js/x-modules/query-suggestions/wiring.js +1 -1
  403. package/js/x-modules/query-suggestions/wiring.js.map +1 -1
  404. package/js/x-modules/recommendations/components/recommendations.vue.js +2 -2
  405. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  406. package/js/x-modules/related-tags/components/related-tag.vue.js +7 -3
  407. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  408. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js +20 -0
  409. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js.map +1 -1
  410. package/js/x-modules/related-tags/components/related-tags.vue.js +15 -4
  411. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  412. package/js/x-modules/related-tags/components/related-tags.vue_rollup-plugin-vue=script.js +3 -0
  413. package/js/x-modules/related-tags/components/related-tags.vue_rollup-plugin-vue=script.js.map +1 -1
  414. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js +16 -14
  415. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js.map +1 -1
  416. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  417. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js +16 -14
  418. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js.map +1 -1
  419. package/js/x-modules/scroll/components/scroll.vue.js.map +1 -1
  420. package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js +1 -1
  421. package/js/x-modules/scroll/components/window-scroll.vue.js.map +1 -1
  422. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js +16 -14
  423. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js.map +1 -1
  424. package/js/x-modules/search/components/banner.vue.js +2 -1
  425. package/js/x-modules/search/components/banner.vue.js.map +1 -1
  426. package/js/x-modules/search/components/banner.vue_rollup-plugin-vue=script.js +8 -0
  427. package/js/x-modules/search/components/banner.vue_rollup-plugin-vue=script.js.map +1 -1
  428. package/js/x-modules/search/components/banners-list.vue_rollup-plugin-vue=script.js +1 -1
  429. package/js/x-modules/search/components/partial-query-button.vue.js.map +1 -1
  430. package/js/x-modules/search/components/partial-results-list.vue.js +2 -2
  431. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  432. package/js/x-modules/search/components/promoted.vue.js +2 -1
  433. package/js/x-modules/search/components/promoted.vue.js.map +1 -1
  434. package/js/x-modules/search/components/promoted.vue_rollup-plugin-vue=script.js +8 -0
  435. package/js/x-modules/search/components/promoted.vue_rollup-plugin-vue=script.js.map +1 -1
  436. package/js/x-modules/search/components/promoteds-list.vue_rollup-plugin-vue=script.js +1 -1
  437. package/js/x-modules/search/components/redirection.vue.js.map +1 -1
  438. package/js/x-modules/search/components/redirection.vue_rollup-plugin-vue=script.js.map +1 -1
  439. package/js/x-modules/search/components/results-list.vue_rollup-plugin-vue=script.js +2 -2
  440. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  441. package/js/x-modules/search/components/sort-list.vue.js +2 -2
  442. package/js/x-modules/search/components/sort-list.vue.js.map +1 -1
  443. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js +14 -12
  444. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js.map +1 -1
  445. package/js/x-modules/search/components/sort.mixin.js +14 -12
  446. package/js/x-modules/search/components/sort.mixin.js.map +1 -1
  447. package/js/x-modules/search/components/spellcheck-button.vue.js.map +1 -1
  448. package/js/x-modules/search/components/spellcheck.vue.js.map +1 -1
  449. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js +14 -12
  450. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js.map +1 -1
  451. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +4 -1
  452. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  453. package/js/x-modules/search/store/getters/request.getter.js +2 -3
  454. package/js/x-modules/search/store/getters/request.getter.js.map +1 -1
  455. package/js/x-modules/search/wiring.js +4 -3
  456. package/js/x-modules/search/wiring.js.map +1 -1
  457. package/js/x-modules/search-box/components/search-input.vue.js +2 -2
  458. package/js/x-modules/search-box/components/search-input.vue.js.map +1 -1
  459. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js +7 -5
  460. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js.map +1 -1
  461. package/js/x-modules/tagging/store/actions/track.action.js +2 -2
  462. package/js/x-modules/tagging/store/actions/track.action.js.map +1 -1
  463. package/js/x-modules/tagging/wiring.js +48 -4
  464. package/js/x-modules/tagging/wiring.js.map +1 -1
  465. package/js/x-modules/url/components/url-handler.vue.js +1 -1
  466. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  467. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js +101 -5
  468. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js.map +1 -1
  469. package/package.json +9 -10
  470. package/report/tsdoc-metadata.json +1 -1
  471. package/report/x-adapter.api.json +27 -1
  472. package/report/x-components.api.json +674 -223
  473. package/report/x-components.api.md +86 -35
  474. package/report/x-types.api.json +27 -1
  475. package/tagging/index.js +1 -1
  476. package/types/adapter/mocked-adapter.d.ts.map +1 -1
  477. package/types/components/animations/index.d.ts +1 -0
  478. package/types/components/animations/index.d.ts.map +1 -1
  479. package/types/components/{staggering-transition-group.vue.d.ts → animations/staggering-transition-group.vue.d.ts} +0 -0
  480. package/types/components/animations/staggering-transition-group.vue.d.ts.map +1 -0
  481. package/types/components/global-x-bus.vue.d.ts.map +1 -1
  482. package/types/components/icons/index.d.ts +1 -0
  483. package/types/components/icons/index.d.ts.map +1 -1
  484. package/types/components/icons/tag.vue.d.ts +3 -0
  485. package/types/components/icons/tag.vue.d.ts.map +1 -0
  486. package/types/components/index.d.ts +1 -4
  487. package/types/components/index.d.ts.map +1 -1
  488. package/types/components/layouts/fixed-header-and-asides-layout.vue.d.ts +17 -0
  489. package/types/components/layouts/fixed-header-and-asides-layout.vue.d.ts.map +1 -0
  490. package/types/components/layouts/index.d.ts +4 -0
  491. package/types/components/layouts/index.d.ts.map +1 -0
  492. package/types/components/panels/base-id-toggle-panel.vue.d.ts +0 -5
  493. package/types/components/panels/base-id-toggle-panel.vue.d.ts.map +1 -1
  494. package/types/components/result/base-result-link.vue.d.ts +3 -10
  495. package/types/components/result/base-result-link.vue.d.ts.map +1 -1
  496. package/types/components/x-component.mixin.d.ts.map +1 -1
  497. package/types/components/x-component.utils.d.ts +1 -16
  498. package/types/components/x-component.utils.d.ts.map +1 -1
  499. package/types/plugins/x-plugin.alias.d.ts +4 -6
  500. package/types/plugins/x-plugin.alias.d.ts.map +1 -1
  501. package/types/plugins/x-plugin.mixin.d.ts +13 -3
  502. package/types/plugins/x-plugin.mixin.d.ts.map +1 -1
  503. package/types/types/origin.d.ts +1 -1
  504. package/types/types/origin.d.ts.map +1 -1
  505. package/types/utils/origin.d.ts +3 -1
  506. package/types/utils/origin.d.ts.map +1 -1
  507. package/types/utils/types.d.ts +6 -0
  508. package/types/utils/types.d.ts.map +1 -1
  509. package/types/wiring/events.types.d.ts +0 -5
  510. package/types/wiring/events.types.d.ts.map +1 -1
  511. package/types/wiring/namespaced-wires.operators.d.ts +2 -3
  512. package/types/wiring/namespaced-wires.operators.d.ts.map +1 -1
  513. package/types/wiring/namespaced-wiring.types.d.ts +9 -10
  514. package/types/wiring/namespaced-wiring.types.d.ts.map +1 -1
  515. package/types/wiring/wires-operators.utils.d.ts +36 -0
  516. package/types/wiring/wires-operators.utils.d.ts.map +1 -0
  517. package/types/wiring/wires.operators.d.ts +5 -8
  518. package/types/wiring/wires.operators.d.ts.map +1 -1
  519. package/types/wiring/wiring.types.d.ts +17 -4
  520. package/types/wiring/wiring.types.d.ts.map +1 -1
  521. package/types/x-installer/api/api.types.d.ts +2 -0
  522. package/types/x-installer/api/api.types.d.ts.map +1 -1
  523. package/types/x-installer/x-installer/x-installer.d.ts +1 -1
  524. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts +6 -0
  525. package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts.map +1 -1
  526. package/types/x-modules/facets/components/facets/facets-provider.vue.d.ts +0 -8
  527. package/types/x-modules/facets/components/facets/facets-provider.vue.d.ts.map +1 -1
  528. package/types/x-modules/history-queries/wiring.d.ts +1 -1
  529. package/types/x-modules/identifier-results/store/actions/fetch-and-save-identifier-results.action.d.ts.map +1 -1
  530. package/types/x-modules/identifier-results/store/getters/identifier-results-request.getter.d.ts.map +1 -1
  531. package/types/x-modules/identifier-results/wiring.d.ts +2 -1
  532. package/types/x-modules/identifier-results/wiring.d.ts.map +1 -1
  533. package/types/x-modules/query-suggestions/wiring.d.ts +1 -1
  534. package/types/x-modules/related-tags/components/related-tag.vue.d.ts +14 -0
  535. package/types/x-modules/related-tags/components/related-tag.vue.d.ts.map +1 -1
  536. package/types/x-modules/related-tags/components/related-tags.vue.d.ts +6 -0
  537. package/types/x-modules/related-tags/components/related-tags.vue.d.ts.map +1 -1
  538. package/types/x-modules/search/components/banner.vue.d.ts +6 -0
  539. package/types/x-modules/search/components/banner.vue.d.ts.map +1 -1
  540. package/types/x-modules/search/components/promoted.vue.d.ts +6 -0
  541. package/types/x-modules/search/components/promoted.vue.d.ts.map +1 -1
  542. package/types/x-modules/search/components/redirection.vue.d.ts +1 -1
  543. package/types/x-modules/search/components/redirection.vue.d.ts.map +1 -1
  544. package/types/x-modules/search/events.types.d.ts +11 -1
  545. package/types/x-modules/search/events.types.d.ts.map +1 -1
  546. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  547. package/types/x-modules/search/store/getters/request.getter.d.ts.map +1 -1
  548. package/types/x-modules/search/wiring.d.ts +2 -1
  549. package/types/x-modules/search/wiring.d.ts.map +1 -1
  550. package/types/x-modules/search-box/components/search-input.vue.d.ts +5 -2
  551. package/types/x-modules/search-box/components/search-input.vue.d.ts.map +1 -1
  552. package/types/x-modules/tagging/wiring.d.ts +29 -9
  553. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  554. package/types/x-modules/url/components/url-handler.vue.d.ts +70 -7
  555. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  556. package/docs/API-reference/api/x-components.baseidtogglepanel.created.md +0 -17
  557. package/docs/API-reference/api/x-components.xcomponent.md +0 -15
  558. package/docs/API-reference/api/x-components.xeventstypes.userrightclickedaresult.md +0 -13
  559. package/docs/sidebar.json +0 -1
  560. package/js/components/staggering-transition-group.vue.js.map +0 -1
  561. package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +0 -1
  562. package/js/wiring/utils/wire-racing-handling.js +0 -108
  563. package/js/wiring/utils/wire-racing-handling.js.map +0 -1
  564. package/types/components/staggering-transition-group.vue.d.ts.map +0 -1
  565. package/types/components/x-component.types.d.ts +0 -19
  566. package/types/components/x-component.types.d.ts.map +0 -1
  567. package/types/wiring/utils/wire-racing-handling.d.ts +0 -27
  568. package/types/wiring/utils/wire-racing-handling.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"multi-column-max-width-layout.vue.js","sources":["../../../../src/components/layouts/multi-column-max-width-layout.vue"],"sourcesContent":["<template>\n <div\n class=\"x-layout x-layout--columns\"\n :class=\"{ 'dev-mode': devMode }\"\n :style=\"{ height: hasContent('main-body') ? '100%' : 'auto' }\"\n >\n <header class=\"x-layout__header\">\n <div v-if=\"hasContent('header-start')\" class=\"x-list x-layout__header-start\">\n <!-- @slot Slot that can be used to insert content into the left part of the header. -->\n <slot name=\"header-start\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER START</span>\n </slot>\n </div>\n\n <div v-if=\"hasContent('header-middle')\" class=\"x-list x-layout__header-middle\">\n <!-- @slot Slot that can be used to insert content into the center part of the header. -->\n <slot name=\"header-middle\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER MIDDLE</span>\n </slot>\n </div>\n\n <div v-if=\"hasContent('header-end')\" class=\"x-list x-layout__header-end\">\n <!-- @slot Slot that can be used to insert content into the right part of the header. -->\n <slot name=\"header-end\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER END</span>\n </slot>\n </div>\n </header>\n\n <div v-if=\"hasContent('sub-header')\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section v-if=\"hasContent('toolbar-aside', 'toolbar-body')\" class=\"x-layout__toolbar\">\n <aside class=\"x-list x-layout__toolbar-aside\">\n <slot name=\"toolbar-aside\">\n <!-- @slot Slot that can be used to insert content above the left aside. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR ASIDE</span>\n </slot>\n </aside>\n\n <div class=\"x-list x-layout__toolbar-body\">\n <!-- @slot Slot that can be used to insert content above the body. -->\n <slot name=\"toolbar-body\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR BODY</span>\n </slot>\n </div>\n </section>\n\n <main class=\"x-layout__main\">\n <BaseIdTogglePanel\n v-if=\"hasContent('main-aside')\"\n panelId=\"aside-panel\"\n :animation=\"asideAnimation\"\n class=\"x-layout__collapse-aside\"\n >\n <Scroll id=\"aside-scroll\" class=\"x-layout__aside-scroll\">\n <div class=\"x-layout__main-aside x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the left side bar. -->\n <slot name=\"main-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN ASIDE</span>\n </slot>\n </div>\n </Scroll>\n </BaseIdTogglePanel>\n\n <MainScroll>\n <Scroll v-if=\"hasContent('main-body')\" id=\"main-scroll\" class=\"x-layout__body-scroll\">\n <section class=\"x-layout__main-body x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert the body content. -->\n <slot name=\"main-body\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN BODY</span>\n </slot>\n </section>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"hasContent('scroll-to-top')\" class=\"x-layout__scroll-to-top\">\n <div class=\"x-layout__scroll-to-top-content\">\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 50px\">SCROLL TO TOP</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import Component, { mixins } from 'vue-class-component';\n import { Prop } from 'vue-property-decorator';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import AnimateWidth from '../animations/animate-width.vue';\n import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue';\n import LayoutsMixin from './layouts.mixin';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @public\n */\n @Component({\n components: { BaseIdTogglePanel, MainScroll, Scroll }\n })\n export default class MultiColumnMaxWidthLayout extends mixins(LayoutsMixin) {\n /**\n * The animation used for the Main Aside.\n *\n * @public\n */\n @Prop({ default: () => AnimateWidth })\n protected asideAnimation!: Vue;\n }\n</script>\n\n<style lang=\"scss\">\n :root {\n //layout\n --x-size-min-margin-layout-columns: var(--x-size-base-06);\n --x-size-column-gap-layout-columns: var(--x-size-base-06);\n\n //spacing\n\n // size - header\n --x-size-padding-top-layout-columns-header: var(--x-size-base-07);\n --x-size-padding-bottom-layout-columns-header: var(--x-size-base-05);\n\n // size - toolbar\n --x-size-padding-top-layout-columns-toolbar: var(--x-size-base-05);\n --x-size-padding-bottom-layout-columns-toolbar: var(--x-size-base-03);\n\n // size- scroll-to-top\n --x-size-margin-bottom-layout-columns-scroll-to-top: var(--x-size-base-03);\n --x-size-margin-left-layout-columns-scroll-to-top: var(--x-size-base-03);\n\n // color\n --x-color-background-layout-columns: var(--x-color-base-neutral-100);\n --x-color-border-layout-columns: var(--x-color-base-neutral-70);\n --x-color-border-layout-columns-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-sub-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-toolbar: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-aside: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-body: var(--x-color-border-layout-columns);\n\n // border\n --x-size-border-width-layout-columns-header: 0;\n --x-size-border-width-layout-columns-toolbar: 1px 0 0;\n }\n</style>\n\n<style lang=\"scss\" scoped>\n @import '../../design-system/utilities/dev-mode';\n\n .x-layout {\n // custom properties\n --x-size-gap-default: var(--x-size-column-gap-layout-columns, 20px);\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout-columns, 1440px)) / 2);\n --x-size-margin-layout-columns: max(\n var(--x-size-min-margin-layout-columns, 20px),\n var(--x-size-margin-max-width)\n );\n --x-number-columns-header-middle: calc(var(--x-number-columns-layout-columns, 5) - 2);\n --x-number-columns-sub-header-content: var(--x-number-columns-header-middle);\n --x-number-columns-toolbar-body: calc(var(--x-number-columns-layout-columns, 5) - 1);\n\n // layout\n display: grid;\n align-content: stretch;\n max-height: 100%;\n\n grid-template-columns:\n [page-start]\n 1fr\n [scroll-to-top-start]\n calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default))\n [scroll-to-top-end page-end];\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [scroll-to-top-start]\n auto\n [main-end scroll-to-top-end page-end];\n\n &__header {\n // layout\n grid-column: page;\n grid-row: header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [header-start]\n var(--x-size-margin-layout-columns)\n [start-content-start]\n 1fr\n [start-content-end middle-content-start]\n repeat(var(--x-number-columns-header-middle), 1fr)\n [middle-content-end end-content-start]\n 1fr\n [end-content-end]\n var(--x-size-margin-layout-columns)\n [header-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-header, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-header, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-header, transparent);\n border-color: var(--x-color-border-layout-columns-header, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-header, 0);\n }\n\n &__header-start {\n // layout\n grid-column: start-content;\n\n &.x-list {\n // space\n flex-flow: var(--x-flow-layout-columns-header-start, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-start, flex start);\n align-items: var(--x-size-align-layout-columns-header-start, flex start);\n }\n }\n\n &__header-middle {\n // layout\n grid-column: middle-content;\n\n &.x-list {\n // space\n flex-flow: var(--x-flow-layout-columns-header-middle, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-middle, center);\n align-items: var(--x-size-align-layout-columns-header-middle, flex start);\n }\n }\n\n &__header-end {\n // layout\n grid-column: end-content;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-header-end, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-end, flex-end);\n align-items: var(--x-size-align-layout-columns-header-end, flex-start);\n }\n }\n\n &__sub-header {\n // layout\n grid-column: page;\n grid-row: sub-header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [sub-header-start]\n var(--x-size-margin-layout-columns)\n 1fr\n [sub-header-content-start]\n repeat(var(--x-number-columns-sub-header-content), 1fr)\n [sub-header-content-end]\n 1fr\n var(--x-size-margin-layout-columns)\n [sub-header-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-sub-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-sub-header), 0;\n margin-block-start: var(--x-size-margin-top-layout-columns-sub-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-sub-header, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-sub-header, transparent);\n border-color: var(--x-color-border-layout-columns-sub-header, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-sub-header, 0);\n }\n\n &__sub-header-content {\n // layout\n grid-column: sub-header-content;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-sub-header, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-sub-header, flex-start);\n align-items: var(--x-size-align-layout-columns-sub-header, flex-start);\n }\n }\n\n &__toolbar {\n // layout\n grid-column: page;\n grid-row: toolbar;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [toolbar-start]\n var(--x-size-margin-layout-columns)\n [toolbar-aside-start]\n 1fr\n [toolbar-aside-end toolbar-body-start]\n repeat(var(--x-number-columns-toolbar-body), 1fr)\n [toolbar-body-end]\n var(--x-size-margin-layout-columns)\n [toolbar-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-toolbar, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-toolbar, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-toolbar, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-toolbar, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-toolbar, transparent);\n border-color: var(--x-color-border-layout-columns-toolbar, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-toolbar, 0);\n }\n\n &__toolbar-aside {\n // layout\n grid-column: toolbar-aside;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-aside, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-aside, flex-start);\n align-items: var(--x-size-align-layout-columns-toolbar-aside, center);\n }\n }\n\n &__toolbar-body {\n // layout\n grid-column: toolbar-body;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-body, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-body, flex-end);\n align-items: var(--x-size-align-layout-columns-toolbar-body, center);\n }\n }\n\n &__main {\n // layout\n grid-column: page;\n grid-row: main;\n min-height: 0;\n display: flex;\n flex-flow: row nowrap;\n justify-content: stretch;\n padding-left: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default));\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-main, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-main, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-main, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-main, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-main, transparent);\n border-color: var(--x-color-border-layout-columns-main, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-main, 0);\n }\n\n &__collapse-aside {\n width: calc(\n (\n 100% - var(--x-size-gap-default) * (var(--x-number-columns-layout-columns, 5)) -\n var(--x-size-margin-layout-columns)\n ) / var(--x-number-columns-layout-columns, 5) + var(--x-size-gap-default)\n );\n }\n\n &__aside-scroll {\n height: 100%;\n margin-right: var(--x-size-gap-default);\n }\n\n &__body-scroll {\n flex: 1 1 auto;\n width: 0;\n padding-right: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default) - 16px);\n\n &.x-scroll {\n --x-string-overflow-scroll: scroll;\n }\n }\n\n &__scroll-to-top {\n //layout\n grid-area: scroll-to-top;\n justify-content: flex-end;\n width: 100%;\n display: flex;\n z-index: 1;\n pointer-events: none;\n }\n\n &__scroll-to-top-content {\n flex: 1 0 auto;\n padding-block-end: var(--x-size-margin-bottom-layout-columns-scroll-to-top, 10px);\n padding-inline-start: var(--x-size-margin-left-layout-columns-scroll-to-top, 10px);\n\n ::v-deep > * {\n pointer-events: all;\n }\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n# Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| header-start | header-middle | header-end |\n| :-----------: | :-----------: | :-----------: |\n| sub-header | | |\n| toolbar-aside | toolbar | |\n| main-aside | main | |\n| | | scroll-to-top |\n\n# Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-------------------------------------------------: | :-----------: |\n| --x-size-column-gap-layout-columns | 20px |\n| --x-size-padding-top-layout-columns-header | 0px |\n| --x-size-padding-bottom-layout-columns-header | 0px |\n| --x-size-margin-top-layout-columns-header | 0px |\n| --x-size-margin-bottom-layout-columns-header | 0px |\n| --x-color-background-layout-columns-header | transparent |\n| --x-color-border-layout-columns-header | transparent |\n| --x-size-border-width-layout-columns-header | 0px |\n| --x-flow-layout-columns-header-start | row nowrap |\n| --x-size-justify-layout-columns-header-start | flex-start |\n| --x-size-align-layout-columns-header-start | flex-start |\n| --x-flow-layout-columns-header-middle | row nowrap |\n| --x-size-justify-layout-columns-header-middle | center |\n| --x-size-align-layout-columns-header-middle | flex-start |\n| --x-flow-layout-columns-header-end | row nowrap |\n| --x-size-justify-layout-columns-header-end | flex-end |\n| --x-size-align-layout-columns-header-end | flex-end |\n| --x-size-padding-top-layout-columns-sub-header | 0px |\n| --x-size-padding-bottom-layout-columns-sub-header | 0px |\n| --x-size-margin-top-layout-columns-sub-header | 0px |\n| --x-size-margin-bottom-layout-columns-sub-header | 0px |\n| --x-color-background-layout-columns-sub-header | transparent |\n| --x-color-border-layout-columns-sub-header | transparent |\n| --x-size-border-width-layout-columns-sub-header | 0px |\n| --x-flow-layout-columns-sub-header | row nowrap |\n| --x-size-justify-layout-columns-sub-header | flex-start |\n| --x-size-align-layout-columns-sub-header | flex-start |\n| --x-size-padding-top-layout-columns-toolbar | 0px |\n| --x-size-padding-bottom-layout-columns-toolbar | 0px |\n| --x-size-margin-top-layout-columns-toolbar | 0px |\n| --x-size-margin-bottom-layout-columns-toolbar | 0px |\n| --x-color-background-layout-columns-toolbar | transparent |\n| --x-color-border-layout-columns-sub-toolbar | transparent |\n| --x-size-border-width-layout-columns-toolbar | 0px |\n| --x-flow-layout-columns-toolbar-aside | row nowrap |\n| --x-size-justify-layout-columns-toolbar-aside | flex-start |\n| --x-size-align-layout-columns-toolbar-aside | center |\n| --x-flow-layout-columns-toolbar-body | row nowrap |\n| --x-size-justify-layout-columns-toolbar-body | flex-start |\n| --x-size-align-layout-columns-toolbar-body | center |\n| --x-size-padding-top-layout-columns-main | 0px |\n| --x-size-padding-bottom-layout-columns-main | 0px |\n| --x-size-margin-top-layout-columns-main | 0px |\n| --x-size-margin-bottom-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main | transparent |\n| --x-color-border-layout-columns-sub-main | transparent |\n| --x-size-border-width-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main-aside | transparent |\n| --x-color-border-layout-columns-sub-main-aside | transparent |\n| --x-size-border-width-layout-columns-main-aside | 0px |\n| --x-color-background-layout-columns-main-body | transparent |\n| --x-color-border-layout-columns-sub-main-body | transparent |\n| --x-size-border-width-layout-columns-main-body | 0px |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | 10px |\n| --x-size-margin-left-layout-columns-scroll-to-top | 10px |\n\n| token | use |\n| :-------------------------------------------------: | :--------------------------------------: |\n| --x-size-column-gap-layout-columns | The gap between columns |\n| --x-size-padding-top-layout-columns-header | The padding top of the header |\n| --x-size-padding-bottom-layout-columns-header | The padding bottom of the header |\n| --x-size-margin-top-layout-columns-header | The margin top of the header |\n| --x-size-margin-bottom-layout-columns-header | The margin bottom of the header |\n| --x-color-background-layout-columns-header | The background color of the header |\n| --x-color-border-layout-columns-header | The border color of the header |\n| --x-size-border-width-layout-columns-header | The border width of the header |\n| --x-flow-layout-columns-header-start | The flex flow of the start header |\n| --x-size-justify-layout-columns-header-start | The justify content of the start header |\n| --x-size-align-layout-columns-header-start | The align items of the start header |\n| --x-flow-layout-columns-header-middle | The flex flow of the middle header |\n| --x-size-justify-layout-columns-header-middle | The justify content of the middle header |\n| --x-size-align-layout-columns-header-middle | The align items of the middle header |\n| --x-flow-layout-columns-header-end | The flex flow of the end header |\n| --x-size-justify-layout-columns-header-end | The justify content of the end header |\n| --x-size-align-layout-columns-header-end | The align items of the end header |\n| --x-size-padding-top-layout-columns-sub-header | The padding bottom of the sub header |\n| --x-size-padding-bottom-layout-columns-sub-header | The padding top of the sub header |\n| --x-size-margin-top-layout-columns-sub-header | The margin bottom of the sub header |\n| --x-size-margin-bottom-layout-columns-sub-header | The margin top of the sub header |\n| --x-color-background-layout-columns-sub-header | The background color of the sub header |\n| --x-color-border-layout-columns-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-columns-sub-header | The border width of the sub header |\n| --x-flow-layout-columns-sub-header | The flex flow of the sub header |\n| --x-size-justify-layout-columns-sub-header | The justify content of the sub header |\n| --x-size-align-layout-columns-sub-header | The align items of the sub header |\n| --x-size-padding-top-layout-columns-toolbar | The padding top of the toolbar |\n| --x-size-padding-bottom-layout-columns-toolbar | The padding bottom of the toolbar |\n| --x-size-margin-top-layout-columns-toolbar | The margin top of the toolbar |\n| --x-size-margin-bottom-layout-columns-toolbar | The margin bottom of the toolbar |\n| --x-color-background-layout-columns-toolbar | The background color of the toolbar |\n| --x-color-border-layout-columns-sub-toolbar | The border color of the toolbar |\n| --x-size-border-width-layout-columns-toolbar | The border width of the toolbar |\n| --x-flow-layout-columns-toolbar-aside | The flex flow of the toolbar aside |\n| --x-size-justify-layout-columns-toolbar-aside | The justify content of the toolbar aside |\n| --x-size-align-layout-columns-toolbar-aside | The align items of the toolbar aside |\n| --x-flow-layout-columns-toolbar-body | The flex flow of the end toolbar body |\n| --x-size-justify-layout-columns-toolbar-body | Justify content of the end toolbar body |\n| --x-size-align-layout-columns-toolbar-body | The align items of the toolbar body |\n| --x-size-padding-top-layout-columns-main | The padding top of the main |\n| --x-size-padding-bottom-layout-columns-main | The padding bottom of the main |\n| --x-size-margin-top-layout-columns-main | The margin top of the main |\n| --x-size-margin-bottom-layout-columns-main | The margin bottom of the main |\n| --x-color-background-layout-columns-main | The background color of the main |\n| --x-color-border-layout-columns-main | The border color of the main |\n| --x-size-border-width-layout-columns-main | The border width of the main |\n| --x-color-background-layout-columns-main-aside | The background color of the main aside |\n| --x-color-border-layout-columns-main-aside | The border color of the main aside |\n| --x-size-border-width-layout-columns-main-aside | The border width of the sub main aside |\n| --x-color-background-layout-columns-main-body | The background color of the main body |\n| --x-color-border-layout-columns-main-body | The border color of the main body |\n| --x-size-border-width-layout-columns-main-body | The border width of the sub main body |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | The margin bottom of the scroll to top |\n| --x-size-margin-left-layout-columns-scroll-to-top | The margin left of the scroll to top |\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"multi-column-max-width-layout.vue.js","sources":["../../../../src/components/layouts/multi-column-max-width-layout.vue"],"sourcesContent":["<template>\n <div\n class=\"x-layout x-layout--columns\"\n :class=\"{ 'dev-mode': devMode }\"\n :style=\"{ height: hasContent('main-body') ? '100%' : 'auto' }\"\n >\n <header class=\"x-layout__header\">\n <div v-if=\"hasContent('header-start')\" class=\"x-list x-layout__header-start\">\n <!-- @slot Slot that can be used to insert content into the left part of the header. -->\n <slot name=\"header-start\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER START</span>\n </slot>\n </div>\n\n <div v-if=\"hasContent('header-middle')\" class=\"x-list x-layout__header-middle\">\n <!-- @slot Slot that can be used to insert content into the center part of the header. -->\n <slot name=\"header-middle\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER MIDDLE</span>\n </slot>\n </div>\n\n <div v-if=\"hasContent('header-end')\" class=\"x-list x-layout__header-end\">\n <!-- @slot Slot that can be used to insert content into the right part of the header. -->\n <slot name=\"header-end\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER END</span>\n </slot>\n </div>\n </header>\n\n <div v-if=\"hasContent('sub-header')\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section v-if=\"hasContent('toolbar-aside', 'toolbar-body')\" class=\"x-layout__toolbar\">\n <aside class=\"x-list x-layout__toolbar-aside\">\n <slot name=\"toolbar-aside\">\n <!-- @slot Slot that can be used to insert content above the left aside. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR ASIDE</span>\n </slot>\n </aside>\n\n <div class=\"x-list x-layout__toolbar-body\">\n <!-- @slot Slot that can be used to insert content above the body. -->\n <slot name=\"toolbar-body\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR BODY</span>\n </slot>\n </div>\n </section>\n\n <main class=\"x-layout__main\">\n <BaseIdTogglePanel\n v-if=\"hasContent('main-aside')\"\n panelId=\"aside-panel\"\n :animation=\"asideAnimation\"\n class=\"x-layout__collapse-aside\"\n >\n <Scroll id=\"aside-scroll\" class=\"x-layout__aside-scroll\">\n <div class=\"x-layout__main-aside x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the left side bar. -->\n <slot name=\"main-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN ASIDE</span>\n </slot>\n </div>\n </Scroll>\n </BaseIdTogglePanel>\n\n <MainScroll>\n <Scroll v-if=\"hasContent('main-body')\" id=\"main-scroll\" class=\"x-layout__body-scroll\">\n <section class=\"x-layout__main-body x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert the body content. -->\n <slot name=\"main-body\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN BODY</span>\n </slot>\n </section>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"hasContent('scroll-to-top')\" class=\"x-layout__scroll-to-top\">\n <div class=\"x-layout__scroll-to-top-content\">\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 50px\">SCROLL TO TOP</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import Component, { mixins } from 'vue-class-component';\n import { Prop } from 'vue-property-decorator';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import AnimateWidth from '../animations/animate-width.vue';\n import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue';\n import LayoutsMixin from './layouts.mixin';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @public\n */\n @Component({\n components: { BaseIdTogglePanel, MainScroll, Scroll }\n })\n export default class MultiColumnMaxWidthLayout extends mixins(LayoutsMixin) {\n /**\n * The animation used for the Main Aside.\n *\n * @public\n */\n @Prop({ default: () => AnimateWidth })\n protected asideAnimation!: Vue;\n }\n</script>\n\n<style lang=\"scss\">\n :root {\n //layout\n --x-size-min-margin-layout-columns: var(--x-size-base-06);\n --x-size-column-gap-layout-columns: var(--x-size-base-06);\n\n //spacing\n\n // size - header\n --x-size-padding-top-layout-columns-header: var(--x-size-base-07);\n --x-size-padding-bottom-layout-columns-header: var(--x-size-base-05);\n\n // size - toolbar\n --x-size-padding-top-layout-columns-toolbar: var(--x-size-base-05);\n --x-size-padding-bottom-layout-columns-toolbar: var(--x-size-base-03);\n\n // size- scroll-to-top\n --x-size-margin-bottom-layout-columns-scroll-to-top: var(--x-size-base-03);\n --x-size-margin-left-layout-columns-scroll-to-top: var(--x-size-base-03);\n\n // color\n --x-color-background-layout-columns: var(--x-color-base-neutral-100);\n --x-color-border-layout-columns: var(--x-color-base-neutral-70);\n --x-color-border-layout-columns-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-sub-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-toolbar: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-aside: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-body: var(--x-color-border-layout-columns);\n\n // border\n --x-size-border-width-layout-columns-header: 0;\n --x-size-border-width-layout-columns-toolbar: 1px 0 0;\n }\n</style>\n\n<style lang=\"scss\" scoped>\n @import '../../design-system/utilities/dev-mode';\n\n .x-layout {\n // custom properties\n --x-size-gap-default: var(--x-size-column-gap-layout-columns, 20px);\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout-columns, 1440px)) / 2);\n --x-size-margin-layout-columns: max(\n var(--x-size-min-margin-layout-columns, 20px),\n var(--x-size-margin-max-width)\n );\n --x-number-columns-header-middle: calc(var(--x-number-columns-layout-columns, 5) - 2);\n --x-number-columns-sub-header-content: var(--x-number-columns-header-middle);\n --x-number-columns-toolbar-body: calc(var(--x-number-columns-layout-columns, 5) - 1);\n\n // layout\n display: grid;\n align-content: stretch;\n max-height: 100%;\n\n grid-template-columns:\n [page-start]\n 1fr\n [scroll-to-top-start]\n calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default))\n [scroll-to-top-end page-end];\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [scroll-to-top-start]\n auto\n [main-end scroll-to-top-end page-end];\n\n &__header {\n // layout\n grid-column: page;\n grid-row: header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [header-start]\n var(--x-size-margin-layout-columns)\n [start-content-start]\n 1fr\n [start-content-end middle-content-start]\n repeat(var(--x-number-columns-header-middle), 1fr)\n [middle-content-end end-content-start]\n 1fr\n [end-content-end]\n var(--x-size-margin-layout-columns)\n [header-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-header, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-header, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-header, transparent);\n border-color: var(--x-color-border-layout-columns-header, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-header, 0);\n }\n\n &__header-start {\n // layout\n grid-column: start-content;\n\n &.x-list {\n // space\n flex-flow: var(--x-flow-layout-columns-header-start, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-start, flex start);\n align-items: var(--x-size-align-layout-columns-header-start, flex start);\n }\n }\n\n &__header-middle {\n // layout\n grid-column: middle-content;\n\n &.x-list {\n // space\n flex-flow: var(--x-flow-layout-columns-header-middle, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-middle, center);\n align-items: var(--x-size-align-layout-columns-header-middle, flex start);\n }\n }\n\n &__header-end {\n // layout\n grid-column: end-content;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-header-end, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-end, flex-end);\n align-items: var(--x-size-align-layout-columns-header-end, flex-start);\n }\n }\n\n &__sub-header {\n // layout\n grid-column: page;\n grid-row: sub-header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [sub-header-start]\n var(--x-size-margin-layout-columns)\n 1fr\n [sub-header-content-start]\n repeat(var(--x-number-columns-sub-header-content), 1fr)\n [sub-header-content-end]\n 1fr\n var(--x-size-margin-layout-columns)\n [sub-header-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-sub-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-sub-header), 0;\n margin-block-start: var(--x-size-margin-top-layout-columns-sub-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-sub-header, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-sub-header, transparent);\n border-color: var(--x-color-border-layout-columns-sub-header, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-sub-header, 0);\n }\n\n &__sub-header-content {\n // layout\n grid-column: sub-header-content;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-sub-header, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-sub-header, flex-start);\n align-items: var(--x-size-align-layout-columns-sub-header, flex-start);\n }\n }\n\n &__toolbar {\n // layout\n grid-column: page;\n grid-row: toolbar;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [toolbar-start]\n var(--x-size-margin-layout-columns)\n [toolbar-aside-start]\n 1fr\n [toolbar-aside-end toolbar-body-start]\n repeat(var(--x-number-columns-toolbar-body), 1fr)\n [toolbar-body-end]\n var(--x-size-margin-layout-columns)\n [toolbar-end];\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-toolbar, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-toolbar, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-toolbar, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-toolbar, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-toolbar, transparent);\n border-color: var(--x-color-border-layout-columns-toolbar, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-toolbar, 0);\n }\n\n &__toolbar-aside {\n // layout\n grid-column: toolbar-aside;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-aside, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-aside, flex-start);\n align-items: var(--x-size-align-layout-columns-toolbar-aside, center);\n }\n }\n\n &__toolbar-body {\n // layout\n grid-column: toolbar-body;\n\n &.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-body, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-body, flex-end);\n align-items: var(--x-size-align-layout-columns-toolbar-body, center);\n }\n }\n\n &__main {\n // layout\n grid-column: page;\n grid-row: main;\n min-height: 0;\n display: flex;\n flex-flow: row nowrap;\n justify-content: stretch;\n padding-left: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default));\n\n // size\n padding-block-start: var(--x-size-padding-top-layout-columns-main, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-main, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-main, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-main, 0);\n\n // color\n background-color: var(--x-color-background-layout-columns-main, transparent);\n border-color: var(--x-color-border-layout-columns-main, transparent);\n\n // border\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-main, 0);\n }\n\n &__collapse-aside {\n width: calc(\n (\n 100% - var(--x-size-gap-default) * (var(--x-number-columns-layout-columns, 5)) -\n var(--x-size-margin-layout-columns)\n ) / var(--x-number-columns-layout-columns, 5) + var(--x-size-gap-default)\n );\n }\n\n &__aside-scroll {\n height: 100%;\n margin-right: var(--x-size-gap-default);\n }\n\n &__body-scroll {\n flex: 1 1 auto;\n width: 0;\n padding-right: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default) - 16px);\n\n &.x-scroll {\n --x-string-overflow-scroll: scroll;\n }\n }\n\n &__scroll-to-top {\n //layout\n grid-area: scroll-to-top;\n justify-content: flex-end;\n width: 100%;\n display: flex;\n z-index: 1;\n pointer-events: none;\n }\n\n &__scroll-to-top-content {\n flex: 1 0 auto;\n padding-block-end: var(--x-size-margin-bottom-layout-columns-scroll-to-top, 10px);\n padding-inline-start: var(--x-size-margin-left-layout-columns-scroll-to-top, 10px);\n\n ::v-deep > * {\n pointer-events: all;\n }\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| header-start | header-middle | header-end |\n| :-----------: | :-----------: | :-----------: |\n| sub-header | | |\n| toolbar-aside | toolbar | |\n| main-aside | main | |\n| | | scroll-to-top |\n\n## Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-------------------------------------------------: | :-----------: |\n| --x-size-column-gap-layout-columns | 20px |\n| --x-size-padding-top-layout-columns-header | 0px |\n| --x-size-padding-bottom-layout-columns-header | 0px |\n| --x-size-margin-top-layout-columns-header | 0px |\n| --x-size-margin-bottom-layout-columns-header | 0px |\n| --x-color-background-layout-columns-header | transparent |\n| --x-color-border-layout-columns-header | transparent |\n| --x-size-border-width-layout-columns-header | 0px |\n| --x-flow-layout-columns-header-start | row nowrap |\n| --x-size-justify-layout-columns-header-start | flex-start |\n| --x-size-align-layout-columns-header-start | flex-start |\n| --x-flow-layout-columns-header-middle | row nowrap |\n| --x-size-justify-layout-columns-header-middle | center |\n| --x-size-align-layout-columns-header-middle | flex-start |\n| --x-flow-layout-columns-header-end | row nowrap |\n| --x-size-justify-layout-columns-header-end | flex-end |\n| --x-size-align-layout-columns-header-end | flex-end |\n| --x-size-padding-top-layout-columns-sub-header | 0px |\n| --x-size-padding-bottom-layout-columns-sub-header | 0px |\n| --x-size-margin-top-layout-columns-sub-header | 0px |\n| --x-size-margin-bottom-layout-columns-sub-header | 0px |\n| --x-color-background-layout-columns-sub-header | transparent |\n| --x-color-border-layout-columns-sub-header | transparent |\n| --x-size-border-width-layout-columns-sub-header | 0px |\n| --x-flow-layout-columns-sub-header | row nowrap |\n| --x-size-justify-layout-columns-sub-header | flex-start |\n| --x-size-align-layout-columns-sub-header | flex-start |\n| --x-size-padding-top-layout-columns-toolbar | 0px |\n| --x-size-padding-bottom-layout-columns-toolbar | 0px |\n| --x-size-margin-top-layout-columns-toolbar | 0px |\n| --x-size-margin-bottom-layout-columns-toolbar | 0px |\n| --x-color-background-layout-columns-toolbar | transparent |\n| --x-color-border-layout-columns-sub-toolbar | transparent |\n| --x-size-border-width-layout-columns-toolbar | 0px |\n| --x-flow-layout-columns-toolbar-aside | row nowrap |\n| --x-size-justify-layout-columns-toolbar-aside | flex-start |\n| --x-size-align-layout-columns-toolbar-aside | center |\n| --x-flow-layout-columns-toolbar-body | row nowrap |\n| --x-size-justify-layout-columns-toolbar-body | flex-start |\n| --x-size-align-layout-columns-toolbar-body | center |\n| --x-size-padding-top-layout-columns-main | 0px |\n| --x-size-padding-bottom-layout-columns-main | 0px |\n| --x-size-margin-top-layout-columns-main | 0px |\n| --x-size-margin-bottom-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main | transparent |\n| --x-color-border-layout-columns-sub-main | transparent |\n| --x-size-border-width-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main-aside | transparent |\n| --x-color-border-layout-columns-sub-main-aside | transparent |\n| --x-size-border-width-layout-columns-main-aside | 0px |\n| --x-color-background-layout-columns-main-body | transparent |\n| --x-color-border-layout-columns-sub-main-body | transparent |\n| --x-size-border-width-layout-columns-main-body | 0px |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | 10px |\n| --x-size-margin-left-layout-columns-scroll-to-top | 10px |\n\n| token | use |\n| :-------------------------------------------------: | :--------------------------------------: |\n| --x-size-column-gap-layout-columns | The gap between columns |\n| --x-size-padding-top-layout-columns-header | The padding top of the header |\n| --x-size-padding-bottom-layout-columns-header | The padding bottom of the header |\n| --x-size-margin-top-layout-columns-header | The margin top of the header |\n| --x-size-margin-bottom-layout-columns-header | The margin bottom of the header |\n| --x-color-background-layout-columns-header | The background color of the header |\n| --x-color-border-layout-columns-header | The border color of the header |\n| --x-size-border-width-layout-columns-header | The border width of the header |\n| --x-flow-layout-columns-header-start | The flex flow of the start header |\n| --x-size-justify-layout-columns-header-start | The justify content of the start header |\n| --x-size-align-layout-columns-header-start | The align items of the start header |\n| --x-flow-layout-columns-header-middle | The flex flow of the middle header |\n| --x-size-justify-layout-columns-header-middle | The justify content of the middle header |\n| --x-size-align-layout-columns-header-middle | The align items of the middle header |\n| --x-flow-layout-columns-header-end | The flex flow of the end header |\n| --x-size-justify-layout-columns-header-end | The justify content of the end header |\n| --x-size-align-layout-columns-header-end | The align items of the end header |\n| --x-size-padding-top-layout-columns-sub-header | The padding bottom of the sub header |\n| --x-size-padding-bottom-layout-columns-sub-header | The padding top of the sub header |\n| --x-size-margin-top-layout-columns-sub-header | The margin bottom of the sub header |\n| --x-size-margin-bottom-layout-columns-sub-header | The margin top of the sub header |\n| --x-color-background-layout-columns-sub-header | The background color of the sub header |\n| --x-color-border-layout-columns-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-columns-sub-header | The border width of the sub header |\n| --x-flow-layout-columns-sub-header | The flex flow of the sub header |\n| --x-size-justify-layout-columns-sub-header | The justify content of the sub header |\n| --x-size-align-layout-columns-sub-header | The align items of the sub header |\n| --x-size-padding-top-layout-columns-toolbar | The padding top of the toolbar |\n| --x-size-padding-bottom-layout-columns-toolbar | The padding bottom of the toolbar |\n| --x-size-margin-top-layout-columns-toolbar | The margin top of the toolbar |\n| --x-size-margin-bottom-layout-columns-toolbar | The margin bottom of the toolbar |\n| --x-color-background-layout-columns-toolbar | The background color of the toolbar |\n| --x-color-border-layout-columns-sub-toolbar | The border color of the toolbar |\n| --x-size-border-width-layout-columns-toolbar | The border width of the toolbar |\n| --x-flow-layout-columns-toolbar-aside | The flex flow of the toolbar aside |\n| --x-size-justify-layout-columns-toolbar-aside | The justify content of the toolbar aside |\n| --x-size-align-layout-columns-toolbar-aside | The align items of the toolbar aside |\n| --x-flow-layout-columns-toolbar-body | The flex flow of the end toolbar body |\n| --x-size-justify-layout-columns-toolbar-body | Justify content of the end toolbar body |\n| --x-size-align-layout-columns-toolbar-body | The align items of the toolbar body |\n| --x-size-padding-top-layout-columns-main | The padding top of the main |\n| --x-size-padding-bottom-layout-columns-main | The padding bottom of the main |\n| --x-size-margin-top-layout-columns-main | The margin top of the main |\n| --x-size-margin-bottom-layout-columns-main | The margin bottom of the main |\n| --x-color-background-layout-columns-main | The background color of the main |\n| --x-color-border-layout-columns-main | The border color of the main |\n| --x-size-border-width-layout-columns-main | The border width of the main |\n| --x-color-background-layout-columns-main-aside | The background color of the main aside |\n| --x-color-border-layout-columns-main-aside | The border color of the main aside |\n| --x-size-border-width-layout-columns-main-aside | The border width of the sub main aside |\n| --x-color-background-layout-columns-main-body | The background color of the main body |\n| --x-color-border-layout-columns-main-body | The border color of the main body |\n| --x-size-border-width-layout-columns-main-body | The border width of the sub main body |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | The margin bottom of the scroll to top |\n| --x-size-margin-left-layout-columns-scroll-to-top | The margin left of the scroll to top |\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,10 +2,10 @@ import { __extends, __decorate } from 'tslib';
2
2
  import { Prop } from 'vue-property-decorator';
3
3
  import AnimateWidth from '../animations/animate-width.vue.js';
4
4
  import Component, { mixins } from 'vue-class-component';
5
- import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue.js';
6
5
  import MainScroll from '../../x-modules/scroll/components/main-scroll.vue.js';
7
6
  import Scroll from '../../x-modules/scroll/components/scroll.vue.js';
8
7
  import LayoutsMixin from './layouts.mixin.js';
8
+ import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue.js';
9
9
 
10
10
  /**
11
11
  * Component for use as Layout to be filled with the rest of the Components.
@@ -172,7 +172,7 @@ __vue_render__._withStripped = true;
172
172
  /* style */
173
173
  var __vue_inject_styles__ = function (inject) {
174
174
  if (!inject) { return }
175
- inject("data-v-1842dc0c_0", { source: ".dev-mode .slot-helper[data-v-1842dc0c] {\n font-family: inherit;\n color: grey;\n box-sizing: border-box;\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n border: dashed 1px grey;\n border-radius: 10px;\n}\n.x-layout[data-v-1842dc0c] {\n display: grid;\n align-content: stretch;\n justify-content: stretch;\n height: 100%;\n grid-template-rows: [page-start header-start] auto [header-end sub-header-start] auto [sub-header-end toolbar-start] auto [toolbar-end main-start] 1fr [floating-start] auto [main-end floating-end footer-start] auto [footer-end page-end];\n grid-template-columns: 1fr;\n}\n.x-layout > *[data-v-1842dc0c] {\n grid-column: 1/-1;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n.x-layout__header[data-v-1842dc0c] {\n grid-row: header;\n}\n.x-layout__sub-header[data-v-1842dc0c] {\n grid-row: sub-header;\n}\n.x-layout__toolbar[data-v-1842dc0c] {\n grid-row: toolbar;\n}\n.x-layout__predictive[data-v-1842dc0c] {\n grid-row-start: header-end;\n grid-row-end: page-end;\n flex-flow: column nowrap;\n z-index: 2;\n}\n.x-layout__main[data-v-1842dc0c] {\n grid-row: main;\n flex-flow: column nowrap;\n}\n.x-layout__floating[data-v-1842dc0c] {\n grid-row: floating;\n z-index: 1;\n}\n.x-layout__footer[data-v-1842dc0c] {\n grid-row: footer;\n}\n.x-layout__aside[data-v-1842dc0c] {\n grid-row: page;\n z-index: 3;\n}\n.x-layout__aside[data-v-1842dc0c] .x-modal__content {\n width: 100%;\n height: 100%;\n margin-inline-start: var(--x-size-margin-left-layout-single-column, 0);\n}\n.x-layout__predictive[data-v-1842dc0c], .x-layout__floating[data-v-1842dc0c], .x-layout__aside[data-v-1842dc0c],\n.x-layout .slot-helper[data-v-1842dc0c] {\n pointer-events: none;\n}\n.x-layout__predictive[data-v-1842dc0c] > *, .x-layout__floating[data-v-1842dc0c] > *, .x-layout__aside[data-v-1842dc0c] > *,\n.x-layout .slot-helper[data-v-1842dc0c] > * {\n pointer-events: all;\n}\n.x-layout__predictive[data-v-1842dc0c] .x-list, .x-layout__floating[data-v-1842dc0c] .x-list, .x-layout__aside[data-v-1842dc0c] .x-list,\n.x-layout .slot-helper[data-v-1842dc0c] .x-list {\n pointer-events: none;\n}\n.x-layout__predictive[data-v-1842dc0c] .x-list > *, .x-layout__floating[data-v-1842dc0c] .x-list > *, .x-layout__aside[data-v-1842dc0c] .x-list > *,\n.x-layout .slot-helper[data-v-1842dc0c] .x-list > * {\n pointer-events: all;\n}", map: undefined, media: undefined });
175
+ inject("data-v-1842dc0c_0", { source: ".dev-mode .slot-helper[data-v-1842dc0c] {\n font-family: inherit;\n color: grey;\n box-sizing: border-box;\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n border: dashed 1px grey;\n border-radius: 10px;\n}\n.x-layout[data-v-1842dc0c] {\n display: grid;\n align-content: stretch;\n justify-content: stretch;\n height: 100%;\n grid-template-rows: [page-start header-start] auto [header-end sub-header-start] auto [sub-header-end toolbar-start] auto [toolbar-end main-start] 1fr [floating-start] auto [main-end floating-end footer-start] auto [footer-end page-end];\n grid-template-columns: 1fr;\n}\n.x-layout > *[data-v-1842dc0c] {\n grid-column: 1/-1;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n.x-layout__header[data-v-1842dc0c] {\n grid-row: header;\n}\n.x-layout__sub-header[data-v-1842dc0c] {\n grid-row: sub-header;\n}\n.x-layout__toolbar[data-v-1842dc0c] {\n grid-row: toolbar;\n}\n.x-layout__predictive[data-v-1842dc0c] {\n grid-row-start: header-end;\n grid-row-end: page-end;\n flex-flow: column nowrap;\n z-index: 2;\n}\n.x-layout__main[data-v-1842dc0c] {\n grid-row: main;\n flex-flow: column nowrap;\n}\n.x-layout__floating[data-v-1842dc0c] {\n grid-row: floating;\n z-index: 1;\n}\n.x-layout__footer[data-v-1842dc0c] {\n grid-row: footer;\n}\n.x-layout__aside[data-v-1842dc0c] {\n grid-row: page;\n z-index: 3;\n}\n[dir=\"ltr\"] .x-layout__aside[data-v-1842dc0c] .x-modal__content {\n margin-left: var(--x-size-margin-left-layout-single-column, 0);\n}\n[dir=\"rtl\"] .x-layout__aside[data-v-1842dc0c] .x-modal__content {\n margin-right: var(--x-size-margin-left-layout-single-column, 0);\n}\n.x-layout__aside[data-v-1842dc0c] .x-modal__content {\n width: 100%;\n height: 100%;\n}\n.x-layout__predictive[data-v-1842dc0c], .x-layout__floating[data-v-1842dc0c], .x-layout__aside[data-v-1842dc0c],\n.x-layout .slot-helper[data-v-1842dc0c] {\n pointer-events: none;\n}\n.x-layout__predictive[data-v-1842dc0c] > *, .x-layout__floating[data-v-1842dc0c] > *, .x-layout__aside[data-v-1842dc0c] > *,\n.x-layout .slot-helper[data-v-1842dc0c] > * {\n pointer-events: all;\n}\n.x-layout__predictive[data-v-1842dc0c] .x-list, .x-layout__floating[data-v-1842dc0c] .x-list, .x-layout__aside[data-v-1842dc0c] .x-list,\n.x-layout .slot-helper[data-v-1842dc0c] .x-list {\n pointer-events: none;\n}\n.x-layout__predictive[data-v-1842dc0c] .x-list > *, .x-layout__floating[data-v-1842dc0c] .x-list > *, .x-layout__aside[data-v-1842dc0c] .x-list > *,\n.x-layout .slot-helper[data-v-1842dc0c] .x-list > * {\n pointer-events: all;\n}", map: undefined, media: undefined });
176
176
 
177
177
  };
178
178
  /* scoped */
@@ -2,9 +2,9 @@ import { __extends, __decorate } from 'tslib';
2
2
  import { Prop, Component } from 'vue-property-decorator';
3
3
  import TranslateFromRight from '../animations/translate-from-right.vue.js';
4
4
  import { mixins } from 'vue-class-component';
5
+ import MainScroll from '../../x-modules/scroll/components/main-scroll.vue.js';
5
6
  import BaseIdModal from '../modals/base-id-modal.vue.js';
6
7
  import BaseScroll from '../scroll/base-scroll.vue.js';
7
- import MainScroll from '../../x-modules/scroll/components/main-scroll.vue.js';
8
8
  import Scroll from '../../x-modules/scroll/components/scroll.vue.js';
9
9
  import LayoutsMixin from './layouts.mixin.js';
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"base-events-modal-close.vue.js","sources":["../../../../src/components/modals/base-events-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-close-button\"\n data-test=\"close-modal\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedCloseEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseEventsModalClose extends Vue {\n @Prop({ default: 'UserClickedCloseEventsModal' })\n protected closingEvent!: PropsWithType<XEventsTypes, void>;\n\n protected get events(): Partial<XEventsTypes> {\n return { [this.closingEvent]: undefined };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nThe `BaseEventsModalClose` component can be used to close the `BaseEventsModal` component.\n\n## Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsCloseButton>\n <img src=\"./close-button-icon.svg\" />\n </BaseEventsCloseButton>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n## Defining another event to emit when clicking the button\n\nBy default it uses the same `closingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `closingEvent` prop.\n\n```vue\n<template>\n <BaseEventsModalClose closingEvent=\"UserClosedEmpathize\">×</BaseEventsModalClose>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseEventsModal`: the event is emitted after the user clicks the button.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-events-modal-close.vue.js","sources":["../../../../src/components/modals/base-events-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-close-button\"\n data-test=\"close-modal\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedCloseEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseEventsModalClose extends Vue {\n @Prop({ default: 'UserClickedCloseEventsModal' })\n protected closingEvent!: PropsWithType<XEventsTypes, void>;\n\n protected get events(): Partial<XEventsTypes> {\n return { [this.closingEvent]: undefined };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseEventsModalClose` component can be used to close the `BaseEventsModal` component.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsCloseButton>\n <img src=\"./close-button-icon.svg\" />\n </BaseEventsCloseButton>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `closingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `closingEvent` prop.\n\n```vue\n<template>\n <BaseEventsModalClose closingEvent=\"UserClosedEmpathize\">×</BaseEventsModalClose>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseEventsModal`: the event is emitted after the user clicks the button.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-events-modal-open.vue.js","sources":["../../../../src/components/modals/base-events-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-open-button\"\n data-test=\"open-modal\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedOpenEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseEventsModalOpen extends Vue {\n @Prop({ default: 'UserClickedOpenEventsModal' })\n protected openingEvent!: PropsWithType<XEventsTypes, void>;\n\n protected get events(): Partial<XEventsTypes> {\n return { [this.openingEvent]: undefined };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nThis component serves to open the `BaseEventsModal`.\n\n## Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsModalOpen>\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n## Defining another event to emit when clicking the button\n\nBy default it uses the same `openingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `openingEvent` prop, but remember to change it in the target\n`BaseEventsModal` too.\n\n```vue\n<template>\n <BaseEventsModalOpen openingEvent=\"UserOpenedEmpathize\">\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOpenEventsModal`: the event is emitted after the user clicks the button.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-events-modal-open.vue.js","sources":["../../../../src/components/modals/base-events-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-open-button\"\n data-test=\"open-modal\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedOpenEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseEventsModalOpen extends Vue {\n @Prop({ default: 'UserClickedOpenEventsModal' })\n protected openingEvent!: PropsWithType<XEventsTypes, void>;\n\n protected get events(): Partial<XEventsTypes> {\n return { [this.openingEvent]: undefined };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThis component serves to open the `BaseEventsModal`.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsModalOpen>\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `openingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `openingEvent` prop, but remember to change it in the target\n`BaseEventsModal` too.\n\n```vue\n<template>\n <BaseEventsModalOpen openingEvent=\"UserOpenedEmpathize\">\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOpenEventsModal`: the event is emitted after the user clicks the button.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-events-modal.vue.js","sources":["../../../../src/components/modals/base-events-modal.vue"],"sourcesContent":["<template>\n <BaseModal\n @click:overlay=\"emitBodyClickEvent\"\n @focusin:body=\"emitBodyClickEvent\"\n :animation=\"animation\"\n :open=\"isOpen\"\n >\n <slot />\n </BaseModal>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEvent } from '../../wiring/events.types';\n import { XOn } from '../decorators/bus.decorators';\n import { WireMetadata } from '../../wiring/wiring.types';\n import { isElementEqualOrContained } from '../../utils/html';\n import BaseModal from './base-modal.vue';\n\n /**\n * Component containing a modal that emits a {@link XEventsTypes.UserClickedCloseEventsModal} when\n * clicking outside the content rendered in the default slot and can receive, through the\n * eventsToCloseModal prop, a list of {@link XEvent | xEvents} to listen to in order to close\n * also the modal, eventsToOpenModal prop, another list of {@link XEvent | xEvents} to customize\n * the events to listen to open the modal and a prop, displayOverlay, to display an\n * overlay over the rest of the html. The default slot offers the possibility to customize the\n * modal content.\n *\n * @public\n */\n @Component({\n components: { BaseModal }\n })\n export default class BaseEventsModal extends Vue {\n /**\n * Animation to use for opening/closing the modal.\n */\n @Prop()\n public animation?: Vue | string;\n /**\n * Array of {@link XEvent | xEvents} to listen to open the modal.\n */\n @Prop({ default: (): XEvent[] => ['UserClickedOpenEventsModal'] })\n public eventsToOpenModal!: XEvent[];\n\n /**\n * Array of {@link XEvent | xEvents} to listen to close the modal.\n */\n @Prop({\n default: (): XEvent[] => ['UserClickedCloseEventsModal', 'UserClickedOutOfEventsModal']\n })\n public eventsToCloseModal!: XEvent[];\n\n /**\n * Event to emit when any part of the website out of the modal has been clicked.\n */\n @Prop({ default: 'UserClickedOutOfEventsModal' })\n public bodyClickEvent!: XEvent;\n\n /**\n * Whether the modal is open or not.\n */\n protected isOpen = false;\n\n /** The element that opened the modal. */\n protected openerElement?: HTMLElement;\n\n /**\n * Opens the modal.\n *\n * @param _payload - The payload of the event that opened the modal.\n * @param metadata - The metadata of the event that opened the modal.\n *\n * @internal\n */\n @XOn(component => (component as BaseEventsModal).eventsToOpenModal)\n openModal(_payload: unknown, metadata: WireMetadata): void {\n if (!this.isOpen) {\n this.openerElement = metadata.target;\n this.isOpen = true;\n }\n }\n\n /**\n * Closes the modal.\n *\n * @internal\n */\n @XOn(component => (component as BaseEventsModal).eventsToCloseModal)\n closeModal(): void {\n if (this.isOpen) {\n this.isOpen = false;\n }\n }\n\n /**\n * Emits the event defined in the {@link BaseEventsModal.bodyClickEvent} event unless the passed\n * event target is the button that opened the modal.\n *\n * @param event - The event that triggered the close attempt.\n * @public\n */\n protected emitBodyClickEvent(event: MouseEvent | FocusEvent): void {\n // Prevents clicking the open button when the panel is already open to close the panel.\n if (\n !this.openerElement ||\n !isElementEqualOrContained(this.openerElement, event.target as HTMLElement)\n ) {\n this.$x.emit(this.bodyClickEvent, undefined, { target: this.$el as HTMLElement });\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nThe `BaseEventsModal` component handles the modal open/close state via the events passed via props.\nIts configured by default to work as a modal for a whole search application, but if the events are\nchanged, it can work as a modal that is opened/closed when the events it is listening are emitted.\n\n## Basic usage\n\nThe component interacts with the open and close components, which are preconfigured by default to\nemit the same events that the `BaseEventsModal` component is listening to:\n\n```vue\n<template>\n <div>\n <BaseEventsModalOpen>Open</BaseEventsModalOpen>\n <BaseEventsModal>\n <BaseEventsModalClose>Close</BaseEventsModalClose>\n <img src=\"success.png\" />\n </BaseEventsModal>\n </div>\n</template>\n\n<script>\n import { BaseEventsModalOpen, BaseEventsModal } from '@empathyco/x-components';\n\n export default {\n name: 'ModalTest',\n components: {\n BaseEventsModalOpen,\n BaseEventsModal\n }\n };\n</script>\n```\n\n## Customizing the events\n\nIf needed, the events to open/close the modal can be changed. The modal can listen one or more\nevents. To do so, the `eventsToCloseModal` and `eventsToOpenModal` props can be used. Below you can\nsee a full example on how this would work with custom events.\n\n```vue\n<template>\n <div>\n <BaseEventsModalOpen openingEvent=\"UserClickedOpenMyCustomModal\">Open</BaseEventsModalOpen>\n <BaseEventsModal\n :eventsToCloseModal=\"eventsToCloseModal\"\n :eventsToOpenModal=\"eventsToOpenModal\"\n >\n <BaseEventsModalClose closingEvent=\"UserClickedCloseMyCustomModalFromHeader\">\n Close from header\n </BaseEventsModalClose>\n <img src=\"success.png\" />\n <BaseEventsModalClose closingEvent=\"UserClickedCloseMyCustomModalFromFooter\">\n Close from footer\n </BaseEventsModalClose>\n </BaseEventsModal>\n </div>\n</template>\n\n<script>\n import {\n BaseEventsModalOpen,\n BaseEventsModal,\n BaseEventsModalClose\n } from '@empathyco/x-components';\n\n export default {\n name: 'ModalTest',\n components: {\n BaseEventsModalOpen,\n BaseEventsModal,\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseEventsModal`: the event is emitted after clicking outside the content rendered in\n the default slot.\n- `UserClickedOutOfEventsModal`: the event is emitted after clicking outside the modal.\n- Custom events to open or close the modal.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-events-modal.vue.js","sources":["../../../../src/components/modals/base-events-modal.vue"],"sourcesContent":["<template>\n <BaseModal\n @click:overlay=\"emitBodyClickEvent\"\n @focusin:body=\"emitBodyClickEvent\"\n :animation=\"animation\"\n :open=\"isOpen\"\n >\n <slot />\n </BaseModal>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEvent } from '../../wiring/events.types';\n import { XOn } from '../decorators/bus.decorators';\n import { WireMetadata } from '../../wiring/wiring.types';\n import { isElementEqualOrContained } from '../../utils/html';\n import BaseModal from './base-modal.vue';\n\n /**\n * Component containing a modal that emits a {@link XEventsTypes.UserClickedCloseEventsModal} when\n * clicking outside the content rendered in the default slot and can receive, through the\n * eventsToCloseModal prop, a list of {@link XEvent | xEvents} to listen to in order to close\n * also the modal, eventsToOpenModal prop, another list of {@link XEvent | xEvents} to customize\n * the events to listen to open the modal and a prop, displayOverlay, to display an\n * overlay over the rest of the html. The default slot offers the possibility to customize the\n * modal content.\n *\n * @public\n */\n @Component({\n components: { BaseModal }\n })\n export default class BaseEventsModal extends Vue {\n /**\n * Animation to use for opening/closing the modal.\n */\n @Prop()\n public animation?: Vue | string;\n /**\n * Array of {@link XEvent | xEvents} to listen to open the modal.\n */\n @Prop({ default: (): XEvent[] => ['UserClickedOpenEventsModal'] })\n public eventsToOpenModal!: XEvent[];\n\n /**\n * Array of {@link XEvent | xEvents} to listen to close the modal.\n */\n @Prop({\n default: (): XEvent[] => ['UserClickedCloseEventsModal', 'UserClickedOutOfEventsModal']\n })\n public eventsToCloseModal!: XEvent[];\n\n /**\n * Event to emit when any part of the website out of the modal has been clicked.\n */\n @Prop({ default: 'UserClickedOutOfEventsModal' })\n public bodyClickEvent!: XEvent;\n\n /**\n * Whether the modal is open or not.\n */\n protected isOpen = false;\n\n /** The element that opened the modal. */\n protected openerElement?: HTMLElement;\n\n /**\n * Opens the modal.\n *\n * @param _payload - The payload of the event that opened the modal.\n * @param metadata - The metadata of the event that opened the modal.\n *\n * @internal\n */\n @XOn(component => (component as BaseEventsModal).eventsToOpenModal)\n openModal(_payload: unknown, metadata: WireMetadata): void {\n if (!this.isOpen) {\n this.openerElement = metadata.target;\n this.isOpen = true;\n }\n }\n\n /**\n * Closes the modal.\n *\n * @internal\n */\n @XOn(component => (component as BaseEventsModal).eventsToCloseModal)\n closeModal(): void {\n if (this.isOpen) {\n this.isOpen = false;\n }\n }\n\n /**\n * Emits the event defined in the {@link BaseEventsModal.bodyClickEvent} event unless the passed\n * event target is the button that opened the modal.\n *\n * @param event - The event that triggered the close attempt.\n * @public\n */\n protected emitBodyClickEvent(event: MouseEvent | FocusEvent): void {\n // Prevents clicking the open button when the panel is already open to close the panel.\n if (\n !this.openerElement ||\n !isElementEqualOrContained(this.openerElement, event.target as HTMLElement)\n ) {\n this.$x.emit(this.bodyClickEvent, undefined, { target: this.$el as HTMLElement });\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseEventsModal` component handles the modal open/close state via the events passed via props.\nIts configured by default to work as a modal for a whole search application, but if the events are\nchanged, it can work as a modal that is opened/closed when the events it is listening are emitted.\n\n### Basic usage\n\nThe component interacts with the open and close components, which are preconfigured by default to\nemit the same events that the `BaseEventsModal` component is listening to:\n\n```vue\n<template>\n <div>\n <BaseEventsModalOpen>Open</BaseEventsModalOpen>\n <BaseEventsModal>\n <BaseEventsModalClose>Close</BaseEventsModalClose>\n <img src=\"success.png\" />\n </BaseEventsModal>\n </div>\n</template>\n\n<script>\n import { BaseEventsModalOpen, BaseEventsModal } from '@empathyco/x-components';\n\n export default {\n name: 'ModalTest',\n components: {\n BaseEventsModalOpen,\n BaseEventsModal\n }\n };\n</script>\n```\n\n### Customizing the events\n\nIf needed, the events to open/close the modal can be changed. The modal can listen one or more\nevents. To do so, the `eventsToCloseModal` and `eventsToOpenModal` props can be used. Below you can\nsee a full example on how this would work with custom events.\n\n```vue\n<template>\n <div>\n <BaseEventsModalOpen openingEvent=\"UserClickedOpenMyCustomModal\">Open</BaseEventsModalOpen>\n <BaseEventsModal\n :eventsToCloseModal=\"eventsToCloseModal\"\n :eventsToOpenModal=\"eventsToOpenModal\"\n >\n <BaseEventsModalClose closingEvent=\"UserClickedCloseMyCustomModalFromHeader\">\n Close from header\n </BaseEventsModalClose>\n <img src=\"success.png\" />\n <BaseEventsModalClose closingEvent=\"UserClickedCloseMyCustomModalFromFooter\">\n Close from footer\n </BaseEventsModalClose>\n </BaseEventsModal>\n </div>\n</template>\n\n<script>\n import {\n BaseEventsModalOpen,\n BaseEventsModal,\n BaseEventsModalClose\n } from '@empathyco/x-components';\n\n export default {\n name: 'ModalTest',\n components: {\n BaseEventsModalOpen,\n BaseEventsModal,\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseEventsModal`: the event is emitted after clicking outside the content rendered in\n the default slot.\n- `UserClickedOutOfEventsModal`: the event is emitted after clicking outside the modal.\n- Custom events to open or close the modal.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-modal-close.vue.js","sources":["../../../../src/components/modals/base-id-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-id-close-button\"\n data-test=\"close-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component containing an event button that emits {@link XEventsTypes.UserClickedCloseModal} when\n * clicked with the modalId as payload. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdModalClose extends Vue {\n @Prop({ required: true })\n protected modalId!: string;\n\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedCloseModal: this.modalId };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nComponent containing an event button that emits `UserClickedCloseModal` when clicked with the\nmodalId as payload. It has a default slot to customize its contents.\n\n## Basic example\n\nThe component renders whatever is passed to it in the default slot and closing the modal with\nmodalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <img src=\"./close-button-icon.svg\" />\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseModal`: the event is emitted after the user clicks the button. The event payload\n is the id of the modal that is going to be closed.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-id-modal-close.vue.js","sources":["../../../../src/components/modals/base-id-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-id-close-button\"\n data-test=\"close-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component containing an event button that emits {@link XEventsTypes.UserClickedCloseModal} when\n * clicked with the modalId as payload. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdModalClose extends Vue {\n @Prop({ required: true })\n protected modalId!: string;\n\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedCloseModal: this.modalId };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nComponent containing an event button that emits `UserClickedCloseModal` when clicked with the\nmodalId as payload. It has a default slot to customize its contents.\n\n### Basic example\n\nThe component renders whatever is passed to it in the default slot and closing the modal with\nmodalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <img src=\"./close-button-icon.svg\" />\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedCloseModal`: the event is emitted after the user clicks the button. The event payload\n is the id of the modal that is going to be closed.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-modal-open.vue.js","sources":["../../../../src/components/modals/base-id-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-id-open-button\"\n data-test=\"open-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component containing an event button that emits {@link XEventsTypes.UserClickedOpenModal} when\n * clicked with the modalId as payload. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdModalOpen extends Vue {\n @Prop({ required: true })\n protected modalId!: string;\n\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedOpenModal: this.modalId };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nComponent containing an event button that emits `UserClickedOpenModal` when it is clicked with the\nmodalId as payload. It has a default slot to customize its contents.\n\n## Basic example\n\nThe component rendering content passed to the default slot and opening the modal with modalId\n`my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOpenModal`: the event is emitted after the user clicks the button. The event payload\n is the id of the modal that is going to be opened.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-id-modal-open.vue.js","sources":["../../../../src/components/modals/base-id-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-events-modal-id-open-button\"\n data-test=\"open-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component containing an event button that emits {@link XEventsTypes.UserClickedOpenModal} when\n * clicked with the modalId as payload. It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdModalOpen extends Vue {\n @Prop({ required: true })\n protected modalId!: string;\n\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedOpenModal: this.modalId };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nComponent containing an event button that emits `UserClickedOpenModal` when it is clicked with the\nmodalId as payload. It has a default slot to customize its contents.\n\n### Basic example\n\nThe component rendering content passed to the default slot and opening the modal with modalId\n`my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOpenModal`: the event is emitted after the user clicks the button. The event payload\n is the id of the modal that is going to be opened.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-modal.vue.js","sources":["../../../../src/components/modals/base-id-modal.vue"],"sourcesContent":["<template>\n <BaseModal\n @click:overlay=\"emitClickOutOfModal\"\n @focusin:body=\"emitClickOutOfModal\"\n :animation=\"animation\"\n :open=\"isOpen\"\n >\n <slot />\n </BaseModal>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XOn } from '../decorators/bus.decorators';\n import { WireMetadata } from '../../wiring/wiring.types';\n import { isElementEqualOrContained } from '../../utils/html';\n import BaseModal from './base-modal.vue';\n\n /**\n * Component containing a modal expecting a required prop, named `modalId`. It reacts to\n * `UserClickedOpenModal`, `UserClickedCloseModal` and `UserClickedOutOfModal` events, when their\n * payload matches the component's 'modalId' prop, to handle its open/close state. The default\n * slot offers the possibility to customise the modal content.\n *\n * @public\n */\n @Component({\n components: { BaseModal }\n })\n export default class BaseIdModal extends Vue {\n /** Animation to use for opening/closing the modal. */\n @Prop()\n public animation?: Vue | string;\n\n /** The modalId to use for the open and close event listeners. */\n @Prop({ required: true })\n public modalId!: string;\n\n /** Whether the modal is open or not. */\n protected isOpen = false;\n\n /** The element that opened the modal. */\n protected openerElement?: HTMLElement;\n\n /**\n * Opens the modal.\n *\n * @param modalId - The payload of the {@link XEventsTypes.UserClickedOpenModal} event.\n * @param metadata - The metadata of the emitted event.\n * @public\n */\n @XOn('UserClickedOpenModal')\n openModal(modalId: string, metadata: WireMetadata): void {\n if (!this.isOpen && this.modalId === modalId) {\n this.openerElement = metadata.target;\n this.isOpen = true;\n }\n }\n\n /**\n * Closes the modal.\n *\n * @param payload - The payload of the closing events:\n * {@link XEventsTypes.UserClickedCloseModal} or {@link XEventsTypes.UserClickedOutOfModal}.\n *\n * @public\n */\n @XOn(['UserClickedCloseModal', 'UserClickedOutOfModal'])\n closeModal(payload: string): void {\n if (this.isOpen && this.modalId === payload) {\n this.isOpen = false;\n }\n }\n\n /**\n * Emits a {@link XEventsTypes.UserClickedOutOfModal} event unless the passed event target\n * is the button that opened the modal.\n *\n * @param event - The event that triggered the close attempt.\n * @public\n */\n protected emitClickOutOfModal(event: MouseEvent | FocusEvent): void {\n // Prevents clicking the open button when the panel is already open to close the panel.\n if (\n !this.openerElement ||\n !isElementEqualOrContained(this.openerElement, event.target as HTMLElement)\n ) {\n this.$x.emit('UserClickedOutOfModal', this.modalId, { target: this.$el as HTMLElement });\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nThe `BaseIdModal` component reacts to the `UserClickedOpenModal`, `UserClickedCloseModal` and\n`UserClickedOutOfModal` to handle its open/close state. The component filters out the events which\npayload doesn't match its `modalId` prop and reacts only to those who match this criteria.\n\n## Basic usage\n\nThe component interacts with both `BaseIdModalOpen` and `BaseIdModalClose` components, which have to\nshare the same value in their `modalId` prop to work:\n\n```vue\n<template>\n <div>\n <BaseIdModalOpen modalId=\"myModal\">Open</BaseIdModalOpen>\n <BaseIdModal modalId=\"myModal\">\n <img src=\"success.png\" />\n <BaseIdModalClose modalId=\"myModal\">Close</BaseIdModalClose>\n </BaseIdModal>\n </div>\n</template>\n\n<script>\n import { BaseIdModalOpen, BaseIdModal, BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'TestModal',\n components: {\n BaseIdModalOpen,\n BaseIdModal,\n BaseIdModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOutOfModal`: the event is emitted after the user clicks outside the modal. The event\n payload is the id of the modal and a metadata with the target element that emitted it.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-id-modal.vue.js","sources":["../../../../src/components/modals/base-id-modal.vue"],"sourcesContent":["<template>\n <BaseModal\n @click:overlay=\"emitClickOutOfModal\"\n @focusin:body=\"emitClickOutOfModal\"\n :animation=\"animation\"\n :open=\"isOpen\"\n >\n <slot />\n </BaseModal>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XOn } from '../decorators/bus.decorators';\n import { WireMetadata } from '../../wiring/wiring.types';\n import { isElementEqualOrContained } from '../../utils/html';\n import BaseModal from './base-modal.vue';\n\n /**\n * Component containing a modal expecting a required prop, named `modalId`. It reacts to\n * `UserClickedOpenModal`, `UserClickedCloseModal` and `UserClickedOutOfModal` events, when their\n * payload matches the component's 'modalId' prop, to handle its open/close state. The default\n * slot offers the possibility to customise the modal content.\n *\n * @public\n */\n @Component({\n components: { BaseModal }\n })\n export default class BaseIdModal extends Vue {\n /** Animation to use for opening/closing the modal. */\n @Prop()\n public animation?: Vue | string;\n\n /** The modalId to use for the open and close event listeners. */\n @Prop({ required: true })\n public modalId!: string;\n\n /** Whether the modal is open or not. */\n protected isOpen = false;\n\n /** The element that opened the modal. */\n protected openerElement?: HTMLElement;\n\n /**\n * Opens the modal.\n *\n * @param modalId - The payload of the {@link XEventsTypes.UserClickedOpenModal} event.\n * @param metadata - The metadata of the emitted event.\n * @public\n */\n @XOn('UserClickedOpenModal')\n openModal(modalId: string, metadata: WireMetadata): void {\n if (!this.isOpen && this.modalId === modalId) {\n this.openerElement = metadata.target;\n this.isOpen = true;\n }\n }\n\n /**\n * Closes the modal.\n *\n * @param payload - The payload of the closing events:\n * {@link XEventsTypes.UserClickedCloseModal} or {@link XEventsTypes.UserClickedOutOfModal}.\n *\n * @public\n */\n @XOn(['UserClickedCloseModal', 'UserClickedOutOfModal'])\n closeModal(payload: string): void {\n if (this.isOpen && this.modalId === payload) {\n this.isOpen = false;\n }\n }\n\n /**\n * Emits a {@link XEventsTypes.UserClickedOutOfModal} event unless the passed event target\n * is the button that opened the modal.\n *\n * @param event - The event that triggered the close attempt.\n * @public\n */\n protected emitClickOutOfModal(event: MouseEvent | FocusEvent): void {\n // Prevents clicking the open button when the panel is already open to close the panel.\n if (\n !this.openerElement ||\n !isElementEqualOrContained(this.openerElement, event.target as HTMLElement)\n ) {\n this.$x.emit('UserClickedOutOfModal', this.modalId, { target: this.$el as HTMLElement });\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseIdModal` component reacts to the `UserClickedOpenModal`, `UserClickedCloseModal` and\n`UserClickedOutOfModal` to handle its open/close state. The component filters out the events which\npayload doesn't match its `modalId` prop and reacts only to those who match this criteria.\n\n### Basic usage\n\nThe component interacts with both `BaseIdModalOpen` and `BaseIdModalClose` components, which have to\nshare the same value in their `modalId` prop to work:\n\n```vue\n<template>\n <div>\n <BaseIdModalOpen modalId=\"myModal\">Open</BaseIdModalOpen>\n <BaseIdModal modalId=\"myModal\">\n <img src=\"success.png\" />\n <BaseIdModalClose modalId=\"myModal\">Close</BaseIdModalClose>\n </BaseIdModal>\n </div>\n</template>\n\n<script>\n import { BaseIdModalOpen, BaseIdModal, BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'TestModal',\n components: {\n BaseIdModalOpen,\n BaseIdModal,\n BaseIdModalClose\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedOutOfModal`: the event is emitted after the user clicks outside the modal. The event\n payload is the id of the modal and a metadata with the target element that emitted it.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -56,11 +56,11 @@ __vue_render__._withStripped = true;
56
56
  /* style */
57
57
  var __vue_inject_styles__ = function (inject) {
58
58
  if (!inject) { return }
59
- inject("data-v-e351282a_0", { source: ".x-modal[data-v-e351282a] {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.x-modal__content[data-v-e351282a] {\n z-index: 1;\n}\n.x-modal__overlay[data-v-e351282a] {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0;\n}\n.x-modal__overlay--is-visible[data-v-e351282a] {\n transition: opacity 0.3s ease-out;\n opacity: 1;\n}", map: undefined, media: undefined });
59
+ inject("data-v-fee0d258_0", { source: ".x-modal[data-v-fee0d258] {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.x-modal__content[data-v-fee0d258] {\n z-index: 1;\n}\n.x-modal__overlay[data-v-fee0d258] {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0;\n}\n.x-modal__overlay--is-visible[data-v-fee0d258] {\n transition: opacity 0.3s ease-out;\n opacity: 1;\n}", map: undefined, media: undefined });
60
60
 
61
61
  };
62
62
  /* scoped */
63
- var __vue_scope_id__ = "data-v-e351282a";
63
+ var __vue_scope_id__ = "data-v-fee0d258";
64
64
  /* module identifier */
65
65
  var __vue_module_identifier__ = undefined;
66
66
  /* functional template */
@@ -1 +1 @@
1
- {"version":3,"file":"base-modal.vue.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <component :is=\"animation\" @beforeEnter=\"showOverlay = false\" @afterEnter=\"showOverlay = true\">\n <div v-if=\"open\" class=\"x-modal\" data-test=\"modal\">\n <div ref=\"modal\" class=\"x-modal__content x-list\" data-test=\"modal-content\" role=\"dialog\">\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n <div\n @click=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"{ 'x-modal__overlay--is-visible': showOverlay }\"\n data-test=\"modal-overlay\"\n />\n </div>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { NoElement } from '../no-element';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n @Component\n export default class BaseModal extends Vue {\n /**\n * Animation to use for opening/closing the modal.\n */\n @Prop({ default: () => NoElement })\n public animation!: Vue | string;\n\n /**\n * Determines if the modal is open or not.\n */\n @Prop({ required: true })\n public open!: boolean;\n\n /** The previous value of the body overflow style. */\n protected previousBodyOverflow = '';\n /** The previous value of the HTML element overflow style. */\n protected previousHTMLOverflow = '';\n /** To animate the overlay opacity after and before the animation. */\n protected showOverlay = true;\n\n public $refs!: {\n modal: HTMLDivElement;\n };\n\n protected mounted(): void {\n /* Watcher added after mount to prevent SSR from breaking */\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('open', this.syncBody, { immediate: true });\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @param isOpen - True when the modal is opened.\n * @internal\n */\n protected syncBody(isOpen: boolean): void {\n if (isOpen) {\n this.disableScroll();\n this.addBodyListeners();\n /* eslint-disable @typescript-eslint/unbound-method */\n this.$on('hook:beforeDestroy', this.removeBodyListeners);\n this.$on('hook:beforeDestroy', this.enableScroll);\n /* eslint-enable @typescript-eslint/unbound-method */\n } else {\n this.enableScroll();\n this.removeBodyListeners();\n /* eslint-disable @typescript-eslint/unbound-method */\n this.$off('hook:beforeDestroy', this.removeBodyListeners);\n this.$off('hook:beforeDestroy', this.enableScroll);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n }\n\n /**\n * Disables the scroll of both the body and the window.\n *\n * @internal\n */\n protected disableScroll(): void {\n this.previousBodyOverflow = document.body.style.overflow;\n this.previousHTMLOverflow = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /**\n * Restores the scroll of both the body and the window.\n *\n * @internal\n */\n protected enableScroll(): void {\n document.body.style.overflow = this.previousBodyOverflow;\n document.documentElement.style.overflow = this.previousHTMLOverflow;\n document.body.style.overflow = document.documentElement.style.overflow = '';\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @internal\n */\n protected addBodyListeners(): void {\n /* eslint-disable @typescript-eslint/unbound-method */\n document.body.addEventListener('focusin', this.emitFocusInBody);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n\n /**\n * Removes the body listeners.\n *\n * @internal\n */\n protected removeBodyListeners(): void {\n /* eslint-disable @typescript-eslint/unbound-method */\n document.body.removeEventListener('focusin', this.emitFocusInBody);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n * @internal\n */\n protected emitOverlayClicked(event: MouseEvent): void {\n this.$emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n * @internal\n */\n protected emitFocusInBody(event: FocusEvent): void {\n if (!this.$refs.modal.contains(event.target as HTMLElement)) {\n this.$emit('focusin:body', event);\n }\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n\n z-index: 1;\n\n &__content {\n z-index: 1;\n }\n\n &__overlay {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0;\n\n &--is-visible {\n transition: opacity 0.3s ease-out;\n opacity: 1;\n }\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n# Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. It also accepts an animation to use for opening & closing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal animation=\"fadeAndSlide\" :open=\"open\" @click:overlay=\"open = false\">\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-modal.vue.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <component :is=\"animation\" @beforeEnter=\"showOverlay = false\" @afterEnter=\"showOverlay = true\">\n <div v-if=\"open\" class=\"x-modal\" data-test=\"modal\">\n <div ref=\"modal\" class=\"x-modal__content x-list\" data-test=\"modal-content\" role=\"dialog\">\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n <div\n @click=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"{ 'x-modal__overlay--is-visible': showOverlay }\"\n data-test=\"modal-overlay\"\n />\n </div>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { NoElement } from '../no-element';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n @Component\n export default class BaseModal extends Vue {\n /**\n * Animation to use for opening/closing the modal.\n */\n @Prop({ default: () => NoElement })\n public animation!: Vue | string;\n\n /**\n * Determines if the modal is open or not.\n */\n @Prop({ required: true })\n public open!: boolean;\n\n /** The previous value of the body overflow style. */\n protected previousBodyOverflow = '';\n /** The previous value of the HTML element overflow style. */\n protected previousHTMLOverflow = '';\n /** To animate the overlay opacity after and before the animation. */\n protected showOverlay = true;\n\n public $refs!: {\n modal: HTMLDivElement;\n };\n\n protected mounted(): void {\n /* Watcher added after mount to prevent SSR from breaking */\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('open', this.syncBody, { immediate: true });\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @param isOpen - True when the modal is opened.\n * @internal\n */\n protected syncBody(isOpen: boolean): void {\n if (isOpen) {\n this.disableScroll();\n this.addBodyListeners();\n /* eslint-disable @typescript-eslint/unbound-method */\n this.$on('hook:beforeDestroy', this.removeBodyListeners);\n this.$on('hook:beforeDestroy', this.enableScroll);\n /* eslint-enable @typescript-eslint/unbound-method */\n } else {\n this.enableScroll();\n this.removeBodyListeners();\n /* eslint-disable @typescript-eslint/unbound-method */\n this.$off('hook:beforeDestroy', this.removeBodyListeners);\n this.$off('hook:beforeDestroy', this.enableScroll);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n }\n\n /**\n * Disables the scroll of both the body and the window.\n *\n * @internal\n */\n protected disableScroll(): void {\n this.previousBodyOverflow = document.body.style.overflow;\n this.previousHTMLOverflow = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /**\n * Restores the scroll of both the body and the window.\n *\n * @internal\n */\n protected enableScroll(): void {\n document.body.style.overflow = this.previousBodyOverflow;\n document.documentElement.style.overflow = this.previousHTMLOverflow;\n document.body.style.overflow = document.documentElement.style.overflow = '';\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @internal\n */\n protected addBodyListeners(): void {\n /* eslint-disable @typescript-eslint/unbound-method */\n document.body.addEventListener('focusin', this.emitFocusInBody);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n\n /**\n * Removes the body listeners.\n *\n * @internal\n */\n protected removeBodyListeners(): void {\n /* eslint-disable @typescript-eslint/unbound-method */\n document.body.removeEventListener('focusin', this.emitFocusInBody);\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n * @internal\n */\n protected emitOverlayClicked(event: MouseEvent): void {\n this.$emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n * @internal\n */\n protected emitFocusInBody(event: FocusEvent): void {\n if (!this.$refs.modal.contains(event.target as HTMLElement)) {\n this.$emit('focusin:body', event);\n }\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n\n z-index: 1;\n\n &__content {\n z-index: 1;\n }\n\n &__overlay {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0;\n\n &--is-visible {\n transition: opacity 0.3s ease-out;\n opacity: 1;\n }\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. It also accepts an animation to use for opening & closing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal animation=\"fadeAndSlide\" :open=\"open\" @click:overlay=\"open = false\">\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -48,11 +48,11 @@ __vue_render__._withStripped = true;
48
48
  /* style */
49
49
  var __vue_inject_styles__ = function (inject) {
50
50
  if (!inject) { return }
51
- inject("data-v-c50e7484_0", { source: ".x-header-toggle-panel__header[data-v-c50e7484] {\n cursor: pointer;\n}", map: undefined, media: undefined });
51
+ inject("data-v-7d0e1069_0", { source: ".x-header-toggle-panel__header[data-v-7d0e1069] {\n cursor: pointer;\n}", map: undefined, media: undefined });
52
52
 
53
53
  };
54
54
  /* scoped */
55
- var __vue_scope_id__ = "data-v-c50e7484";
55
+ var __vue_scope_id__ = "data-v-7d0e1069";
56
56
  /* module identifier */
57
57
  var __vue_module_identifier__ = undefined;
58
58
  /* functional template */
@@ -1 +1 @@
1
- {"version":3,"file":"base-header-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-header-toggle-panel.vue"],"sourcesContent":["<template>\n <div class=\"x-header-toggle-panel\">\n <!-- @slot (Required) Slot that is be used for replacing the whole header. -->\n <slot name=\"header\" v-bind=\"{ toggleOpen, open }\">\n <!-- header-toggle-panel__header -->\n <button\n @click=\"toggleOpen\"\n class=\"x-header-toggle-panel__header\"\n data-test=\"toggle-panel-header\"\n >\n <!-- @slot (Required) Slot used to just pass the content. -->\n <slot name=\"header-content\" v-bind=\"{ open }\"></slot>\n </button>\n </slot>\n\n <BaseTogglePanel :open=\"open\" :animation=\"animation\">\n <!-- @slot (Required) Default content. -->\n <slot />\n </BaseTogglePanel>\n </div>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { NoElement } from '../no-element';\n import BaseTogglePanel from './base-toggle-panel.vue';\n\n /**\n * Toggle panel which uses the base toggle panel, adds a header and manage the\n * open / close state of the panel.\n *\n * @public\n */\n @Component({\n components: { BaseTogglePanel }\n })\n export default class BaseHeaderTogglePanel extends Vue {\n /**\n * Animation component that will be used to animate the base-toggle-panel.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue | string;\n\n /**\n * Handles if the panel is open by default.\n *\n * @public\n */\n @Prop({ default: false })\n protected startCollapsed!: boolean;\n\n /**\n * Handles if the base panel is open or closed.\n *\n * @internal\n */\n protected open = !this.startCollapsed;\n\n /**\n * Toggles the open property.\n *\n * @internal\n */\n protected toggleOpen(): void {\n this.open = !this.open;\n this.emitOpenStatusEvent();\n }\n\n /**\n * Emits open status event.\n *\n * @internal\n */\n protected emitOpenStatusEvent(): void {\n this.$emit(this.open ? 'open' : 'close');\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-header-toggle-panel__header {\n cursor: pointer;\n }\n</style>\n\n<docs lang=\"mdx\">\n# Examples\n\nToggle panel which uses the base toggle panel, adds a header and manage the open / close state of\nthe panel.\n\n## Basic usage\n\n```vue\n<BaseHeaderTogglePanel :animation=\"collapseHeight\" :start-collapsed=\"false\">\n <template #header-content=\"{ open }\">\n <p>Header, open: {{ open ? 'close' : 'open' }}</p>\n </template>\n <template>\n <p>Default content</p>\n </template>\n</BaseHeaderTogglePanel>\n```\n\n## Custom header\n\n```vue\n<BaseHeaderTogglePanel :animation=\"collapseHeight\" :start-collapsed=\"true\">\n <template #header=\"{ toggleOpen, open }\">\n <p>Header, open: {{ open ? 'close' : 'open' }}</p>\n <button @click=\"toggleOpen\">Toggle</button>\n </template>\n <template>\n <p>Default content</p>\n </template>\n</BaseHeaderTogglePanel>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `open`: the event is emitted after the user clicks the element and opens it.\n- `close`: the event is emitted after the user clicks the element and closes it.\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-header-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-header-toggle-panel.vue"],"sourcesContent":["<template>\n <div class=\"x-header-toggle-panel\">\n <!-- @slot (Required) Slot that is be used for replacing the whole header. -->\n <slot name=\"header\" v-bind=\"{ toggleOpen, open }\">\n <!-- header-toggle-panel__header -->\n <button\n @click=\"toggleOpen\"\n class=\"x-header-toggle-panel__header\"\n data-test=\"toggle-panel-header\"\n >\n <!-- @slot (Required) Slot used to just pass the content. -->\n <slot name=\"header-content\" v-bind=\"{ open }\"></slot>\n </button>\n </slot>\n\n <BaseTogglePanel :open=\"open\" :animation=\"animation\">\n <!-- @slot (Required) Default content. -->\n <slot />\n </BaseTogglePanel>\n </div>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { NoElement } from '../no-element';\n import BaseTogglePanel from './base-toggle-panel.vue';\n\n /**\n * Toggle panel which uses the base toggle panel, adds a header and manage the\n * open / close state of the panel.\n *\n * @public\n */\n @Component({\n components: { BaseTogglePanel }\n })\n export default class BaseHeaderTogglePanel extends Vue {\n /**\n * Animation component that will be used to animate the base-toggle-panel.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue | string;\n\n /**\n * Handles if the panel is open by default.\n *\n * @public\n */\n @Prop({ default: false })\n protected startCollapsed!: boolean;\n\n /**\n * Handles if the base panel is open or closed.\n *\n * @internal\n */\n protected open = !this.startCollapsed;\n\n /**\n * Toggles the open property.\n *\n * @internal\n */\n protected toggleOpen(): void {\n this.open = !this.open;\n this.emitOpenStatusEvent();\n }\n\n /**\n * Emits open status event.\n *\n * @internal\n */\n protected emitOpenStatusEvent(): void {\n this.$emit(this.open ? 'open' : 'close');\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-header-toggle-panel__header {\n cursor: pointer;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nToggle panel which uses the base toggle panel, adds a header and manage the open / close state of\nthe panel.\n\n### Basic usage\n\n```vue\n<BaseHeaderTogglePanel :animation=\"collapseHeight\" :start-collapsed=\"false\">\n <template #header-content=\"{ open }\">\n <p>Header, open: {{ open ? 'close' : 'open' }}</p>\n </template>\n <template>\n <p>Default content</p>\n </template>\n</BaseHeaderTogglePanel>\n```\n\n### Custom header\n\n```vue\n<BaseHeaderTogglePanel :animation=\"collapseHeight\" :start-collapsed=\"true\">\n <template #header=\"{ toggleOpen, open }\">\n <p>Header, open: {{ open ? 'close' : 'open' }}</p>\n <button @click=\"toggleOpen\">Toggle</button>\n </template>\n <template>\n <p>Default content</p>\n </template>\n</BaseHeaderTogglePanel>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `open`: the event is emitted after the user clicks the element and opens it.\n- `close`: the event is emitted after the user clicks the element and closes it.\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-toggle-panel-button.vue.js","sources":["../../../../src/components/panels/base-id-toggle-panel-button.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-base-id-toggle-panel-button\"\n data-test=\"base-id-toggle-button\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot :isPanelOpen=\"isPanelOpen\" />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import { WireMetadata } from '../../wiring/wiring.types';\n import BaseEventButton from '../base-event-button.vue';\n import { XOn } from '../decorators/bus.decorators';\n\n /**\n * Component containing an event button that emits\n * {@link XEventsTypes.UserClickedPanelToggleButton} when clicked with\n * the panelId as payload.\n *\n * It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdTogglePanelButton extends Vue {\n /**\n * The panel state to pass through the slot.\n */\n protected isPanelOpen = false;\n\n /** The panelId to use for the toggle event listeners. */\n @Prop({ required: true })\n protected panelId!: string;\n\n /**\n * List of events to emit by the BaseEventButton.\n *\n * @returns An object with the event and payload.\n *\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedPanelToggleButton: this.panelId };\n }\n\n /**\n * The subscription to the {@link XEventsTypes.TogglePanelStateChanged} event\n * to update the `isPanelOpen` property.\n *\n * @param newState - The new isOpen state of the panel.\n * @param id - The `panelId`.\n */\n @XOn('TogglePanelStateChanged')\n updatePanelState(newState: boolean, { id }: WireMetadata): void {\n if (this.panelId === id) {\n this.isPanelOpen = newState;\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\n## Basic example\n\nThe component rendering content passed to the default slot and opening the panel toggle with panelId\n`my-toggle`.\n\n```vue\n<template>\n <div>\n <BaseIdTogglePanelButton v-slot=\"{ isPanelOpen }\" panelId=\"myToggle\">\n <template #default=\"{ isPanelOpen }\" v-if=\"isPanelOpen\">\n <img src=\"./close-button-icon.svg\" />\n <span>Close aside</span>\n </template>\n <template v-else>\n <img src=\"./open-button-icon.svg\" />\n <span>Open aside</span>\n </template>\n </BaseIdTogglePanelButton>\n <BaseIdTogglePanel :startOpen=\"true\" :animation=\"animation\" panelId=\"myToggle\">\n <div class=\"x-text\">My toggle</div>\n </BaseIdTogglePanel>\n </div>\n</template>\n\n<script>\n import {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n },\n data: function () {\n return {\n animation: CollapseFromTop\n };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedPanelToggleButton`: the event is emitted after the user clicks the button. The event\n payload is the id of the panelId that is going to be toggled.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-id-toggle-panel-button.vue.js","sources":["../../../../src/components/panels/base-id-toggle-panel-button.vue"],"sourcesContent":["<template>\n <BaseEventButton\n v-on=\"$listeners\"\n :events=\"events\"\n class=\"x-button x-base-id-toggle-panel-button\"\n data-test=\"base-id-toggle-button\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot :isPanelOpen=\"isPanelOpen\" />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import { WireMetadata } from '../../wiring/wiring.types';\n import BaseEventButton from '../base-event-button.vue';\n import { XOn } from '../decorators/bus.decorators';\n\n /**\n * Component containing an event button that emits\n * {@link XEventsTypes.UserClickedPanelToggleButton} when clicked with\n * the panelId as payload.\n *\n * It has a default slot to customize its contents.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseIdTogglePanelButton extends Vue {\n /**\n * The panel state to pass through the slot.\n */\n protected isPanelOpen = false;\n\n /** The panelId to use for the toggle event listeners. */\n @Prop({ required: true })\n protected panelId!: string;\n\n /**\n * List of events to emit by the BaseEventButton.\n *\n * @returns An object with the event and payload.\n *\n * @internal\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedPanelToggleButton: this.panelId };\n }\n\n /**\n * The subscription to the {@link XEventsTypes.TogglePanelStateChanged} event\n * to update the `isPanelOpen` property.\n *\n * @param newState - The new isOpen state of the panel.\n * @param id - The `panelId`.\n */\n @XOn('TogglePanelStateChanged')\n updatePanelState(newState: boolean, { id }: WireMetadata): void {\n if (this.panelId === id) {\n this.isPanelOpen = newState;\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\n### Basic example\n\nThe component rendering content passed to the default slot and opening the panel toggle with panelId\n`my-toggle`.\n\n```vue\n<template>\n <div>\n <BaseIdTogglePanelButton v-slot=\"{ isPanelOpen }\" panelId=\"myToggle\">\n <template #default=\"{ isPanelOpen }\" v-if=\"isPanelOpen\">\n <img src=\"./close-button-icon.svg\" />\n <span>Close aside</span>\n </template>\n <template v-else>\n <img src=\"./open-button-icon.svg\" />\n <span>Open aside</span>\n </template>\n </BaseIdTogglePanelButton>\n <BaseIdTogglePanel :startOpen=\"true\" :animation=\"animation\" panelId=\"myToggle\">\n <div class=\"x-text\">My toggle</div>\n </BaseIdTogglePanel>\n </div>\n</template>\n\n<script>\n import {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n },\n data: function () {\n return {\n animation: CollapseFromTop\n };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedPanelToggleButton`: the event is emitted after the user clicks the button. The event\n payload is the id of the panelId that is going to be toggled.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-id-toggle-panel.vue"],"sourcesContent":["<template>\n <BaseTogglePanel :open=\"isOpen\" :animation=\"animation\">\n <!-- @slot (Required) Default content -->\n <slot />\n </BaseTogglePanel>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XOn } from '../decorators/bus.decorators';\n import { NoElement } from '../no-element';\n import BaseTogglePanel from './base-toggle-panel.vue';\n\n /**\n * Simple panel that could receives its initial open state via prop, if not the default is opens\n * and a required prop, named `panelId`, which are responsible of rendering default slot\n * inside a configurable transition.\n *\n * It reacts to `UserClickedPanelToggleButton` event, when their payload matches the component's\n * 'panelId' prop, to handle its open/close state.\n *\n * The default slot offers the possibility to customise the modal content.\n *\n * @public\n */\n @Component({\n components: {\n BaseTogglePanel\n }\n })\n export default class BaseIdTogglePanel extends Vue {\n /**\n * Shows the panel open at the beginning or not, depending on its state.\n *\n * @public\n */\n @Prop({ default: true })\n protected startOpen!: boolean;\n\n /** Whether the toggle panel is open or not. */\n protected isOpen = this.startOpen;\n\n /**\n * Creates the watcher over `isOpen` state to emit the event\n * {@link XEventsTypes.TogglePanelStateChanged}.\n */\n created(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('isOpen', this.emitStateEvent, { immediate: true });\n }\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue;\n\n /**\n * The id to link with the BaseIdTogglePanelButton.\n * Both components must use the same Id to make them interact.\n */\n @Prop({ required: true })\n public panelId!: string;\n\n /**\n * Method to subscribe to the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @param panelId - The payload of the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @public\n */\n @XOn('UserClickedPanelToggleButton')\n togglePanel(panelId: string): void {\n if (this.panelId === panelId) {\n this.isOpen = !this.isOpen;\n }\n }\n\n /**\n * Emits the {@link XEventsTypes.TogglePanelStateChanged} event, when the internal state\n * changes.\n *\n * @remarks This event is necessary to link the state with the {@link BaseIdTogglePanelButton}\n * component.\n * @public\n */\n emitStateEvent(): void {\n this.$x.emit('TogglePanelStateChanged', this.isOpen, {\n id: this.panelId,\n target: this.$el as HTMLElement\n });\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\n## Basic usage\n\nUsing default slot:\n\n```vue\n<template>\n <div>\n <BaseIdTogglePanelButton panelId=\"myToggle\">\n <img src=\"./open-button-icon.svg\" />\n <span>Toggle Aside</span>\n </BaseIdTogglePanelButton>\n <BaseIdTogglePanel :startOpen=\"true\" :animation=\"animation\" panelId=\"myToggle\">\n <div class=\"x-text\">My toggle</div>\n </BaseIdTogglePanel>\n </div>\n</template>\n\n<script>\n import {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n },\n data: function () {\n return {\n animation: CollapseFromTop\n };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will watch:\n\n- `UserClickedPanelToggleButton`: the event is emitted after the user clicks the button. The event\n payload is the id of the panelId that is going to be toggled.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-id-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-id-toggle-panel.vue"],"sourcesContent":["<template>\n <BaseTogglePanel :open=\"isOpen\" :animation=\"animation\">\n <!-- @slot (Required) Default content -->\n <slot />\n </BaseTogglePanel>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop, Watch } from 'vue-property-decorator';\n import { XOn } from '../decorators/bus.decorators';\n import { NoElement } from '../no-element';\n import BaseTogglePanel from './base-toggle-panel.vue';\n\n /**\n * Simple panel that could receives its initial open state via prop, if not the default is opens\n * and a required prop, named `panelId`, which are responsible of rendering default slot\n * inside a configurable transition.\n *\n * It reacts to `UserClickedPanelToggleButton` event, when their payload matches the component's\n * 'panelId' prop, to handle its open/close state.\n *\n * The default slot offers the possibility to customise the modal content.\n *\n * @public\n */\n @Component({\n components: {\n BaseTogglePanel\n }\n })\n export default class BaseIdTogglePanel extends Vue {\n /**\n * Shows the panel open at the beginning or not, depending on its state.\n *\n * @public\n */\n @Prop({ default: true })\n protected startOpen!: boolean;\n\n /** Whether the toggle panel is open or not. */\n protected isOpen = this.startOpen;\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue;\n\n /**\n * The id to link with the BaseIdTogglePanelButton.\n * Both components must use the same Id to make them interact.\n */\n @Prop({ required: true })\n public panelId!: string;\n\n /**\n * Method to subscribe to the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @param panelId - The payload of the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @public\n */\n @XOn('UserClickedPanelToggleButton')\n togglePanel(panelId: string): void {\n if (this.panelId === panelId) {\n this.isOpen = !this.isOpen;\n }\n }\n\n /**\n * Emits the {@link XEventsTypes.TogglePanelStateChanged} event, when the internal state\n * changes.\n *\n * @remarks This event is necessary to link the state with the {@link BaseIdTogglePanelButton}\n * component.\n * @public\n */\n @Watch('isOpen', { immediate: true })\n emitStateEvent(): void {\n this.$x.emit('TogglePanelStateChanged', this.isOpen, {\n id: this.panelId,\n target: this.$el as HTMLElement\n });\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\n### Basic usage\n\nUsing default slot:\n\n```vue\n<template>\n <div>\n <BaseIdTogglePanelButton panelId=\"myToggle\">\n <img src=\"./open-button-icon.svg\" />\n <span>Toggle Aside</span>\n </BaseIdTogglePanelButton>\n <BaseIdTogglePanel :startOpen=\"true\" :animation=\"animation\" panelId=\"myToggle\">\n <div class=\"x-text\">My toggle</div>\n </BaseIdTogglePanel>\n </div>\n</template>\n\n<script>\n import {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseIdTogglePanel,\n BaseIdTogglePanelButton,\n CollapseFromTop\n },\n data: function () {\n return {\n animation: CollapseFromTop\n };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will watch:\n\n- `UserClickedPanelToggleButton`: the event is emitted after the user clicks the button. The event\n payload is the id of the panelId that is going to be toggled.\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 { Prop, Component } from 'vue-property-decorator';
3
+ import { Prop, Watch, Component } from 'vue-property-decorator';
4
4
  import { NoElement } from '../no-element.js';
5
5
  import { XOn } from '../decorators/bus.decorators.js';
6
6
  import BaseTogglePanel from './base-toggle-panel.vue.js';
@@ -25,14 +25,6 @@ var BaseIdTogglePanel = /** @class */ (function (_super) {
25
25
  _this.isOpen = _this.startOpen;
26
26
  return _this;
27
27
  }
28
- /**
29
- * Creates the watcher over `isOpen` state to emit the event
30
- * {@link XEventsTypes.TogglePanelStateChanged}.
31
- */
32
- BaseIdTogglePanel.prototype.created = function () {
33
- // eslint-disable-next-line @typescript-eslint/unbound-method
34
- this.$watch('isOpen', this.emitStateEvent, { immediate: true });
35
- };
36
28
  /**
37
29
  * Method to subscribe to the {@link XEventsTypes.UserClickedPanelToggleButton} event.
38
30
  *
@@ -71,6 +63,9 @@ var BaseIdTogglePanel = /** @class */ (function (_super) {
71
63
  __decorate([
72
64
  XOn('UserClickedPanelToggleButton')
73
65
  ], BaseIdTogglePanel.prototype, "togglePanel", null);
66
+ __decorate([
67
+ Watch('isOpen', { immediate: true })
68
+ ], BaseIdTogglePanel.prototype, "emitStateEvent", null);
74
69
  BaseIdTogglePanel = __decorate([
75
70
  Component({
76
71
  components: {
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-toggle-panel.vue_rollup-plugin-vue=script.js","sources":["../../../../src/components/panels/base-id-toggle-panel.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { XOn } from '../decorators/bus.decorators';\nimport { NoElement } from '../no-element';\nimport BaseTogglePanel from './base-toggle-panel.vue';\n\n/**\n * Simple panel that could receives its initial open state via prop, if not the default is opens\n * and a required prop, named `panelId`, which are responsible of rendering default slot\n * inside a configurable transition.\n *\n * It reacts to `UserClickedPanelToggleButton` event, when their payload matches the component's\n * 'panelId' prop, to handle its open/close state.\n *\n * The default slot offers the possibility to customise the modal content.\n *\n * @public\n */\n@Component({\n components: {\n BaseTogglePanel\n }\n})\nexport default class BaseIdTogglePanel extends Vue {\n /**\n * Shows the panel open at the beginning or not, depending on its state.\n *\n * @public\n */\n @Prop({ default: true })\n protected startOpen!: boolean;\n\n /** Whether the toggle panel is open or not. */\n protected isOpen = this.startOpen;\n\n /**\n * Creates the watcher over `isOpen` state to emit the event\n * {@link XEventsTypes.TogglePanelStateChanged}.\n */\n created(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.$watch('isOpen', this.emitStateEvent, { immediate: true });\n }\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue;\n\n /**\n * The id to link with the BaseIdTogglePanelButton.\n * Both components must use the same Id to make them interact.\n */\n @Prop({ required: true })\n public panelId!: string;\n\n /**\n * Method to subscribe to the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @param panelId - The payload of the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @public\n */\n @XOn('UserClickedPanelToggleButton')\n togglePanel(panelId: string): void {\n if (this.panelId === panelId) {\n this.isOpen = !this.isOpen;\n }\n }\n\n /**\n * Emits the {@link XEventsTypes.TogglePanelStateChanged} event, when the internal state\n * changes.\n *\n * @remarks This event is necessary to link the state with the {@link BaseIdTogglePanelButton}\n * component.\n * @public\n */\n emitStateEvent(): void {\n this.$x.emit('TogglePanelStateChanged', this.isOpen, {\n id: this.panelId,\n target: this.$el as HTMLElement\n });\n }\n}\n"],"names":[],"mappings":";;;;;;;AAcA;;;;;;;;;;;;AAiBA;IAA+C,qCAAG;IAAlD;QAAA,qEAgEC;;QAtDW,YAAM,GAAG,KAAI,CAAC,SAAS,CAAC;;KAsDnC;;;;;IAhDC,mCAAO,GAAP;;QAEE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACjE;;;;;;;;IAyBD,uCAAW,GAAX,UAAY,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;KACF;;;;;;;;;IAUD,0CAAc,GAAd;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,MAAM,EAAE;YACnD,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,MAAM,EAAE,IAAI,CAAC,GAAkB;SAChC,CAAC,CAAC;KACJ;IAxDD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDACM;IAoB9B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;wDACT;IAO1B;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sDACD;IAUxB;QADC,GAAG,CAAC,8BAA8B,CAAC;wDAKnC;IAhDkB,iBAAiB;QALrC,SAAS,CAAC;YACT,UAAU,EAAE;gBACV,eAAe,iBAAA;aAChB;SACF,CAAC;OACmB,iBAAiB,CAgErC;IAAD,wBAAC;CAAA,CAhE8C,GAAG;;;;"}
1
+ {"version":3,"file":"base-id-toggle-panel.vue_rollup-plugin-vue=script.js","sources":["../../../../src/components/panels/base-id-toggle-panel.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { XOn } from '../decorators/bus.decorators';\nimport { NoElement } from '../no-element';\nimport BaseTogglePanel from './base-toggle-panel.vue';\n\n/**\n * Simple panel that could receives its initial open state via prop, if not the default is opens\n * and a required prop, named `panelId`, which are responsible of rendering default slot\n * inside a configurable transition.\n *\n * It reacts to `UserClickedPanelToggleButton` event, when their payload matches the component's\n * 'panelId' prop, to handle its open/close state.\n *\n * The default slot offers the possibility to customise the modal content.\n *\n * @public\n */\n@Component({\n components: {\n BaseTogglePanel\n }\n})\nexport default class BaseIdTogglePanel extends Vue {\n /**\n * Shows the panel open at the beginning or not, depending on its state.\n *\n * @public\n */\n @Prop({ default: true })\n protected startOpen!: boolean;\n\n /** Whether the toggle panel is open or not. */\n protected isOpen = this.startOpen;\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: () => NoElement })\n protected animation!: Vue;\n\n /**\n * The id to link with the BaseIdTogglePanelButton.\n * Both components must use the same Id to make them interact.\n */\n @Prop({ required: true })\n public panelId!: string;\n\n /**\n * Method to subscribe to the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @param panelId - The payload of the {@link XEventsTypes.UserClickedPanelToggleButton} event.\n *\n * @public\n */\n @XOn('UserClickedPanelToggleButton')\n togglePanel(panelId: string): void {\n if (this.panelId === panelId) {\n this.isOpen = !this.isOpen;\n }\n }\n\n /**\n * Emits the {@link XEventsTypes.TogglePanelStateChanged} event, when the internal state\n * changes.\n *\n * @remarks This event is necessary to link the state with the {@link BaseIdTogglePanelButton}\n * component.\n * @public\n */\n @Watch('isOpen', { immediate: true })\n emitStateEvent(): void {\n this.$x.emit('TogglePanelStateChanged', this.isOpen, {\n id: this.panelId,\n target: this.$el as HTMLElement\n });\n }\n}\n"],"names":[],"mappings":";;;;;;;AAcA;;;;;;;;;;;;AAiBA;IAA+C,qCAAG;IAAlD;QAAA,qEAwDC;;QA9CW,YAAM,GAAG,KAAI,CAAC,SAAS,CAAC;;KA8CnC;;;;;;;;IArBC,uCAAW,GAAX,UAAY,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;KACF;;;;;;;;;IAWD,0CAAc,GAAd;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,MAAM,EAAE;YACnD,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,MAAM,EAAE,IAAI,CAAC,GAAkB;SAChC,CAAC,CAAC;KACJ;IAhDD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDACM;IAW9B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,GAAA,EAAE,CAAC;wDACT;IAO1B;QADC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sDACD;IAUxB;QADC,GAAG,CAAC,8BAA8B,CAAC;wDAKnC;IAWD;QADC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;2DAMpC;IAvDkB,iBAAiB;QALrC,SAAS,CAAC;YACT,UAAU,EAAE;gBACV,eAAe,iBAAA;aAChB;SACF,CAAC;OACmB,iBAAiB,CAwDrC;IAAD,wBAAC;CAAA,CAxD8C,GAAG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-toggle-panel.vue"],"sourcesContent":["<template>\n <component :is=\"animation\">\n <div v-if=\"open\" class=\"x-toggle-panel\" data-test=\"base-toggle-panel\">\n <!-- @slot (Required) Default content -->\n <slot />\n </div>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n\n /**\n * Simple panel that receives its open state via prop, which is responsible of rendering\n * default slot inside a configurable transition.\n *\n * @public\n */\n @Component\n export default class BaseTogglePanel extends Vue {\n /**\n * Handles if the panel is rendered. It is used with v-if instead of v-show to get better\n * performance.\n *\n * @public\n */\n @Prop({ required: true })\n protected open!: boolean;\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: 'div' })\n protected animation!: Vue | string;\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nSimple panel that receives its open state via prop, which is responsible of rendering default slot\ninside a configurable transition.\n\n## Basic usage\n\nUsing default slot:\n\n```vue\n<BaseTogglePanel :open=\"true\" :animation=\"collapseFromTop\">\n <Filters :filters=\"filters\">\n <template #default=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </template>\n </Filters>\n</BaseTogglePanel>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-toggle-panel.vue.js","sources":["../../../../src/components/panels/base-toggle-panel.vue"],"sourcesContent":["<template>\n <component :is=\"animation\">\n <div v-if=\"open\" class=\"x-toggle-panel\" data-test=\"base-toggle-panel\">\n <!-- @slot (Required) Default content -->\n <slot />\n </div>\n </component>\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n\n /**\n * Simple panel that receives its open state via prop, which is responsible of rendering\n * default slot inside a configurable transition.\n *\n * @public\n */\n @Component\n export default class BaseTogglePanel extends Vue {\n /**\n * Handles if the panel is rendered. It is used with v-if instead of v-show to get better\n * performance.\n *\n * @public\n */\n @Prop({ required: true })\n protected open!: boolean;\n\n /**\n * Animation component that will be used to animate the panel content.\n *\n * @public\n */\n @Prop({ default: 'div' })\n protected animation!: Vue | string;\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nSimple panel that receives its open state via prop, which is responsible of rendering default slot\ninside a configurable transition.\n\n### Basic usage\n\nUsing default slot:\n\n```vue\n<BaseTogglePanel :open=\"true\" :animation=\"collapseFromTop\">\n <Filters :filters=\"filters\">\n <template #default=\"{ filter }\">\n <p>{{ filter.label }}</p>\n </template>\n </Filters>\n</BaseTogglePanel>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-result-add-to-cart.vue.js","sources":["../../../../src/components/result/base-result-add-to-cart.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-button x-result-add-to-cart\"\n data-test=\"result-add-to-cart\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { Result } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Renders a button with a default slot. It receives the result with the data and emits\n * {@link XEventsTypes.UserClickedResultAddToCart} to the bus on click mouse event.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseResultAddToCart extends Vue {\n /**\n * (Required) The {@link @empathyco/x-types#Result | result} information.\n *\n * @public\n */\n @Prop({ required: true })\n protected result!: Result;\n\n /**\n * The events to be emitted by the button.\n *\n * @returns Events {@link XEventsTypes} to emit.\n *\n * @public\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedResultAddToCart: this.result };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\nRenders a button with a default slot. It receives the result with the data and emits an event\n`UserClickedResultAddToCart` to the bus on click mouse event.\n\n## Basic example\n\nThis component is a button to emit `UserClickedResultAddToCart` whe clicked by the user\n\n```vue\n<BaseResultAddToCart :result=\"result\">\n <img src=\"./add-to-cart.svg\" />\n <span>Add to cart</span>\n</BaseResultAddToCart>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedResultAddToCart`: the event is emitted after the user clicks the button. The event\n payload is the result data.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-result-add-to-cart.vue.js","sources":["../../../../src/components/result/base-result-add-to-cart.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-button x-result-add-to-cart\"\n data-test=\"result-add-to-cart\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { Result } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Renders a button with a default slot. It receives the result with the data and emits\n * {@link XEventsTypes.UserClickedResultAddToCart} to the bus on click mouse event.\n *\n * @public\n */\n @Component({\n components: { BaseEventButton }\n })\n export default class BaseResultAddToCart extends Vue {\n /**\n * (Required) The {@link @empathyco/x-types#Result | result} information.\n *\n * @public\n */\n @Prop({ required: true })\n protected result!: Result;\n\n /**\n * The events to be emitted by the button.\n *\n * @returns Events {@link XEventsTypes} to emit.\n *\n * @public\n */\n protected get events(): Partial<XEventsTypes> {\n return { UserClickedResultAddToCart: this.result };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nRenders a button with a default slot. It receives the result with the data and emits an event\n`UserClickedResultAddToCart` to the bus on click mouse event.\n\n### Basic example\n\nThis component is a button to emit `UserClickedResultAddToCart` whe clicked by the user\n\n```vue\n<BaseResultAddToCart :result=\"result\">\n <img src=\"./add-to-cart.svg\" />\n <span>Add to cart</span>\n</BaseResultAddToCart>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- `UserClickedResultAddToCart`: the event is emitted after the user clicks the button. The event\n payload is the result data.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-result-current-price.vue.js","sources":["../../../../src/components/result/base-result-current-price.vue"],"sourcesContent":["<template>\n <div :class=\"dynamicClasses\" class=\"x-result-current-price\" data-test=\"result-current-price\">\n <!--\n @slot Base currency item\n @binding {result} result - Result data\n -->\n <slot :result=\"result\">\n <BaseCurrency :value=\"result.price.value\" :format=\"format\" />\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { Result } from '@empathyco/x-types';\n import { Component, Prop } from 'vue-property-decorator';\n import Vue from 'vue';\n import { VueCSSClasses } from '../../utils/types';\n import BaseCurrency from '../currency/base-currency.vue';\n\n /**\n * Component that renders the {@link @empathyco/x-types#Result | result} current price\n * that may or may not be on sale.\n *\n * @public\n */\n @Component({\n components: { BaseCurrency }\n })\n export default class BaseResultCurrentPrice extends Vue {\n /**\n * (Required) The {@link @empathyco/x-types#Result | result} information.\n *\n * @public\n */\n @Prop({ required: true })\n protected result!: Result;\n\n /**\n * Format or mask to be defined as string.\n * - Use 'i' to define integer numbers.\n * - Use 'd' to define decimal numbers. You can define the length of the decimal part. If the\n * doesn't include decimals, it is filled with zeros until reach the length defined with 'd's.\n * - Integer separator must be defined between the 3rd and the 4th integer 'i' of a group.\n * - Decimal separator must be defined between the last 'i' and the first 'd'. It can be more\n * than one character.\n * - Set whatever you need around the integers and decimals marks.\n * - Default mask: 'i.iii,dd' which returns '1.345,67'.\n *\n * @remarks The number of 'd', which is the maximum decimal length, MUST match with the length\n * of decimals provided from the adapter. Otherwise, when the component truncate the decimal\n * part, delete significant digits.\n *\n * @public\n */\n @Prop()\n protected format?: string;\n\n /**\n * Dynamic CSS classes to add to the root element of this component.\n *\n * @returns A booleans dictionary where each key is the class name to add, and the boolean value\n * tells if it should be added or not.\n * @internal\n */\n protected get dynamicClasses(): VueCSSClasses {\n return {\n 'x-result-current-price--on-sale': this.result.price.hasDiscount\n };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n# Examples\n\n## Basic example\n\nThis component shows the current price formatted. You can provide the `format` by property or let\nthe `BaseCurrency` component use an injected one.\n\n```vue\n<BaseResultCurrentPrice :value=\"result\" :format=\"'i.iii,ddd €'\" />\n```\n\n## Overriding default slot\n\n```vue\n<BaseResultCurrentPrice :result=\"result\">\n <span class=\"custom-base-result-current-price\">{{ result.price.value }}</span>\n</BaseResultCurrentPrice>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-result-current-price.vue.js","sources":["../../../../src/components/result/base-result-current-price.vue"],"sourcesContent":["<template>\n <div :class=\"dynamicClasses\" class=\"x-result-current-price\" data-test=\"result-current-price\">\n <!--\n @slot Base currency item\n @binding {result} result - Result data\n -->\n <slot :result=\"result\">\n <BaseCurrency :value=\"result.price.value\" :format=\"format\" />\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { Result } from '@empathyco/x-types';\n import { Component, Prop } from 'vue-property-decorator';\n import Vue from 'vue';\n import { VueCSSClasses } from '../../utils/types';\n import BaseCurrency from '../currency/base-currency.vue';\n\n /**\n * Component that renders the {@link @empathyco/x-types#Result | result} current price\n * that may or may not be on sale.\n *\n * @public\n */\n @Component({\n components: { BaseCurrency }\n })\n export default class BaseResultCurrentPrice extends Vue {\n /**\n * (Required) The {@link @empathyco/x-types#Result | result} information.\n *\n * @public\n */\n @Prop({ required: true })\n protected result!: Result;\n\n /**\n * Format or mask to be defined as string.\n * - Use 'i' to define integer numbers.\n * - Use 'd' to define decimal numbers. You can define the length of the decimal part. If the\n * doesn't include decimals, it is filled with zeros until reach the length defined with 'd's.\n * - Integer separator must be defined between the 3rd and the 4th integer 'i' of a group.\n * - Decimal separator must be defined between the last 'i' and the first 'd'. It can be more\n * than one character.\n * - Set whatever you need around the integers and decimals marks.\n * - Default mask: 'i.iii,dd' which returns '1.345,67'.\n *\n * @remarks The number of 'd', which is the maximum decimal length, MUST match with the length\n * of decimals provided from the adapter. Otherwise, when the component truncate the decimal\n * part, delete significant digits.\n *\n * @public\n */\n @Prop()\n protected format?: string;\n\n /**\n * Dynamic CSS classes to add to the root element of this component.\n *\n * @returns A booleans dictionary where each key is the class name to add, and the boolean value\n * tells if it should be added or not.\n * @internal\n */\n protected get dynamicClasses(): VueCSSClasses {\n return {\n 'x-result-current-price--on-sale': this.result.price.hasDiscount\n };\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\n### Basic example\n\nThis component shows the current price formatted. You can provide the `format` by property or let\nthe `BaseCurrency` component use an injected one.\n\n```vue\n<BaseResultCurrentPrice :value=\"result\" :format=\"'i.iii,ddd €'\" />\n```\n\n### Overriding default slot\n\n```vue\n<BaseResultCurrentPrice :result=\"result\">\n <span class=\"custom-base-result-current-price\">{{ result.price.value }}</span>\n</BaseResultCurrentPrice>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -70,11 +70,11 @@ __vue_render__._withStripped = true;
70
70
  /* style */
71
71
  var __vue_inject_styles__ = function (inject) {
72
72
  if (!inject) { return }
73
- inject("data-v-6167a2f8_0", { source: ".x-result-picture[data-v-6167a2f8] {\n min-width: 1px;\n min-height: 1px;\n position: relative;\n}\n.x-result-picture__image[data-v-6167a2f8] {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n}", map: undefined, media: undefined });
73
+ inject("data-v-76efe952_0", { source: ".x-result-picture[data-v-76efe952] {\n min-width: 1px;\n min-height: 1px;\n position: relative;\n}\n.x-result-picture__image[data-v-76efe952] {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n}", map: undefined, media: undefined });
74
74
 
75
75
  };
76
76
  /* scoped */
77
- var __vue_scope_id__ = "data-v-6167a2f8";
77
+ var __vue_scope_id__ = "data-v-76efe952";
78
78
  /* module identifier */
79
79
  var __vue_module_identifier__ = undefined;
80
80
  /* functional template */