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

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 (631) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/core/index.js +7 -8
  3. package/core/index.js.map +1 -1
  4. package/design-system/default-theme.css +6 -1
  5. package/design-system/full-theme.css +6 -1
  6. package/design-system/list-default.css +3 -0
  7. package/design-system/suggestion-default.css +3 -1
  8. package/docs/API-reference/api/x-adapter.empathybannermapper._constructor_.md +2 -2
  9. package/docs/API-reference/api/x-adapter.empathypromotedmapper._constructor_.md +2 -2
  10. package/docs/API-reference/api/x-adapter.empathyredirectionmapper._constructor_.md +2 -2
  11. package/docs/API-reference/api/x-adapter.empathyresultmapper._constructor_.md +2 -2
  12. package/docs/API-reference/api/x-adapter.empathytaggingmapper.map.md +3 -3
  13. package/docs/API-reference/api/x-adapter.empathytaggingmapper.md +2 -2
  14. package/docs/API-reference/api/x-adapter.searchresponse.md +1 -1
  15. package/docs/API-reference/api/x-adapter.searchresponse.querytagging.md +1 -1
  16. package/docs/API-reference/api/x-adapter.trackableshowresponse.md +1 -1
  17. package/docs/API-reference/api/x-adapter.trackableshowresponse.showtagging.md +1 -1
  18. package/docs/API-reference/api/x-components.baseresultlink.md +0 -11
  19. package/docs/API-reference/api/x-components.basescroll.md +0 -12
  20. package/docs/API-reference/api/x-components.basesuggestion.emitevents.md +17 -0
  21. package/docs/API-reference/api/x-components.basesuggestion.feature.md +13 -0
  22. package/docs/API-reference/api/x-components.basesuggestion.md +8 -1
  23. package/docs/API-reference/api/x-components.clearpendingscrolltowire.md +13 -0
  24. package/docs/API-reference/api/x-components.defaultsessionservice._constructor_.md +21 -0
  25. package/docs/API-reference/api/x-components.defaultsessionservice.clearsessionid.md +15 -0
  26. package/docs/API-reference/api/x-components.defaultsessionservice.getsessionid.md +15 -0
  27. package/docs/API-reference/api/x-components.defaultsessionservice.instance.md +13 -0
  28. package/docs/API-reference/api/x-components.defaultsessionservice.md +37 -0
  29. package/docs/API-reference/api/x-components.defaultsessionservice.session_id_key.md +11 -0
  30. package/docs/API-reference/api/x-components.defaultsessionservice.storageservice.md +11 -0
  31. package/docs/API-reference/api/x-components.defaultsessionservice.ttlms.md +11 -0
  32. package/docs/API-reference/api/x-components.featurelocation.md +22 -0
  33. package/docs/API-reference/api/x-components.identifierresults.md +1 -0
  34. package/docs/API-reference/api/x-components.identifierresults.resultclickextraevents.md +13 -0
  35. package/docs/API-reference/api/x-components.identifierresultsactions.md +1 -1
  36. package/docs/API-reference/api/x-components.identifierresultsactions.saveorigin.md +24 -0
  37. package/docs/API-reference/api/x-components.identifierresultsmutations.md +2 -0
  38. package/docs/API-reference/api/x-components.identifierresultsmutations.setorigin.md +24 -0
  39. package/docs/API-reference/api/x-components.identifierresultsmutations.setparams.md +24 -0
  40. package/docs/API-reference/api/x-components.identifierresultsstate.md +2 -0
  41. package/docs/API-reference/api/x-components.identifierresultsstate.origin.md +13 -0
  42. package/docs/API-reference/api/x-components.identifierresultsstate.params.md +13 -0
  43. package/docs/API-reference/api/x-components.locationprovider.location.md +13 -0
  44. package/docs/API-reference/api/x-components.locationprovider.md +21 -0
  45. package/docs/API-reference/api/x-components.mainscroll.margin.md +13 -0
  46. package/docs/API-reference/api/x-components.mainscroll.md +33 -0
  47. package/docs/API-reference/api/{x-components.basemainscroll.mounted.md → x-components.mainscroll.mounted.md} +4 -2
  48. package/docs/API-reference/api/x-components.mainscroll.restorescrolltimeoutms.md +13 -0
  49. package/docs/API-reference/api/x-components.mainscroll.threshold.md +13 -0
  50. package/docs/API-reference/api/x-components.mainscroll.usewindow.md +13 -0
  51. package/docs/API-reference/api/x-components.mainscroll.visibleelementsobserver.md +13 -0
  52. package/docs/API-reference/api/x-components.mainscrollitem._el.md +13 -0
  53. package/docs/API-reference/api/x-components.mainscrollitem.item.md +13 -0
  54. package/docs/API-reference/api/x-components.mainscrollitem.md +29 -0
  55. package/docs/API-reference/api/x-components.mainscrollitem.observeitem.md +25 -0
  56. package/docs/API-reference/api/x-components.mainscrollitem.tag.md +13 -0
  57. package/docs/API-reference/api/x-components.md +44 -6
  58. package/docs/API-reference/api/{x-components.partialquerybutton.events.md → x-components.partialquerybutton.emitevents.md} +8 -4
  59. package/docs/API-reference/api/x-components.partialquerybutton.md +6 -1
  60. package/docs/API-reference/api/x-components.queryfeature.md +13 -0
  61. package/docs/API-reference/api/x-components.queryorigin.md +4 -2
  62. package/docs/API-reference/api/x-components.queryorigininit.md +15 -0
  63. package/docs/API-reference/api/x-components.relatedtag.emitevents.md +17 -0
  64. package/docs/API-reference/api/x-components.relatedtag.md +6 -0
  65. package/docs/API-reference/api/x-components.resultfeature.md +13 -0
  66. package/docs/API-reference/api/x-components.resultorigin.md +15 -0
  67. package/docs/API-reference/api/x-components.saveidentifierresultsoriginwire.md +13 -0
  68. package/docs/API-reference/api/x-components.saveorigin.md +13 -0
  69. package/docs/API-reference/api/{x-components.setorigin.md → x-components.saveoriginwire.md} +3 -3
  70. package/docs/API-reference/api/{x-components.baseidscroll.distancetobottom.md → x-components.scroll.distancetobottom.md} +2 -2
  71. package/docs/API-reference/api/{x-components.baseidscroll.id.md → x-components.scroll.id.md} +2 -2
  72. package/docs/API-reference/api/x-components.scroll.md +23 -0
  73. package/docs/API-reference/api/{x-components.baseidscroll.throttlems.md → x-components.scroll.throttlems.md} +2 -2
  74. package/docs/API-reference/api/x-components.scrollactions.md +13 -0
  75. package/docs/API-reference/api/x-components.scrollcomponentstate.direction.md +13 -0
  76. package/docs/API-reference/api/x-components.scrollcomponentstate.hasalmostreachedend.md +13 -0
  77. package/docs/API-reference/api/x-components.scrollcomponentstate.hasreachedend.md +13 -0
  78. package/docs/API-reference/api/x-components.scrollcomponentstate.hasreachedstart.md +13 -0
  79. package/docs/API-reference/api/x-components.scrollcomponentstate.md +24 -0
  80. package/docs/API-reference/api/x-components.scrollcomponentstate.position.md +13 -0
  81. package/docs/API-reference/api/x-components.scrollgetters.md +13 -0
  82. package/docs/API-reference/api/x-components.scrollmixin._el.md +13 -0
  83. package/docs/API-reference/api/x-components.scrollmixin.firstelementthresholdpx.md +13 -0
  84. package/docs/API-reference/api/x-components.scrollmixin.md +3 -0
  85. package/docs/API-reference/api/x-components.scrollmixin.resetonchange.md +13 -0
  86. package/docs/API-reference/api/x-components.scrollmutations.md +21 -0
  87. package/docs/API-reference/api/x-components.scrollmutations.setpendingscrollto.md +24 -0
  88. package/docs/API-reference/api/x-components.scrollmutations.setscrollcomponentstate.md +24 -0
  89. package/docs/API-reference/api/x-components.scrollstate.data.md +13 -0
  90. package/docs/API-reference/api/x-components.scrollstate.md +21 -0
  91. package/docs/API-reference/api/x-components.scrollstate.pendingscrollto.md +13 -0
  92. package/docs/API-reference/api/x-components.scrollstatepayload.md +21 -0
  93. package/docs/API-reference/api/x-components.scrollstatepayload.newstate.md +13 -0
  94. package/docs/API-reference/api/{x-components.basescrolltotop.animation.md → x-components.scrolltotop.animation.md} +2 -2
  95. package/docs/API-reference/api/x-components.scrolltotop.md +23 -0
  96. package/docs/API-reference/api/{x-components.basescrolltotop.scrollid.md → x-components.scrolltotop.scrollid.md} +3 -3
  97. package/docs/API-reference/api/{x-components.basescrolltotop.thresholdpx.md → x-components.scrolltotop.thresholdpx.md} +2 -2
  98. package/docs/API-reference/api/x-components.scrollvisibilityobserver.md +21 -0
  99. package/docs/API-reference/api/x-components.scrollvisibilityobserver.observe.md +24 -0
  100. package/docs/API-reference/api/x-components.scrollvisibilityobserver.unobserve.md +24 -0
  101. package/docs/API-reference/api/x-components.scrollxevents.md +27 -0
  102. package/docs/API-reference/api/x-components.scrollxevents.scrollrestorefailed.md +13 -0
  103. package/docs/API-reference/api/x-components.scrollxevents.scrollrestoresucceeded.md +13 -0
  104. package/docs/API-reference/api/x-components.scrollxevents.useralmostreachedscrollend.md +13 -0
  105. package/docs/API-reference/api/{x-components.xeventstypes.userchangedscrolldirection.md → x-components.scrollxevents.userchangedscrolldirection.md} +2 -2
  106. package/docs/API-reference/api/x-components.scrollxevents.userreachedscrollend.md +13 -0
  107. package/docs/API-reference/api/x-components.scrollxevents.userreachedscrollstart.md +13 -0
  108. package/docs/API-reference/api/{x-components.xeventstypes.userscrolled.md → x-components.scrollxevents.userscrolled.md} +2 -2
  109. package/docs/API-reference/api/x-components.scrollxevents.userscrolledtoelement.md +13 -0
  110. package/docs/API-reference/api/x-components.scrollxmodule.md +13 -0
  111. package/docs/API-reference/api/x-components.scrollxstoremodule.md +15 -0
  112. package/docs/API-reference/api/x-components.searchactions.md +1 -0
  113. package/docs/API-reference/api/x-components.searchactions.saveorigin.md +24 -0
  114. package/docs/API-reference/api/{x-components.searchbutton.events.md → x-components.searchbutton.emitevents.md} +9 -3
  115. package/docs/API-reference/api/x-components.searchbutton.md +6 -1
  116. package/docs/API-reference/api/x-components.searchmutations.md +1 -0
  117. package/docs/API-reference/api/x-components.searchmutations.setorigin.md +2 -2
  118. package/docs/API-reference/api/x-components.searchmutations.setquerytagging.md +24 -0
  119. package/docs/API-reference/api/x-components.searchstate.md +1 -0
  120. package/docs/API-reference/api/x-components.searchstate.querytagging.md +13 -0
  121. package/docs/API-reference/api/x-components.searchxevents.md +1 -0
  122. package/docs/API-reference/api/x-components.searchxevents.searchtaggingchanged.md +13 -0
  123. package/docs/API-reference/api/x-components.sessionservice.clearsessionid.md +17 -0
  124. package/docs/API-reference/api/x-components.sessionservice.getsessionid.md +23 -0
  125. package/docs/API-reference/api/x-components.sessionservice.md +21 -0
  126. package/docs/API-reference/api/x-components.setconsent.md +13 -0
  127. package/docs/API-reference/api/x-components.setidentifierresultsextraparams.md +13 -0
  128. package/docs/API-reference/api/x-components.setpendingscrolltowire.md +13 -0
  129. package/docs/API-reference/api/x-components.setquerytaggingdebounce.md +13 -0
  130. package/docs/API-reference/api/x-components.setscrolldirectionwire.md +13 -0
  131. package/docs/API-reference/api/x-components.setscrollhasalmostreachedendwire.md +13 -0
  132. package/docs/API-reference/api/x-components.setscrollhasreachedendwire.md +13 -0
  133. package/docs/API-reference/api/x-components.setscrollhasreachedstartwire.md +13 -0
  134. package/docs/API-reference/api/x-components.setscrollpositionwire.md +13 -0
  135. package/docs/API-reference/api/x-components.setsessionduration.md +13 -0
  136. package/docs/API-reference/api/x-components.seturlscroll.md +13 -0
  137. package/docs/API-reference/api/x-components.seturlsort.md +13 -0
  138. package/docs/API-reference/api/x-components.sortmixin.items.md +1 -1
  139. package/docs/API-reference/api/x-components.sortmixin.md +2 -3
  140. package/docs/API-reference/api/x-components.sortmixin.providedselectedsort.md +1 -1
  141. package/docs/API-reference/api/{x-components.spellcheckbutton.events.md → x-components.spellcheckbutton.emitevents.md} +8 -4
  142. package/docs/API-reference/api/x-components.spellcheckbutton.md +6 -1
  143. package/docs/API-reference/api/x-components.taggingactions.md +7 -0
  144. package/docs/API-reference/api/x-components.taggingactions.track.md +24 -0
  145. package/docs/API-reference/api/x-components.taggingconfig.md +8 -0
  146. package/docs/API-reference/api/x-components.taggingconfig.querytaggingdebouncems.md +13 -0
  147. package/docs/API-reference/api/x-components.taggingconfig.sessionttlms.md +13 -0
  148. package/docs/API-reference/api/x-components.taggingmutations.md +9 -0
  149. package/docs/API-reference/api/x-components.taggingmutations.setconsent.md +24 -0
  150. package/docs/API-reference/api/x-components.taggingmutations.setquerytaggingdebounce.md +24 -0
  151. package/docs/API-reference/api/x-components.taggingmutations.setsessionduration.md +24 -0
  152. package/docs/API-reference/api/x-components.taggingstate.config.md +13 -0
  153. package/docs/API-reference/api/x-components.taggingstate.consent.md +13 -0
  154. package/docs/API-reference/api/x-components.taggingstate.md +8 -0
  155. package/docs/API-reference/api/x-components.taggingxevents.consentchanged.md +13 -0
  156. package/docs/API-reference/api/x-components.taggingxevents.consentprovided.md +13 -0
  157. package/docs/API-reference/api/x-components.taggingxevents.md +10 -0
  158. package/docs/API-reference/api/x-components.taggingxevents.querytaggingdebounceprovided.md +13 -0
  159. package/docs/API-reference/api/x-components.taggingxevents.sessiondurationprovided.md +13 -0
  160. package/docs/API-reference/api/x-components.track.md +13 -0
  161. package/docs/API-reference/api/x-components.trackwire.md +13 -0
  162. package/docs/API-reference/api/x-components.urlmutations.md +2 -0
  163. package/docs/API-reference/api/x-components.urlmutations.setscroll.md +24 -0
  164. package/docs/API-reference/api/x-components.urlmutations.setsort.md +24 -0
  165. package/docs/API-reference/api/x-components.urlparams.md +1 -1
  166. package/docs/API-reference/api/x-components.urlparams.scroll.md +1 -1
  167. package/docs/API-reference/api/{x-components.basemainscroll.beforedestroy.md → x-components.windowscroll.beforedestroy.md} +4 -2
  168. package/docs/API-reference/api/{x-components.basemainscroll.id.md → x-components.windowscroll.id.md} +2 -2
  169. package/docs/API-reference/api/x-components.windowscroll.md +30 -0
  170. package/docs/API-reference/api/{x-components.basescroll.mounted.md → x-components.windowscroll.mounted.md} +2 -2
  171. package/docs/API-reference/api/{x-components.basemainscroll.render.md → x-components.windowscroll.render.md} +2 -2
  172. package/docs/API-reference/api/x-components.windowscroll.scrollableelement.md +13 -0
  173. package/docs/API-reference/api/x-components.wiremetadata.feature.md +13 -0
  174. package/docs/API-reference/api/x-components.wiremetadata.location.md +13 -0
  175. package/docs/API-reference/api/x-components.wiremetadata.md +2 -1
  176. package/docs/API-reference/api/x-components.xcomponentbusapi.emit_1.md +2 -2
  177. package/docs/API-reference/api/x-components.xeventstypes.md +3 -8
  178. package/docs/API-reference/api/x-components.xmodulestree.md +1 -0
  179. package/docs/API-reference/api/x-components.xmodulestree.scroll.md +11 -0
  180. package/docs/API-reference/api/x-types.banner.md +2 -3
  181. package/docs/API-reference/api/x-types.identifiable.id.md +1 -1
  182. package/docs/API-reference/api/x-types.identifiable.md +2 -2
  183. package/docs/API-reference/api/x-types.md +5 -2
  184. package/docs/API-reference/api/x-types.promoted.md +2 -3
  185. package/docs/API-reference/api/x-types.redirection.md +2 -3
  186. package/docs/API-reference/api/x-types.result.md +2 -3
  187. package/docs/API-reference/api/x-types.taggable.md +20 -0
  188. package/docs/API-reference/api/x-types.taggable.tagging.md +13 -0
  189. package/docs/API-reference/api/{x-types.banner.tagging.md → x-types.taggableschema.md} +4 -6
  190. package/docs/API-reference/api/x-types.tagging.add2cart.md +13 -0
  191. package/docs/API-reference/api/x-types.tagging.checkout.md +13 -0
  192. package/docs/API-reference/api/{x-types.promoted.tagging.md → x-types.tagging.click.md} +4 -6
  193. package/docs/API-reference/api/x-types.tagging.md +6 -3
  194. package/docs/API-reference/api/x-types.tagging.query.md +13 -0
  195. package/docs/API-reference/api/x-types.tagging.wishlist.md +13 -0
  196. package/docs/API-reference/api/x-types.tagginginfo.md +21 -0
  197. package/docs/API-reference/api/{x-types.tagging.params.md → x-types.tagginginfo.params.md} +3 -3
  198. package/docs/API-reference/api/{x-types.tagging.url.md → x-types.tagginginfo.url.md} +2 -2
  199. package/docs/API-reference/api/x-types.tagginginfoschema.md +13 -0
  200. package/docs/API-reference/components/common/result/x-components.base-result-link.md +2 -3
  201. package/docs/API-reference/components/common/scroll/x-components.base-scroll.md +9 -9
  202. package/docs/API-reference/components/common/suggestions/x-components.base-suggestion.md +9 -8
  203. package/docs/API-reference/components/common/x-components.location-provider.md +54 -0
  204. package/docs/API-reference/components/facets/x-components.lists/sliced-filters.md +10 -6
  205. package/docs/API-reference/components/scroll/x-components.main-scroll-item.md +84 -0
  206. package/docs/API-reference/components/scroll/x-components.main-scroll.md +175 -0
  207. package/docs/API-reference/components/{common/scroll/x-components.base-scroll-to-top.md → scroll/x-components.scroll-to-top.md} +11 -14
  208. package/docs/API-reference/components/scroll/x-components.scroll.md +168 -0
  209. package/docs/API-reference/components/scroll/x-components.window-scroll.md +158 -0
  210. package/docs/API-reference/components/search/x-components.sort-dropdown.md +4 -5
  211. package/docs/API-reference/components/search/x-components.sort-list.md +4 -5
  212. package/docs/API-reference/components/tagging/x-components.tagging.md +84 -0
  213. package/docs/build-search-ui/README.md +113 -0
  214. package/docs/build-search-ui/web-archetype-integration-guide.md +183 -0
  215. package/docs/build-search-ui/web-use-x-components-guide.md +170 -0
  216. package/docs/build-search-ui/web-x-components-integration-guide.md +197 -0
  217. package/docs/build-search-ui/x-architecture/README.md +133 -0
  218. package/docs/sidebar.json +1 -1
  219. package/identifier-results/index.js +2 -1
  220. package/js/components/layouts/multi-column-max-width-layout.vue.js +41 -34
  221. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  222. package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js +3 -2
  223. package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js.map +1 -1
  224. package/js/components/layouts/single-column-layout.vue.js +20 -14
  225. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  226. package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js +3 -2
  227. package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js.map +1 -1
  228. package/js/components/location-provider.vue.js +39 -0
  229. package/js/components/location-provider.vue.js.map +1 -0
  230. package/js/components/location-provider.vue_rollup-plugin-vue=script.js +27 -0
  231. package/js/components/location-provider.vue_rollup-plugin-vue=script.js.map +1 -0
  232. package/js/components/result/base-result-link.vue.js +2 -2
  233. package/js/components/result/base-result-link.vue.js.map +1 -1
  234. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js +5 -14
  235. package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js.map +1 -1
  236. package/js/components/scroll/base-scroll.vue.js +2 -2
  237. package/js/components/scroll/base-scroll.vue.js.map +1 -1
  238. package/js/components/scroll/base-scroll.vue_rollup-plugin-vue=script.js +2 -49
  239. package/js/components/scroll/base-scroll.vue_rollup-plugin-vue=script.js.map +1 -1
  240. package/js/components/scroll/scroll.mixin.js +122 -52
  241. package/js/components/scroll/scroll.mixin.js.map +1 -1
  242. package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js +1 -0
  243. package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +1 -1
  244. package/js/components/suggestions/base-suggestion.vue.js +2 -2
  245. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  246. package/js/components/suggestions/base-suggestion.vue_rollup-plugin-vue=script.js +21 -6
  247. package/js/components/suggestions/base-suggestion.vue_rollup-plugin-vue=script.js.map +1 -1
  248. package/js/components/x-component.utils.js +2 -2
  249. package/js/components/x-component.utils.js.map +1 -1
  250. package/js/index.js +24 -12
  251. package/js/index.js.map +1 -1
  252. package/js/plugins/x-plugin.js +1 -0
  253. package/js/plugins/x-plugin.js.map +1 -1
  254. package/js/plugins/x-plugin.mixin.js +16 -6
  255. package/js/plugins/x-plugin.mixin.js.map +1 -1
  256. package/js/store/x.module.js +7 -6
  257. package/js/store/x.module.js.map +1 -1
  258. package/js/utils/origin.js +20 -0
  259. package/js/utils/origin.js.map +1 -0
  260. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js +4 -6
  261. package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  262. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js +4 -6
  263. package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js.map +1 -1
  264. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js +5 -6
  265. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
  266. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js +4 -6
  267. package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  268. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js +4 -6
  269. package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js.map +1 -1
  270. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js +4 -6
  271. package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  272. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js +4 -6
  273. package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  274. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js +4 -6
  275. package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  276. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js +4 -6
  277. package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  278. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js +4 -6
  279. package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  280. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js +4 -6
  281. package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js.map +1 -1
  282. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js +4 -6
  283. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js.map +1 -1
  284. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js +4 -6
  285. package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js.map +1 -1
  286. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js +4 -6
  287. package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js.map +1 -1
  288. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js +4 -6
  289. package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  290. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  291. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js +4 -6
  292. package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  293. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js +5 -6
  294. package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js.map +1 -1
  295. package/js/x-modules/facets/service/facets.service.js +1 -0
  296. package/js/x-modules/facets/service/facets.service.js.map +1 -1
  297. package/js/x-modules/history-queries/components/history-query.vue.js +1 -1
  298. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  299. package/js/x-modules/history-queries/components/history-query.vue_rollup-plugin-vue=script.js.map +1 -1
  300. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  301. package/js/x-modules/identifier-results/components/identifier-results.vue_rollup-plugin-vue=script.js +14 -2
  302. package/js/x-modules/identifier-results/components/identifier-results.vue_rollup-plugin-vue=script.js.map +1 -1
  303. package/js/x-modules/identifier-results/store/actions/save-origin.action.js +18 -0
  304. package/js/x-modules/identifier-results/store/actions/save-origin.action.js.map +1 -0
  305. package/js/x-modules/identifier-results/store/actions/save-query.action.js +4 -0
  306. package/js/x-modules/identifier-results/store/actions/save-query.action.js.map +1 -1
  307. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js +5 -8
  308. package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js.map +1 -1
  309. package/js/x-modules/identifier-results/store/module.js +16 -7
  310. package/js/x-modules/identifier-results/store/module.js.map +1 -1
  311. package/js/x-modules/identifier-results/wiring.js +25 -3
  312. package/js/x-modules/identifier-results/wiring.js.map +1 -1
  313. package/js/x-modules/next-queries/components/next-queries-list.vue_rollup-plugin-vue=script.js +1 -1
  314. package/js/x-modules/next-queries/components/next-query.vue.js +2 -1
  315. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  316. package/js/x-modules/next-queries/components/next-query.vue_rollup-plugin-vue=script.js.map +1 -1
  317. package/js/x-modules/popular-searches/components/popular-search.vue.js +2 -1
  318. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  319. package/js/x-modules/popular-searches/components/popular-search.vue_rollup-plugin-vue=script.js.map +1 -1
  320. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +2 -1
  321. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  322. package/js/x-modules/query-suggestions/components/query-suggestion.vue_rollup-plugin-vue=script.js.map +1 -1
  323. package/js/x-modules/related-tags/components/related-tag.vue.js +5 -4
  324. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  325. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js +23 -24
  326. package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js.map +1 -1
  327. package/js/x-modules/scroll/components/main-scroll-item.vue.js +52 -0
  328. package/js/x-modules/scroll/components/main-scroll-item.vue.js.map +1 -0
  329. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js +188 -0
  330. package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js.map +1 -0
  331. package/js/{components/scroll/base-main-scroll.vue.js → x-modules/scroll/components/main-scroll.vue.js} +2 -2
  332. package/js/x-modules/scroll/components/main-scroll.vue.js.map +1 -0
  333. package/js/x-modules/scroll/components/main-scroll.vue_rollup-plugin-vue=script.js +204 -0
  334. package/js/x-modules/scroll/components/main-scroll.vue_rollup-plugin-vue=script.js.map +1 -0
  335. package/js/{components/scroll/base-scroll-to-top.vue.js → x-modules/scroll/components/scroll-to-top.vue.js} +2 -2
  336. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -0
  337. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js +231 -0
  338. package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js.map +1 -0
  339. package/js/x-modules/scroll/components/scroll.const.js +15 -0
  340. package/js/x-modules/scroll/components/scroll.const.js.map +1 -0
  341. package/js/{components/scroll/base-id-scroll.vue.js → x-modules/scroll/components/scroll.vue.js} +8 -9
  342. package/js/x-modules/scroll/components/scroll.vue.js.map +1 -0
  343. package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js +110 -0
  344. package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js.map +1 -0
  345. package/js/x-modules/scroll/components/window-scroll.vue.js +39 -0
  346. package/js/x-modules/scroll/components/window-scroll.vue.js.map +1 -0
  347. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js +186 -0
  348. package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js.map +1 -0
  349. package/js/x-modules/scroll/store/emitters.js +15 -0
  350. package/js/x-modules/scroll/store/emitters.js.map +1 -0
  351. package/js/x-modules/scroll/store/module.js +36 -0
  352. package/js/x-modules/scroll/store/module.js.map +1 -0
  353. package/js/x-modules/scroll/wiring.js +114 -0
  354. package/js/x-modules/scroll/wiring.js.map +1 -0
  355. package/js/x-modules/scroll/x-module.js +19 -0
  356. package/js/x-modules/scroll/x-module.js.map +1 -0
  357. package/js/x-modules/search/components/banners-list.vue_rollup-plugin-vue=script.js +1 -1
  358. package/js/x-modules/search/components/partial-query-button.vue.js +3 -2
  359. package/js/x-modules/search/components/partial-query-button.vue.js.map +1 -1
  360. package/js/x-modules/search/components/partial-query-button.vue_rollup-plugin-vue=script.js +21 -123
  361. package/js/x-modules/search/components/partial-query-button.vue_rollup-plugin-vue=script.js.map +1 -1
  362. package/js/x-modules/search/components/promoteds-list.vue_rollup-plugin-vue=script.js +1 -1
  363. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js +4 -6
  364. package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js.map +1 -1
  365. package/js/x-modules/search/components/sort.mixin.js +6 -12
  366. package/js/x-modules/search/components/sort.mixin.js.map +1 -1
  367. package/js/x-modules/search/components/spellcheck-button.vue.js +3 -2
  368. package/js/x-modules/search/components/spellcheck-button.vue.js.map +1 -1
  369. package/js/x-modules/search/components/spellcheck-button.vue_rollup-plugin-vue=script.js +21 -122
  370. package/js/x-modules/search/components/spellcheck-button.vue_rollup-plugin-vue=script.js.map +1 -1
  371. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js +4 -6
  372. package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js.map +1 -1
  373. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +2 -1
  374. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  375. package/js/x-modules/search/store/actions/save-origin.action.js +18 -0
  376. package/js/x-modules/search/store/actions/save-origin.action.js.map +1 -0
  377. package/js/x-modules/search/store/actions/set-url-params.action.js +2 -1
  378. package/js/x-modules/search/store/actions/set-url-params.action.js.map +1 -1
  379. package/js/x-modules/search/store/emitters.js +8 -0
  380. package/js/x-modules/search/store/emitters.js.map +1 -1
  381. package/js/x-modules/search/store/module.js +13 -3
  382. package/js/x-modules/search/store/module.js.map +1 -1
  383. package/js/x-modules/search/wiring.js +5 -5
  384. package/js/x-modules/search/wiring.js.map +1 -1
  385. package/js/x-modules/search-box/components/search-button.vue.js +3 -2
  386. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  387. package/js/x-modules/search-box/components/search-button.vue_rollup-plugin-vue=script.js +24 -15
  388. package/js/x-modules/search-box/components/search-button.vue_rollup-plugin-vue=script.js.map +1 -1
  389. package/js/x-modules/search-box/components/search-input.vue.js +3 -2
  390. package/js/x-modules/search-box/components/search-input.vue.js.map +1 -1
  391. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js +10 -9
  392. package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js.map +1 -1
  393. package/js/x-modules/tagging/service/session.service.js +35 -0
  394. package/js/x-modules/tagging/service/session.service.js.map +1 -0
  395. package/js/x-modules/tagging/store/actions/track.action.js +43 -0
  396. package/js/x-modules/tagging/store/actions/track.action.js.map +1 -0
  397. package/js/x-modules/tagging/store/emitters.js +3 -1
  398. package/js/x-modules/tagging/store/emitters.js.map +1 -1
  399. package/js/x-modules/tagging/store/module.js +21 -3
  400. package/js/x-modules/tagging/store/module.js.map +1 -1
  401. package/js/x-modules/tagging/wiring.js +83 -2
  402. package/js/x-modules/tagging/wiring.js.map +1 -1
  403. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  404. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js +2 -2
  405. package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js.map +1 -1
  406. package/js/x-modules/url/store/initial-state.js +1 -1
  407. package/js/x-modules/url/store/initial-state.js.map +1 -1
  408. package/js/x-modules/url/store/module.js +6 -0
  409. package/js/x-modules/url/store/module.js.map +1 -1
  410. package/js/x-modules/url/wiring.js +19 -1
  411. package/js/x-modules/url/wiring.js.map +1 -1
  412. package/package.json +6 -4
  413. package/report/x-adapter.api.json +18 -18
  414. package/report/x-components.api.json +4652 -1770
  415. package/report/x-components.api.md +421 -133
  416. package/report/x-types.api.json +396 -310
  417. package/scroll/index.d.ts +1 -0
  418. package/scroll/index.js +10 -0
  419. package/search/index.js +1 -1
  420. package/tagging/index.js +3 -1
  421. package/types/adapter/mocked-adapter.d.ts.map +1 -1
  422. package/types/components/index.d.ts +1 -0
  423. package/types/components/index.d.ts.map +1 -1
  424. package/types/components/layouts/multi-column-max-width-layout.vue.d.ts.map +1 -1
  425. package/types/components/layouts/single-column-layout.vue.d.ts.map +1 -1
  426. package/types/components/location-provider.vue.d.ts +17 -0
  427. package/types/components/location-provider.vue.d.ts.map +1 -0
  428. package/types/components/result/base-result-link.vue.d.ts +8 -18
  429. package/types/components/result/base-result-link.vue.d.ts.map +1 -1
  430. package/types/components/scroll/base-scroll.vue.d.ts +0 -28
  431. package/types/components/scroll/base-scroll.vue.d.ts.map +1 -1
  432. package/types/components/scroll/index.d.ts +0 -3
  433. package/types/components/scroll/index.d.ts.map +1 -1
  434. package/types/components/scroll/scroll.mixin.d.ts +75 -30
  435. package/types/components/scroll/scroll.mixin.d.ts.map +1 -1
  436. package/types/components/suggestions/base-suggestion.vue.d.ts +15 -2
  437. package/types/components/suggestions/base-suggestion.vue.d.ts.map +1 -1
  438. package/types/components/x-component.utils.d.ts +1 -1
  439. package/types/components/x-component.utils.d.ts.map +1 -1
  440. package/types/index.d.ts +1 -0
  441. package/types/index.d.ts.map +1 -1
  442. package/types/plugins/x-plugin.mixin.d.ts +2 -2
  443. package/types/plugins/x-plugin.mixin.d.ts.map +1 -1
  444. package/types/plugins/x-plugin.types.d.ts +1 -1
  445. package/types/plugins/x-plugin.types.d.ts.map +1 -1
  446. package/types/router.d.ts.map +1 -1
  447. package/types/store/x.module.d.ts.map +1 -1
  448. package/types/types/index.d.ts +1 -1
  449. package/types/types/index.d.ts.map +1 -1
  450. package/types/types/origin.d.ts +46 -0
  451. package/types/types/origin.d.ts.map +1 -0
  452. package/types/types/url-params.d.ts +1 -1
  453. package/types/utils/index.d.ts +1 -0
  454. package/types/utils/index.d.ts.map +1 -1
  455. package/types/utils/origin.d.ts +13 -0
  456. package/types/utils/origin.d.ts.map +1 -0
  457. package/types/wiring/events.types.d.ts +18 -40
  458. package/types/wiring/events.types.d.ts.map +1 -1
  459. package/types/wiring/wiring.types.d.ts +9 -10
  460. package/types/wiring/wiring.types.d.ts.map +1 -1
  461. package/types/x-modules/history-queries/components/history-query.vue.d.ts.map +1 -1
  462. package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts +8 -0
  463. package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts.map +1 -1
  464. package/types/x-modules/identifier-results/store/actions/{set-url-params.action.d.ts → save-origin.action.d.ts} +4 -4
  465. package/types/x-modules/identifier-results/store/actions/save-origin.action.d.ts.map +1 -0
  466. package/types/x-modules/identifier-results/store/actions/save-query.action.d.ts.map +1 -1
  467. package/types/x-modules/identifier-results/store/getters/identifier-results-request.getter.d.ts.map +1 -1
  468. package/types/x-modules/identifier-results/store/index.d.ts +1 -0
  469. package/types/x-modules/identifier-results/store/index.d.ts.map +1 -1
  470. package/types/x-modules/identifier-results/store/module.d.ts.map +1 -1
  471. package/types/x-modules/identifier-results/store/types.d.ts +35 -17
  472. package/types/x-modules/identifier-results/store/types.d.ts.map +1 -1
  473. package/types/x-modules/identifier-results/wiring.d.ts +17 -1
  474. package/types/x-modules/identifier-results/wiring.d.ts.map +1 -1
  475. package/types/x-modules/next-queries/components/next-query.vue.d.ts.map +1 -1
  476. package/types/x-modules/popular-searches/components/popular-search.vue.d.ts.map +1 -1
  477. package/types/x-modules/query-suggestions/components/query-suggestion.vue.d.ts.map +1 -1
  478. package/types/x-modules/related-tags/components/related-tag.vue.d.ts +10 -5
  479. package/types/x-modules/related-tags/components/related-tag.vue.d.ts.map +1 -1
  480. package/types/x-modules/scroll/components/index.d.ts +8 -0
  481. package/types/x-modules/scroll/components/index.d.ts.map +1 -0
  482. package/types/x-modules/scroll/components/main-scroll-item.vue.d.ts +65 -0
  483. package/types/x-modules/scroll/components/main-scroll-item.vue.d.ts.map +1 -0
  484. package/types/x-modules/scroll/components/main-scroll.vue.d.ts +121 -0
  485. package/types/x-modules/scroll/components/main-scroll.vue.d.ts.map +1 -0
  486. package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts +80 -0
  487. package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts.map +1 -0
  488. package/types/x-modules/scroll/components/scroll.const.d.ts +15 -0
  489. package/types/x-modules/scroll/components/scroll.const.d.ts.map +1 -0
  490. package/types/x-modules/scroll/components/scroll.types.d.ts +20 -0
  491. package/types/x-modules/scroll/components/scroll.types.d.ts.map +1 -0
  492. package/types/{components/scroll/base-id-scroll.vue.d.ts → x-modules/scroll/components/scroll.vue.d.ts} +17 -30
  493. package/types/x-modules/scroll/components/scroll.vue.d.ts.map +1 -0
  494. package/types/x-modules/scroll/components/window-scroll.vue.d.ts +47 -0
  495. package/types/x-modules/scroll/components/window-scroll.vue.d.ts.map +1 -0
  496. package/types/x-modules/scroll/events.types.d.ts +53 -0
  497. package/types/x-modules/scroll/events.types.d.ts.map +1 -0
  498. package/types/x-modules/scroll/index.d.ts +6 -0
  499. package/types/x-modules/scroll/index.d.ts.map +1 -0
  500. package/types/x-modules/scroll/store/emitters.d.ts +7 -0
  501. package/types/x-modules/scroll/store/emitters.d.ts.map +1 -0
  502. package/types/x-modules/scroll/store/index.d.ts +4 -0
  503. package/types/x-modules/scroll/store/index.d.ts.map +1 -0
  504. package/types/x-modules/scroll/store/module.d.ts +8 -0
  505. package/types/x-modules/scroll/store/module.d.ts.map +1 -0
  506. package/types/x-modules/scroll/store/types.d.ts +98 -0
  507. package/types/x-modules/scroll/store/types.d.ts.map +1 -0
  508. package/types/x-modules/scroll/wiring.d.ts +74 -0
  509. package/types/x-modules/scroll/wiring.d.ts.map +1 -0
  510. package/types/x-modules/scroll/x-module.d.ts +16 -0
  511. package/types/x-modules/scroll/x-module.d.ts.map +1 -0
  512. package/types/x-modules/search/components/partial-query-button.vue.d.ts +9 -4
  513. package/types/x-modules/search/components/partial-query-button.vue.d.ts.map +1 -1
  514. package/types/x-modules/search/components/sort.mixin.d.ts +3 -11
  515. package/types/x-modules/search/components/sort.mixin.d.ts.map +1 -1
  516. package/types/x-modules/search/components/spellcheck-button.vue.d.ts +9 -4
  517. package/types/x-modules/search/components/spellcheck-button.vue.d.ts.map +1 -1
  518. package/types/x-modules/search/events.types.d.ts +6 -1
  519. package/types/x-modules/search/events.types.d.ts.map +1 -1
  520. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  521. package/types/x-modules/search/store/actions/save-origin.action.d.ts +12 -0
  522. package/types/x-modules/search/store/actions/save-origin.action.d.ts.map +1 -0
  523. package/types/x-modules/search/store/actions/set-url-params.action.d.ts.map +1 -1
  524. package/types/x-modules/search/store/emitters.d.ts +4 -0
  525. package/types/x-modules/search/store/emitters.d.ts.map +1 -1
  526. package/types/x-modules/search/store/module.d.ts.map +1 -1
  527. package/types/x-modules/search/store/types.d.ts +17 -3
  528. package/types/x-modules/search/store/types.d.ts.map +1 -1
  529. package/types/x-modules/search/wiring.d.ts +3 -3
  530. package/types/x-modules/search/wiring.d.ts.map +1 -1
  531. package/types/x-modules/search-box/components/search-button.vue.d.ts +14 -2
  532. package/types/x-modules/search-box/components/search-button.vue.d.ts.map +1 -1
  533. package/types/x-modules/search-box/components/search-input.vue.d.ts +1 -1
  534. package/types/x-modules/search-box/components/search-input.vue.d.ts.map +1 -1
  535. package/types/x-modules/tagging/components/index.d.ts +2 -0
  536. package/types/x-modules/tagging/components/index.d.ts.map +1 -0
  537. package/types/x-modules/tagging/config.types.d.ts +9 -0
  538. package/types/x-modules/tagging/config.types.d.ts.map +1 -1
  539. package/types/x-modules/tagging/events.types.d.ts +20 -0
  540. package/types/x-modules/tagging/events.types.d.ts.map +1 -1
  541. package/types/x-modules/tagging/index.d.ts +1 -0
  542. package/types/x-modules/tagging/index.d.ts.map +1 -1
  543. package/types/x-modules/tagging/service/index.d.ts +3 -0
  544. package/types/x-modules/tagging/service/index.d.ts.map +1 -0
  545. package/types/x-modules/tagging/service/session.service.d.ts +20 -0
  546. package/types/x-modules/tagging/service/session.service.d.ts.map +1 -0
  547. package/types/x-modules/tagging/service/types.d.ts +21 -0
  548. package/types/x-modules/tagging/service/types.d.ts.map +1 -0
  549. package/types/x-modules/tagging/store/actions/index.d.ts +2 -0
  550. package/types/x-modules/tagging/store/actions/index.d.ts.map +1 -0
  551. package/types/x-modules/tagging/store/actions/track.action.d.ts +12 -0
  552. package/types/x-modules/tagging/store/actions/track.action.d.ts.map +1 -0
  553. package/types/x-modules/tagging/store/emitters.d.ts +3 -1
  554. package/types/x-modules/tagging/store/emitters.d.ts.map +1 -1
  555. package/types/x-modules/tagging/store/index.d.ts +1 -0
  556. package/types/x-modules/tagging/store/index.d.ts.map +1 -1
  557. package/types/x-modules/tagging/store/module.d.ts.map +1 -1
  558. package/types/x-modules/tagging/store/types.d.ts +34 -0
  559. package/types/x-modules/tagging/store/types.d.ts.map +1 -1
  560. package/types/x-modules/tagging/wiring.d.ts +42 -1
  561. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  562. package/types/x-modules/url/store/module.d.ts.map +1 -1
  563. package/types/x-modules/url/store/types.d.ts +12 -0
  564. package/types/x-modules/url/store/types.d.ts.map +1 -1
  565. package/types/x-modules/url/wiring.d.ts +18 -0
  566. package/types/x-modules/url/wiring.d.ts.map +1 -1
  567. package/types/x-modules/x-modules.types.d.ts +3 -1
  568. package/types/x-modules/x-modules.types.d.ts.map +1 -1
  569. package/url/index.js +1 -1
  570. package/docs/API-reference/api/x-components.baseidscroll.md +0 -24
  571. package/docs/API-reference/api/x-components.baseidscroll.resetonquerychange.md +0 -13
  572. package/docs/API-reference/api/x-components.basemainscroll.element.md +0 -13
  573. package/docs/API-reference/api/x-components.basemainscroll.md +0 -31
  574. package/docs/API-reference/api/x-components.basemainscroll.tag.md +0 -13
  575. package/docs/API-reference/api/x-components.baseresultlink.emituserclickedaresult.md +0 -17
  576. package/docs/API-reference/api/x-components.baseresultlink.emituserrightclickedaresult.md +0 -17
  577. package/docs/API-reference/api/x-components.baseresultlink.metadata.md +0 -13
  578. package/docs/API-reference/api/x-components.baseresultlink.mounted.md +0 -15
  579. package/docs/API-reference/api/x-components.baseresultlink.origin.md +0 -13
  580. package/docs/API-reference/api/x-components.baseresultlink.resultclickextraevents.md +0 -13
  581. package/docs/API-reference/api/x-components.basescroll.resetonquerychange.md +0 -13
  582. package/docs/API-reference/api/x-components.basescrolltotop.md +0 -23
  583. package/docs/API-reference/api/x-components.identifierresultsactions.seturlparams.md +0 -24
  584. package/docs/API-reference/api/x-components.sortmixin.value.md +0 -13
  585. package/docs/API-reference/api/x-components.wiremetadata.origin.md +0 -13
  586. package/docs/API-reference/api/x-components.xeventstypes.useralmostreachedscrollend.md +0 -13
  587. package/docs/API-reference/api/x-components.xeventstypes.userreachedscrollend.md +0 -13
  588. package/docs/API-reference/api/x-components.xeventstypes.userreachedscrollstart.md +0 -13
  589. package/docs/API-reference/api/x-types.redirection.tagging.md +0 -15
  590. package/docs/API-reference/api/x-types.result.tagging.md +0 -13
  591. package/docs/API-reference/api/x-types.resulttagging.add2cart.md +0 -13
  592. package/docs/API-reference/api/x-types.resulttagging.checkout.md +0 -13
  593. package/docs/API-reference/api/x-types.resulttagging.click.md +0 -13
  594. package/docs/API-reference/api/x-types.resulttagging.md +0 -22
  595. package/docs/API-reference/components/common/scroll/x-components.base-id-scroll.md +0 -216
  596. package/docs/API-reference/components/common/scroll/x-components.base-main-scroll.md +0 -170
  597. package/docs/css/global.scss +0 -1
  598. package/docs/css/utils/utils.scss +0 -35
  599. package/docs/css/xcomponents/clear-search-input.scss +0 -9
  600. package/docs/css/xcomponents/index.scss +0 -16
  601. package/docs/css/xcomponents/search-input.scss +0 -10
  602. package/docs/css/xcomponents/suggestions.scss +0 -19
  603. package/docs/guide/getting-started/components/clear-search-input.md +0 -98
  604. package/docs/guide/getting-started/components/live-examples.md +0 -100
  605. package/docs/guide/getting-started/components/query-suggestions.md +0 -76
  606. package/docs/guide/getting-started/components/search-button.md +0 -98
  607. package/docs/guide/getting-started/components/search-input.md +0 -105
  608. package/docs/guide/getting-started/install-xplugin.md +0 -72
  609. package/docs/guide/getting-started/use-components.md +0 -75
  610. package/docs/guide/install.md +0 -30
  611. package/docs/react-components/ReactComponents.jsx +0 -46
  612. package/docs/react-components/Utils.jsx +0 -34
  613. package/js/components/scroll/base-id-scroll.vue.js.map +0 -1
  614. package/js/components/scroll/base-id-scroll.vue_rollup-plugin-vue=script.js +0 -110
  615. package/js/components/scroll/base-id-scroll.vue_rollup-plugin-vue=script.js.map +0 -1
  616. package/js/components/scroll/base-main-scroll.vue.js.map +0 -1
  617. package/js/components/scroll/base-main-scroll.vue_rollup-plugin-vue=script.js +0 -105
  618. package/js/components/scroll/base-main-scroll.vue_rollup-plugin-vue=script.js.map +0 -1
  619. package/js/components/scroll/base-scroll-to-top.vue.js.map +0 -1
  620. package/js/components/scroll/base-scroll-to-top.vue_rollup-plugin-vue=script.js +0 -179
  621. package/js/components/scroll/base-scroll-to-top.vue_rollup-plugin-vue=script.js.map +0 -1
  622. package/js/x-modules/identifier-results/store/actions/set-url-params.action.js +0 -17
  623. package/js/x-modules/identifier-results/store/actions/set-url-params.action.js.map +0 -1
  624. package/types/components/scroll/base-id-scroll.vue.d.ts.map +0 -1
  625. package/types/components/scroll/base-main-scroll.vue.d.ts +0 -78
  626. package/types/components/scroll/base-main-scroll.vue.d.ts.map +0 -1
  627. package/types/components/scroll/base-scroll-to-top.vue.d.ts +0 -119
  628. package/types/components/scroll/base-scroll-to-top.vue.d.ts.map +0 -1
  629. package/types/types/query-origin.d.ts +0 -7
  630. package/types/types/query-origin.d.ts.map +0 -1
  631. package/types/x-modules/identifier-results/store/actions/set-url-params.action.d.ts.map +0 -1
@@ -0,0 +1,183 @@
1
+ ---
2
+ id: x-components.web-archetype-integration-guide
3
+ title: Web Archetype Integration Guide
4
+ sidebar_label: Web Archetype Integration Guide
5
+ ---
6
+ ---
7
+ title: Integrate Interface X Archetype
8
+ tags:
9
+ - integration
10
+ - archetype
11
+ - X Components archetype integration
12
+ - x integration
13
+ - interface x
14
+ - x components
15
+ - archetype integration
16
+ ---
17
+
18
+ # Integrate Interface X Archetype
19
+
20
+ In this tutorial, you’ll learn how to integrate the Interface X Archetype project in your
21
+ store in a matter of minutes so you can develop a search interface layer based on predefined
22
+ features and components.
23
+
24
+ For this tutorial, the Empathy Search API is used, but you can use any search API. This guide
25
+ requires knowledge of JavaScript and Vue.js.
26
+
27
+ ::: note Before you begin
28
+
29
+ To integrate Interface X Archetype as a search UI layer, you need:
30
+
31
+ - **Empathy Search API** (or any search API that you use to retrieve search data).
32
+ - **Empathy Search Adapter** to communicate with the Empathy Search API (or any search adapter to
33
+ connect with the search API you are using).
34
+
35
+ :::
36
+
37
+ ##### Steps to integrate X Archetype project:
38
+
39
+ 1. **Clone** the X Archetype project and **initialize** your repository.
40
+ 2. Install the **project dependencies** and execute the project.
41
+ 3. Configure the **search adapter**.
42
+ 4. Configure the **xPlugin**.
43
+
44
+ ## 1. Clone the project and initialize your repository
45
+
46
+ Clone the [X Archetype project](https://github.com/empathyco/x-archetype.git) from the GitHub
47
+ repository to your target folder. You need a non-initialized repository, so make sure you remove the
48
+ git folder from the cloned project.
49
+
50
+ ```batch
51
+ // Clone the X Archetype project from GitHub
52
+ git clone --depth 1 https://github.com/empathyco/x-archetype.git <your-target-folder>
53
+
54
+ // Remove the git folder
55
+ rm -rf .git
56
+ ```
57
+
58
+ ::: develop
59
+
60
+ You can use [Degit](https://github.com/Rich-Harris/degit) to clone the git repository without
61
+ downloading the entire git history:
62
+ `npx degit https://github.com/empathyco/x-archetype.git <your-target-folder>`.
63
+
64
+ :::
65
+
66
+ Once you have cloned the project and removed the git history from the project, initialize the
67
+ repository from the root directory.
68
+
69
+ ```batch
70
+ // Initialize the repository
71
+ git init
72
+ git remote add origin <your-repository-url>
73
+ git add .
74
+ git commit -m "Initial X-Components Setup"
75
+ git push -u origin main
76
+ ```
77
+
78
+ Then, replace the current repository name (`@empathyco/x-archetype`) with the name of your
79
+ repository in the `package.json` file.
80
+
81
+ ```json
82
+ // Define your repository
83
+ {
84
+ "name": "<your-repo>",
85
+ "author": "Empathy Systems Corporation S.L.",
86
+
87
+ }
88
+
89
+ ```
90
+
91
+ ## 2. Install the dependencies and execute the project
92
+
93
+ Install the project dependencies via `npm` in the root folder of your cloned repository. Then, you
94
+ can run the project.
95
+
96
+ ```batch
97
+ // Install the dependencies via npm
98
+ npm install
99
+
100
+ // Execute the project
101
+ npm run serve
102
+ ```
103
+
104
+ ::: interact
105
+ For a full list of the project dependencies, check the
106
+ [`package.json`](https://github.com/empathyco/x-archetype/blob/main/package.json) file in the
107
+ Interface&nbsp;X&nbsp;Archetype repository. :::
108
+
109
+ ## 3. Configure the search adapter
110
+
111
+ Before using your project, configure the Empathy Search Adapter in the
112
+ `x-archetype/src/adapter/adapter.ts` file, using the Empathy Adapter Builder to make it work with
113
+ the Empathy Search API. The Empathy Search Adapter contains a sample configuration for setup, global
114
+ configurations, or mappers that points to a demo environment. You need to make some adjustments in
115
+ the configuration according to the search features you use in your project.
116
+
117
+ Export the required search adapter with your configuration as you will need it for the search
118
+ [xPlugin configuration](web-archetype-integration-guide.md#_4-configure-the-plugin).
119
+
120
+ ::: interact For detailed information about other configuration options in the Empathy Search
121
+ Adapter, go to the
122
+ [x-adapter repository](https://github.com/empathyco/x/tree/main/packages/search-adapter). :::
123
+
124
+ ::: note Although you configure the values for the `instance`, `language`, `scope`, and `endpoint`
125
+ options when integrating the project, you can still change these values when the project is
126
+ deployed. Use the `/x-archetype/public/snippet-script.js` file to perform hot changes for `lang`,
127
+ `store`, `device`, and `catalog` parameters.
128
+
129
+ For example, you may configure the adapter to use EN as `lang` so that when you search, the results
130
+ are displayed in English. However, if you want to deploy the application in Spain, you want the
131
+ `lang` to be ES. You change these values in the `snippet-script.js` file.
132
+
133
+ :::
134
+
135
+ ## 4. Configure the plugin
136
+
137
+ The `xPlugin` initializes the properties needed by the X&nbsp;Components. It has key options that
138
+ you can configure in the `/x-archetype/src/x-components/plugin.options.ts` file.
139
+
140
+ Since the X&nbsp;Archetype project operates as a layer and is designed to be integrated on top of
141
+ any kind of website regardless the chosen technology, the `XInstaller` utility and its
142
+ `installXOptions` object are designed to install the xPlugin, adding the connection between the
143
+ X&nbsp;Components and the search API and bootstrapping the entire application with powerful APIs
144
+ that are available in the `window.X` object.
145
+
146
+ To configure the xPlugin, run this code:
147
+
148
+ ```typescript
149
+ import { InstallXOptions, XInstaller } from '@empathyco/x-components';
150
+ import App from './App.vue';
151
+ import store from './store';
152
+ import { adapter } from '../adapter';
153
+
154
+ export const installXOptions: InstallXOptions = {
155
+ adapter,
156
+ store,
157
+ app: App
158
+ };
159
+
160
+ new XInstaller(installXOptions).init({
161
+ instance: '<your-search-api-instance>',
162
+ lang: '<your-application-language>',
163
+ scope: '<your-application-scope>'
164
+ });
165
+ ```
166
+
167
+ ---
168
+
169
+ ### Next steps
170
+
171
+ Once you have integrated the Interface&nbsp;X&nbsp;Archetype in your store, you're ready to start
172
+ using the X&nbsp;Archetype as is or extend the search and discovery experience to meet your business
173
+ needs:
174
+
175
+ - Change the configuration of [X Components](web-use-x-components-guide.md) or create new ones.
176
+ - Adapt the
177
+ [design system](https://github.com/empathyco/x/blob/main/packages/x-components/contributing/design-system.md)
178
+ to your branding.
179
+ - Manage
180
+ [internationalization options](https://github.com/empathyco/x-archetype/blob/main/docs/i18n.md) to
181
+ support different languages.
182
+
183
+ <!-- add links to design system and internationalization content pages when ready-->
@@ -0,0 +1,170 @@
1
+ ---
2
+ id: x-components.web-use-x-components-guide
3
+ title: Web Use X Components Guide
4
+ sidebar_label: Web Use X Components Guide
5
+ ---
6
+ ---
7
+ title: Use & configure Interface X Components in your project
8
+ tags:
9
+ - configuration
10
+ - x configuration
11
+ - x component configuration
12
+ ---
13
+
14
+ # Use and configure Interface X Components in your project
15
+
16
+ Interface&nbsp;X&nbsp;Components are like building blocks that you pick up and mix to craft your
17
+ search UI experiences. The goal of using components is to include only the components you want,
18
+ wherever you want. So, **just import the components, register, and go!**
19
+
20
+ Once you’ve installed the
21
+ [dependencies and the xPlugin](web-x-components-integration-guide.md#_1-install-the-dependencies),
22
+ you’re ready to use X&nbsp;Components in your project.
23
+
24
+ ## 1. Import and register the X Components
25
+
26
+ Many of the X&nbsp;Components are distributed into modules to make them easier to manage. So you
27
+ need to indicate from which module you’re importing each component as appropriate.
28
+
29
+ For example, the `search-box` module contains the `SearchInput`, `SearchButton`, and
30
+ `ClearSearchInput` components.
31
+
32
+ ### Import and register components from a module
33
+
34
+ When importing the components, you can register each component **locally for each Vue instance** as
35
+ you go.
36
+
37
+ ```typescript
38
+ //Import each component you'd like to use, before you register it.
39
+ import { ComponentA } from './Module1';
40
+ import { ComponentB } from './Module1';
41
+ import { ComponentC } from './Module1';
42
+
43
+ //Locally register each component.
44
+ export default {
45
+ components: {
46
+ ComponentA,
47
+ ComponentB,
48
+ ComponentC
49
+ }
50
+ // ...
51
+ };
52
+
53
+ //The components are now ready to be used inside your template.
54
+ ```
55
+
56
+ ### Import and register components globally
57
+
58
+ Alternatively, you can **globally** register components in Vue directly in the `main.js` file if you
59
+ plan on using a component more than once in your app. By registering the components globally, you
60
+ can use them in the template of any root Vue instance you create afterwards.
61
+
62
+ ::: develop Although you can register components globally, it should be done with caution as **it
63
+ may impact future performance**. Remember if you register the components globally, the entire
64
+ X&nbsp;Component module is loaded and registered each time this code line is run. :::
65
+
66
+ ```typescript
67
+ import { ComponentA, ComponentB, ComponentC } from './ModuleA';
68
+
69
+ Vue.component('ComponentAName', ComponentA);
70
+ Vue.component('ComponentBName', ComponentB);
71
+ Vue.component('ComponentCName', ComponentC);
72
+ ```
73
+
74
+ ## 2. Configure the X Components
75
+
76
+ You can configure some behaviors for each component to customize the search experience.
77
+
78
+ To provide different project-specific behaviors, you can use:
79
+
80
+ - **Props**: custom attributes to pass data into a component. It modifies the behavior or the
81
+ properties in a component.
82
+
83
+ ```vue
84
+ //Configure a component with props.
85
+ <SearchInput :maxLength="5" :autofocus="false" :instant="true" :instantDebounceInMs="1000" />
86
+ ```
87
+
88
+ - **Scoped slots**: a slot exposes data from a child component to create your own custom
89
+ implementation.
90
+
91
+ ```vue
92
+ //Configure a component with slots.
93
+ <ClearSearchInput>Clear</ClearSearchInput>
94
+ ```
95
+
96
+ You can pass the configuration attributes documented in the
97
+ [UI Reference](/develop-empathy-platform/ui-reference/) for the Interface&nbsp;X&nbsp;Components.
98
+
99
+ You can combine components at your ease and use resource modules such as modals, panels, and
100
+ animations. You can also use base components, i.e. standard Vue components that don’t have any
101
+ dependencies with the X&nbsp;Components. Use them as a foundation to build other components.
102
+
103
+ Your components are ready to go, but you can provide your search UI with a friendly and fancy style
104
+ and layout. For more information, see
105
+ [Design tokens](https://github.com/empathyco/x/blob/main/packages/x-components/contributing/design-system.md).
106
+
107
+ <!--If you want to support multiple languages, you can use the [x-translation](https://github.com/empathyco/x/tree/main/packages/x-translations) library to manage localization options.-->
108
+
109
+ ## Example: Using the search box components
110
+
111
+ To build your search UI, you need to provide at least a search field that allows users to input a
112
+ query. Additionally, you can include a button to trigger the search and a button to delete the input
113
+ query.
114
+
115
+ The search-box module contains these components:
116
+
117
+ - `SearchInput`
118
+ - `SearchButton`
119
+ - `ClearSearchInput`
120
+
121
+ ::: interact Learn more about the
122
+ [Search Box UI](/explore-empathy-platform/experience-search-&-discovery/search-box.md) :::
123
+
124
+ ### Importing the components from the search-box module
125
+
126
+ For this purpose, you need to import the `SearchInput`, `SearchButton`, and `ClearSearchInput`
127
+ components from the `search-box` module to the desired app component. Then, register them and
128
+ include them in the template.
129
+
130
+ First, import and locally register the components.
131
+
132
+ ```vue
133
+ //Import the components from the corresponding module.
134
+ <script>
135
+ import { SearchInput, SearchButton, ClearSearchInput } from '@empathyco/x-components/search-box';
136
+
137
+ //Locally register each component.
138
+ export default {
139
+ components: { SearchInput, SearchButton, ClearSearchInput }
140
+ };
141
+ </script>
142
+ ```
143
+
144
+ Now, you’re ready to start using the component wherever you want in your template.
145
+
146
+ ```vue
147
+ <template>
148
+ <div>
149
+ <SearchInput />
150
+ <SearchButton />
151
+ <ClearSearchInput />
152
+ </div>
153
+ </template>
154
+ ```
155
+
156
+ ### Configuring the SearchInput component
157
+
158
+ Next, you want to configure the behavior of the `SearchInput` component. Here you use the
159
+ `maxLength` prop to limit the maximum length to 20 characters.
160
+
161
+ ```vue
162
+ <SearchInput
163
+ :maxLength="20"
164
+ :autofocus="false"
165
+ :instant="true"
166
+ :instantDebounceInMs="1000"
167
+ :autocompleteKeyboardKeys="['ArrowDown']"
168
+ :autocompleteSuggestionsEvent="'NextQueriesChanged'"
169
+ />
170
+ ```
@@ -0,0 +1,197 @@
1
+ ---
2
+ id: x-components.web-x-components-integration-guide
3
+ title: Web X Components Integration Guide
4
+ sidebar_label: Web X Components Integration Guide
5
+ ---
6
+ ---
7
+ title: Integrate Interface X Components in your Vue application
8
+ tags:
9
+ - integration
10
+ - interface x components integration
11
+ - web integration
12
+ - x integration
13
+ - interface x
14
+ ---
15
+
16
+ # Integrate Interface X Components in your Vue application
17
+
18
+ In this tutorial, you’ll learn the basics to integrate the Interface&nbsp;X&nbsp;Components library
19
+ in your own project to craft enticing Vue search experiences for your shop in a matter of minutes.
20
+
21
+ ::: interact If you are looking to use the ready-to-go project Interface&nbsp;X&nbsp;Archetype as
22
+ your starting point, see
23
+ **[Integrate Interface X Archetype project](/develop-empathy-platform/build-search-ui/web-archetype-integration-guide.md)**.
24
+ :::
25
+
26
+ For this tutorial, the Empathy Search API is used, but you can use any search API. This step-by-step
27
+ guide requires a knowledge of **JavaScript** and **Vue.js**.
28
+
29
+ You can find the X&nbsp;Components library in the
30
+ [Interface X open source project in GitHub](https://github.com/empathyco/x).
31
+
32
+ ::: note Before you begin
33
+
34
+ To integrate the X&nbsp;Components in a frontend UI, you need:
35
+
36
+ - **Empathy Search API** to retrieve search data (or any other search API)
37
+ - A **search adapter** to communicate with the search API. You can use the Empathy Adapter and
38
+ configure it with the `EmpathyAdapterBuilder`
39
+
40
+ :::
41
+
42
+ ##### Steps to integrate the X&nbsp;Components in your project:
43
+
44
+ 1. Install **project dependencies**.
45
+ 2. Configure the **search adapter**.
46
+ 3. Configure the **xPlugin**.
47
+ 4. Install and **initialize the xPlugin**.
48
+
49
+ ## 1. Install the dependencies
50
+
51
+ To build your search and discovery UI, the following project dependencies are required:
52
+
53
+ - **x-components** library
54
+ ([`@empathyco/x-components`](https://github.com/empathyco/x/tree/main/packages/x-components)):
55
+ Interface&nbsp;X&nbsp;Components Vue.js library to implement out-of-the-box search UI components
56
+ in a couple of minutes.
57
+
58
+ - **x-adapter**
59
+ ([`@empathyco/x-adapter`](https://github.com/empathyco/x/tree/main/packages/search-adapter)): A
60
+ search adapter connector that tells the app how to communicate with the Empathy Search API you’re
61
+ using, translating the response into understandable information for X&nbsp;Components. If you are
62
+ not using the Empathy Search API, you need to build your own search adapter.
63
+
64
+ - **x-types**
65
+ ([`@empathyco/x-types`](https://github.com/empathyco/x/tree/main/packages/search-types)): The data
66
+ model used in the X&nbsp;Components to define types.
67
+
68
+ - **reflect-metadata**: Polyfill that allows the internal decorators of X&nbsp;Components to be
69
+ used. This is only required if you use the Empathy search adapter (`x-adapter`).
70
+
71
+ Install the project dependencies via `npm` as follows:
72
+
73
+ ```batch
74
+ //Install the dependencies via npm.
75
+ npm install --save @empathyco/x-components @empathyco/x-types @empathyco/x-adapter reflect-metadata
76
+ ```
77
+
78
+ ## 2. Configure the search adapter
79
+
80
+ ::: warning If you are using the Empathy search API and the Empathy Search Adapter (`x-adapter`),
81
+ make sure you have imported the `reflect-metadata` polyfill before executing any code of the search
82
+ adapter. :::
83
+
84
+ Next, construct the search adapter. You will need the search adapter in the
85
+ [xPlugin configuration](#_3-configure-the-xplugin).
86
+
87
+ Empathy Search Adapter is a library for making it easier to consume search APIs. The project
88
+ contains two main parts: an **implementation** to consume the Empathy Search API, and an
89
+ **interface** that you can use to build your own adapter for other APIs.
90
+
91
+ It contains a specific builder that helps you to configure the Empathy Search Adapter. If you are
92
+ using Empathy Search API, you need to only configure the values for `instance`, `language`, `scope`,
93
+ and `endpoint` properties in the `empathy-adapter.config.ts` file.
94
+
95
+ ```typescript
96
+ // Import the search adapter and metadata
97
+ import 'reflect-metadata';
98
+ import { EmpathyAdapterBuilder } from '@empathyco/x-adapter';
99
+
100
+ // Construct the EmpathyAdapterBuilder
101
+ export const adapter = new EmpathyAdapterBuilder()
102
+ .withConfiguration({ instance: 'my-instance-id' })
103
+ .setLang('es')
104
+ .setScope('demo')
105
+ .setFeatureConfig('search', { endpoint: 'http://my-search-API-url' })
106
+ .build();
107
+ ```
108
+
109
+ ::: warning If you do not use the Empathy Search API, you need to build your own adapter. :::
110
+
111
+ For more information, see
112
+ [Using the Empathy Search Adapter](https://github.com/empathyco/x/tree/main/packages/search-adapter).
113
+
114
+ ## 3. Configure the plugin
115
+
116
+ Plugins are self-contained code that usually add global-level functionality to Vue projects. They’re
117
+ specifically objects that expose an `install` method, allowing you to keep your components clear and
118
+ small.
119
+
120
+ The xPlugin is designed to connect the X&nbsp;Components to the Vue components in your project.
121
+
122
+ **Import** the xPlugin in your Vue instance.
123
+
124
+ ```typescript
125
+ import Vue from 'vue';
126
+ import { xPlugin } from '@empathyco/x-components';
127
+ import { adapter } from './my-adapter';
128
+ import { store } from './my-store';
129
+ ```
130
+
131
+ Then, **configure** the xPlugin. It has two key options you need to configure:
132
+
133
+ 1. **Adapter**: A search adapter is required to connect and communicate with the search API. Here
134
+ you’re using the `EmpathyAdapterBuilder` to communicate specifically with the Empathy Search API.
135
+ If you are not using the Empathy Search API, you need to build your own adapter. See
136
+ [Configure the search adapter](#_2-configure-the-search-adapter).
137
+
138
+ ::: develop
139
+
140
+ When using your own adapter, remember to configure the `instance`, `language`, `scope`, and
141
+ `endpoint` methods.
142
+
143
+ :::
144
+
145
+ 2. **Store**: The Vuex store. If you use a store for Vuex, you need to provide the store you’re
146
+ currently using for your project to the Vue instance.
147
+
148
+ ::: warning
149
+
150
+ If you don’t provide any parameters for the `store`, a default store is created automatically. Leave
151
+ the `store` blank **only if you’re not using any store** for Vuex.
152
+
153
+ :::
154
+
155
+ ## 4. Install and initialize the plugin
156
+
157
+ Finally, the last step is to install and initialize the xPlugin. You need to do this in the
158
+ `main.ts` or `main.js file` of the project.
159
+
160
+ ```typescript
161
+ //Initialize the plugin. Pass the search adapter and the store you use as parameters.
162
+ Vue.use(xPlugin, { adapter, store });
163
+ ```
164
+
165
+ ---
166
+
167
+ ### Next steps
168
+
169
+ Watch how our frontend Team Lead, [Iván Tajes](https://github.com/tajespasarela), integrates the
170
+ Interface&nbsp;X&nbsp;Components in a project from scratch.
171
+
172
+ <VideoContent
173
+ title="Want to learn more?"
174
+ source="/assets/media/videos/How-to-use-X-components-in-a-real-project.mp4"
175
+ poster="/assets/media/videos/How-to-use-X-components-in-a-real-project.jpeg"
176
+ :links="[
177
+ {
178
+ title:'Architecture',
179
+ path:'/develop-empathy-platform/build-search-ui/x-architecture/'
180
+ },
181
+ {
182
+ title:'UI reference',
183
+ path:'/develop-empathy-platform/ui-reference/'
184
+ }
185
+ ]">
186
+
187
+ Once you have integrated the Interface&nbsp;X&nbsp;Components in your project, you're ready to start
188
+ building your search and discovery UI:
189
+
190
+ - Change the configuration of the [X Components](web-use-x-components-guide.md) or create new ones.
191
+ - Adapt the
192
+ [design system](https://github.com/empathyco/x/blob/main/packages/x-components/contributing/design-system.md)
193
+ to your branding.
194
+
195
+ </VideoContent>
196
+
197
+ <!-- Manage [internationalization options](https://github.com/empathyco/x/tree/main/packages/x-translations) to support different languages.-->
@@ -0,0 +1,133 @@
1
+ ---
2
+ id: x-components.README
3
+ title: README
4
+ sidebar_label: README
5
+ ---
6
+ ---
7
+ title: How Interface X works
8
+ tags:
9
+ - x components
10
+ - interface x
11
+ - x architecture
12
+ - architecture
13
+ ---
14
+
15
+ # How Interface X works
16
+
17
+ <img :src="$withBase('/assets/media/interfacex-architecture.svg')" alt="Interface X architecture">
18
+
19
+ <FootNote>
20
+
21
+ Data journey: The frontend components collect user interactions or events. The wiring orchestrates
22
+ the UI events by emitting actions for the client API through the adapter. The API returns the
23
+ required data, travelling to the Vuex store through actions that can modify the app data state in
24
+ the Vuex store with mutation objects. The UI components are bound to the data state, so that they
25
+ render the new state to the user.
26
+
27
+ </FootNote>
28
+
29
+ ## Understand how the pieces work together
30
+
31
+ The Interface&nbsp;X architecture is designed into separate tiers and elements:
32
+
33
+ 1. **Presentation tier**. Mainly represented by the UI **components**, responsible for determining
34
+ how to display the data. It not only presents data in an understandable manner to users, but
35
+ also monitors user interactions, emitting events to the Interface&nbsp;X application.
36
+
37
+ Components can be customised according to client requirements, even allowing custom CSS styles.
38
+
39
+ 2. **Orchestration tier**. The x-factor in charge of orchestrating all the event wiring. When an
40
+ event is emitted, other components are listening to it to react. This behavioural connection
41
+ between components through events is the **wiring**. Then, the wiring decides what happens when
42
+ an event is emitted in the Presentation layer.
43
+
44
+ The wiring is customisable and flexible to meet client requirements. The behaviour can change
45
+ without modifying the entire application. The event-driven operators in charge of the wiring
46
+ routing logic enable different wiring configurations per event.
47
+
48
+ 3. **Business logic tier**. The heart of the app in charge of keeping all the data processing,
49
+ where:
50
+ - UI events emit **actions** for the client API. These actions can modify the state of the
51
+ store.
52
+ - The **store** holds all the app data that should be presented to the user at any given time.
53
+ It acts as a single source of truth, providing great performance and reactivity.
54
+
55
+ The Interface&nbsp;X app needs an **adapter** to handle all client API communications. The API
56
+ adapter mainly translates the related app data and use models to the client API and vice versa,
57
+ solving any incompatibility issues. It is the entry point for all external data into the
58
+ application.
59
+
60
+ The API adapter can be customised and extended to meet the client requirements. It’s a plug-in
61
+ element that can be changed and adjusted to the specific client API, even when using other search
62
+ services not based on the Empathy search API.
63
+
64
+ ::: note Architecture patterns
65
+ If you’re already experienced in the Vue universe, you’ll find the Interface&nbsp;X architecture
66
+ somewhat familiar. Although the [ViewModel layer](https://012.vuejs.org/guide/#Introduction) of the
67
+ **MVVM pattern** sprinkles traces all over the presentation tier, the Interface X architecture is
68
+ basically inspired by the
69
+ [**Flux pattern**](https://vuex.vuejs.org/#what-is-a-state-management-pattern) behind the state. As
70
+ the X&nbsp;Components emit events that dispatch actions in the business logic tier, these actions
71
+ can commit mutations to modify the state of the store.
72
+ To sum up, the design of Interface&nbsp;X takes advantage of the MVVM and Flux patterns to design,
73
+ develop, and configure each tier separately and independently. :::
74
+
75
+ ## Technical stack
76
+
77
+ - [Vue.js](https://vuejs.org/) framework
78
+ - JavaScript + [TypeScript](https://www.typescriptlang.org/) languages
79
+ - [RxJS](https://rxjs.dev/) for the wiring configuration logic
80
+
81
+ **The story so far**
82
+ Not long ago, exploring alternative options for the architecture design and technical stack became a
83
+ must. There were several design challenges that needed to be overcome to make the frontend service
84
+ easier to configure:
85
+
86
+ - Improve reusability and performance that were hindered by the logic in components and the bundle
87
+ size
88
+ - Facilitate setup by solving synchronicity and extendability problems
89
+ - Provide easier maintenance over time, reducing regression issues
90
+
91
+ After studying different approaches to build fast and reusable components, **Vue.js** (also Vue)
92
+ seemed to be the best fit for the technical requirements and the level of abstraction required.
93
+
94
+ Revamping the architecture and technical stack has helped the former frontend services to evolve
95
+ into the latest Interface&nbsp;X application. Now, all the required **attributes and design
96
+ principles** are combined to make the solution easy to implement, change, test, and reuse:
97
+
98
+ - **Flexible**. Make changes to any element without impacting the rest of the app. For example, you
99
+ can modify a visual component without impacting the business logic.
100
+ - **Customizable & extensible**. Add new custom components andor features.
101
+ - **Lightweight**. The bundle includes only the modules you want. You’ll get only the code you
102
+ really need.
103
+ - **Incremental**. The modules interact and communicate automatically with each other. The more
104
+ modules you use, the more features you get.
105
+ - **Easy-to-integrate**. Install the library as an NPM dependency in Vue and React projects.
106
+ Interface X can be used in any webpage, as long as it is integrated as an isolated search layer.
107
+
108
+ **Why Vue?**
109
+ Due to the flexibility required, using a library for the presentation layer instead of a
110
+ full-fledged framework is the best choice. Among the state-of-the-art technologies available for
111
+ building component-based UIs, Vue meets all the requirements:
112
+
113
+ - Lightweight, flexible, and stand-alone library
114
+ - Easy to learn and use with a user-friendly template syntax
115
+ - Smooth dynamic components and composition creation
116
+ - Outperformance with reactive approach, proxies, and interceptors
117
+ - Out-of-the-box solution, allowing you to focus just on developing features
118
+ - Small bundle size with no dependencies
119
+
120
+ **How does Vue meet the design challenges?**
121
+
122
+ - Stateless components. Centralised management through the Vuex library reduces the logic in
123
+ components.
124
+ - Smooth setups. Dynamic component creation helps to track the modified data and re-render only the
125
+ required components.
126
+ - Improved performance out of the box
127
+ - Seamless maintenance. Framework or library-agnostic
128
+
129
+ ::: note
130
+ Interface&nbsp;X can potentially be integrated in commerce shops built with React. In any case,
131
+ Interface&nbsp;X can be used in any webpage, as long as it is integrated as an isolated search
132
+ layer.
133
+ :::