@empathyco/x-components 6.0.0-alpha.6 → 6.0.0-alpha.60

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 (823) hide show
  1. package/CHANGELOG.md +522 -0
  2. package/core/index.js +8 -1
  3. package/core/index.js.map +1 -1
  4. package/design-system/deprecated-full-theme.css +1647 -1648
  5. package/docs/API-reference/api/x-adapter-platform.md +12 -0
  6. package/docs/API-reference/api/x-adapter-platform.nextqueriesrelatedpromptsschema.md +11 -0
  7. package/docs/API-reference/api/x-adapter-platform.platformadapter.relatedprompts.md +1 -1
  8. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.md +23 -0
  9. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.nextqueries.md +11 -0
  10. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.suggestiontext.md +11 -0
  11. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.tagging.md +11 -0
  12. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.type.md +11 -0
  13. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.md +22 -0
  14. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplay.md +11 -0
  15. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplayadd2cart.md +11 -0
  16. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplayclick.md +11 -0
  17. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsrequest.md +15 -0
  18. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.data.md +13 -0
  19. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.md +21 -0
  20. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.status.md +11 -0
  21. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.md +22 -0
  22. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.nextqueries.md +11 -0
  23. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.toolingdisplay.md +11 -0
  24. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.toolingdisplayclick.md +11 -0
  25. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.catalog.md +6 -0
  26. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.md +1 -1
  27. package/docs/API-reference/api/x-adapter-platform.relatedpromptschema.md +13 -0
  28. package/docs/API-reference/api/x-adapter-platform.relatedpromptsendpointadapter.md +13 -0
  29. package/docs/API-reference/api/x-adapter-platform.relatedpromptsrequestmapper.md +13 -0
  30. package/docs/API-reference/api/x-adapter-platform.relatedpromptsrequestschema.md +13 -0
  31. package/docs/API-reference/api/x-adapter-platform.relatedpromptsresponsemapper.md +13 -0
  32. package/docs/API-reference/api/x-adapter-platform.relatedpromptsresponseschema.md +13 -0
  33. package/docs/API-reference/api/x-components.animationprop.md +6 -1
  34. package/docs/API-reference/api/x-components.bannerslist.md +3 -3
  35. package/docs/API-reference/api/x-components.baseaddtocart.md +1 -0
  36. package/docs/API-reference/api/x-components.basedropdown.md +5 -5
  37. package/docs/API-reference/api/x-components.baseeventsmodal.md +2 -2
  38. package/docs/API-reference/api/x-components.basegrid.md +3 -3
  39. package/docs/API-reference/api/x-components.baseheadertogglepanel.md +5 -5
  40. package/docs/API-reference/api/x-components.baseidmodal.md +2 -2
  41. package/docs/API-reference/api/x-components.baseidtogglepanel.md +5 -5
  42. package/docs/API-reference/api/x-components.basemodal.md +10 -10
  43. package/docs/API-reference/api/x-components.baseresultimage.md +9 -9
  44. package/docs/API-reference/api/x-components.baseslider.md +70 -0
  45. package/docs/API-reference/api/x-components.basesuggestions.md +3 -3
  46. package/docs/API-reference/api/x-components.baseswitch.md +1 -1
  47. package/docs/API-reference/api/x-components.basetabspanel.md +8 -8
  48. package/docs/API-reference/api/x-components.basetogglepanel.md +3 -3
  49. package/docs/API-reference/api/x-components.basevariablecolumngrid.md +3 -3
  50. package/docs/API-reference/api/x-components.cancelfetchandsaverelatedprompts.md +13 -0
  51. package/docs/API-reference/api/x-components.configmutations.config.md +11 -0
  52. package/docs/API-reference/api/x-components.configmutations.md +29 -0
  53. package/docs/API-reference/api/x-components.configmutations.mergeconfig.md +24 -0
  54. package/docs/API-reference/api/x-components.configmutations.setconfig.md +24 -0
  55. package/docs/API-reference/api/x-components.createrelatedtagsquerygetter.md +26 -0
  56. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.getrelatedtags.md +13 -0
  57. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.md +20 -0
  58. package/docs/API-reference/api/x-components.createtrackrelatedprompttoolingdisplayclickwire.md +19 -0
  59. package/docs/API-reference/api/x-components.createtracktoolingadd2cartwire.md +19 -0
  60. package/docs/API-reference/api/x-components.createtracktoolingdisplaywire.md +19 -0
  61. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice._constructor_.md → x-components.defaultexternaltaggingservice._constructor_.md} +3 -3
  62. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.add_to_cart_id_key.md +13 -0
  63. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.instance.md +13 -0
  64. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.localstorageservice.md +11 -0
  65. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.md +43 -0
  66. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.movetosessionstorage.md → x-components.defaultexternaltaggingservice.movetosessionstorage.md} +2 -2
  67. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.result_clicked_id_key.md +13 -0
  68. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.sessionstorageservice.md +11 -0
  69. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagekey.md +11 -0
  70. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagettlms.md +11 -0
  71. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.store.md → x-components.defaultexternaltaggingservice.store.md} +2 -2
  72. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storeaddtocart.md +24 -0
  73. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.storeresultclicked.md → x-components.defaultexternaltaggingservice.storeresultclicked.md} +3 -3
  74. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.trackaddtocart.md → x-components.defaultexternaltaggingservice.trackaddtocart.md} +3 -3
  75. package/docs/API-reference/api/x-components.displayclickprovider.md +66 -0
  76. package/docs/API-reference/api/x-components.empathize.md +6 -6
  77. package/docs/API-reference/api/x-components.empathizemutations.md +1 -1
  78. package/docs/API-reference/api/x-components.externaltaggingservice.md +23 -0
  79. package/docs/API-reference/api/{x-components.pdpaddtocartservice.movetosessionstorage.md → x-components.externaltaggingservice.movetosessionstorage.md} +2 -2
  80. package/docs/API-reference/api/x-components.externaltaggingservice.storeaddtocart.md +24 -0
  81. package/docs/API-reference/api/{x-components.pdpaddtocartservice.storeresultclicked.md → x-components.externaltaggingservice.storeresultclicked.md} +3 -3
  82. package/docs/API-reference/api/{x-components.pdpaddtocartservice.trackaddtocart.md → x-components.externaltaggingservice.trackaddtocart.md} +3 -3
  83. package/docs/API-reference/api/x-components.facets.md +3 -3
  84. package/docs/API-reference/api/x-components.facetsmutations.md +1 -1
  85. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  86. package/docs/API-reference/api/x-components.fetchandsaverelatedprompts.md +13 -0
  87. package/docs/API-reference/api/x-components.fetchrelatedprompts.md +13 -0
  88. package/docs/API-reference/api/x-components.filterslist.md +3 -3
  89. package/docs/API-reference/api/x-components.globalxbus.md +14 -0
  90. package/docs/API-reference/api/x-components.hierarchicalfilter.md +9 -2
  91. package/docs/API-reference/api/x-components.historyqueriesmutations.md +1 -1
  92. package/docs/API-reference/api/x-components.historyqueriesstate.md +1 -1
  93. package/docs/API-reference/api/x-components.identifierresults.md +3 -3
  94. package/docs/API-reference/api/x-components.identifierresultsmutations.md +1 -1
  95. package/docs/API-reference/api/x-components.identifierresultsstate.md +1 -1
  96. package/docs/API-reference/api/x-components.installxoptions.domelement.md +1 -1
  97. package/docs/API-reference/api/x-components.installxoptions.installextraplugins.md +2 -2
  98. package/docs/API-reference/api/x-components.installxoptions.md +1 -1
  99. package/docs/API-reference/api/x-components.itemslist.md +3 -3
  100. package/docs/API-reference/api/x-components.mainmodal.md +2 -2
  101. package/docs/API-reference/api/x-components.md +38 -3
  102. package/docs/API-reference/api/x-components.mergeconfig.md +27 -0
  103. package/docs/API-reference/api/x-components.multicolumnmaxwidthlayout.md +5 -5
  104. package/docs/API-reference/api/x-components.myhistory.md +3 -3
  105. package/docs/API-reference/api/x-components.nextqueriesgroup.md +22 -0
  106. package/docs/API-reference/api/x-components.nextqueriesgroup.modelname.md +11 -0
  107. package/docs/API-reference/api/x-components.nextqueriesgroup.nextqueries.md +11 -0
  108. package/docs/API-reference/api/x-components.nextquerieslist.md +3 -3
  109. package/docs/API-reference/api/x-components.nextqueriesmutations.md +1 -1
  110. package/docs/API-reference/api/x-components.nextqueriesstate.md +1 -1
  111. package/docs/API-reference/api/x-components.pageselector.md +80 -0
  112. package/docs/API-reference/api/x-components.partialresultslist.md +3 -3
  113. package/docs/API-reference/api/x-components.popularsearchesmutations.md +1 -1
  114. package/docs/API-reference/api/x-components.promotedslist.md +3 -3
  115. package/docs/API-reference/api/x-components.queriespreviewmutations.md +1 -1
  116. package/docs/API-reference/api/x-components.queryfeature.md +1 -1
  117. package/docs/API-reference/api/x-components.querymutations.md +20 -0
  118. package/docs/API-reference/api/x-components.querymutations.setquery.md +24 -0
  119. package/docs/API-reference/api/x-components.querypreviewlist.md +3 -3
  120. package/docs/API-reference/api/x-components.querystate.md +20 -0
  121. package/docs/API-reference/api/x-components.querystate.query.md +13 -0
  122. package/docs/API-reference/api/x-components.querysuggestionsmutations.md +1 -1
  123. package/docs/API-reference/api/x-components.querysuggestionsstate.md +1 -1
  124. package/docs/API-reference/api/x-components.recommendations.md +3 -3
  125. package/docs/API-reference/api/x-components.recommendationsmutations.md +1 -1
  126. package/docs/API-reference/api/x-components.relatedprompt.md +33 -0
  127. package/docs/API-reference/api/x-components.relatedpromptsactioncontext.md +15 -0
  128. package/docs/API-reference/api/x-components.relatedpromptsactions.cancelfetchandsaverelatedprompts.md +17 -0
  129. package/docs/API-reference/api/x-components.relatedpromptsactions.fetchandsaverelatedprompts.md +24 -0
  130. package/docs/API-reference/api/x-components.relatedpromptsactions.fetchrelatedprompts.md +24 -0
  131. package/docs/API-reference/api/x-components.relatedpromptsactions.md +23 -0
  132. package/docs/API-reference/api/x-components.relatedpromptsactions.seturlparams.md +24 -0
  133. package/docs/API-reference/api/x-components.relatedpromptsgetters.md +21 -0
  134. package/docs/API-reference/api/x-components.relatedpromptsgetters.query.md +13 -0
  135. package/docs/API-reference/api/x-components.relatedpromptsgetters.request.md +13 -0
  136. package/docs/API-reference/api/x-components.relatedpromptslist.md +72 -0
  137. package/docs/API-reference/api/x-components.relatedpromptsmutations.md +27 -0
  138. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetrelatedpromptsstate.md +17 -0
  139. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetselectedprompt.md +17 -0
  140. package/docs/API-reference/api/x-components.relatedpromptsmutations.setparams.md +24 -0
  141. package/docs/API-reference/api/x-components.relatedpromptsmutations.setrelatedpromptsproducts.md +24 -0
  142. package/docs/API-reference/api/x-components.relatedpromptsmutations.setrelatedpromptsrelatedtags.md +24 -0
  143. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedprompt.md +24 -0
  144. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedquery.md +24 -0
  145. package/docs/API-reference/api/x-components.relatedpromptsstate.md +25 -0
  146. package/docs/API-reference/api/x-components.relatedpromptsstate.params.md +13 -0
  147. package/docs/API-reference/api/x-components.relatedpromptsstate.relatedprompts.md +13 -0
  148. package/docs/API-reference/api/x-components.relatedpromptsstate.relatedtags.md +13 -0
  149. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedprompt.md +13 -0
  150. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedquery.md +13 -0
  151. package/docs/API-reference/api/x-components.relatedpromptstaglist.md +72 -0
  152. package/docs/API-reference/api/x-components.relatedpromptsxevents.md +25 -0
  153. package/docs/API-reference/api/x-components.relatedpromptsxevents.relatedpromptsrequestupdated.md +13 -0
  154. package/docs/API-reference/api/x-components.relatedpromptsxevents.selectedrelatedpromptchanged.md +13 -0
  155. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptadd2cart.md +13 -0
  156. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptresult.md +13 -0
  157. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedprompt.md +13 -0
  158. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedpromptquery.md +13 -0
  159. package/docs/API-reference/api/x-components.relatedpromptsxmodule.md +13 -0
  160. package/docs/API-reference/api/x-components.relatedpromptsxstoremodule.md +15 -0
  161. package/docs/API-reference/api/x-components.relatedtags.md +3 -3
  162. package/docs/API-reference/api/x-components.relatedtagsmutations.md +1 -1
  163. package/docs/API-reference/api/x-components.relatedtagsstate.md +1 -1
  164. package/docs/API-reference/api/x-components.resultfeature.md +1 -1
  165. package/docs/API-reference/api/x-components.resultslist.md +3 -3
  166. package/docs/API-reference/api/x-components.scrolltotop.md +5 -5
  167. package/docs/API-reference/api/x-components.searchboxmutations.md +1 -1
  168. package/docs/API-reference/api/x-components.searchboxstate.md +1 -1
  169. package/docs/API-reference/api/x-components.searchconfig.md +1 -0
  170. package/docs/API-reference/api/x-components.searchconfig.pagemode.md +11 -0
  171. package/docs/API-reference/api/x-components.searchinputplaceholder.md +3 -3
  172. package/docs/API-reference/api/x-components.searchmutations.md +2 -1
  173. package/docs/API-reference/api/x-components.searchmutations.setstats.md +24 -0
  174. package/docs/API-reference/api/x-components.searchstate.md +2 -1
  175. package/docs/API-reference/api/x-components.searchstate.stats.md +13 -0
  176. package/docs/API-reference/api/x-components.searchxevents.md +1 -0
  177. package/docs/API-reference/api/x-components.searchxevents.userselectedapage.md +13 -0
  178. package/docs/API-reference/api/x-components.selectedfilterslist.md +3 -3
  179. package/docs/API-reference/api/x-components.semanticqueriesgetters.md +1 -0
  180. package/docs/API-reference/api/x-components.semanticqueriesgetters.query.md +13 -0
  181. package/docs/API-reference/api/x-components.semanticqueriesmutations.md +2 -1
  182. package/docs/API-reference/api/x-components.semanticqueriesmutations.setsemanticqueriesrelatedtags.md +24 -0
  183. package/docs/API-reference/api/x-components.semanticqueriesstate.md +2 -1
  184. package/docs/API-reference/api/x-components.semanticqueriesstate.relatedtags.md +13 -0
  185. package/docs/API-reference/api/x-components.setconfig.md +27 -0
  186. package/docs/API-reference/api/x-components.setquery.md +25 -0
  187. package/docs/API-reference/api/x-components.seturlprompt.md +13 -0
  188. package/docs/API-reference/api/x-components.simplefilter.md +7 -0
  189. package/docs/API-reference/api/x-components.singlecolumnlayout.md +3 -3
  190. package/docs/API-reference/api/x-components.slidingpanel.md +13 -5
  191. package/docs/API-reference/api/x-components.snippetcallbacks.md +7 -0
  192. package/docs/API-reference/api/x-components.sortdropdown.md +1 -1
  193. package/docs/API-reference/api/x-components.tagging.md +6 -6
  194. package/docs/API-reference/api/x-components.taggingconfig.md +2 -2
  195. package/docs/API-reference/api/{x-components.taggingconfig.clickedresultstoragekey.md → x-components.taggingconfig.storagekey.md} +3 -3
  196. package/docs/API-reference/api/x-components.taggingconfig.storagettlms.md +13 -0
  197. package/docs/API-reference/api/x-components.taggingmutations.md +1 -1
  198. package/docs/API-reference/api/x-components.taggingxevents.md +1 -1
  199. package/docs/API-reference/api/x-components.taggingxevents.resulturltrackingenabled.md +1 -1
  200. package/docs/API-reference/api/x-components.trackrelatedprompttoolingdisplayclickwire.md +13 -0
  201. package/docs/API-reference/api/x-components.tracktoolingadd2cartwire.md +13 -0
  202. package/docs/API-reference/api/x-components.tracktoolingdisplayclickedwire.md +13 -0
  203. package/docs/API-reference/api/x-components.typing.md +13 -0
  204. package/docs/API-reference/api/x-components.typingoptions.md +22 -0
  205. package/docs/API-reference/api/x-components.typingoptions.speed.md +13 -0
  206. package/docs/API-reference/api/x-components.typingoptions.targetattr.md +18 -0
  207. package/docs/API-reference/api/x-components.typingoptions.text.md +13 -0
  208. package/docs/API-reference/api/x-components.urlmutations.md +2 -1
  209. package/docs/API-reference/api/x-components.urlmutations.setprompt.md +24 -0
  210. package/docs/API-reference/api/x-components.urlparams.md +1 -0
  211. package/docs/API-reference/api/x-components.urlparams.prompt.md +11 -0
  212. package/docs/API-reference/api/x-components.urlstate.md +1 -1
  213. package/docs/API-reference/api/x-components.usealiasapi.md +1 -0
  214. package/docs/API-reference/api/x-components.usealiasapi.pricestats.md +16 -0
  215. package/docs/API-reference/api/x-components.xeventstypes.md +3 -3
  216. package/docs/API-reference/api/x-components.xmodulestree.md +1 -0
  217. package/docs/API-reference/api/x-components.xmodulestree.relatedprompts.md +11 -0
  218. package/docs/API-reference/api/x-types.md +2 -0
  219. package/docs/API-reference/api/x-types.relatedprompt.md +4 -1
  220. package/docs/API-reference/api/x-types.relatedprompt.nextqueries.md +1 -1
  221. package/docs/API-reference/api/x-types.relatedprompt.relatedpromptnextqueries.md +13 -0
  222. package/docs/API-reference/api/x-types.relatedprompt.tagging.md +17 -0
  223. package/docs/API-reference/api/x-types.relatedprompt.toolingdisplaytagging.md +13 -0
  224. package/docs/API-reference/api/x-types.relatedpromptnextquery.md +23 -0
  225. package/docs/API-reference/api/x-types.relatedpromptnextquery.query.md +13 -0
  226. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayadd2carttagging.md +13 -0
  227. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayclicktagging.md +13 -0
  228. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplaytagging.md +13 -0
  229. package/docs/API-reference/api/x-types.searchresponse.md +1 -0
  230. package/docs/API-reference/api/x-types.searchresponse.stats.md +11 -0
  231. package/docs/API-reference/api/x-types.stats.md +22 -0
  232. package/docs/API-reference/api/x-types.stats.price.md +14 -0
  233. package/docs/API-reference/components/common/result/x-components.base-result-image.md +2 -2
  234. package/docs/API-reference/components/common/x-components.base-slider.md +189 -0
  235. package/docs/API-reference/components/common/x-components.display-click-provider.md +17 -0
  236. package/docs/API-reference/components/common/x-components.items-list.md +1 -1
  237. package/docs/API-reference/components/common/x-components.page-selector.md +136 -0
  238. package/docs/API-reference/components/common/x-components.sliding-panel.md +7 -7
  239. package/docs/API-reference/components/facets/x-components.facets/facets.md +1 -1
  240. package/docs/API-reference/components/facets/x-components.lists/selected-filters-list.md +1 -1
  241. package/docs/API-reference/components/related-prompts/x-components.related-prompt.md +22 -0
  242. package/docs/API-reference/components/related-prompts/x-components.related-prompts-list.md +196 -0
  243. package/docs/API-reference/components/related-prompts/x-components.related-prompts-tag-list.md +32 -0
  244. package/docs/API-reference/components/search/x-components.results-list.md +1 -1
  245. package/docs/API-reference/components/tagging/x-components.tagging.md +15 -16
  246. package/js/components/animations/fade-and-slide.vue.js +1 -2
  247. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  248. package/js/components/base-dropdown.vue.js +1 -3
  249. package/js/components/base-dropdown.vue.js.map +1 -1
  250. package/js/components/base-dropdown.vue2.js +1 -7
  251. package/js/components/base-dropdown.vue2.js.map +1 -1
  252. package/js/components/base-event-button.vue.js +1 -2
  253. package/js/components/base-event-button.vue.js.map +1 -1
  254. package/js/components/base-grid.vue.js +11 -18
  255. package/js/components/base-grid.vue.js.map +1 -1
  256. package/js/components/base-grid.vue2.js.map +1 -1
  257. package/js/components/base-grid.vue3.js +1 -1
  258. package/js/components/base-keyboard-navigation.vue.js +1 -2
  259. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  260. package/js/components/base-rating.vue.js +1 -3
  261. package/js/components/base-rating.vue.js.map +1 -1
  262. package/js/components/base-slider.vue.js +65 -0
  263. package/js/components/base-slider.vue.js.map +1 -0
  264. package/js/components/base-slider.vue2.js +109 -0
  265. package/js/components/base-slider.vue2.js.map +1 -0
  266. package/js/components/base-slider.vue3.js +7 -0
  267. package/js/components/base-slider.vue3.js.map +1 -0
  268. package/js/components/base-switch.vue.js.map +1 -1
  269. package/js/components/base-switch.vue2.js +3 -7
  270. package/js/components/base-switch.vue2.js.map +1 -1
  271. package/js/components/base-variable-column-grid.vue.js +1 -2
  272. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  273. package/js/components/column-picker/base-column-picker-dropdown.vue.js +1 -3
  274. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  275. package/js/components/column-picker/base-column-picker-list.vue.js +1 -3
  276. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  277. package/js/components/display-click-provider.vue.js +74 -0
  278. package/js/components/display-click-provider.vue.js.map +1 -0
  279. package/js/components/display-click-provider.vue2.js +6 -0
  280. package/js/components/display-click-provider.vue2.js.map +1 -0
  281. package/js/components/filters/labels/base-rating-filter-label.vue.js +1 -3
  282. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  283. package/js/components/icons/cross-tiny.vue.js +2 -2
  284. package/js/components/icons/plus.vue.js +2 -2
  285. package/js/components/items-list.vue.js +1 -2
  286. package/js/components/items-list.vue.js.map +1 -1
  287. package/js/components/items-list.vue2.js +2 -2
  288. package/js/components/items-list.vue2.js.map +1 -1
  289. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +1 -7
  290. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -1
  291. package/js/components/layouts/multi-column-max-width-layout.vue.js +1 -9
  292. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  293. package/js/components/layouts/single-column-layout.vue.js +1 -9
  294. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  295. package/js/components/modals/base-events-modal-close.vue.js +1 -2
  296. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  297. package/js/components/modals/base-events-modal-open.vue.js +1 -2
  298. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  299. package/js/components/modals/base-id-modal-close.vue.js +1 -2
  300. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  301. package/js/components/modals/base-id-modal-open.vue.js +1 -2
  302. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  303. package/js/components/modals/base-modal.vue.js +1 -2
  304. package/js/components/modals/base-modal.vue.js.map +1 -1
  305. package/js/components/modals/base-modal.vue2.js +13 -6
  306. package/js/components/modals/base-modal.vue2.js.map +1 -1
  307. package/js/components/page-loader-button.vue.js +8 -10
  308. package/js/components/page-loader-button.vue.js.map +1 -1
  309. package/js/components/page-loader-button.vue2.js.map +1 -1
  310. package/js/components/page-loader-button.vue3.js +7 -0
  311. package/js/components/page-loader-button.vue3.js.map +1 -0
  312. package/js/components/page-selector.vue.js +78 -0
  313. package/js/components/page-selector.vue.js.map +1 -0
  314. package/js/components/page-selector.vue2.js +128 -0
  315. package/js/components/page-selector.vue2.js.map +1 -0
  316. package/js/components/page-selector.vue3.js +7 -0
  317. package/js/components/page-selector.vue3.js.map +1 -0
  318. package/js/components/panels/base-header-toggle-panel.vue.js +1 -5
  319. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  320. package/js/components/panels/base-id-toggle-panel-button.vue.js +1 -2
  321. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  322. package/js/components/panels/base-id-toggle-panel.vue.js +1 -2
  323. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  324. package/js/components/panels/base-tabs-panel.vue.js +1 -4
  325. package/js/components/panels/base-tabs-panel.vue.js.map +1 -1
  326. package/js/components/panels/base-toggle-panel.vue.js +1 -2
  327. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  328. package/js/components/result/base-result-add-to-cart.vue.js +3 -3
  329. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  330. package/js/components/result/base-result-add-to-cart.vue2.js +19 -5
  331. package/js/components/result/base-result-add-to-cart.vue2.js.map +1 -1
  332. package/js/components/result/base-result-current-price.vue.js +1 -2
  333. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  334. package/js/components/result/base-result-image.vue.js +39 -59
  335. package/js/components/result/base-result-image.vue.js.map +1 -1
  336. package/js/components/result/base-result-image.vue2.js +5 -5
  337. package/js/components/result/base-result-image.vue2.js.map +1 -1
  338. package/js/components/result/base-result-link.vue.js +1 -2
  339. package/js/components/result/base-result-link.vue.js.map +1 -1
  340. package/js/components/result/base-result-previous-price.vue.js +1 -2
  341. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  342. package/js/components/result/base-result-rating.vue.js +1 -4
  343. package/js/components/result/base-result-rating.vue.js.map +1 -1
  344. package/js/components/result/result-variant-selector.vue.js +1 -3
  345. package/js/components/result/result-variant-selector.vue.js.map +1 -1
  346. package/js/components/sliding-panel.vue.js +3 -6
  347. package/js/components/sliding-panel.vue.js.map +1 -1
  348. package/js/components/sliding-panel.vue2.js +2 -2
  349. package/js/components/sliding-panel.vue2.js.map +1 -1
  350. package/js/components/suggestions/base-suggestion.vue.js +1 -2
  351. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  352. package/js/components/suggestions/base-suggestions.vue.js +1 -2
  353. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  354. package/js/composables/use-alias-api.js +4 -1
  355. package/js/composables/use-alias-api.js.map +1 -1
  356. package/js/composables/use-getter.js +1 -1
  357. package/js/composables/use-state.js +1 -1
  358. package/js/directives/typing.js +58 -0
  359. package/js/directives/typing.js.map +1 -0
  360. package/js/index.js +20 -4
  361. package/js/index.js.map +1 -1
  362. package/js/types/animation-prop.js +5 -0
  363. package/js/types/animation-prop.js.map +1 -1
  364. package/js/x-installer/x-installer/x-installer.js +3 -3
  365. package/js/x-installer/x-installer/x-installer.js.map +1 -1
  366. package/js/x-modules/device/store/emitters.js +1 -0
  367. package/js/x-modules/device/store/emitters.js.map +1 -1
  368. package/js/x-modules/empathize/components/empathize.vue.js +1 -2
  369. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  370. package/js/x-modules/empathize/components/empathize.vue2.js +8 -3
  371. package/js/x-modules/empathize/components/empathize.vue2.js.map +1 -1
  372. package/js/x-modules/empathize/store/emitters.js +1 -0
  373. package/js/x-modules/empathize/store/emitters.js.map +1 -1
  374. package/js/x-modules/experience-controls/store/emitters.js +1 -0
  375. package/js/x-modules/experience-controls/store/emitters.js.map +1 -1
  376. package/js/x-modules/extra-params/components/extra-params.vue.js +1 -1
  377. package/js/x-modules/extra-params/components/extra-params.vue.js.map +1 -1
  378. package/js/x-modules/extra-params/store/emitters.js +1 -0
  379. package/js/x-modules/extra-params/store/emitters.js.map +1 -1
  380. package/js/x-modules/facets/components/facets/facets.vue.js +20 -33
  381. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  382. package/js/x-modules/facets/components/facets/facets.vue2.js +2 -2
  383. package/js/x-modules/facets/components/facets/facets.vue2.js.map +1 -1
  384. package/js/x-modules/facets/components/filters/all-filter.vue.js +1 -2
  385. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  386. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +1 -6
  387. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  388. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +1 -3
  389. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  390. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +1 -3
  391. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  392. package/js/x-modules/facets/components/filters/simple-filter.vue.js +1 -3
  393. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  394. package/js/x-modules/facets/components/lists/filters-list.vue.js +1 -2
  395. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  396. package/js/x-modules/facets/components/lists/filters-search.vue.js +1 -3
  397. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  398. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +11 -18
  399. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  400. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js +2 -2
  401. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js.map +1 -1
  402. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +1 -4
  403. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  404. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +1 -2
  405. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  406. package/js/x-modules/history-queries/components/history-queries.vue.js +1 -10
  407. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  408. package/js/x-modules/history-queries/components/history-query.vue.js +1 -6
  409. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  410. package/js/x-modules/history-queries/components/my-history.vue.js +1 -4
  411. package/js/x-modules/history-queries/components/my-history.vue.js.map +1 -1
  412. package/js/x-modules/history-queries/components/remove-history-query.vue.js +1 -2
  413. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  414. package/js/x-modules/history-queries/store/emitters.js +1 -0
  415. package/js/x-modules/history-queries/store/emitters.js.map +1 -1
  416. package/js/x-modules/identifier-results/components/identifier-results.vue.js +1 -2
  417. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  418. package/js/x-modules/identifier-results/store/emitters.js +1 -0
  419. package/js/x-modules/identifier-results/store/emitters.js.map +1 -1
  420. package/js/x-modules/next-queries/components/next-queries.vue.js +1 -7
  421. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  422. package/js/x-modules/next-queries/components/next-query-preview.vue.js +1 -3
  423. package/js/x-modules/next-queries/components/next-query-preview.vue.js.map +1 -1
  424. package/js/x-modules/next-queries/components/next-query.vue.js +1 -4
  425. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  426. package/js/x-modules/next-queries/store/emitters.js +1 -0
  427. package/js/x-modules/next-queries/store/emitters.js.map +1 -1
  428. package/js/x-modules/popular-searches/components/popular-search.vue.js +1 -4
  429. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  430. package/js/x-modules/popular-searches/components/popular-searches.vue.js +1 -7
  431. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  432. package/js/x-modules/queries-preview/components/query-preview-button.vue.js +1 -2
  433. package/js/x-modules/queries-preview/components/query-preview-button.vue.js.map +1 -1
  434. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js +6 -0
  435. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js.map +1 -1
  436. package/js/x-modules/queries-preview/components/query-preview-list.vue.js.map +1 -1
  437. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js +15 -2
  438. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js.map +1 -1
  439. package/js/x-modules/queries-preview/components/query-preview.vue.js +1 -2
  440. package/js/x-modules/queries-preview/components/query-preview.vue.js.map +1 -1
  441. package/js/x-modules/queries-preview/components/query-preview.vue2.js +7 -1
  442. package/js/x-modules/queries-preview/components/query-preview.vue2.js.map +1 -1
  443. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js +2 -1
  444. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js.map +1 -1
  445. package/js/x-modules/queries-preview/store/emitters.js +1 -0
  446. package/js/x-modules/queries-preview/store/emitters.js.map +1 -1
  447. package/js/x-modules/queries-preview/store/module.js +1 -1
  448. package/js/x-modules/queries-preview/store/module.js.map +1 -1
  449. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js +6 -4
  450. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js.map +1 -1
  451. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +1 -4
  452. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  453. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +1 -7
  454. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js.map +1 -1
  455. package/js/x-modules/query-suggestions/store/emitters.js +1 -0
  456. package/js/x-modules/query-suggestions/store/emitters.js.map +1 -1
  457. package/js/x-modules/recommendations/components/recommendations.vue.js +1 -2
  458. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  459. package/js/x-modules/recommendations/store/emitters.js +1 -0
  460. package/js/x-modules/recommendations/store/emitters.js.map +1 -1
  461. package/js/x-modules/related-prompts/components/related-prompt.vue.js +27 -0
  462. package/js/x-modules/related-prompts/components/related-prompt.vue.js.map +1 -0
  463. package/js/x-modules/related-prompts/components/related-prompt.vue2.js +31 -0
  464. package/js/x-modules/related-prompts/components/related-prompt.vue2.js.map +1 -0
  465. package/js/x-modules/related-prompts/components/related-prompt.vue3.js +7 -0
  466. package/js/x-modules/related-prompts/components/related-prompt.vue3.js.map +1 -0
  467. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js +154 -0
  468. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js.map +1 -0
  469. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js +6 -0
  470. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js.map +1 -0
  471. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js +101 -0
  472. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js.map +1 -0
  473. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js +221 -0
  474. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js.map +1 -0
  475. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js +7 -0
  476. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js.map +1 -0
  477. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js +29 -0
  478. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js.map +1 -0
  479. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js +20 -0
  480. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js.map +1 -0
  481. package/js/x-modules/related-prompts/store/actions/set-url-params.action.js +15 -0
  482. package/js/x-modules/related-prompts/store/actions/set-url-params.action.js.map +1 -0
  483. package/js/x-modules/related-prompts/store/emitters.js +16 -0
  484. package/js/x-modules/related-prompts/store/emitters.js.map +1 -0
  485. package/js/x-modules/related-prompts/store/getters/related-prompts-query.getter.js +18 -0
  486. package/js/x-modules/related-prompts/store/getters/related-prompts-query.getter.js.map +1 -0
  487. package/js/x-modules/related-prompts/store/getters/request.getter.js +17 -0
  488. package/js/x-modules/related-prompts/store/getters/request.getter.js.map +1 -0
  489. package/js/x-modules/related-prompts/store/module.js +64 -0
  490. package/js/x-modules/related-prompts/store/module.js.map +1 -0
  491. package/js/x-modules/related-prompts/wiring.js +82 -0
  492. package/js/x-modules/related-prompts/wiring.js.map +1 -0
  493. package/js/x-modules/related-prompts/x-module.js +21 -0
  494. package/js/x-modules/related-prompts/x-module.js.map +1 -0
  495. package/js/x-modules/related-tags/components/related-tag.vue.js +1 -2
  496. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  497. package/js/x-modules/related-tags/components/related-tags.vue.js +1 -4
  498. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  499. package/js/x-modules/related-tags/store/emitters.js +1 -0
  500. package/js/x-modules/related-tags/store/emitters.js.map +1 -1
  501. package/js/x-modules/scroll/components/scroll-to-top.vue.js +1 -2
  502. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  503. package/js/x-modules/scroll/components/scroll-to-top.vue2.js +6 -0
  504. package/js/x-modules/scroll/components/scroll-to-top.vue2.js.map +1 -1
  505. package/js/x-modules/scroll/store/emitters.js +1 -0
  506. package/js/x-modules/scroll/store/emitters.js.map +1 -1
  507. package/js/x-modules/search/components/partial-results-list.vue.js +1 -2
  508. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  509. package/js/x-modules/search/components/results-list.vue.js +2 -2
  510. package/js/x-modules/search/components/results-list.vue.js.map +1 -1
  511. package/js/x-modules/search/components/sort-dropdown.vue.js +1 -3
  512. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  513. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +10 -3
  514. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  515. package/js/x-modules/search/store/actions/save-search-response.action.js +3 -1
  516. package/js/x-modules/search/store/actions/save-search-response.action.js.map +1 -1
  517. package/js/x-modules/search/store/emitters.js +1 -0
  518. package/js/x-modules/search/store/emitters.js.map +1 -1
  519. package/js/x-modules/search/store/module.js +9 -3
  520. package/js/x-modules/search/store/module.js.map +1 -1
  521. package/js/x-modules/search/wiring.js +4 -0
  522. package/js/x-modules/search/wiring.js.map +1 -1
  523. package/js/x-modules/search-box/components/clear-search-input.vue.js +1 -2
  524. package/js/x-modules/search-box/components/clear-search-input.vue.js.map +1 -1
  525. package/js/x-modules/search-box/components/search-button.vue.js +1 -2
  526. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  527. package/js/x-modules/search-box/store/emitters.js +1 -0
  528. package/js/x-modules/search-box/store/emitters.js.map +1 -1
  529. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js +1 -3
  530. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js.map +1 -1
  531. package/js/x-modules/semantic-queries/components/semantic-query.vue.js +1 -4
  532. package/js/x-modules/semantic-queries/components/semantic-query.vue.js.map +1 -1
  533. package/js/x-modules/semantic-queries/store/getters/normalized-query.getter.js +1 -1
  534. package/js/x-modules/semantic-queries/store/getters/normalized-query.getter.js.map +1 -1
  535. package/js/x-modules/semantic-queries/store/getters/request.getter.js +5 -4
  536. package/js/x-modules/semantic-queries/store/getters/request.getter.js.map +1 -1
  537. package/js/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.js +18 -0
  538. package/js/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.js.map +1 -0
  539. package/js/x-modules/semantic-queries/store/module.js +8 -2
  540. package/js/x-modules/semantic-queries/store/module.js.map +1 -1
  541. package/js/x-modules/semantic-queries/wiring.js +5 -0
  542. package/js/x-modules/semantic-queries/wiring.js.map +1 -1
  543. package/js/x-modules/tagging/components/tagging.vue.js +8 -7
  544. package/js/x-modules/tagging/components/tagging.vue.js.map +1 -1
  545. package/js/x-modules/tagging/service/{pdp-add-to-cart.service.js → external-tagging.service.js} +56 -25
  546. package/js/x-modules/tagging/service/external-tagging.service.js.map +1 -0
  547. package/js/x-modules/tagging/store/emitters.js +1 -1
  548. package/js/x-modules/tagging/store/emitters.js.map +1 -1
  549. package/js/x-modules/tagging/store/module.js +7 -3
  550. package/js/x-modules/tagging/store/module.js.map +1 -1
  551. package/js/x-modules/tagging/wiring.js +110 -9
  552. package/js/x-modules/tagging/wiring.js.map +1 -1
  553. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  554. package/js/x-modules/url/components/url-handler.vue2.js +4 -5
  555. package/js/x-modules/url/components/url-handler.vue2.js.map +1 -1
  556. package/js/x-modules/url/store/emitters.js +1 -0
  557. package/js/x-modules/url/store/emitters.js.map +1 -1
  558. package/js/x-modules/url/store/getters/url-params.getter.js +2 -3
  559. package/js/x-modules/url/store/getters/url-params.getter.js.map +1 -1
  560. package/js/x-modules/url/store/initial-state.js +2 -1
  561. package/js/x-modules/url/store/initial-state.js.map +1 -1
  562. package/js/x-modules/url/store/module.js +3 -0
  563. package/js/x-modules/url/store/module.js.map +1 -1
  564. package/js/x-modules/url/wiring.js +10 -1
  565. package/js/x-modules/url/wiring.js.map +1 -1
  566. package/package.json +50 -49
  567. package/related-prompts/index.d.ts +1 -0
  568. package/related-prompts/index.js +9 -0
  569. package/report/x-adapter-platform.api.json +895 -67
  570. package/report/x-components.api.json +16383 -17149
  571. package/report/x-components.api.md +834 -215
  572. package/report/x-types.api.json +320 -4
  573. package/tagging/index.js +2 -2
  574. package/types/adapter/mocked-responses.d.ts +3 -0
  575. package/types/adapter/mocked-responses.d.ts.map +1 -1
  576. package/types/components/base-dropdown.vue.d.ts +5 -5
  577. package/types/components/base-dropdown.vue.d.ts.map +1 -1
  578. package/types/components/base-grid.vue.d.ts +3 -3
  579. package/types/components/base-slider.vue.d.ts +74 -0
  580. package/types/components/base-slider.vue.d.ts.map +1 -0
  581. package/types/components/base-switch.vue.d.ts +2 -1
  582. package/types/components/base-switch.vue.d.ts.map +1 -1
  583. package/types/components/base-variable-column-grid.vue.d.ts +3 -3
  584. package/types/components/display-click-provider.vue.d.ts +61 -0
  585. package/types/components/display-click-provider.vue.d.ts.map +1 -0
  586. package/types/components/global-x-bus.vue.d.ts +14 -0
  587. package/types/components/global-x-bus.vue.d.ts.map +1 -1
  588. package/types/components/index.d.ts +3 -0
  589. package/types/components/index.d.ts.map +1 -1
  590. package/types/components/items-list.vue.d.ts +3 -3
  591. package/types/components/layouts/multi-column-max-width-layout.vue.d.ts +5 -5
  592. package/types/components/layouts/single-column-layout.vue.d.ts +3 -3
  593. package/types/components/modals/base-events-modal.vue.d.ts +2 -2
  594. package/types/components/modals/base-id-modal.vue.d.ts +2 -2
  595. package/types/components/modals/base-modal.vue.d.ts +10 -10
  596. package/types/components/modals/base-modal.vue.d.ts.map +1 -1
  597. package/types/components/modals/main-modal.vue.d.ts +2 -2
  598. package/types/components/page-selector.vue.d.ts +125 -0
  599. package/types/components/page-selector.vue.d.ts.map +1 -0
  600. package/types/components/panels/base-header-toggle-panel.vue.d.ts +5 -5
  601. package/types/components/panels/base-id-toggle-panel.vue.d.ts +5 -5
  602. package/types/components/panels/base-tabs-panel.vue.d.ts +8 -8
  603. package/types/components/panels/base-toggle-panel.vue.d.ts +3 -3
  604. package/types/components/result/base-result-add-to-cart.vue.d.ts +2 -0
  605. package/types/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
  606. package/types/components/result/base-result-image.vue.d.ts +10 -10
  607. package/types/components/result/base-result-image.vue.d.ts.map +1 -1
  608. package/types/components/sliding-panel.vue.d.ts +15 -5
  609. package/types/components/sliding-panel.vue.d.ts.map +1 -1
  610. package/types/components/snippet-callbacks.vue.d.ts +7 -0
  611. package/types/components/snippet-callbacks.vue.d.ts.map +1 -1
  612. package/types/components/suggestions/base-suggestions.vue.d.ts +3 -3
  613. package/types/composables/use-alias-api.d.ts +5 -0
  614. package/types/composables/use-alias-api.d.ts.map +1 -1
  615. package/types/composables/use-store.d.ts +2 -2
  616. package/types/composables/use-store.d.ts.map +1 -1
  617. package/types/directives/index.d.ts +1 -0
  618. package/types/directives/index.d.ts.map +1 -1
  619. package/types/directives/typing.d.ts +35 -0
  620. package/types/directives/typing.d.ts.map +1 -0
  621. package/types/index.d.ts +1 -0
  622. package/types/index.d.ts.map +1 -1
  623. package/types/store/index.d.ts +4 -1
  624. package/types/store/index.d.ts.map +1 -1
  625. package/types/tailwind/plugin-options.d.ts +1 -2
  626. package/types/tailwind/plugin-options.d.ts.map +1 -1
  627. package/types/types/animation-prop.d.ts +6 -2
  628. package/types/types/animation-prop.d.ts.map +1 -1
  629. package/types/types/origin.d.ts +3 -3
  630. package/types/types/origin.d.ts.map +1 -1
  631. package/types/types/page-mode.d.ts +2 -0
  632. package/types/types/page-mode.d.ts.map +1 -0
  633. package/types/types/url-params.d.ts +1 -0
  634. package/types/types/url-params.d.ts.map +1 -1
  635. package/types/views/home/types.d.ts +3 -0
  636. package/types/views/home/types.d.ts.map +1 -1
  637. package/types/wiring/events.types.d.ts +3 -1
  638. package/types/wiring/events.types.d.ts.map +1 -1
  639. package/types/x-installer/x-installer/types.d.ts +2 -2
  640. package/types/x-installer/x-installer/types.d.ts.map +1 -1
  641. package/types/x-installer/x-installer/x-installer.d.ts +4 -4
  642. package/types/x-installer/x-installer/x-installer.d.ts.map +1 -1
  643. package/types/x-modules/empathize/components/empathize.vue.d.ts +6 -6
  644. package/types/x-modules/empathize/components/empathize.vue.d.ts.map +1 -1
  645. package/types/x-modules/facets/components/facets/facets.vue.d.ts +3 -3
  646. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +9 -2
  647. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  648. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts +7 -0
  649. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  650. package/types/x-modules/facets/components/lists/filters-list.vue.d.ts +3 -3
  651. package/types/x-modules/facets/components/lists/selected-filters-list.vue.d.ts +3 -3
  652. package/types/x-modules/history-queries/components/my-history.vue.d.ts +3 -3
  653. package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts +3 -3
  654. package/types/x-modules/next-queries/components/next-queries-list.vue.d.ts +3 -3
  655. package/types/x-modules/next-queries/index.d.ts +1 -0
  656. package/types/x-modules/next-queries/index.d.ts.map +1 -1
  657. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts +3 -3
  658. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts.map +1 -1
  659. package/types/x-modules/queries-preview/components/query-preview.vue.d.ts.map +1 -1
  660. package/types/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.d.ts.map +1 -1
  661. package/types/x-modules/queries-preview/store/module.d.ts.map +1 -1
  662. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts +4 -2
  663. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts.map +1 -1
  664. package/types/x-modules/recommendations/components/recommendations.vue.d.ts +3 -3
  665. package/types/x-modules/related-prompts/components/index.d.ts +4 -0
  666. package/types/x-modules/related-prompts/components/index.d.ts.map +1 -0
  667. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts +28 -0
  668. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts.map +1 -0
  669. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts +106 -0
  670. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts.map +1 -0
  671. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts +131 -0
  672. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts.map +1 -0
  673. package/types/x-modules/related-prompts/events.types.d.ts +41 -0
  674. package/types/x-modules/related-prompts/events.types.d.ts.map +1 -0
  675. package/types/x-modules/related-prompts/index.d.ts +6 -0
  676. package/types/x-modules/related-prompts/index.d.ts.map +1 -0
  677. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts +17 -0
  678. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts.map +1 -0
  679. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts +13 -0
  680. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts.map +1 -0
  681. package/types/x-modules/related-prompts/store/actions/set-url-params.action.d.ts +11 -0
  682. package/types/x-modules/related-prompts/store/actions/set-url-params.action.d.ts.map +1 -0
  683. package/types/x-modules/related-prompts/store/emitters.d.ts +10 -0
  684. package/types/x-modules/related-prompts/store/emitters.d.ts.map +1 -0
  685. package/types/x-modules/related-prompts/store/getters/index.d.ts +3 -0
  686. package/types/x-modules/related-prompts/store/getters/index.d.ts.map +1 -0
  687. package/types/x-modules/related-prompts/store/getters/related-prompts-query.getter.d.ts +13 -0
  688. package/types/x-modules/related-prompts/store/getters/related-prompts-query.getter.d.ts.map +1 -0
  689. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts +14 -0
  690. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts.map +1 -0
  691. package/types/x-modules/related-prompts/store/index.d.ts +6 -0
  692. package/types/x-modules/related-prompts/store/index.d.ts.map +1 -0
  693. package/types/x-modules/related-prompts/store/module.d.ts +8 -0
  694. package/types/x-modules/related-prompts/store/module.d.ts.map +1 -0
  695. package/types/x-modules/related-prompts/store/types.d.ts +125 -0
  696. package/types/x-modules/related-prompts/store/types.d.ts.map +1 -0
  697. package/types/x-modules/related-prompts/types.d.ts +10 -0
  698. package/types/x-modules/related-prompts/types.d.ts.map +1 -0
  699. package/types/x-modules/related-prompts/wiring.d.ts +42 -0
  700. package/types/x-modules/related-prompts/wiring.d.ts.map +1 -0
  701. package/types/x-modules/related-prompts/x-module.d.ts +16 -0
  702. package/types/x-modules/related-prompts/x-module.d.ts.map +1 -0
  703. package/types/x-modules/related-tags/components/related-tags.vue.d.ts +3 -3
  704. package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts +5 -5
  705. package/types/x-modules/search/components/banners-list.vue.d.ts +3 -3
  706. package/types/x-modules/search/components/partial-results-list.vue.d.ts +3 -3
  707. package/types/x-modules/search/components/promoteds-list.vue.d.ts +3 -3
  708. package/types/x-modules/search/components/results-list.vue.d.ts +3 -3
  709. package/types/x-modules/search/components/sort-dropdown.vue.d.ts +1 -1
  710. package/types/x-modules/search/config.types.d.ts +2 -0
  711. package/types/x-modules/search/config.types.d.ts.map +1 -1
  712. package/types/x-modules/search/events.types.d.ts +4 -0
  713. package/types/x-modules/search/events.types.d.ts.map +1 -1
  714. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  715. package/types/x-modules/search/store/actions/save-search-response.action.d.ts.map +1 -1
  716. package/types/x-modules/search/store/module.d.ts +2 -0
  717. package/types/x-modules/search/store/module.d.ts.map +1 -1
  718. package/types/x-modules/search/store/types.d.ts +9 -1
  719. package/types/x-modules/search/store/types.d.ts.map +1 -1
  720. package/types/x-modules/search/wiring.d.ts +4 -0
  721. package/types/x-modules/search/wiring.d.ts.map +1 -1
  722. package/types/x-modules/search-box/components/search-input-placeholder.vue.d.ts +3 -3
  723. package/types/x-modules/semantic-queries/store/getters/index.d.ts +1 -0
  724. package/types/x-modules/semantic-queries/store/getters/index.d.ts.map +1 -1
  725. package/types/x-modules/semantic-queries/store/getters/normalized-query.getter.d.ts +1 -1
  726. package/types/x-modules/semantic-queries/store/getters/request.getter.d.ts +2 -1
  727. package/types/x-modules/semantic-queries/store/getters/request.getter.d.ts.map +1 -1
  728. package/types/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.d.ts +13 -0
  729. package/types/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.d.ts.map +1 -0
  730. package/types/x-modules/semantic-queries/store/module.d.ts.map +1 -1
  731. package/types/x-modules/semantic-queries/store/types.d.ts +13 -1
  732. package/types/x-modules/semantic-queries/store/types.d.ts.map +1 -1
  733. package/types/x-modules/semantic-queries/wiring.d.ts +3 -0
  734. package/types/x-modules/semantic-queries/wiring.d.ts.map +1 -1
  735. package/types/x-modules/tagging/components/tagging.vue.d.ts +14 -12
  736. package/types/x-modules/tagging/components/tagging.vue.d.ts.map +1 -1
  737. package/types/x-modules/tagging/config.types.d.ts +3 -3
  738. package/types/x-modules/tagging/config.types.d.ts.map +1 -1
  739. package/types/x-modules/tagging/events.types.d.ts +2 -2
  740. package/types/x-modules/tagging/service/{pdp-add-to-cart.service.d.ts → external-tagging.service.d.ts} +31 -13
  741. package/types/x-modules/tagging/service/external-tagging.service.d.ts.map +1 -0
  742. package/types/x-modules/tagging/service/index.d.ts +1 -1
  743. package/types/x-modules/tagging/service/index.d.ts.map +1 -1
  744. package/types/x-modules/tagging/service/types.d.ts +13 -4
  745. package/types/x-modules/tagging/service/types.d.ts.map +1 -1
  746. package/types/x-modules/tagging/store/module.d.ts.map +1 -1
  747. package/types/x-modules/tagging/wiring.d.ts +54 -2
  748. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  749. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  750. package/types/x-modules/url/store/getters/url-params.getter.d.ts +2 -3
  751. package/types/x-modules/url/store/getters/url-params.getter.d.ts.map +1 -1
  752. package/types/x-modules/url/store/initial-state.d.ts.map +1 -1
  753. package/types/x-modules/url/store/module.d.ts.map +1 -1
  754. package/types/x-modules/url/store/types.d.ts +6 -0
  755. package/types/x-modules/url/store/types.d.ts.map +1 -1
  756. package/types/x-modules/url/wiring.d.ts +9 -0
  757. package/types/x-modules/url/wiring.d.ts.map +1 -1
  758. package/types/x-modules/x-modules.types.d.ts +2 -0
  759. package/types/x-modules/x-modules.types.d.ts.map +1 -1
  760. package/url/index.js +1 -1
  761. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragekey.md +0 -11
  762. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragettlms.md +0 -11
  763. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.instance.md +0 -13
  764. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.localstorageservice.md +0 -11
  765. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.md +0 -41
  766. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.result_clicked_id_key.md +0 -13
  767. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.sessionstorageservice.md +0 -11
  768. package/docs/API-reference/api/x-components.pdpaddtocartservice.md +0 -22
  769. package/docs/API-reference/api/x-components.taggingconfig.clickedresultstoragettlms.md +0 -13
  770. package/docs/API-reference/api/x-components.usestore.md +0 -19
  771. package/docs/assets/features/overview-my-history.svg +0 -279
  772. package/docs/assets/features/overview-product-results-card.svg +0 -128
  773. package/docs/assets/interface/build-search-ui.svg +0 -167
  774. package/docs/assets/interface/experience-search-intro.svg +0 -1
  775. package/docs/assets/interface/integration-guide.svg +0 -1
  776. package/docs/assets/interface/integration-video.png +0 -0
  777. package/docs/assets/interface/x-architecture.svg +0 -1
  778. package/docs/assets/interface/x-empathize.gif +0 -0
  779. package/docs/assets/interface/x-facets.gif +0 -0
  780. package/docs/assets/interface/x-facets.svg +0 -189
  781. package/docs/assets/interface/x-history-queries.gif +0 -0
  782. package/docs/assets/interface/x-id-results.gif +0 -0
  783. package/docs/assets/interface/x-next-queries.gif +0 -0
  784. package/docs/assets/interface/x-popular-searches.gif +0 -0
  785. package/docs/assets/interface/x-query-suggestions.gif +0 -0
  786. package/docs/assets/interface/x-recommendations.gif +0 -0
  787. package/docs/assets/interface/x-recommendations.svg +0 -472
  788. package/docs/assets/interface/x-related-tags.gif +0 -0
  789. package/docs/assets/interface/x-results-layout.svg +0 -259
  790. package/docs/assets/interface/x-search-box-elements.svg +0 -1
  791. package/docs/assets/interface/x-search-box.svg +0 -60
  792. package/docs/build-search-ui/README.md +0 -127
  793. package/docs/build-search-ui/sidebar.js +0 -7
  794. package/docs/build-search-ui/web-archetype-development-guide.md +0 -186
  795. package/docs/build-search-ui/web-archetype-integration-guide.md +0 -458
  796. package/docs/build-search-ui/web-how-to-use-x-components-guide.md +0 -200
  797. package/docs/build-search-ui/web-x-architecture.md +0 -83
  798. package/docs/build-search-ui/web-x-components-development-guide.md +0 -157
  799. package/docs/experience-search-and-discovery/README.md +0 -132
  800. package/docs/experience-search-and-discovery/empathize.md +0 -119
  801. package/docs/experience-search-and-discovery/facets-and-filters.md +0 -154
  802. package/docs/experience-search-and-discovery/history-queries.md +0 -70
  803. package/docs/experience-search-and-discovery/id-results.md +0 -49
  804. package/docs/experience-search-and-discovery/my-history.md +0 -60
  805. package/docs/experience-search-and-discovery/next-queries.md +0 -72
  806. package/docs/experience-search-and-discovery/popular-searches.md +0 -50
  807. package/docs/experience-search-and-discovery/product-results-ui.md +0 -82
  808. package/docs/experience-search-and-discovery/query-suggestions.md +0 -48
  809. package/docs/experience-search-and-discovery/recommendations.md +0 -134
  810. package/docs/experience-search-and-discovery/related-tags.md +0 -66
  811. package/docs/experience-search-and-discovery/search-box.md +0 -99
  812. package/docs/experience-search-and-discovery/serp-ui.md +0 -125
  813. package/docs/experience-search-and-discovery/sidebar.js +0 -17
  814. package/docs/experience-search-and-discovery/web-local-storage.md +0 -30
  815. package/docs/input-status-machine-state.png +0 -0
  816. package/js/composables/use-store.js +0 -15
  817. package/js/composables/use-store.js.map +0 -1
  818. package/js/utils/options-api.js +0 -4
  819. package/js/utils/options-api.js.map +0 -1
  820. package/js/x-modules/tagging/service/pdp-add-to-cart.service.js.map +0 -1
  821. package/types/utils/options-api.d.ts +0 -3
  822. package/types/utils/options-api.d.ts.map +0 -1
  823. package/types/x-modules/tagging/service/pdp-add-to-cart.service.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-to-top.vue2.js","sources":["../../../../../src/x-modules/scroll/components/scroll-to-top.vue"],"sourcesContent":["<template>\n <component :is=\"animation\">\n <BaseEventButton\n v-if=\"isVisible\"\n class=\"x-scroll-to-top x-button\"\n data-test=\"scroll-to-top\"\n aria-label=\"Scroll to top\"\n :events=\"events\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent } from 'vue';\n import { NoAnimation, BaseEventButton } from '../../../components';\n import { XEventsTypes } from '../../../wiring';\n import { scrollXModule } from '../x-module';\n import { AnimationProp } from '../../../types';\n import { useState } from '../../../composables';\n import { MainScrollId } from './scroll.const';\n\n /**\n * The `ScrollToTop` component is a button that the user can click to make a container scroll\n * up to its initial position.\n *\n * @public\n */\n export default defineComponent({\n name: 'ScrollToTop',\n xModule: scrollXModule.name,\n components: { BaseEventButton },\n props: {\n /**\n * Animation to use for showing/hiding the button.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Threshold in pixels from the top to show the button.\n *\n * @public\n */\n thresholdPx: Number,\n /**\n * Id of the target scroll component.\n *\n * @public\n */\n scrollId: {\n type: String,\n default: MainScrollId\n }\n },\n setup(props) {\n /**\n * State of all the scroll components in this module.\n *\n * @internal\n */\n // TODO: Directly retrieve the needed data in this computed property\n const { data } = useState('scroll', ['data']);\n\n /**\n * The scroll data retrieved for this component.\n *\n * @returns The scroll data for this component if a valid {@link ScrollToTop.scrollId} has been\n * passed. Otherwise it returns `null`.\n * @internal\n */\n const scrollData = computed(() => {\n return props.scrollId && data.value[props.scrollId]\n ? data.value[props.scrollId]\n : {\n position: 0,\n direction: 'UP',\n hasReachedStart: false,\n hasAlmostReachedEnd: false,\n hasReachedEnd: false\n };\n });\n\n /**\n * Event that will be emitted when the scroll to top is clicked.\n *\n * @returns The event to be emitted when the scroll to top is clicked. The id as a payload.\n * @internal\n */\n const events = computed(\n (): Partial<XEventsTypes> => ({ UserClickedScrollToTop: props.scrollId })\n );\n\n /**\n * Checks if the thresholdPx prop has been provided and if it is a number.\n *\n * @returns If the thresholdPx is a number or not.\n * @internal\n */\n const useThresholdStrategy = computed(() => typeof props.thresholdPx === 'number');\n\n /**\n * Checks if the threshold has been reached in case the threshold strategy is in use.\n *\n * @returns If the scrollTop is bigger than the thresholdPx.\n * @internal\n */\n const isThresholdReached = computed(\n () => useThresholdStrategy.value && scrollData.value.position > props.thresholdPx!\n );\n\n /**\n * Returns if the scroll has almost reached its end or not.\n *\n * @returns True if the scroll has almost reached the end and the user is still scrolling down.\n * @internal\n */\n const hasAlmostReachedScrollEnd = computed(\n () => scrollData.value.hasAlmostReachedEnd && scrollData.value.direction === 'DOWN'\n );\n\n /**\n * Whether if the button is visible or not depending on the strategy being used.\n *\n * @returns If the button should be visible or not.\n * @internal\n */\n const isVisible = computed(() =>\n useThresholdStrategy.value ? isThresholdReached.value : hasAlmostReachedScrollEnd.value\n );\n\n return {\n events,\n isVisible\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedScrollToTop`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the scroll\n that it going to be scrolled.\n\n## Examples\n\n### Basic example\n\nThe component renders whatever is passed to it in the default slot and scrolls to top the scroll\nwith an id `scrollId`.\n\nIt also receives an optional threshold in pixels. When the threshold is reached from the top, the\ncomponent will be shown once the user scrolls `UP`.\n\nIf this parameter is not provided the button will be visible when the user almost reaches the end of\nthe scroll.\n\n```vue\n<template>\n <div>\n <ScrollToTop scroll-id=\"scrollId\" :threshold-px=\"1000\">\n <span>Scroll to top</span>\n </ScrollToTop>\n </div>\n</template>\n\n<script>\n import { ScrollToTop } from '@empathyco/x-components/scroll';\n\n export default {\n name: 'ScrollToTopTest',\n components: {\n ScrollToTop\n }\n };\n</script>\n```\n</docs>\n"],"names":["NoAnimation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBE;;;;;AAKE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,aAAa,CAAC,IAAI;IAC3B,UAAU,EAAE,EAAE,eAAc,EAAG;AAC/B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,MAAMA,WAAU;AAC1B,SAAA;AACD;;;;AAIE;AACF,QAAA,WAAW,EAAE,MAAM;AACnB;;;;AAIE;AACF,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,YAAW;AACtB,SAAA;AACD,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT;;;;AAIE;;AAEF,QAAA,MAAM,EAAE,IAAK,EAAA,GAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7C;;;;;;AAME;AACF,QAAA,MAAM,UAAW,GAAE,QAAQ,CAAC,MAAM;YAChC,OAAO,KAAK,CAAC,QAAO,IAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;kBAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC3B,kBAAE;AACE,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,aAAa,EAAE,KAAI;iBACpB,CAAA;AACP,SAAC,CAAC,CAAA;AAEF;;;;;AAKE;AACF,QAAA,MAAM,MAAO,GAAE,QAAQ,CACrB,OAA8B,EAAE,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAA,CACzE,CAAA;AAED;;;;;AAKE;AACF,QAAA,MAAM,uBAAuB,QAAQ,CAAC,MAAM,OAAO,KAAK,CAAC,WAAU,KAAM,QAAQ,CAAC,CAAA;AAElF;;;;;AAKE;QACF,MAAM,kBAAmB,GAAE,QAAQ,CACjC,MAAM,oBAAoB,CAAC,SAAS,UAAU,CAAC,KAAK,CAAC,QAAS,GAAE,KAAK,CAAC,WAAW,CAClF,CAAA;AAED;;;;;AAKE;QACF,MAAM,yBAA0B,GAAE,QAAQ,CACxC,MAAM,UAAU,CAAC,KAAK,CAAC,mBAAkB,IAAK,UAAU,CAAC,KAAK,CAAC,SAAU,KAAI,MAAK,CACnF,CAAA;AAED;;;;;AAKE;QACF,MAAM,YAAY,QAAQ,CAAC,MACzB,oBAAoB,CAAC,KAAM,GAAE,kBAAkB,CAAC,KAAI,GAAI,yBAAyB,CAAC,KAAI,CACvF,CAAA;QAED,OAAO;YACL,MAAM;YACN,SAAQ;SACT,CAAA;KACH;AACD,CAAA,CAAC;;;;"}
1
+ {"version":3,"file":"scroll-to-top.vue2.js","sources":["../../../../../src/x-modules/scroll/components/scroll-to-top.vue"],"sourcesContent":["<template>\n <component :is=\"animation\">\n <BaseEventButton\n v-if=\"isVisible\"\n class=\"x-scroll-to-top x-button\"\n data-test=\"scroll-to-top\"\n aria-label=\"Scroll to top\"\n :events=\"events\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent } from 'vue';\n import { NoAnimation, BaseEventButton } from '../../../components';\n import { XEventsTypes } from '../../../wiring';\n import { scrollXModule } from '../x-module';\n import { AnimationProp } from '../../../types';\n import { useState } from '../../../composables';\n import { MainScrollId } from './scroll.const';\n\n /**\n * The `ScrollToTop` component is a button that the user can click to make a container scroll\n * up to its initial position.\n *\n * @public\n */\n export default defineComponent({\n name: 'ScrollToTop',\n xModule: scrollXModule.name,\n components: { BaseEventButton },\n props: {\n /**\n * Animation to use for showing/hiding the button.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Threshold in pixels from the top to show the button.\n *\n * @public\n */\n thresholdPx: Number,\n /**\n * Id of the target scroll component.\n *\n * @public\n */\n scrollId: {\n type: String,\n default: MainScrollId\n }\n },\n setup(props) {\n /**\n * State of all the scroll components in this module.\n *\n * @internal\n */\n // TODO: Directly retrieve the needed data in this computed property\n const { data } = useState('scroll', ['data']);\n\n /**\n * The scroll data retrieved for this component.\n *\n * @returns The scroll data for this component if a valid {@link ScrollToTop.scrollId} has been\n * passed. Otherwise it returns `null`.\n * @internal\n */\n const scrollData = computed(() => {\n return props.scrollId && data.value[props.scrollId]\n ? data.value[props.scrollId]\n : {\n position: 0,\n direction: 'UP',\n hasReachedStart: false,\n hasAlmostReachedEnd: false,\n hasReachedEnd: false\n };\n });\n\n /**\n * Event that will be emitted when the scroll to top is clicked.\n *\n * @returns The event to be emitted when the scroll to top is clicked. The id as a payload.\n * @internal\n */\n const events = computed(\n (): Partial<XEventsTypes> => ({ UserClickedScrollToTop: props.scrollId })\n );\n\n /**\n * Checks if the thresholdPx prop has been provided and if it is a number.\n *\n * @returns If the thresholdPx is a number or not.\n * @internal\n */\n const useThresholdStrategy = computed(() => typeof props.thresholdPx === 'number');\n\n /**\n * Checks if the threshold has been reached in case the threshold strategy is in use.\n *\n * @returns If the scrollTop is bigger than the thresholdPx.\n * @internal\n */\n const isThresholdReached = computed(\n () => useThresholdStrategy.value && scrollData.value.position > props.thresholdPx!\n );\n\n /**\n * Returns if the scroll has almost reached its end or not.\n *\n * @returns True if the scroll has almost reached the end and the user is still scrolling down.\n * @internal\n */\n const hasAlmostReachedScrollEnd = computed(\n () => scrollData.value.hasAlmostReachedEnd && scrollData.value.direction === 'DOWN'\n );\n\n /**\n * Whether if the button is visible or not depending on the strategy being used.\n *\n * @returns If the button should be visible or not.\n * @internal\n */\n const isVisible = computed(() =>\n useThresholdStrategy.value ? isThresholdReached.value : hasAlmostReachedScrollEnd.value\n );\n\n return {\n events,\n isVisible\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedScrollToTop`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the scroll\n that it going to be scrolled.\n\n## Examples\n\n### Basic example\n\nThe component renders whatever is passed to it in the default slot and scrolls to top the scroll\nwith an id `scrollId`.\n\nIt also receives an optional threshold in pixels. When the threshold is reached from the top, the\ncomponent will be shown once the user scrolls `UP`.\n\nIf this parameter is not provided the button will be visible when the user almost reaches the end of\nthe scroll.\n\n```vue\n<template>\n <div>\n <ScrollToTop scroll-id=\"scrollId\" :threshold-px=\"1000\">\n <span>Scroll to top</span>\n </ScrollToTop>\n </div>\n</template>\n\n<script>\n import { ScrollToTop } from '@empathyco/x-components/scroll';\n\n export default {\n name: 'ScrollToTopTest',\n components: {\n ScrollToTop\n }\n };\n</script>\n```\n</docs>\n"],"names":["NoAnimation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBE;;;;;AAKE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,aAAa,CAAC,IAAI;IAC3B,UAAU,EAAE,EAAE,eAAc,EAAG;AAC/B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,MAAMA,WAAU;AAC1B,SAAA;AACD;;;;AAIE;AACF,QAAA,WAAW,EAAE,MAAM;AACnB;;;;AAIE;AACF,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,YAAW;AACtB,SAAA;AACD,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT;;;;AAIE;;AAEF,QAAA,MAAM,EAAE,IAAK,EAAA,GAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7C;;;;;;AAME;AACF,QAAA,MAAM,UAAW,GAAE,QAAQ,CAAC,MAAM;YAChC,OAAO,KAAK,CAAC,QAAO,IAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;kBAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC3B,kBAAE;AACE,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,aAAa,EAAE,KAAI;iBACpB,CAAA;AACP,SAAC,CAAC,CAAA;AAEF;;;;;AAKE;AACF,QAAA,MAAM,MAAO,GAAE,QAAQ,CACrB,OAA8B,EAAE,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAA,CACzE,CAAA;AAED;;;;;AAKE;AACF,QAAA,MAAM,uBAAuB,QAAQ,CAAC,MAAM,OAAO,KAAK,CAAC,WAAU,KAAM,QAAQ,CAAC,CAAA;AAElF;;;;;AAKE;QACF,MAAM,kBAAmB,GAAE,QAAQ,CACjC,MAAM,oBAAoB,CAAC,SAAS,UAAU,CAAC,KAAK,CAAC,QAAS,GAAE,KAAK,CAAC,WAAW,CAClF,CAAA;AAED;;;;;AAKE;QACF,MAAM,yBAA0B,GAAE,QAAQ,CACxC,MAAM,UAAU,CAAC,KAAK,CAAC,mBAAkB,IAAK,UAAU,CAAC,KAAK,CAAC,SAAU,KAAI,MAAK,CACnF,CAAA;AAED;;;;;AAKE;QACF,MAAM,YAAY,QAAQ,CAAC,MACzB,oBAAoB,CAAC,KAAM,GAAE,kBAAkB,CAAC,KAAI,GAAI,yBAAyB,CAAC,KAAI,CACvF,CAAA;QAED,OAAO;YACL,MAAM;YACN,SAAQ;SACT,CAAA;KACH;AACD,CAAA,CAAC;;;;"}
@@ -1,3 +1,4 @@
1
+ import '@empathyco/x-utils';
1
2
  import { createStoreEmitters } from '../../../store/utils/store-emitters.utils.js';
2
3
  import { scrollXStoreModule } from './module.js';
3
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/scroll/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { scrollXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the scroll module.\n *\n * @internal\n */\nexport const scrollEmitters = createStoreEmitters(scrollXStoreModule, {});\n"],"names":[],"mappings":";;;AAGA;;;;AAIG;AACU,MAAA,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,EAAE;;;;"}
1
+ {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/scroll/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { scrollXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the scroll module.\n *\n * @internal\n */\nexport const scrollEmitters = createStoreEmitters(scrollXStoreModule, {});\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AACU,MAAA,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,EAAE;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './partial-results-list.vue2.js';
2
- import { openBlock, createBlock, resolveDynamicComponent, withCtx, createElementBlock, Fragment, renderList, createCommentVNode, renderSlot } from 'vue';
2
+ import { openBlock, createBlock, resolveDynamicComponent, withCtx, createElementBlock, Fragment, renderList, renderSlot, createCommentVNode } from 'vue';
3
3
  import './partial-results-list.vue3.js';
4
4
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
5
5
 
@@ -20,7 +20,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
20
20
  class: "x-partial-result",
21
21
  "data-test": "partial-result"
22
22
  }, [
23
- createCommentVNode("\n @slot (Required) Partial results item content\n @binding {Partial} partialResult - Partial Result data\n "),
24
23
  renderSlot(_ctx.$slots, "default", { partialResult }, void 0, true)
25
24
  ]);
26
25
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"partial-results-list.vue.js","sources":["../../../../../src/x-modules/search/components/partial-results-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"partialResults.length\"\n class=\"x-partial-results-list\"\n data-test=\"partial-results\"\n tag=\"ul\"\n >\n <li\n v-for=\"(partialResult, index) in partialResults\"\n :key=\"`${partialResult.query}-${index}`\"\n class=\"x-partial-result\"\n data-test=\"partial-result\"\n >\n <!--\n @slot (Required) Partial results item content\n @binding {Partial} partialResult - Partial Result data\n -->\n <slot :partialResult=\"partialResult\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { PartialResult } from '@empathyco/x-types';\n import { computed, ComputedRef, defineComponent } from 'vue';\n import { searchXModule } from '../x-module';\n import { AnimationProp } from '../../../types/animation-prop';\n import { useState } from '../../../composables/use-state';\n\n /**\n * It renders a list of partial results from {@link SearchState.partialResults} by default.\n * It also provides the partial result slot to customize the item with the partial result bound.\n *\n * @public\n */\n export default defineComponent({\n name: 'PartialResultsList',\n xModule: searchXModule.name,\n props: {\n /**\n * Animation component that will be used to animate the partial results.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: 'ul'\n },\n\n /**\n * Maximum number of partial results to show.\n *\n * @public\n */\n maxItemsToRender: {\n type: Number,\n default: 5\n }\n },\n setup(props) {\n /**\n * The partials results from the search state.\n *\n * @public\n */\n const items: ComputedRef<PartialResult[]> = useState('search', [\n 'partialResults'\n ]).partialResults;\n\n /**\n * A limited number of partial results.\n *\n * @returns The partial results sliced by the maxItemsToRender.\n *\n * @internal\n */\n const partialResults = computed(() => items.value.slice(0, props.maxItemsToRender));\n\n return {\n partialResults\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-partial-results-list {\n display: flex;\n flex-flow: column nowrap;\n list-style-type: none;\n padding: 0;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThis component loops through an array of partials an exposed a slot to use customize each partial.\n\n### Basic example\n\nIt renders a list of partial results using the default slot:\n\n```vue\n<template>\n <PartialResultsList>\n <template #default=\"{ partialResult }\">\n <ResultsList :results=\"partialResult.results\" />\n </template>\n </PartialResultsList>\n</template>\n```\n\n### Configuring the number of partials\n\nIt sets the maximum partials to show to 3.\n\n```vue\n<template>\n <PartialResultsList :maxItemsToRender=\"3\">\n <template #default=\"{ partialResult }\">\n <ResultsList :results=\"partialResult.results\" />\n </template>\n </PartialResultsList>\n</template>\n```\n\n### Rendering usage\n\nIt renders a list of partial results using the default slot. It will show the query, the partial\nresults and a button to update the query with the partial one.\n\n```vue\n<template>\n <PartialResultsList>\n <template #default=\"{ partialResult }\">\n <span>{{ partialResult.query }}</span>\n <BaseGrid :columns=\"4\" :items=\"partialResult.results\">\n <template #result=\"{ item }\">\n <BaseResultLink :result=\"item\">\n <template #default=\"{ item }\">\n <BaseResultImage :result=\"item\" />\n <span class=\"x-result__title\">{{ item.name }}</span>\n </template>\n </BaseResultLink>\n </template>\n </BaseGrid>\n <PartialQueryButton :query=\"partialResult.query\">\n <template #default=\"{ query }\">Ver todos {{ query }}</template>\n </PartialQueryButton>\n </template>\n </PartialResultsList>\n</template>\n```\n</docs>\n"],"names":["animation","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","_createCommentVNode"],"mappings":";;;;;AACE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EADF,MAESA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;AAFT,EAAA,OAAA,IAAA,CAAA,cAAA,CAAA,MAAA,IAAAC,SAAA,EAIkC,EAAAC,WAAA,CAAAC,uBAAA,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA;AAAA,IAC9B,GAAA,EAAA,CAAA;AAAA,IACA,KAAI,EAAA,wBAAA;AAAA,IAAA,WAAA,EAAA,iBAAA;AANR,IAAA,GAAA,EAAA,IAAA;AAAA,GAAA,EAAA;;AAUe,OAAAF,SAAA,CAAA,IAAA,CAAA,EAAAG,kBAAA;AAAA,QAAuBC,QAAA;AAAA,QAAK,IAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,cAAA,EAAA,CAAA,aAAA,EAAA,KAAA,KAAA;AAChC,UAAA,OAAAL,SAAA,EAAmB,EAAAG,kBAAA,CAAA,IAAA,EAAA;AAAA,YACxB,sBAAU,KAAgB,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAA,kBAAA;AAE1B,YAAA,WAAA,EAAA,gBAAA;AAAA,WAIA,EAAA;AAAA,YAAAG,kBAAA,CAAA,mIAAA,CAAA;;;AAlBN,SAAA,CAAA;AAAA,QAAA,GAAA;AAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AAAA,GAAA,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"partial-results-list.vue.js","sources":["../../../../../src/x-modules/search/components/partial-results-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"partialResults.length\"\n class=\"x-partial-results-list\"\n data-test=\"partial-results\"\n tag=\"ul\"\n >\n <li\n v-for=\"(partialResult, index) in partialResults\"\n :key=\"`${partialResult.query}-${index}`\"\n class=\"x-partial-result\"\n data-test=\"partial-result\"\n >\n <!--\n @slot (Required) Partial results item content\n @binding {Partial} partialResult - Partial Result data\n -->\n <slot :partialResult=\"partialResult\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { PartialResult } from '@empathyco/x-types';\n import { computed, ComputedRef, defineComponent } from 'vue';\n import { searchXModule } from '../x-module';\n import { AnimationProp } from '../../../types/animation-prop';\n import { useState } from '../../../composables/use-state';\n\n /**\n * It renders a list of partial results from {@link SearchState.partialResults} by default.\n * It also provides the partial result slot to customize the item with the partial result bound.\n *\n * @public\n */\n export default defineComponent({\n name: 'PartialResultsList',\n xModule: searchXModule.name,\n props: {\n /**\n * Animation component that will be used to animate the partial results.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: 'ul'\n },\n\n /**\n * Maximum number of partial results to show.\n *\n * @public\n */\n maxItemsToRender: {\n type: Number,\n default: 5\n }\n },\n setup(props) {\n /**\n * The partials results from the search state.\n *\n * @public\n */\n const items: ComputedRef<PartialResult[]> = useState('search', [\n 'partialResults'\n ]).partialResults;\n\n /**\n * A limited number of partial results.\n *\n * @returns The partial results sliced by the maxItemsToRender.\n *\n * @internal\n */\n const partialResults = computed(() => items.value.slice(0, props.maxItemsToRender));\n\n return {\n partialResults\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-partial-results-list {\n display: flex;\n flex-flow: column nowrap;\n list-style-type: none;\n padding: 0;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThis component loops through an array of partials an exposed a slot to use customize each partial.\n\n### Basic example\n\nIt renders a list of partial results using the default slot:\n\n```vue\n<template>\n <PartialResultsList>\n <template #default=\"{ partialResult }\">\n <ResultsList :results=\"partialResult.results\" />\n </template>\n </PartialResultsList>\n</template>\n```\n\n### Configuring the number of partials\n\nIt sets the maximum partials to show to 3.\n\n```vue\n<template>\n <PartialResultsList :maxItemsToRender=\"3\">\n <template #default=\"{ partialResult }\">\n <ResultsList :results=\"partialResult.results\" />\n </template>\n </PartialResultsList>\n</template>\n```\n\n### Rendering usage\n\nIt renders a list of partial results using the default slot. It will show the query, the partial\nresults and a button to update the query with the partial one.\n\n```vue\n<template>\n <PartialResultsList>\n <template #default=\"{ partialResult }\">\n <span>{{ partialResult.query }}</span>\n <BaseGrid :columns=\"4\" :items=\"partialResult.results\">\n <template #result=\"{ item }\">\n <BaseResultLink :result=\"item\">\n <template #default=\"{ item }\">\n <BaseResultImage :result=\"item\" />\n <span class=\"x-result__title\">{{ item.name }}</span>\n </template>\n </BaseResultLink>\n </template>\n </BaseGrid>\n <PartialQueryButton :query=\"partialResult.query\">\n <template #default=\"{ query }\">Ver todos {{ query }}</template>\n </PartialQueryButton>\n </template>\n </PartialResultsList>\n</template>\n```\n</docs>\n"],"names":["animation","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","_createCommentVNode"],"mappings":";;;;;AACE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EADF,MAESA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;AAFT,EAAA,OAAA,IAAA,CAAA,cAAA,CAAA,MAAA,IAAAC,SAAA,EAIkC,EAAAC,WAAA,CAAAC,uBAAA,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA;AAAA,IAC9B,GAAA,EAAA,CAAA;AAAA,IACA,KAAI,EAAA,wBAAA;AAAA,IAAA,WAAA,EAAA,iBAAA;AANR,IAAA,GAAA,EAAA,IAAA;AAAA,GAAA,EAAA;;AAUe,OAAAF,SAAA,CAAA,IAAA,CAAA,EAAAG,kBAAA;AAAA,QAAuBC,QAAA;AAAA,QAAK,IAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,cAAA,EAAA,CAAA,aAAA,EAAA,KAAA,KAAA;AAChC,UAAA,OAAAL,SAAA,EAAmB,EAAAG,kBAAA,CAAA,IAAA,EAAA;AAAA,YACxB,sBAAU,KAAgB,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAA,kBAAA;YAM1B,WAAuC,EAAA,gBAAA;AAAA,WAAA,EAAA;;;AAlB7C,SAAA,CAAA;AAAA,QAAA,GAAA;AAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AAAA,GAAA,CAAA,IAAAG,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA,CAAA;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, provide, ref, computed, watch, h } from 'vue';
2
2
  import { LIST_ITEMS_KEY, QUERY_KEY, HAS_MORE_ITEMS_KEY } from '../../../components/decorators/injection.consts.js';
3
3
  import ItemsList from '../../../components/items-list.vue.js';
4
- import { animationProp } from '../../../utils/options-api.js';
5
4
  import { useState } from '../../../composables/use-state.js';
6
5
  import { searchXModule } from '../x-module.js';
6
+ import { AnimationProp } from '../../../types/animation-prop.js';
7
7
 
8
8
  /**
9
9
  * It renders a {@link ItemsList} list with the results from {@link SearchState.results} by
@@ -22,7 +22,7 @@ var _sfc_main = defineComponent({
22
22
  props: {
23
23
  /** Animation component that will be used to animate the results. */
24
24
  animation: {
25
- type: animationProp,
25
+ type: AnimationProp,
26
26
  default: 'ul'
27
27
  }
28
28
  },
@@ -1 +1 @@
1
- {"version":3,"file":"results-list.vue.js","sources":["../../../../../src/x-modules/search/components/results-list.vue"],"sourcesContent":["<script lang=\"ts\">\n import { computed, ComputedRef, defineComponent, h, provide, Ref, ref, watch } from 'vue';\n import { Result } from '@empathyco/x-types';\n import {\n HAS_MORE_ITEMS_KEY,\n LIST_ITEMS_KEY,\n QUERY_KEY\n } from '../../../components/decorators/injection.consts';\n import ItemsList from '../../../components/items-list.vue';\n import { RequestStatus } from '../../../store/utils/status-store.utils';\n import { animationProp } from '../../../utils/options-api';\n import { useState } from '../../../composables/use-state';\n import { searchXModule } from '../x-module';\n\n /**\n * It renders a {@link ItemsList} list with the results from {@link SearchState.results} by\n * default.\n *\n * The component provides a default slot which wraps the whole component with the `results` bound.\n *\n * It also provides the slot result to customize the item, which is within the default slot, with\n * the result bound.\n *\n * @public\n */\n export default defineComponent({\n name: 'ResultsList',\n xModule: searchXModule.name,\n props: {\n /** Animation component that will be used to animate the results. */\n animation: {\n type: animationProp,\n default: 'ul'\n }\n },\n emits: ['UserReachedResultsListEnd'],\n setup(props, { slots }) {\n /**\n * The results to render from the state.\n *\n * @remarks The results list are provided with `items` key. It can be\n * concatenated with list items from components such as `BannersList`, `PromotedsList`,\n * `BaseGrid` or any component that injects the list.\n */\n const items: ComputedRef<Result[]> = useState('search', ['results']).results;\n provide<ComputedRef<Result[]>>(LIST_ITEMS_KEY as string, items);\n\n /** The total number of results, taken from the state. */\n const totalResults: ComputedRef<number> = useState('search', ['totalResults']).totalResults;\n\n /** This query is updated only when the search request has succeeded. */\n let providedQuery = ref('');\n provide<Ref<string>>(QUERY_KEY as string, providedQuery);\n\n /** Indicates if there are more available results that have not been injected. */\n const hasMoreItems = computed(() => items.value.length < totalResults.value);\n provide<ComputedRef<boolean>>(HAS_MORE_ITEMS_KEY as string, hasMoreItems);\n\n /** The status of the search request, taken from the state. */\n const searchStatus: ComputedRef<RequestStatus> = useState('search', ['status']).status;\n\n /** The query of the search request, taken from the state. */\n const searchQuery: ComputedRef<string> = useState('search', ['query']).query;\n\n /**\n * Updates the query to be provided to the child components\n * when the search request has succeeded.\n *\n * @param status - The status of the search request.\n */\n function updateQuery(status: RequestStatus) {\n if (status === 'success') {\n providedQuery.value = searchQuery.value;\n }\n }\n\n /**\n * Watches the searchStatus and triggers updateQuery as callback\n * when it changes.\n *\n * @param status - The status of the search request.\n */\n watch(searchStatus, () => updateQuery(searchStatus.value), { immediate: true });\n\n return () => {\n const innerProps = { items: items.value, animation: props.animation };\n // https://vue-land.github.io/faq/forwarding-slots#passing-all-slots\n return slots.default?.(innerProps)[0] ?? h(ItemsList, innerProps, slots);\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\n<!-- prettier-ignore-start -->\n:::warning Backend service required\nTo use this component, the Search service must be implemented.\n:::\n<!-- prettier-ignore-end -->\n\nHere you have a basic example of how the ResultsList is rendered.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList />\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n }\n };\n</script>\n```\n\n### Play with the animation\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList :animation=\"fadeAndSlide\" />\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n import { FadeAndSlide } from '@empathyco/x-components/animations';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n },\n data() {\n return {\n fadeAndSlide: FadeAndSlide\n };\n }\n };\n</script>\n```\n\n### Overriding default content\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList #default=\"{ items, animation }\">\n <BaseGrid :items=\"items\" :animation=\"animation\">\n <template #result=\"{ item }\">\n <span>Result: {{ item.name }}</span>\n </template>\n <template #default=\"{ item }\">\n <span>Default: {{ item }}</span>\n </template>\n </BaseGrid>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n import { BaseGrid } from '@empathyco/x-components';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList,\n BaseGrid\n }\n };\n</script>\n```\n\n### Overriding result content\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList #result=\"{ item }\">\n <span class=\"result\">\n {{ item.name }}\n </span>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { SearchInput, ResultsList } from '@empathyco/x-components/search';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n }\n };\n</script>\n```\n\n### Data injection\n\nStarting with the `ResultsList` component as root element, you can concat the list of list items\nusing `BannersList`, `PromotedsList`, `BaseGrid` or any component that injects the `listItems`\nvalue.\n\nThe order in which elements are placed in the template will define the concat strategy of the items,\nso it is important to define it properly; for example, Promoteds will be usually before Banners so\nfirst promoted items are inserted within the results and then banner items are placed on top of\nthat, occupying the rows.\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList>\n <PromotedsList>\n <BannersList>\n <template #result=\"{ item }\">Result: {{ item.id }}</template>\n <template #banner=\"{ item }\">Banner: {{ item.id }}</template>\n <template #promoted=\"{ item }\">Promoted: {{ item.id }}</template>\n </BannersList>\n </PromotedsList>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { ResultsList, BannersList, PromotedsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList,\n BannersList,\n PromotedsList\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;AAcE;;;;;;;;;;AAUE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;;AAEL,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,IAAG;AACd,SAAA;AACD,KAAA;IACD,KAAK,EAAE,CAAC,2BAA2B,CAAC;AACpC,IAAA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAI,EAAG,EAAA;AACpB;;;;;;AAME;AACF,QAAA,MAAM,KAAK,GAA0B,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;AAC5E,QAAA,OAAO,CAAwB,cAAwB,EAAE,KAAK,CAAC,CAAA;;AAG/D,QAAA,MAAM,YAAY,GAAwB,QAAQ,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAA;;AAG3F,QAAA,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAA;AAC3B,QAAA,OAAO,CAAc,SAAmB,EAAE,aAAa,CAAC,CAAA;;AAGxD,QAAA,MAAM,YAAa,GAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,MAAK,GAAI,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5E,QAAA,OAAO,CAAuB,kBAA4B,EAAE,YAAY,CAAC,CAAA;;AAGzE,QAAA,MAAM,YAAY,GAA+B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;;AAGtF,QAAA,MAAM,WAAW,GAAwB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AAE5E;;;;;AAKE;QACF,SAAS,WAAW,CAAC,MAAqB,EAAA;YACxC,IAAI,WAAW,SAAS,EAAE;AACxB,gBAAA,aAAa,CAAC,KAAM,GAAE,WAAW,CAAC,KAAK,CAAA;AACzC,aAAA;SACF;AAEA;;;;;AAKE;AACF,QAAA,KAAK,CAAC,YAAY,EAAE,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAG,EAAG,CAAC,CAAA;AAE/E,QAAA,OAAO,MAAM;AACX,YAAA,MAAM,UAAW,GAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAQ,EAAG,CAAA;;AAErE,YAAA,OAAO,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAC1E,SAAC,CAAA;KACH;AACD,CAAA,CAAC;;;;"}
1
+ {"version":3,"file":"results-list.vue.js","sources":["../../../../../src/x-modules/search/components/results-list.vue"],"sourcesContent":["<script lang=\"ts\">\n import { computed, ComputedRef, defineComponent, h, provide, Ref, ref, watch } from 'vue';\n import { Result } from '@empathyco/x-types';\n import {\n HAS_MORE_ITEMS_KEY,\n LIST_ITEMS_KEY,\n QUERY_KEY\n } from '../../../components/decorators/injection.consts';\n import ItemsList from '../../../components/items-list.vue';\n import { RequestStatus } from '../../../store/utils/status-store.utils';\n import { useState } from '../../../composables/use-state';\n import { searchXModule } from '../x-module';\n import { AnimationProp } from '../../../types';\n\n /**\n * It renders a {@link ItemsList} list with the results from {@link SearchState.results} by\n * default.\n *\n * The component provides a default slot which wraps the whole component with the `results` bound.\n *\n * It also provides the slot result to customize the item, which is within the default slot, with\n * the result bound.\n *\n * @public\n */\n export default defineComponent({\n name: 'ResultsList',\n xModule: searchXModule.name,\n props: {\n /** Animation component that will be used to animate the results. */\n animation: {\n type: AnimationProp,\n default: 'ul'\n }\n },\n emits: ['UserReachedResultsListEnd'],\n setup(props, { slots }) {\n /**\n * The results to render from the state.\n *\n * @remarks The results list are provided with `items` key. It can be\n * concatenated with list items from components such as `BannersList`, `PromotedsList`,\n * `BaseGrid` or any component that injects the list.\n */\n const items: ComputedRef<Result[]> = useState('search', ['results']).results;\n provide<ComputedRef<Result[]>>(LIST_ITEMS_KEY as string, items);\n\n /** The total number of results, taken from the state. */\n const totalResults: ComputedRef<number> = useState('search', ['totalResults']).totalResults;\n\n /** This query is updated only when the search request has succeeded. */\n let providedQuery = ref('');\n provide<Ref<string>>(QUERY_KEY as string, providedQuery);\n\n /** Indicates if there are more available results that have not been injected. */\n const hasMoreItems = computed(() => items.value.length < totalResults.value);\n provide<ComputedRef<boolean>>(HAS_MORE_ITEMS_KEY as string, hasMoreItems);\n\n /** The status of the search request, taken from the state. */\n const searchStatus: ComputedRef<RequestStatus> = useState('search', ['status']).status;\n\n /** The query of the search request, taken from the state. */\n const searchQuery: ComputedRef<string> = useState('search', ['query']).query;\n\n /**\n * Updates the query to be provided to the child components\n * when the search request has succeeded.\n *\n * @param status - The status of the search request.\n */\n function updateQuery(status: RequestStatus) {\n if (status === 'success') {\n providedQuery.value = searchQuery.value;\n }\n }\n\n /**\n * Watches the searchStatus and triggers updateQuery as callback\n * when it changes.\n *\n * @param status - The status of the search request.\n */\n watch(searchStatus, () => updateQuery(searchStatus.value), { immediate: true });\n\n return () => {\n const innerProps = { items: items.value, animation: props.animation };\n // https://vue-land.github.io/faq/forwarding-slots#passing-all-slots\n return slots.default?.(innerProps)[0] ?? h(ItemsList, innerProps, slots);\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\n<!-- prettier-ignore-start -->\n:::warning Backend service required\nTo use this component, the Search service must be implemented.\n:::\n<!-- prettier-ignore-end -->\n\nHere you have a basic example of how the ResultsList is rendered.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList />\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n }\n };\n</script>\n```\n\n### Play with the animation\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList :animation=\"fadeAndSlide\" />\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n import { FadeAndSlide } from '@empathyco/x-components/animations';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n },\n data() {\n return {\n fadeAndSlide: FadeAndSlide\n };\n }\n };\n</script>\n```\n\n### Overriding default content\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList #default=\"{ items, animation }\">\n <BaseGrid :items=\"items\" :animation=\"animation\">\n <template #result=\"{ item }\">\n <span>Result: {{ item.name }}</span>\n </template>\n <template #default=\"{ item }\">\n <span>Default: {{ item }}</span>\n </template>\n </BaseGrid>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { ResultsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n import { BaseGrid } from '@empathyco/x-components';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList,\n BaseGrid\n }\n };\n</script>\n```\n\n### Overriding result content\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList #result=\"{ item }\">\n <span class=\"result\">\n {{ item.name }}\n </span>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { SearchInput, ResultsList } from '@empathyco/x-components/search';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList\n }\n };\n</script>\n```\n\n### Data injection\n\nStarting with the `ResultsList` component as root element, you can concat the list of list items\nusing `BannersList`, `PromotedsList`, `BaseGrid` or any component that injects the `listItems`\nvalue.\n\nThe order in which elements are placed in the template will define the concat strategy of the items,\nso it is important to define it properly; for example, Promoteds will be usually before Banners so\nfirst promoted items are inserted within the results and then banner items are placed on top of\nthat, occupying the rows.\n\n```vue\n<template>\n <div>\n <SearchInput />\n <ResultsList>\n <PromotedsList>\n <BannersList>\n <template #result=\"{ item }\">Result: {{ item.id }}</template>\n <template #banner=\"{ item }\">Banner: {{ item.id }}</template>\n <template #promoted=\"{ item }\">Promoted: {{ item.id }}</template>\n </BannersList>\n </PromotedsList>\n </ResultsList>\n </div>\n</template>\n\n<script>\n import { ResultsList, BannersList, PromotedsList } from '@empathyco/x-components/search';\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ResultsListDemo',\n components: {\n SearchInput,\n ResultsList,\n BannersList,\n PromotedsList\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;AAcE;;;;;;;;;;AAUE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;;AAEL,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,IAAG;AACd,SAAA;AACD,KAAA;IACD,KAAK,EAAE,CAAC,2BAA2B,CAAC;AACpC,IAAA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAI,EAAG,EAAA;AACpB;;;;;;AAME;AACF,QAAA,MAAM,KAAK,GAA0B,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;AAC5E,QAAA,OAAO,CAAwB,cAAwB,EAAE,KAAK,CAAC,CAAA;;AAG/D,QAAA,MAAM,YAAY,GAAwB,QAAQ,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAA;;AAG3F,QAAA,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAA;AAC3B,QAAA,OAAO,CAAc,SAAmB,EAAE,aAAa,CAAC,CAAA;;AAGxD,QAAA,MAAM,YAAa,GAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,MAAK,GAAI,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5E,QAAA,OAAO,CAAuB,kBAA4B,EAAE,YAAY,CAAC,CAAA;;AAGzE,QAAA,MAAM,YAAY,GAA+B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;;AAGtF,QAAA,MAAM,WAAW,GAAwB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AAE5E;;;;;AAKE;QACF,SAAS,WAAW,CAAC,MAAqB,EAAA;YACxC,IAAI,WAAW,SAAS,EAAE;AACxB,gBAAA,aAAa,CAAC,KAAM,GAAE,WAAW,CAAC,KAAK,CAAA;AACzC,aAAA;SACF;AAEA;;;;;AAKE;AACF,QAAA,KAAK,CAAC,YAAY,EAAE,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAG,EAAG,CAAC,CAAA;AAE/E,QAAA,OAAO,MAAM;AACX,YAAA,MAAM,UAAW,GAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAQ,EAAG,CAAA;;AAErE,YAAA,OAAO,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAC1E,SAAC,CAAA;KACH;AACD,CAAA,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './sort-dropdown.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, withCtx, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from 'vue';
3
3
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -15,7 +15,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
15
15
  "aria-label": "Select sorting"
16
16
  }, {
17
17
  toggle: withCtx(({ isOpen, item }) => [
18
- createCommentVNode("\n @slot Used to render the contents of the dropdown toggle button. If not provided, it uses\n the item slot as fallback.\n @binding {Sort} item - The sort data to render.\n @binding {boolean} isOpen - True if the dropdown is opened, and false if it is closed.\n "),
19
18
  renderSlot(_ctx.$slots, "toggle", normalizeProps(guardReactiveProps({ isOpen, item })), () => [
20
19
  createTextVNode(
21
20
  toDisplayString(item),
@@ -25,7 +24,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
25
24
  ])
26
25
  ]),
27
26
  item: withCtx(({ item, isHighlighted, isSelected }) => [
28
- createCommentVNode("\n @slot (required) Used to render each one of the items content, and as fallback\n for the toggle button content slot if it is not provided.\n @binding {Sort} item - Sort to render\n @binding {boolean} isHighlighted - True when the item has the focus.\n @binding {boolean} isSelected - True when the item is selected.\n "),
29
27
  renderSlot(_ctx.$slots, "item", normalizeProps(guardReactiveProps({ item, isHighlighted, isSelected })), () => [
30
28
  createTextVNode(
31
29
  toDisplayString(item),
@@ -1 +1 @@
1
- {"version":3,"file":"sort-dropdown.vue.js","sources":["../../../../../src/x-modules/search/components/sort-dropdown.vue"],"sourcesContent":["<template>\n <BaseDropdown\n ref=\"rootRef\"\n @update:modelValue=\"emitUserClickedASort\"\n :items=\"items\"\n :modelValue=\"selectedSort\"\n :animation=\"animation\"\n class=\"x-sort-dropdown\"\n data-test=\"sort-dropdown\"\n aria-label=\"Select sorting\"\n >\n <template #toggle=\"{ isOpen, item }\">\n <!--\n @slot Used to render the contents of the dropdown toggle button. If not provided, it uses\n the item slot as fallback.\n @binding {Sort} item - The sort data to render.\n @binding {boolean} isOpen - True if the dropdown is opened, and false if it is closed.\n -->\n <slot v-bind=\"{ isOpen, item }\" name=\"toggle\">{{ item }}</slot>\n </template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <!--\n @slot (required) Used to render each one of the items content, and as fallback\n for the toggle button content slot if it is not provided.\n @binding {Sort} item - Sort to render\n @binding {boolean} isHighlighted - True when the item has the focus.\n @binding {boolean} isSelected - True when the item is selected.\n -->\n <slot v-bind=\"{ item, isHighlighted, isSelected }\" name=\"item\">{{ item }}</slot>\n </template>\n </BaseDropdown>\n</template>\n\n<script lang=\"ts\">\n import { Sort } from '@empathyco/x-types';\n import Vue, { defineComponent, PropType, ref, watch } from 'vue';\n\n import BaseDropdown from '../../../components/base-dropdown.vue';\n import { use$x } from '../../../composables/use-$x';\n import { useState } from '../../../composables/use-state';\n import { searchXModule } from '../x-module';\n\n /**\n * The `SortDropdown` component allows user to select the search results order. This component\n * also allows to change the selected sort programmatically.\n */\n export default defineComponent({\n name: 'SortDropdown',\n xModule: searchXModule.name,\n components: { BaseDropdown },\n props: {\n /** The list of possible sort values. */\n items: {\n type: Array as PropType<Sort[]>,\n required: true\n },\n /** The transition to use for opening and closing the dropdown. */\n animation: [String, Object] as PropType<string | typeof Vue>\n },\n emits: ['change'],\n setup(_, { emit }) {\n const $x = use$x();\n\n const { sort: selectedSort } = useState('search', ['sort']);\n const rootRef = ref<typeof BaseDropdown>();\n\n watch(selectedSort, (value: Sort) => $x.emit('SelectedSortProvided', value), {\n immediate: true\n });\n\n /**\n * Emits the events related to the selection of a sort value.\n *\n * @remarks `(rootRef.value as any)?.$el` because rollup-plugin-vue understands\n * `ref<typeof BaseDropdown>` as VueConstructor which doesn't contain $el.\n *\n * @param sort - The selected sort.\n */\n function emitUserClickedASort(sort: Sort) {\n $x.emit('UserClickedASort', sort, { target: (rootRef.value as any)?.$el });\n emit('change', sort);\n }\n\n return {\n emitUserClickedASort,\n rootRef,\n selectedSort\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Sort Dropdown\n\nThe `SortDropdown` component can be used to change the way the search results are ordered.\n\nTo do so, the list of valid sort values has to be provided using the `items` prop. These are the\nvalues that can be received then in the `SearchAdapter`.\n\nThe component also optionally accepts the selected sort, which can be set using the `value` prop.\nThis prop allows changing programmatically the selected sort, as it will be synced with the store\nimmediately. If this prop is not provided, the first item from the `items` prop will be the one\nselected by default.\n\nThis component also allows customizing both the toggle button and each one of the possible sort\nvalues. This can be done with the`toggle` and `item` slots.\n\n## Events\n\nThis component emits 2 different events:\n\n- [`SelectedSortProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n To sync the selected sort with the store state value. This event is emitted as soon as the list of\n items is received, whenever this list changes if there is no provided value, and when the provided\n value changes.\n- [`UserClickedASort`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n As its name suggest, the event is emitted after the user clicks one of the sort options. This does\n not mean that the sort has changed, only that the user has clicked it.\n\n## Examples\n\n### Only providing the list of items\n\n```vue\n<template>\n <SortDropdown :items=\"sortValues\">\n <template #toggle=\"{ item, isOpen }\">{{ item }} {{ isOpen ? '🔼' : '🔽' }}</template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <span v-if=\"isSelected\">✅</span>\n <span v-if=\"isHighlighted\">🟢</span>\n {{ item }}\n </template>\n </SortDropdown>\n</template>\n\n<script>\n import { SortDropdown } from '@empathyco/x-components/search';\n\n export default {\n components: {\n SortDropdown\n },\n data() {\n return { sortValues: ['Relevance', 'Price asc', 'Price desc'] };\n }\n };\n</script>\n```\n\n### Providing also the selected value\n\n```vue\n<template>\n <SortDropdown v-model=\"selectedSort\" :items=\"sortValues\">\n <template #toggle=\"{ item, isOpen }\">{{ item }} {{ isOpen ? '🔼' : '🔽' }}</template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <span v-if=\"isSelected\">✅</span>\n <span v-if=\"isHighlighted\">🟢</span>\n {{ item }}\n </template>\n </SortDropdown>\n</template>\n\n<script>\n import { SortDropdown } from '@empathyco/x-components/search';\n\n export default {\n components: {\n SortDropdown\n },\n data() {\n return {\n selectedSort: 'Price asc',\n sortValues: ['Relevance', 'Price asc', 'Price desc']\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","emitUserClickedASort","selectedSort","animation","_withCtx","_createCommentVNode","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;kCACEA,gBA6Be,CAAA,cAAA,CAAA,CAAA;AA3BZ,EAAA,OAAAC,SAAA,EAAA,EAAAC,WAAA,CAAmBC,uBAAoB,EAAA;AAAA,IACvC,GAAK,EAAA,SAAA;AAAA,IACL,qBAAYC,EAAAA,IAAAA,CAAAA,oBAAAA;AAAAA,IACZ,KAAWC,EAAAA,IAAAA,CAAAA,KAAAA;AAAAA,IACZ,UAAM,EAAA,IAAA,CAAA,YAAA;AAAA,IACN,WAAS,IAAC,CAAA,SAAA;AAAA,IACV,KAAA,EAAA,iBAAA;AAAA,IAAA,WAAA,EAAA,eAAA;IAEW,YAAM,EAAA,gBAAA;AAAA,GAAA,EAAA;AAOf,IAAA,MAAA,EAAAC,OAAA,CAA+D,CAlBrE,EAAA,MAAA,EAAA,IAAA,EAAA,KAAA;AAAA,MAkB2DC,kBAAA,CAAA,sSAAA,CAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AAE5C,OAAA,CAAA;AAAA,KAAA,CAAA;AAQT,IAAA,IAAA,EAAAJ,OAAA,CAAgF,CA5BtF,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,KAAA;AAAA,MA4B4EC,kBAAA,CAAA,2WAAA,CAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,MAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AA5B5E,OAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"sort-dropdown.vue.js","sources":["../../../../../src/x-modules/search/components/sort-dropdown.vue"],"sourcesContent":["<template>\n <BaseDropdown\n ref=\"rootRef\"\n @update:modelValue=\"emitUserClickedASort\"\n :items=\"items\"\n :modelValue=\"selectedSort\"\n :animation=\"animation\"\n class=\"x-sort-dropdown\"\n data-test=\"sort-dropdown\"\n aria-label=\"Select sorting\"\n >\n <template #toggle=\"{ isOpen, item }\">\n <!--\n @slot Used to render the contents of the dropdown toggle button. If not provided, it uses\n the item slot as fallback.\n @binding {Sort} item - The sort data to render.\n @binding {boolean} isOpen - True if the dropdown is opened, and false if it is closed.\n -->\n <slot v-bind=\"{ isOpen, item }\" name=\"toggle\">{{ item }}</slot>\n </template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <!--\n @slot (required) Used to render each one of the items content, and as fallback\n for the toggle button content slot if it is not provided.\n @binding {Sort} item - Sort to render\n @binding {boolean} isHighlighted - True when the item has the focus.\n @binding {boolean} isSelected - True when the item is selected.\n -->\n <slot v-bind=\"{ item, isHighlighted, isSelected }\" name=\"item\">{{ item }}</slot>\n </template>\n </BaseDropdown>\n</template>\n\n<script lang=\"ts\">\n import { Sort } from '@empathyco/x-types';\n import Vue, { defineComponent, PropType, ref, watch } from 'vue';\n\n import BaseDropdown from '../../../components/base-dropdown.vue';\n import { use$x } from '../../../composables/use-$x';\n import { useState } from '../../../composables/use-state';\n import { searchXModule } from '../x-module';\n\n /**\n * The `SortDropdown` component allows user to select the search results order. This component\n * also allows to change the selected sort programmatically.\n */\n export default defineComponent({\n name: 'SortDropdown',\n xModule: searchXModule.name,\n components: { BaseDropdown },\n props: {\n /** The list of possible sort values. */\n items: {\n type: Array as PropType<Sort[]>,\n required: true\n },\n /** The transition to use for opening and closing the dropdown. */\n animation: [String, Object] as PropType<string | typeof Vue>\n },\n emits: ['change'],\n setup(_, { emit }) {\n const $x = use$x();\n\n const { sort: selectedSort } = useState('search', ['sort']);\n const rootRef = ref<typeof BaseDropdown>();\n\n watch(selectedSort, (value: Sort) => $x.emit('SelectedSortProvided', value), {\n immediate: true\n });\n\n /**\n * Emits the events related to the selection of a sort value.\n *\n * @remarks `(rootRef.value as any)?.$el` because rollup-plugin-vue understands\n * `ref<typeof BaseDropdown>` as VueConstructor which doesn't contain $el.\n *\n * @param sort - The selected sort.\n */\n function emitUserClickedASort(sort: Sort) {\n $x.emit('UserClickedASort', sort, { target: (rootRef.value as any)?.$el });\n emit('change', sort);\n }\n\n return {\n emitUserClickedASort,\n rootRef,\n selectedSort\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Sort Dropdown\n\nThe `SortDropdown` component can be used to change the way the search results are ordered.\n\nTo do so, the list of valid sort values has to be provided using the `items` prop. These are the\nvalues that can be received then in the `SearchAdapter`.\n\nThe component also optionally accepts the selected sort, which can be set using the `value` prop.\nThis prop allows changing programmatically the selected sort, as it will be synced with the store\nimmediately. If this prop is not provided, the first item from the `items` prop will be the one\nselected by default.\n\nThis component also allows customizing both the toggle button and each one of the possible sort\nvalues. This can be done with the`toggle` and `item` slots.\n\n## Events\n\nThis component emits 2 different events:\n\n- [`SelectedSortProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n To sync the selected sort with the store state value. This event is emitted as soon as the list of\n items is received, whenever this list changes if there is no provided value, and when the provided\n value changes.\n- [`UserClickedASort`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n As its name suggest, the event is emitted after the user clicks one of the sort options. This does\n not mean that the sort has changed, only that the user has clicked it.\n\n## Examples\n\n### Only providing the list of items\n\n```vue\n<template>\n <SortDropdown :items=\"sortValues\">\n <template #toggle=\"{ item, isOpen }\">{{ item }} {{ isOpen ? '🔼' : '🔽' }}</template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <span v-if=\"isSelected\">✅</span>\n <span v-if=\"isHighlighted\">🟢</span>\n {{ item }}\n </template>\n </SortDropdown>\n</template>\n\n<script>\n import { SortDropdown } from '@empathyco/x-components/search';\n\n export default {\n components: {\n SortDropdown\n },\n data() {\n return { sortValues: ['Relevance', 'Price asc', 'Price desc'] };\n }\n };\n</script>\n```\n\n### Providing also the selected value\n\n```vue\n<template>\n <SortDropdown v-model=\"selectedSort\" :items=\"sortValues\">\n <template #toggle=\"{ item, isOpen }\">{{ item }} {{ isOpen ? '🔼' : '🔽' }}</template>\n <template #item=\"{ item, isHighlighted, isSelected }\">\n <span v-if=\"isSelected\">✅</span>\n <span v-if=\"isHighlighted\">🟢</span>\n {{ item }}\n </template>\n </SortDropdown>\n</template>\n\n<script>\n import { SortDropdown } from '@empathyco/x-components/search';\n\n export default {\n components: {\n SortDropdown\n },\n data() {\n return {\n selectedSort: 'Price asc',\n sortValues: ['Relevance', 'Price asc', 'Price desc']\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","emitUserClickedASort","selectedSort","animation","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;kCACEA,gBA6Be,CAAA,cAAA,CAAA,CAAA;AA3BZ,EAAA,OAAAC,SAAA,EAAA,EAAAC,WAAA,CAAmBC,uBAAoB,EAAA;AAAA,IACvC,GAAK,EAAA,SAAA;AAAA,IACL,qBAAYC,EAAAA,IAAAA,CAAAA,oBAAAA;AAAAA,IACZ,KAAWC,EAAAA,IAAAA,CAAAA,KAAAA;AAAAA,IACZ,UAAM,EAAA,IAAA,CAAA,YAAA;AAAA,IACN,WAAS,IAAC,CAAA,SAAA;AAAA,IACV,KAAA,EAAA,iBAAA;AAAA,IAAA,WAAA,EAAA,eAAA;IAEW,YAAM,EAAA,gBAAA;AAAA,GAAA,EAAA;YAXrBC,OAkBuD,CAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,KAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AAExC,OAAA,CAAA;AAAA,KAAA,CAAA;AApBf,IAAA,IAAA,EAAAH,OAAA,CAAA,CAAA,EAAA,IAAA,EAAA,aAAA,EA4BwE,UAAI,EAAA,KAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,MAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,MAAA;;;;;;AA5B5E,OAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
@@ -24,13 +24,20 @@ const { fetchAndSave, cancelPrevious } = createFetchAndSaveActions({
24
24
  */
25
25
  function enrichRequest(request, state) {
26
26
  const { page, ...restRequest } = request;
27
- const { config: { pageSize }, origin, results } = state;
28
- const start = page === 1 ? 0 : results.length;
27
+ const { config: { pageSize, pageMode }, origin, results } = state;
28
+ let start;
29
+ if (pageMode === 'infinite_scroll') {
30
+ start = page === 1 ? 0 : results.length;
31
+ }
32
+ else {
33
+ start = state.config.pageSize * (page - 1);
34
+ }
35
+ const rows = pageMode === 'infinite_scroll' ? pageSize * page - start : pageSize;
29
36
  return {
30
37
  ...restRequest,
31
38
  ...(origin && { origin }),
32
39
  start,
33
- rows: pageSize * page - start
40
+ rows
34
41
  };
35
42
  }
36
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-and-save-search-response.action.js","sources":["../../../../../../src/x-modules/search/store/actions/fetch-and-save-search-response.action.ts"],"sourcesContent":["import { SearchRequest, SearchResponse } from '@empathyco/x-types';\nimport { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils';\nimport { InternalSearchRequest } from '../../types';\nimport { SearchActionContext, SearchState } from '../types';\n\nconst { fetchAndSave, cancelPrevious } = createFetchAndSaveActions<\n SearchActionContext,\n InternalSearchRequest | null,\n SearchResponse | null\n>({\n fetch({ dispatch, state }, request) {\n return request\n ? dispatch('fetchSearchResponse', enrichRequest(request, state))\n : Promise.resolve(null);\n },\n onSuccess({ dispatch }, response) {\n if (response !== null) {\n dispatch('saveSearchResponse', response);\n }\n }\n});\n\n/**\n * Enriches the {@link SearchRequest} object with the origin and page properties taken from the\n * {@link SearchState | search state}.\n *\n * @param request - The {@link InternalSearchRequest}.\n * @param state - {@link SearchState}.\n *\n * @returns The search request.\n * @internal\n */\nfunction enrichRequest(request: InternalSearchRequest, state: SearchState): SearchRequest {\n const { page, ...restRequest } = request;\n const {\n config: { pageSize },\n origin,\n results\n } = state;\n const start = page === 1 ? 0 : results.length;\n\n return {\n ...restRequest,\n ...(origin && { origin }),\n start,\n rows: pageSize * page - start\n };\n}\n\n/**\n * Default implementation for {@link SearchActions.fetchAndSaveSearchResponse} action.\n *\n * @public\n */\nexport const fetchAndSaveSearchResponse = fetchAndSave;\n\n/**\n * Default implementation for {@link SearchActions.cancelFetchAndSaveSearchResponse} action.\n *\n * @public\n */\nexport const cancelFetchAndSaveSearchResponse = cancelPrevious;\n"],"names":[],"mappings":";;AAKA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAIhE;AACA,IAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAA;AAChC,QAAA,OAAO,OAAO;cACV,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChE,cAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,IAAA,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAA;QAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE;AACrB,YAAA,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC1C,SAAA;KACF;AACF,CAAA,CAAC,CAAC;AAEH;;;;;;;;;AASG;AACH,SAAS,aAAa,CAAC,OAA8B,EAAE,KAAkB,EAAA;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;AACzC,IAAA,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACpB,MAAM,EACN,OAAO,EACR,GAAG,KAAK,CAAC;AACV,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9C,OAAO;AACL,QAAA,GAAG,WAAW;AACd,QAAA,IAAI,MAAM,IAAI,EAAE,MAAM,EAAE;QACxB,KAAK;AACL,QAAA,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK;KAC9B,CAAC;AACJ,CAAC;AAED;;;;AAIG;AACI,MAAM,0BAA0B,GAAG,aAAa;AAEvD;;;;AAIG;AACI,MAAM,gCAAgC,GAAG;;;;"}
1
+ {"version":3,"file":"fetch-and-save-search-response.action.js","sources":["../../../../../../src/x-modules/search/store/actions/fetch-and-save-search-response.action.ts"],"sourcesContent":["import { SearchRequest, SearchResponse } from '@empathyco/x-types';\nimport { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils';\nimport { InternalSearchRequest } from '../../types';\nimport { SearchActionContext, SearchState } from '../types';\n\nconst { fetchAndSave, cancelPrevious } = createFetchAndSaveActions<\n SearchActionContext,\n InternalSearchRequest | null,\n SearchResponse | null\n>({\n fetch({ dispatch, state }, request) {\n return request\n ? dispatch('fetchSearchResponse', enrichRequest(request, state))\n : Promise.resolve(null);\n },\n onSuccess({ dispatch }, response) {\n if (response !== null) {\n dispatch('saveSearchResponse', response);\n }\n }\n});\n\n/**\n * Enriches the {@link SearchRequest} object with the origin and page properties taken from the\n * {@link SearchState | search state}.\n *\n * @param request - The {@link InternalSearchRequest}.\n * @param state - {@link SearchState}.\n *\n * @returns The search request.\n * @internal\n */\nfunction enrichRequest(request: InternalSearchRequest, state: SearchState): SearchRequest {\n const { page, ...restRequest } = request;\n const {\n config: { pageSize, pageMode },\n origin,\n results\n } = state;\n\n let start;\n if (pageMode === 'infinite_scroll') {\n start = page === 1 ? 0 : results.length;\n } else {\n start = state.config.pageSize * (page - 1);\n }\n\n const rows = pageMode === 'infinite_scroll' ? pageSize * page - start : pageSize;\n\n return {\n ...restRequest,\n ...(origin && { origin }),\n start,\n rows\n };\n}\n\n/**\n * Default implementation for {@link SearchActions.fetchAndSaveSearchResponse} action.\n *\n * @public\n */\nexport const fetchAndSaveSearchResponse = fetchAndSave;\n\n/**\n * Default implementation for {@link SearchActions.cancelFetchAndSaveSearchResponse} action.\n *\n * @public\n */\nexport const cancelFetchAndSaveSearchResponse = cancelPrevious;\n"],"names":[],"mappings":";;AAKA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAIhE;AACA,IAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAA;AAChC,QAAA,OAAO,OAAO;cACV,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChE,cAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,IAAA,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAA;QAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE;AACrB,YAAA,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC1C,SAAA;KACF;AACF,CAAA,CAAC,CAAC;AAEH;;;;;;;;;AASG;AACH,SAAS,aAAa,CAAC,OAA8B,EAAE,KAAkB,EAAA;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;AACzC,IAAA,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9B,MAAM,EACN,OAAO,EACR,GAAG,KAAK,CAAC;AAEV,IAAA,IAAI,KAAK,CAAC;IACV,IAAI,QAAQ,KAAK,iBAAiB,EAAE;AAClC,QAAA,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AACzC,KAAA;AAAM,SAAA;AACL,QAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;AAC5C,KAAA;AAED,IAAA,MAAM,IAAI,GAAG,QAAQ,KAAK,iBAAiB,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IAEjF,OAAO;AACL,QAAA,GAAG,WAAW;AACd,QAAA,IAAI,MAAM,IAAI,EAAE,MAAM,EAAE;QACxB,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;AAIG;AACI,MAAM,0BAA0B,GAAG,aAAa;AAEvD;;;;AAIG;AACI,MAAM,gCAAgC,GAAG;;;;"}
@@ -7,10 +7,11 @@
7
7
  *
8
8
  * @public
9
9
  */
10
- const saveSearchResponse = ({ commit, state, getters }, { results, partialResults, facets, banners, promoteds, totalResults, spellcheck, redirections, queryTagging, displayTagging }) => {
10
+ const saveSearchResponse = ({ commit, state, getters }, { results, partialResults, facets, banners, promoteds, totalResults, spellcheck, redirections, queryTagging, displayTagging, stats }) => {
11
11
  if (totalResults === 0) {
12
12
  commit('setIsNoResults', true);
13
13
  if (getters.request && Object.keys(getters.request.filters).length > 0) {
14
+ commit('setSelectedFilters', []);
14
15
  commit('setFromNoResultsWithFilters', true);
15
16
  }
16
17
  }
@@ -38,6 +39,7 @@ const saveSearchResponse = ({ commit, state, getters }, { results, partialResult
38
39
  }
39
40
  commit('setTotalResults', totalResults);
40
41
  commit('setSpellcheck', spellcheck ?? '');
42
+ commit('setStats', stats);
41
43
  };
42
44
 
43
45
  export { saveSearchResponse };
@@ -1 +1 @@
1
- {"version":3,"file":"save-search-response.action.js","sources":["../../../../../../src/x-modules/search/store/actions/save-search-response.action.ts"],"sourcesContent":["import { SearchXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link SearchActions.saveSearchResponse}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param response - The {@link @empathyco/x-types#SearchResponse} to save.\n *\n * @public\n */\nexport const saveSearchResponse: SearchXStoreModule['actions']['saveSearchResponse'] = (\n { commit, state, getters },\n {\n results,\n partialResults,\n facets,\n banners,\n promoteds,\n totalResults,\n spellcheck,\n redirections,\n queryTagging,\n displayTagging\n }\n) => {\n if (totalResults === 0) {\n commit('setIsNoResults', true);\n if (getters.request && Object.keys(getters.request.filters!).length > 0) {\n commit('setFromNoResultsWithFilters', true);\n }\n } else {\n commit('setIsNoResults', false);\n }\n\n if (state.isAppendResults) {\n commit('appendResults', results);\n } else {\n commit('setResults', results);\n commit('setBanners', banners ?? []);\n commit('setPromoteds', promoteds ?? []);\n commit('setRedirections', redirections ?? []);\n }\n\n commit('setPartialResults', partialResults ?? []);\n\n if (facets) {\n commit('setFacets', facets);\n }\n\n if (queryTagging) {\n commit('setQueryTagging', queryTagging);\n }\n\n if (displayTagging) {\n commit('setDisplayTagging', displayTagging);\n }\n\n commit('setTotalResults', totalResults);\n commit('setSpellcheck', spellcheck ?? '');\n};\n"],"names":[],"mappings":"AAEA;;;;;;;;AAQG;AACI,MAAM,kBAAkB,GAAwD,CACrF,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAC1B,EACE,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,KACC;IACF,IAAI,YAAY,KAAK,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAA,MAAM,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC7C,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACjC,KAAA;IAED,IAAI,KAAK,CAAC,eAAe,EAAE;AACzB,QAAA,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAClC,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AACpC,QAAA,MAAM,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AACxC,QAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC/C,KAAA;AAED,IAAA,MAAM,CAAC,mBAAmB,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;AAElD,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7B,KAAA;AAED,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACzC,KAAA;AAED,IAAA,IAAI,cAAc,EAAE;AAClB,QAAA,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAC7C,KAAA;AAED,IAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACxC,IAAA,MAAM,CAAC,eAAe,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;AAC5C;;;;"}
1
+ {"version":3,"file":"save-search-response.action.js","sources":["../../../../../../src/x-modules/search/store/actions/save-search-response.action.ts"],"sourcesContent":["import { Stats } from '@empathyco/x-types';\nimport { SearchXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link SearchActions.saveSearchResponse}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param response - The {@link @empathyco/x-types#SearchResponse} to save.\n *\n * @public\n */\nexport const saveSearchResponse: SearchXStoreModule['actions']['saveSearchResponse'] = (\n { commit, state, getters },\n {\n results,\n partialResults,\n facets,\n banners,\n promoteds,\n totalResults,\n spellcheck,\n redirections,\n queryTagging,\n displayTagging,\n stats\n }\n) => {\n if (totalResults === 0) {\n commit('setIsNoResults', true);\n if (getters.request && Object.keys(getters.request.filters!).length > 0) {\n commit('setSelectedFilters', []);\n commit('setFromNoResultsWithFilters', true);\n }\n } else {\n commit('setIsNoResults', false);\n }\n\n if (state.isAppendResults) {\n commit('appendResults', results);\n } else {\n commit('setResults', results);\n commit('setBanners', banners ?? []);\n commit('setPromoteds', promoteds ?? []);\n commit('setRedirections', redirections ?? []);\n }\n\n commit('setPartialResults', partialResults ?? []);\n\n if (facets) {\n commit('setFacets', facets);\n }\n\n if (queryTagging) {\n commit('setQueryTagging', queryTagging);\n }\n\n if (displayTagging) {\n commit('setDisplayTagging', displayTagging);\n }\n\n commit('setTotalResults', totalResults);\n commit('setSpellcheck', spellcheck ?? '');\n commit('setStats', stats as Stats);\n};\n"],"names":[],"mappings":"AAGA;;;;;;;;AAQG;AACU,MAAA,kBAAkB,GAAwD,CACrF,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAC1B,EACE,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,KAAK,EACN,KACC;IACF,IAAI,YAAY,KAAK,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAA,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACjC,YAAA,MAAM,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC7C,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACjC,KAAA;IAED,IAAI,KAAK,CAAC,eAAe,EAAE;AACzB,QAAA,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAClC,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC9B,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AACpC,QAAA,MAAM,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AACxC,QAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC/C,KAAA;AAED,IAAA,MAAM,CAAC,mBAAmB,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;AAElD,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7B,KAAA;AAED,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACzC,KAAA;AAED,IAAA,IAAI,cAAc,EAAE;AAClB,QAAA,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAC7C,KAAA;AAED,IAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACxC,IAAA,MAAM,CAAC,eAAe,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;AAC1C,IAAA,MAAM,CAAC,UAAU,EAAE,KAAc,CAAC,CAAC;AACrC;;;;"}
@@ -1,3 +1,4 @@
1
+ import '@empathyco/x-utils';
1
2
  import { createStoreEmitters } from '../../../store/utils/store-emitters.utils.js';
2
3
  import { isStringEmpty } from '../../../utils/string.js';
3
4
  import { searchXStoreModule } from './module.js';
@@ -1 +1 @@
1
- {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/search/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { isStringEmpty } from '../../../utils/string';\nimport { searchXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the search module.\n *\n * @internal\n */\nexport const searchEmitters = createStoreEmitters(searchXStoreModule, {\n FacetsChanged: {\n selector: state => state.facets,\n filter(newValue, oldValue): boolean {\n return newValue.length !== 0 || oldValue.length !== 0;\n }\n },\n PageChanged: state => state.page,\n ResultsChanged: state => state.results,\n SearchRequestChanged: (_, getters) => getters.request,\n SearchRequestUpdated: (_, getters) => getters.request,\n SearchResponseChanged: {\n selector: (state, getters) => {\n return {\n request: getters.request!,\n status: state.status,\n banners: state.banners,\n facets: state.facets,\n partialResults: state.partialResults,\n promoteds: state.promoteds,\n queryTagging: state.queryTagging,\n displayTagging: state.displayTagging,\n redirections: state.redirections,\n results: state.results,\n spellcheck: state.spellcheckedQuery,\n totalResults: state.totalResults\n };\n },\n filter: (newValue, oldValue) => {\n return (\n newValue.status !== oldValue.status && oldValue.status === 'loading' && !!newValue.request\n );\n }\n },\n SearchTaggingChanged: {\n selector: state => state.queryTagging,\n filter: ({ url }) => !isStringEmpty(url)\n },\n SpellcheckChanged: state => state.spellcheckedQuery,\n SortChanged: state => state.sort\n});\n"],"names":[],"mappings":";;;;AAIA;;;;AAIG;AACU,MAAA,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;AACpE,IAAA,aAAa,EAAE;AACb,QAAA,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM;QAC/B,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAA;YACvB,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;SACvD;AACF,KAAA;AACD,IAAA,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;AAChC,IAAA,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO;IACtC,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;IACrD,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;AACrD,IAAA,qBAAqB,EAAE;AACrB,QAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;YAC3B,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB;gBACnC,YAAY,EAAE,KAAK,CAAC,YAAY;aACjC,CAAC;SACH;AACD,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAI;YAC7B,QACE,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAC1F;SACH;AACF,KAAA;AACD,IAAA,oBAAoB,EAAE;AACpB,QAAA,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY;AACrC,QAAA,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;AACzC,KAAA;AACD,IAAA,iBAAiB,EAAE,KAAK,IAAI,KAAK,CAAC,iBAAiB;AACnD,IAAA,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;AACjC,CAAA;;;;"}
1
+ {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/search/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { isStringEmpty } from '../../../utils/string';\nimport { searchXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the search module.\n *\n * @internal\n */\nexport const searchEmitters = createStoreEmitters(searchXStoreModule, {\n FacetsChanged: {\n selector: state => state.facets,\n filter(newValue, oldValue): boolean {\n return newValue.length !== 0 || oldValue.length !== 0;\n }\n },\n PageChanged: state => state.page,\n ResultsChanged: state => state.results,\n SearchRequestChanged: (_, getters) => getters.request,\n SearchRequestUpdated: (_, getters) => getters.request,\n SearchResponseChanged: {\n selector: (state, getters) => {\n return {\n request: getters.request!,\n status: state.status,\n banners: state.banners,\n facets: state.facets,\n partialResults: state.partialResults,\n promoteds: state.promoteds,\n queryTagging: state.queryTagging,\n displayTagging: state.displayTagging,\n redirections: state.redirections,\n results: state.results,\n spellcheck: state.spellcheckedQuery,\n totalResults: state.totalResults\n };\n },\n filter: (newValue, oldValue) => {\n return (\n newValue.status !== oldValue.status && oldValue.status === 'loading' && !!newValue.request\n );\n }\n },\n SearchTaggingChanged: {\n selector: state => state.queryTagging,\n filter: ({ url }) => !isStringEmpty(url)\n },\n SpellcheckChanged: state => state.spellcheckedQuery,\n SortChanged: state => state.sort\n});\n"],"names":[],"mappings":";;;;;AAIA;;;;AAIG;AACU,MAAA,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,EAAE;AACpE,IAAA,aAAa,EAAE;AACb,QAAA,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM;QAC/B,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAA;YACvB,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;SACvD;AACF,KAAA;AACD,IAAA,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;AAChC,IAAA,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO;IACtC,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;IACrD,oBAAoB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;AACrD,IAAA,qBAAqB,EAAE;AACrB,QAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;YAC3B,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB;gBACnC,YAAY,EAAE,KAAK,CAAC,YAAY;aACjC,CAAC;SACH;AACD,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAI;YAC7B,QACE,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAC1F;SACH;AACF,KAAA;AACD,IAAA,oBAAoB,EAAE;AACpB,QAAA,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY;AACrC,QAAA,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;AACzC,KAAA;AACD,IAAA,iBAAiB,EAAE,KAAK,IAAI,KAAK,CAAC,iBAAiB;AACnD,IAAA,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;AACjC,CAAA;;;;"}
@@ -1,8 +1,9 @@
1
1
  import { isFacetFilter } from '@empathyco/x-types';
2
2
  import { setQuery } from '../../../store/utils/query.utils.js';
3
+ import { setConfig, mergeConfig } from '../../../store/utils/config-store.utils.js';
4
+ import '@empathyco/x-utils';
3
5
  import { setStatus } from '../../../store/utils/status-store.utils.js';
4
6
  import { groupItemsBy } from '../../../utils/array.js';
5
- import { setConfig, mergeConfig } from '../../../store/utils/config-store.utils.js';
6
7
  import { UNKNOWN_FACET_KEY } from '../../facets/store/constants.js';
7
8
  import { cancelFetchAndSaveSearchResponse, fetchAndSaveSearchResponse } from './actions/fetch-and-save-search-response.action.js';
8
9
  import { fetchSearchResponse } from './actions/fetch-search-response.action.js';
@@ -25,7 +26,8 @@ const searchXStoreModule = {
25
26
  selectedFilters: {},
26
27
  params: {},
27
28
  config: {
28
- pageSize: 24
29
+ pageSize: 24,
30
+ pageMode: 'infinite_scroll'
29
31
  },
30
32
  status: 'initial',
31
33
  isNoResults: false,
@@ -112,6 +114,9 @@ const searchXStoreModule = {
112
114
  if (stateResult) {
113
115
  Object.assign(stateResult, result);
114
116
  }
117
+ },
118
+ setStats(state, stats) {
119
+ state.stats = stats;
115
120
  }
116
121
  },
117
122
  actions: {
@@ -156,7 +161,8 @@ function resettableState() {
156
161
  displayTagging: {
157
162
  url: '',
158
163
  params: {}
159
- }
164
+ },
165
+ stats: {}
160
166
  };
161
167
  }
162
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../../../../../src/x-modules/search/store/module.ts"],"sourcesContent":["import { isFacetFilter } from '@empathyco/x-types';\nimport { setQuery } from '../../../store/utils/query.utils';\nimport { setStatus } from '../../../store';\nimport { groupItemsBy } from '../../../utils/array';\nimport { mergeConfig, setConfig } from '../../../store/utils/config-store.utils';\nimport { UNKNOWN_FACET_KEY } from '../../facets/store/constants';\nimport {\n cancelFetchAndSaveSearchResponse,\n fetchAndSaveSearchResponse,\n fetchSearchResponse,\n increasePageAppendingResults,\n resetRequestOnRefinement,\n saveSearchResponse\n} from './actions';\nimport { saveOrigin } from './actions/save-origin.action';\nimport { setUrlParams } from './actions/set-url-params.action';\nimport { query } from './getters/query.getter';\nimport { request } from './getters/request.getter';\nimport { SearchXStoreModule } from './types';\n\n/**\n * {@link XStoreModule} For the search module.\n *\n * @internal\n */\nexport const searchXStoreModule: SearchXStoreModule = {\n state: () => ({\n ...resettableState(),\n selectedFilters: {},\n params: {},\n config: {\n pageSize: 24\n },\n status: 'initial',\n isNoResults: false,\n fromNoResultsWithFilters: false\n }),\n getters: {\n request,\n query\n },\n mutations: {\n appendResults(state, results) {\n state.results = [...state.results, ...results];\n },\n resetState(state) {\n Object.assign(state, resettableState());\n },\n resetStateForReload(state) {\n const { query, facets, sort, page, ...resettable } = resettableState();\n Object.assign(state, resettable);\n },\n setQuery,\n setResults(state, results) {\n state.results = results;\n },\n setPartialResults(state, partialResults) {\n state.partialResults = partialResults;\n },\n setFacets(state, facets) {\n state.facets = facets;\n },\n setRelatedTags(state, relatedTags) {\n state.relatedTags = relatedTags;\n },\n setSelectedFilters(state, selectedFilters) {\n state.selectedFilters = groupItemsBy(selectedFilters, filter =>\n isFacetFilter(filter) ? filter.facetId : UNKNOWN_FACET_KEY\n );\n },\n setBanners(state, banners) {\n state.banners = banners;\n },\n setPromoteds(state, promoteds) {\n state.promoteds = promoteds;\n },\n setSpellcheck(state, spellcheckedQuery) {\n state.spellcheckedQuery = spellcheckedQuery;\n },\n setTotalResults(state, totalResults) {\n state.totalResults = totalResults;\n },\n setSort(state, sort) {\n state.sort = sort;\n },\n setPage(state, page) {\n state.page = page;\n },\n setConfig,\n mergeConfig,\n setIsAppendResults(state, isAppendResults) {\n state.isAppendResults = isAppendResults;\n },\n setIsNoResults(state, isNoResults) {\n state.isNoResults = isNoResults;\n },\n setFromNoResultsWithFilters(state, fromNoResultsWithFilters) {\n state.fromNoResultsWithFilters = fromNoResultsWithFilters;\n },\n setStatus,\n setParams(state, params) {\n state.params = params;\n },\n setOrigin(state, origin = null) {\n state.origin = origin;\n },\n setRedirections(state, redirections) {\n state.redirections = redirections;\n },\n setQueryTagging(state, queryTagging) {\n state.queryTagging = queryTagging;\n },\n setDisplayTagging(state, displayTagging) {\n state.displayTagging = displayTagging;\n },\n updateResult(state, result) {\n const stateResult = state.results.find(stateResult => result.id === stateResult.id);\n if (stateResult) {\n Object.assign(stateResult, result);\n }\n }\n },\n actions: {\n cancelFetchAndSaveSearchResponse,\n fetchSearchResponse,\n fetchAndSaveSearchResponse,\n increasePageAppendingResults,\n resetRequestOnRefinement,\n saveSearchResponse,\n setUrlParams,\n saveOrigin\n }\n};\n\n/**\n * Function to return the \"resettable\" part of the state. This will be used in the `resetState`\n * mutation to reset to the initial state.\n *\n * @returns The \"resettable\" part of the {@link SearchState}.\n *\n * @internal\n */\nexport function resettableState() {\n return {\n query: '',\n results: [],\n partialResults: [],\n facets: [],\n relatedTags: [],\n banners: [],\n promoteds: [],\n totalResults: 0,\n spellcheckedQuery: '',\n sort: '',\n page: 1,\n origin: null,\n isAppendResults: false,\n redirections: [],\n queryTagging: {\n url: '',\n params: {}\n },\n displayTagging: {\n url: '',\n params: {}\n }\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../../../../../src/x-modules/search/store/module.ts"],"sourcesContent":["import { isFacetFilter, Stats } from '@empathyco/x-types';\nimport { setQuery } from '../../../store/utils/query.utils';\nimport { setStatus } from '../../../store';\nimport { groupItemsBy } from '../../../utils/array';\nimport { mergeConfig, setConfig } from '../../../store/utils/config-store.utils';\nimport { UNKNOWN_FACET_KEY } from '../../facets/store/constants';\nimport {\n cancelFetchAndSaveSearchResponse,\n fetchAndSaveSearchResponse,\n fetchSearchResponse,\n increasePageAppendingResults,\n resetRequestOnRefinement,\n saveSearchResponse\n} from './actions';\nimport { saveOrigin } from './actions/save-origin.action';\nimport { setUrlParams } from './actions/set-url-params.action';\nimport { query } from './getters/query.getter';\nimport { request } from './getters/request.getter';\nimport { SearchXStoreModule } from './types';\n\n/**\n * {@link XStoreModule} For the search module.\n *\n * @internal\n */\nexport const searchXStoreModule: SearchXStoreModule = {\n state: () => ({\n ...resettableState(),\n selectedFilters: {},\n params: {},\n config: {\n pageSize: 24,\n pageMode: 'infinite_scroll'\n },\n status: 'initial',\n isNoResults: false,\n fromNoResultsWithFilters: false\n }),\n getters: {\n request,\n query\n },\n mutations: {\n appendResults(state, results) {\n state.results = [...state.results, ...results];\n },\n resetState(state) {\n Object.assign(state, resettableState());\n },\n resetStateForReload(state) {\n const { query, facets, sort, page, ...resettable } = resettableState();\n Object.assign(state, resettable);\n },\n setQuery,\n setResults(state, results) {\n state.results = results;\n },\n setPartialResults(state, partialResults) {\n state.partialResults = partialResults;\n },\n setFacets(state, facets) {\n state.facets = facets;\n },\n setRelatedTags(state, relatedTags) {\n state.relatedTags = relatedTags;\n },\n setSelectedFilters(state, selectedFilters) {\n state.selectedFilters = groupItemsBy(selectedFilters, filter =>\n isFacetFilter(filter) ? filter.facetId : UNKNOWN_FACET_KEY\n );\n },\n setBanners(state, banners) {\n state.banners = banners;\n },\n setPromoteds(state, promoteds) {\n state.promoteds = promoteds;\n },\n setSpellcheck(state, spellcheckedQuery) {\n state.spellcheckedQuery = spellcheckedQuery;\n },\n setTotalResults(state, totalResults) {\n state.totalResults = totalResults;\n },\n setSort(state, sort) {\n state.sort = sort;\n },\n setPage(state, page) {\n state.page = page;\n },\n setConfig,\n mergeConfig,\n setIsAppendResults(state, isAppendResults) {\n state.isAppendResults = isAppendResults;\n },\n setIsNoResults(state, isNoResults) {\n state.isNoResults = isNoResults;\n },\n setFromNoResultsWithFilters(state, fromNoResultsWithFilters) {\n state.fromNoResultsWithFilters = fromNoResultsWithFilters;\n },\n setStatus,\n setParams(state, params) {\n state.params = params;\n },\n setOrigin(state, origin = null) {\n state.origin = origin;\n },\n setRedirections(state, redirections) {\n state.redirections = redirections;\n },\n setQueryTagging(state, queryTagging) {\n state.queryTagging = queryTagging;\n },\n setDisplayTagging(state, displayTagging) {\n state.displayTagging = displayTagging;\n },\n updateResult(state, result) {\n const stateResult = state.results.find(stateResult => result.id === stateResult.id);\n if (stateResult) {\n Object.assign(stateResult, result);\n }\n },\n setStats(state, stats) {\n state.stats = stats;\n }\n },\n actions: {\n cancelFetchAndSaveSearchResponse,\n fetchSearchResponse,\n fetchAndSaveSearchResponse,\n increasePageAppendingResults,\n resetRequestOnRefinement,\n saveSearchResponse,\n setUrlParams,\n saveOrigin\n }\n};\n\n/**\n * Function to return the \"resettable\" part of the state. This will be used in the `resetState`\n * mutation to reset to the initial state.\n *\n * @returns The \"resettable\" part of the {@link SearchState}.\n *\n * @internal\n */\nexport function resettableState() {\n return {\n query: '',\n results: [],\n partialResults: [],\n facets: [],\n relatedTags: [],\n banners: [],\n promoteds: [],\n totalResults: 0,\n spellcheckedQuery: '',\n sort: '',\n page: 1,\n origin: null,\n isAppendResults: false,\n redirections: [],\n queryTagging: {\n url: '',\n params: {}\n },\n displayTagging: {\n url: '',\n params: {}\n },\n stats: {} as Stats\n };\n}\n"],"names":[],"mappings":"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"}
@@ -251,6 +251,10 @@ const searchWiring = createWiring({
251
251
  },
252
252
  UserSelectedAHistoryQuery: {
253
253
  setSearchSelectedFiltersFromHistoryQuery
254
+ },
255
+ UserSelectedAPage: {
256
+ setSearchPage,
257
+ resetAppending
254
258
  }
255
259
  });
256
260
 
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/search/wiring.ts"],"sourcesContent":["import {\n createWiring,\n filterTruthyPayload,\n namespacedWireCommit,\n namespacedWireCommitWithoutPayload,\n namespacedWireDispatch,\n namespacedWireDispatchWithoutPayload,\n WirePayload\n} from '../../wiring';\nimport { createRawFilters } from '../../utils';\nimport { InternalSearchRequest } from './types';\n\n/**\n * `search` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'search';\n\n/**\n * WireCommit for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit(moduleName);\n\n/**\n * WireCommit without Payload for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireCommitWithoutPayload = namespacedWireCommitWithoutPayload(moduleName);\n\n/**\n * WireDispatch for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireDispatch = namespacedWireDispatch(moduleName);\n\n/**\n * WireDispatchWithoutPayload for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireDispatchWithoutPayload = namespacedWireDispatchWithoutPayload(moduleName);\n\n/**\n * Cancels the {@link SearchActions.fetchAndSaveSearchResponse} request promise.\n *\n * @public\n */\nexport const cancelFetchAndSaveSearchResponseWire = wireDispatchWithoutPayload(\n 'cancelFetchAndSaveSearchResponse'\n);\n\n/**\n * Sets the search state `origin`.\n *\n * @public\n */\nexport const saveOriginWire = wireDispatch('saveOrigin', ({ metadata }) => metadata);\n\n/**\n * Requests and stores the search response.\n *\n * @public\n */\nexport const fetchAndSaveSearchResponseWire = wireDispatch('fetchAndSaveSearchResponse');\n\n/**\n * Resets the search state `spellcheckedQuery` to its initial value, an empty string.\n *\n * @public\n */\nexport const resetSpellcheckQuery = wireCommit('setSpellcheck', '');\n\n/**\n * Sets the search state `relatedTags`.\n *\n * @public\n */\nexport const setRelatedTags = wireCommit('setRelatedTags');\n\n/**\n * Sets the search state `query`.\n *\n * @public\n */\nexport const setSearchQuery = wireCommit('setQuery');\n\n/**\n * Clears the search state `query`.\n *\n * @public\n */\nexport const clearSearchQuery = wireCommit('setQuery', '');\n\n/**\n * Sets the search state `selectedFilters`.\n *\n * @public\n */\nexport const setSelectedFilters = wireCommit('setSelectedFilters');\n\n/**\n * Sets the search state `sort`.\n *\n * @public\n */\nexport const setSort = wireCommit('setSort');\n\n/**\n * Sets the search state `query`.\n *\n * @public\n */\nexport const setUrlParams = wireDispatch('setUrlParams');\n\n/**\n * Sets the search state `page`.\n *\n * @public\n */\nexport const setSearchPage = wireCommit('setPage');\n\n/**\n * Sets the search state `params`.\n *\n * @public\n */\nexport const setSearchExtraParams = wireCommit('setParams');\n\n/**\n * Resets the search state to reload the current search.\n *\n * @public\n */\nexport const resetStateForReloadWire = wireCommitWithoutPayload('resetStateForReload');\n\n/**\n * Resets the search state `isNoResults`.\n *\n * @public\n */\nexport const resetIsNoResults = wireCommit('setIsNoResults', false);\n\n/**\n * Resets the search state `fromNoResultsWithFilters`.\n *\n * @public\n */\nexport const resetFromNoResultsWithFilters = wireCommit('setFromNoResultsWithFilters', false);\n\n/**\n * Increases the current search state `page` by one.\n *\n * @public\n */\nexport const increasePageAppendingResultsWire = wireDispatchWithoutPayload(\n 'increasePageAppendingResults'\n);\n\n/**\n * Resets the search state `isAppendingResults`.\n *\n * @public\n */\nexport const resetAppending = wireCommit('setIsAppendResults', false);\n\n/**\n * Resets the {@link SearchGetters.request} parameters when refining request and before the actual\n * request is launched.\n *\n * @public\n */\nexport const resetRequestOnRefinementWire = wireDispatch(\n 'resetRequestOnRefinement',\n ({ eventPayload: newRequest, metadata: { oldValue } }: WirePayload<InternalSearchRequest>) => ({\n newRequest,\n oldRequest: oldValue as InternalSearchRequest\n })\n);\n\n/**\n * Resets the search state when the request is changed to null. See the\n * {@link searchXStoreModule} for details.\n *\n * @public\n */\nexport const resetStateIfNoRequestWire = filterTruthyPayload<InternalSearchRequest | null>(\n wireCommitWithoutPayload('resetState')\n);\n\n/**\n * Sets the search state `query` with the selectedQueryPreview's query.\n *\n * @public\n */\nexport const setSearchQueryFromPreview = wireCommit(\n 'setQuery',\n ({ eventPayload: { query } }) => query\n);\n\n/**\n * Sets the search state `params` with the selectedQueryPreview's extraParams.\n *\n * @public\n */\nexport const setSearchExtraParamsFromPreview = wireCommit(\n 'setParams',\n ({ eventPayload: { extraParams } }) => extraParams\n);\n\n/**\n * Sets the search state `selectedFilters` with the selectedQueryPreview's filters.\n *\n * @public\n */\nexport const setSearchSelectedFiltersFromPreview = wireCommit(\n 'setSelectedFilters',\n ({ eventPayload: { filters } }) => (filters ? createRawFilters(filters) : [])\n);\n\n/**\n * Sets the search state `selectedFilters` with a selectedHistoryQuery's filters.\n *\n * @public\n */\nexport const setSearchSelectedFiltersFromHistoryQuery = wireCommit(\n 'setSelectedFilters',\n ({ eventPayload: { selectedFilters } }) => selectedFilters ?? []\n);\n\n/**\n * Search wiring.\n *\n * @internal\n */\nexport const searchWiring = createWiring({\n ParamsLoadedFromUrl: {\n setUrlParams,\n saveOriginWire\n },\n UserAcceptedAQuery: {\n setSearchQuery,\n saveOriginWire\n },\n UserAcceptedSpellcheckQuery: {\n resetSpellcheckQuery\n },\n UserClearedQuery: {\n setSearchQuery,\n cancelFetchAndSaveSearchResponseWire,\n resetFromNoResultsWithFilters,\n resetIsNoResults\n },\n UserClickedASort: {\n setSort\n },\n UserPickedARelatedTag: {\n saveOriginWire\n },\n UserReachedResultsListEnd: {\n increasePageAppendingResultsWire\n },\n SearchRequestUpdated: {\n resetStateIfNoRequestWire,\n fetchAndSaveSearchResponseWire\n },\n SearchRequestChanged: {\n resetRequestOnRefinementWire\n },\n SelectedRelatedTagsChanged: {\n setRelatedTags\n },\n SelectedFiltersForRequestChanged: {\n setSelectedFilters\n },\n ResultsChanged: {\n resetAppending\n },\n ReloadSearchRequested: {\n resetStateForReloadWire\n },\n SelectedSortProvided: {\n setSort\n },\n ExtraParamsChanged: {\n setSearchExtraParams\n },\n UserClickedCloseX: {\n clearSearchQuery\n },\n UserClickedOutOfMainModal: {\n clearSearchQuery\n },\n UserAcceptedAQueryPreview: {\n setSearchQueryFromPreview,\n setSearchExtraParamsFromPreview,\n setSearchSelectedFiltersFromPreview,\n saveOriginWire\n },\n QueryPreviewUnselected: {\n setSearchExtraParams\n },\n UserSelectedAHistoryQuery: {\n setSearchSelectedFiltersFromHistoryQuery\n }\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/search/wiring.ts"],"sourcesContent":["import {\n createWiring,\n filterTruthyPayload,\n namespacedWireCommit,\n namespacedWireCommitWithoutPayload,\n namespacedWireDispatch,\n namespacedWireDispatchWithoutPayload,\n WirePayload\n} from '../../wiring';\nimport { createRawFilters } from '../../utils';\nimport { InternalSearchRequest } from './types';\n\n/**\n * `search` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'search';\n\n/**\n * WireCommit for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit(moduleName);\n\n/**\n * WireCommit without Payload for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireCommitWithoutPayload = namespacedWireCommitWithoutPayload(moduleName);\n\n/**\n * WireDispatch for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireDispatch = namespacedWireDispatch(moduleName);\n\n/**\n * WireDispatchWithoutPayload for {@link SearchXModule}.\n *\n * @internal\n */\nconst wireDispatchWithoutPayload = namespacedWireDispatchWithoutPayload(moduleName);\n\n/**\n * Cancels the {@link SearchActions.fetchAndSaveSearchResponse} request promise.\n *\n * @public\n */\nexport const cancelFetchAndSaveSearchResponseWire = wireDispatchWithoutPayload(\n 'cancelFetchAndSaveSearchResponse'\n);\n\n/**\n * Sets the search state `origin`.\n *\n * @public\n */\nexport const saveOriginWire = wireDispatch('saveOrigin', ({ metadata }) => metadata);\n\n/**\n * Requests and stores the search response.\n *\n * @public\n */\nexport const fetchAndSaveSearchResponseWire = wireDispatch('fetchAndSaveSearchResponse');\n\n/**\n * Resets the search state `spellcheckedQuery` to its initial value, an empty string.\n *\n * @public\n */\nexport const resetSpellcheckQuery = wireCommit('setSpellcheck', '');\n\n/**\n * Sets the search state `relatedTags`.\n *\n * @public\n */\nexport const setRelatedTags = wireCommit('setRelatedTags');\n\n/**\n * Sets the search state `query`.\n *\n * @public\n */\nexport const setSearchQuery = wireCommit('setQuery');\n\n/**\n * Clears the search state `query`.\n *\n * @public\n */\nexport const clearSearchQuery = wireCommit('setQuery', '');\n\n/**\n * Sets the search state `selectedFilters`.\n *\n * @public\n */\nexport const setSelectedFilters = wireCommit('setSelectedFilters');\n\n/**\n * Sets the search state `sort`.\n *\n * @public\n */\nexport const setSort = wireCommit('setSort');\n\n/**\n * Sets the search state `query`.\n *\n * @public\n */\nexport const setUrlParams = wireDispatch('setUrlParams');\n\n/**\n * Sets the search state `page`.\n *\n * @public\n */\nexport const setSearchPage = wireCommit('setPage');\n\n/**\n * Sets the search state `params`.\n *\n * @public\n */\nexport const setSearchExtraParams = wireCommit('setParams');\n\n/**\n * Resets the search state to reload the current search.\n *\n * @public\n */\nexport const resetStateForReloadWire = wireCommitWithoutPayload('resetStateForReload');\n\n/**\n * Resets the search state `isNoResults`.\n *\n * @public\n */\nexport const resetIsNoResults = wireCommit('setIsNoResults', false);\n\n/**\n * Resets the search state `fromNoResultsWithFilters`.\n *\n * @public\n */\nexport const resetFromNoResultsWithFilters = wireCommit('setFromNoResultsWithFilters', false);\n\n/**\n * Increases the current search state `page` by one.\n *\n * @public\n */\nexport const increasePageAppendingResultsWire = wireDispatchWithoutPayload(\n 'increasePageAppendingResults'\n);\n\n/**\n * Resets the search state `isAppendingResults`.\n *\n * @public\n */\nexport const resetAppending = wireCommit('setIsAppendResults', false);\n\n/**\n * Resets the {@link SearchGetters.request} parameters when refining request and before the actual\n * request is launched.\n *\n * @public\n */\nexport const resetRequestOnRefinementWire = wireDispatch(\n 'resetRequestOnRefinement',\n ({ eventPayload: newRequest, metadata: { oldValue } }: WirePayload<InternalSearchRequest>) => ({\n newRequest,\n oldRequest: oldValue as InternalSearchRequest\n })\n);\n\n/**\n * Resets the search state when the request is changed to null. See the\n * {@link searchXStoreModule} for details.\n *\n * @public\n */\nexport const resetStateIfNoRequestWire = filterTruthyPayload<InternalSearchRequest | null>(\n wireCommitWithoutPayload('resetState')\n);\n\n/**\n * Sets the search state `query` with the selectedQueryPreview's query.\n *\n * @public\n */\nexport const setSearchQueryFromPreview = wireCommit(\n 'setQuery',\n ({ eventPayload: { query } }) => query\n);\n\n/**\n * Sets the search state `params` with the selectedQueryPreview's extraParams.\n *\n * @public\n */\nexport const setSearchExtraParamsFromPreview = wireCommit(\n 'setParams',\n ({ eventPayload: { extraParams } }) => extraParams\n);\n\n/**\n * Sets the search state `selectedFilters` with the selectedQueryPreview's filters.\n *\n * @public\n */\nexport const setSearchSelectedFiltersFromPreview = wireCommit(\n 'setSelectedFilters',\n ({ eventPayload: { filters } }) => (filters ? createRawFilters(filters) : [])\n);\n\n/**\n * Sets the search state `selectedFilters` with a selectedHistoryQuery's filters.\n *\n * @public\n */\nexport const setSearchSelectedFiltersFromHistoryQuery = wireCommit(\n 'setSelectedFilters',\n ({ eventPayload: { selectedFilters } }) => selectedFilters ?? []\n);\n\n/**\n * Search wiring.\n *\n * @internal\n */\nexport const searchWiring = createWiring({\n ParamsLoadedFromUrl: {\n setUrlParams,\n saveOriginWire\n },\n UserAcceptedAQuery: {\n setSearchQuery,\n saveOriginWire\n },\n UserAcceptedSpellcheckQuery: {\n resetSpellcheckQuery\n },\n UserClearedQuery: {\n setSearchQuery,\n cancelFetchAndSaveSearchResponseWire,\n resetFromNoResultsWithFilters,\n resetIsNoResults\n },\n UserClickedASort: {\n setSort\n },\n UserPickedARelatedTag: {\n saveOriginWire\n },\n UserReachedResultsListEnd: {\n increasePageAppendingResultsWire\n },\n SearchRequestUpdated: {\n resetStateIfNoRequestWire,\n fetchAndSaveSearchResponseWire\n },\n SearchRequestChanged: {\n resetRequestOnRefinementWire\n },\n SelectedRelatedTagsChanged: {\n setRelatedTags\n },\n SelectedFiltersForRequestChanged: {\n setSelectedFilters\n },\n ResultsChanged: {\n resetAppending\n },\n ReloadSearchRequested: {\n resetStateForReloadWire\n },\n SelectedSortProvided: {\n setSort\n },\n ExtraParamsChanged: {\n setSearchExtraParams\n },\n UserClickedCloseX: {\n clearSearchQuery\n },\n UserClickedOutOfMainModal: {\n clearSearchQuery\n },\n UserAcceptedAQueryPreview: {\n setSearchQueryFromPreview,\n setSearchExtraParamsFromPreview,\n setSearchSelectedFiltersFromPreview,\n saveOriginWire\n },\n QueryPreviewUnselected: {\n setSearchExtraParams\n },\n UserSelectedAHistoryQuery: {\n setSearchSelectedFiltersFromHistoryQuery\n },\n UserSelectedAPage: {\n setSearchPage,\n resetAppending\n }\n});\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './clear-search-input.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createCommentVNode, renderSlot, createTextVNode } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, normalizeClass, withCtx, renderSlot, createTextVNode } from 'vue';
3
3
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -10,7 +10,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
10
10
  "data-test": "clear-search-input"
11
11
  }, {
12
12
  default: withCtx(() => [
13
- createCommentVNode(" @slot _Required_. Button content (text, icon, or both) "),
14
13
  renderSlot(_ctx.$slots, "default", {}, () => [
15
14
  createTextVNode("\u2715")
16
15
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"clear-search-input.vue.js","sources":["../../../../../src/x-modules/search-box/components/clear-search-input.vue"],"sourcesContent":["<template>\n <BaseEventButton\n class=\"x-clear-search-input x-button\"\n :class=\"dynamicClasses\"\n :events=\"clearSearchInputEvents\"\n data-test=\"clear-search-input\"\n >\n <!-- @slot _Required_. Button content (text, icon, or both) -->\n <slot>✕</slot>\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, ref } from 'vue';\n import BaseEventButton from '../../../components/base-event-button.vue';\n import { VueCSSClasses } from '../../../utils/types';\n import { useState } from '../../../composables/use-state';\n import { searchBoxXModule } from '../x-module';\n\n /**\n * This component renders a button to delete the current query.\n *\n * @remarks\n * A button that when pressed emits the {@link SearchBoxXEvents.UserPressedClearSearchBoxButton}\n * and {@link SearchBoxXEvents.UserClearedQuery} events, expressing the user intention to clear\n * the current query.\n * It also adds `x-clear-search-input--has-empty-query` as class when there is no query.\n *\n * @public\n */\n export default defineComponent({\n name: 'ClearSearchInput',\n components: { BaseEventButton },\n xModule: searchBoxXModule.name,\n setup: function () {\n const { query } = useState('searchBox', ['query']);\n\n /**\n * The events dictionary that are going to be emitted when the button is pressed.\n *\n * @internal\n */\n const clearSearchInputEvents = ref({\n UserPressedClearSearchBoxButton: undefined\n });\n\n const isQueryEmpty = computed(() => query.value.length === 0);\n\n const dynamicClasses = computed<VueCSSClasses>(() => ({\n 'x-clear-search-input--has-empty-query': isQueryEmpty.value\n }));\n\n return {\n dynamicClasses,\n clearSearchInputEvents\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserPressedClearSearchBoxButton`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts)\n- [`UserClearedQuery`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts)\n\n## See it in action\n\nHere a basic example of how the clear button is rendered.\n\n_Type any term in the input field and then click the Clear button to try it out!_\n\n```vue live\n<template>\n <div style=\"display: flex;\">\n <SearchInput />\n <ClearSearchInput />\n </div>\n</template>\n\n<script>\n import { ClearSearchInput, SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput,\n SearchInput\n }\n };\n</script>\n```\n\n### Play with default slot\n\nIn this example, a custom text is passed in the default slot instead of the default text to\ncustomize the button content.\n\n_Click the icon button to try it out!_\n\n```vue live\n<template>\n <ClearSearchInput>Clear</ClearSearchInput>\n</template>\n\n<script>\n import { ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput\n }\n };\n</script>\n```\n\n### Play with events\n\nIn this example, the `UserPressedClearSearchBoxButton` event is implemented, triggering the message\n“clear” when the clear search input button is clicked.\n\n_Click the Clear button to try it out!_\n\n```vue live\n<template>\n <div>\n <ClearSearchInput @UserPressedClearSearchBoxButton=\"message = 'clear'\">Clear</ClearSearchInput>\n {{ message }}\n </div>\n</template>\n\n<script>\n import { ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput\n },\n data() {\n return {\n message: ''\n };\n }\n };\n</script>\n```\n\n## Extending the component\n\nComponents can be combined and communicate with each other. Commonly, the `ClearSearchInput`\ncomponent communicates with the [`SearchInput`](./search-input.md), deleting the search term\nentered.\n\n_Type any term in the input field and then click the icon button to try it out!_\n\n```vue live\n<template>\n <div style=\"display: flex;\">\n <SearchInput />\n <ClearSearchInput />\n </div>\n</template>\n\n<script>\n import { SearchInput, ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n SearchInput,\n ClearSearchInput\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","_createCommentVNode","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AALT,EAAA,OAAAC,SAAA,EAAwB,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC/B,sBAAU,CAAoB,+BAAA,EAAA,IAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,MAAA,EAAA,IAAA,CAAA,sBAAA;AALlC,IAAA,WAAA,EAAA,oBAAA;AAAA,GAAA,EAAA;aAQIC,OAAc,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAAR,0DAAC,CAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,MAAA;;AARX,OAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"clear-search-input.vue.js","sources":["../../../../../src/x-modules/search-box/components/clear-search-input.vue"],"sourcesContent":["<template>\n <BaseEventButton\n class=\"x-clear-search-input x-button\"\n :class=\"dynamicClasses\"\n :events=\"clearSearchInputEvents\"\n data-test=\"clear-search-input\"\n >\n <!-- @slot _Required_. Button content (text, icon, or both) -->\n <slot>✕</slot>\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, computed, ref } from 'vue';\n import BaseEventButton from '../../../components/base-event-button.vue';\n import { VueCSSClasses } from '../../../utils/types';\n import { useState } from '../../../composables/use-state';\n import { searchBoxXModule } from '../x-module';\n\n /**\n * This component renders a button to delete the current query.\n *\n * @remarks\n * A button that when pressed emits the {@link SearchBoxXEvents.UserPressedClearSearchBoxButton}\n * and {@link SearchBoxXEvents.UserClearedQuery} events, expressing the user intention to clear\n * the current query.\n * It also adds `x-clear-search-input--has-empty-query` as class when there is no query.\n *\n * @public\n */\n export default defineComponent({\n name: 'ClearSearchInput',\n components: { BaseEventButton },\n xModule: searchBoxXModule.name,\n setup: function () {\n const { query } = useState('searchBox', ['query']);\n\n /**\n * The events dictionary that are going to be emitted when the button is pressed.\n *\n * @internal\n */\n const clearSearchInputEvents = ref({\n UserPressedClearSearchBoxButton: undefined\n });\n\n const isQueryEmpty = computed(() => query.value.length === 0);\n\n const dynamicClasses = computed<VueCSSClasses>(() => ({\n 'x-clear-search-input--has-empty-query': isQueryEmpty.value\n }));\n\n return {\n dynamicClasses,\n clearSearchInputEvents\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserPressedClearSearchBoxButton`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts)\n- [`UserClearedQuery`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts)\n\n## See it in action\n\nHere a basic example of how the clear button is rendered.\n\n_Type any term in the input field and then click the Clear button to try it out!_\n\n```vue live\n<template>\n <div style=\"display: flex;\">\n <SearchInput />\n <ClearSearchInput />\n </div>\n</template>\n\n<script>\n import { ClearSearchInput, SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput,\n SearchInput\n }\n };\n</script>\n```\n\n### Play with default slot\n\nIn this example, a custom text is passed in the default slot instead of the default text to\ncustomize the button content.\n\n_Click the icon button to try it out!_\n\n```vue live\n<template>\n <ClearSearchInput>Clear</ClearSearchInput>\n</template>\n\n<script>\n import { ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput\n }\n };\n</script>\n```\n\n### Play with events\n\nIn this example, the `UserPressedClearSearchBoxButton` event is implemented, triggering the message\n“clear” when the clear search input button is clicked.\n\n_Click the Clear button to try it out!_\n\n```vue live\n<template>\n <div>\n <ClearSearchInput @UserPressedClearSearchBoxButton=\"message = 'clear'\">Clear</ClearSearchInput>\n {{ message }}\n </div>\n</template>\n\n<script>\n import { ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n ClearSearchInput\n },\n data() {\n return {\n message: ''\n };\n }\n };\n</script>\n```\n\n## Extending the component\n\nComponents can be combined and communicate with each other. Commonly, the `ClearSearchInput`\ncomponent communicates with the [`SearchInput`](./search-input.md), deleting the search term\nentered.\n\n_Type any term in the input field and then click the icon button to try it out!_\n\n```vue live\n<template>\n <div style=\"display: flex;\">\n <SearchInput />\n <ClearSearchInput />\n </div>\n</template>\n\n<script>\n import { SearchInput, ClearSearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'ClearSearchInputDemo',\n components: {\n SearchInput,\n ClearSearchInput\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AALT,EAAA,OAAAC,SAAA,EAAwB,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC/B,sBAAU,CAAoB,+BAAA,EAAA,IAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,MAAA,EAAA,IAAA,CAAA,sBAAA;AALlC,IAAA,WAAA,EAAA,oBAAA;AAAA,GAAA,EAAA;aAAAC,OAQW,CAAA,MAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,MAAA;;AARX,OAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './search-button.vue2.js';
2
- import { openBlock, createElementBlock, normalizeClass, createCommentVNode, renderSlot, createElementVNode } from 'vue';
2
+ import { openBlock, createElementBlock, normalizeClass, renderSlot, createElementVNode } from 'vue';
3
3
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  const _hoisted_1 = /* @__PURE__ */ createElementVNode(
@@ -19,7 +19,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
19
19
  "data-test": "search-button"
20
20
  },
21
21
  [
22
- createCommentVNode(" @slot _Required_. Button content (text, icon, or both) "),
23
22
  renderSlot(_ctx.$slots, "default", {}, () => [
24
23
  _hoisted_1
25
24
  ])