@empathyco/x-components 7.4.0 → 7.5.0

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 (243) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/browse/index.d.ts +1 -0
  3. package/browse/index.js +15 -0
  4. package/core/index.js.map +1 -1
  5. package/docs/API-reference/api/x-components.baseaddtocart.md +1 -1
  6. package/docs/API-reference/api/x-components.browseactioncontext.md +15 -0
  7. package/docs/API-reference/api/x-components.browseactions.cancelfetchandsavebrowseresponse.md +13 -0
  8. package/docs/API-reference/api/x-components.browseactions.fetchandsavebrowseresponse.md +13 -0
  9. package/docs/API-reference/api/x-components.browseactions.fetchandsaveresultsenrichment.md +13 -0
  10. package/docs/API-reference/api/x-components.browseactions.fetchbrowseresponse.md +13 -0
  11. package/docs/API-reference/api/x-components.browseactions.increasepageappendingresults.md +18 -0
  12. package/docs/API-reference/api/x-components.browseactions.md +210 -0
  13. package/docs/API-reference/api/x-components.browseactions.resetrequestonrefinement.md +13 -0
  14. package/docs/API-reference/api/x-components.browseactions.savebrowseresponse.md +13 -0
  15. package/docs/API-reference/api/x-components.browseactions.saveorigin.md +13 -0
  16. package/docs/API-reference/api/x-components.browseactions.seturlparams.md +13 -0
  17. package/docs/API-reference/api/x-components.browseconfig.md +75 -0
  18. package/docs/API-reference/api/x-components.browseconfig.pagemode.md +11 -0
  19. package/docs/API-reference/api/x-components.browseconfig.pagesize.md +13 -0
  20. package/docs/API-reference/api/x-components.browsegetters.md +58 -0
  21. package/docs/API-reference/api/x-components.browsegetters.request.md +13 -0
  22. package/docs/API-reference/api/x-components.browsemutations.appendresults.md +13 -0
  23. package/docs/API-reference/api/x-components.browsemutations.md +458 -0
  24. package/docs/API-reference/api/x-components.browsemutations.resetstate.md +13 -0
  25. package/docs/API-reference/api/x-components.browsemutations.resetstateforreload.md +13 -0
  26. package/docs/API-reference/api/x-components.browsemutations.setbanners.md +13 -0
  27. package/docs/API-reference/api/x-components.browsemutations.setbrowsetagging.md +13 -0
  28. package/docs/API-reference/api/x-components.browsemutations.setdisplaybrowsetagging.md +13 -0
  29. package/docs/API-reference/api/x-components.browsemutations.setfacets.md +13 -0
  30. package/docs/API-reference/api/x-components.browsemutations.setfromnoresultswithfilters.md +13 -0
  31. package/docs/API-reference/api/x-components.browsemutations.setisappendresults.md +13 -0
  32. package/docs/API-reference/api/x-components.browsemutations.setisnoresults.md +13 -0
  33. package/docs/API-reference/api/x-components.browsemutations.setorigin.md +13 -0
  34. package/docs/API-reference/api/x-components.browsemutations.setpage.md +13 -0
  35. package/docs/API-reference/api/x-components.browsemutations.setparams.md +13 -0
  36. package/docs/API-reference/api/x-components.browsemutations.setpromoteds.md +13 -0
  37. package/docs/API-reference/api/x-components.browsemutations.setresults.md +13 -0
  38. package/docs/API-reference/api/x-components.browsemutations.setselectedcategory.md +13 -0
  39. package/docs/API-reference/api/x-components.browsemutations.setselectedfilters.md +13 -0
  40. package/docs/API-reference/api/x-components.browsemutations.setsort.md +13 -0
  41. package/docs/API-reference/api/x-components.browsemutations.setstats.md +13 -0
  42. package/docs/API-reference/api/x-components.browsemutations.settotalresults.md +13 -0
  43. package/docs/API-reference/api/x-components.browsemutations.updateresult.md +13 -0
  44. package/docs/API-reference/api/x-components.browsemutations.updateresultsfromenrichment.md +13 -0
  45. package/docs/API-reference/api/x-components.browserequest.md +13 -0
  46. package/docs/API-reference/api/x-components.browseresultslist.md +31 -0
  47. package/docs/API-reference/api/x-components.browsesortpickerlist.md +45 -0
  48. package/docs/API-reference/api/x-components.browsestate.banners.md +13 -0
  49. package/docs/API-reference/api/x-components.browsestate.browsetagging.md +13 -0
  50. package/docs/API-reference/api/x-components.browsestate.config.md +13 -0
  51. package/docs/API-reference/api/x-components.browsestate.displaybrowsetagging.md +13 -0
  52. package/docs/API-reference/api/x-components.browsestate.facets.md +13 -0
  53. package/docs/API-reference/api/x-components.browsestate.fromnoresultswithfilters.md +13 -0
  54. package/docs/API-reference/api/x-components.browsestate.isappendresults.md +13 -0
  55. package/docs/API-reference/api/x-components.browsestate.isnoresults.md +13 -0
  56. package/docs/API-reference/api/x-components.browsestate.md +382 -0
  57. package/docs/API-reference/api/x-components.browsestate.origin.md +13 -0
  58. package/docs/API-reference/api/x-components.browsestate.page.md +13 -0
  59. package/docs/API-reference/api/x-components.browsestate.params.md +13 -0
  60. package/docs/API-reference/api/x-components.browsestate.promoteds.md +13 -0
  61. package/docs/API-reference/api/x-components.browsestate.results.md +13 -0
  62. package/docs/API-reference/api/x-components.browsestate.selectedcategory.md +13 -0
  63. package/docs/API-reference/api/x-components.browsestate.selectedfilters.md +13 -0
  64. package/docs/API-reference/api/x-components.browsestate.sort.md +13 -0
  65. package/docs/API-reference/api/x-components.browsestate.stats.md +13 -0
  66. package/docs/API-reference/api/x-components.browsestate.totalresults.md +13 -0
  67. package/docs/API-reference/api/x-components.browsexevents.browserequestchanged.md +13 -0
  68. package/docs/API-reference/api/x-components.browsexevents.browserequestupdated.md +18 -0
  69. package/docs/API-reference/api/x-components.browsexevents.browseresponsechanged.md +13 -0
  70. package/docs/API-reference/api/x-components.browsexevents.browsetaggingchanged.md +13 -0
  71. package/docs/API-reference/api/x-components.browsexevents.md +172 -0
  72. package/docs/API-reference/api/x-components.browsexevents.selectedbrowsesortprovided.md +18 -0
  73. package/docs/API-reference/api/x-components.browsexevents.userbrowsedtocategory.md +13 -0
  74. package/docs/API-reference/api/x-components.browsexevents.userclickedabrowsesort.md +13 -0
  75. package/docs/API-reference/api/x-components.browsexmodule.md +13 -0
  76. package/docs/API-reference/api/x-components.browsexstoremodule.md +15 -0
  77. package/docs/API-reference/api/x-components.cancelfetchandsavebrowseresponse.md +17 -0
  78. package/docs/API-reference/api/x-components.cancelfetchandsavebrowseresponsewire.md +13 -0
  79. package/docs/API-reference/api/x-components.clearbrowsequery.md +13 -0
  80. package/docs/API-reference/api/x-components.fetchandsavebrowseresponse.md +66 -0
  81. package/docs/API-reference/api/x-components.fetchandsavebrowseresponsewire.md +13 -0
  82. package/docs/API-reference/api/x-components.fetchandsavebrowseresultsenrichment.md +66 -0
  83. package/docs/API-reference/api/x-components.fetchandsavebrowseresultsenrichmentwire.md +13 -0
  84. package/docs/API-reference/api/x-components.fetchbrowseresponse.md +13 -0
  85. package/docs/API-reference/api/x-components.hierarchicalfilter.md +1 -0
  86. package/docs/API-reference/api/x-components.increasebrowsepageappendingresults.md +13 -0
  87. package/docs/API-reference/api/x-components.increasebrowsepageappendingresultswire.md +13 -0
  88. package/docs/API-reference/api/x-components.internalbrowserequest.md +59 -0
  89. package/docs/API-reference/api/x-components.internalbrowserequest.page.md +13 -0
  90. package/docs/API-reference/api/x-components.internalbrowseresponse.md +78 -0
  91. package/docs/API-reference/api/x-components.internalbrowseresponse.request.md +13 -0
  92. package/docs/API-reference/api/x-components.internalbrowseresponse.status.md +13 -0
  93. package/docs/API-reference/api/x-components.md +601 -0
  94. package/docs/API-reference/api/x-components.resetbrowseappending.md +13 -0
  95. package/docs/API-reference/api/x-components.resetbrowserequestonrefinement.md +13 -0
  96. package/docs/API-reference/api/x-components.resetbrowserequestonrefinementwire.md +13 -0
  97. package/docs/API-reference/api/x-components.resetbrowsestateforreloadwire.md +13 -0
  98. package/docs/API-reference/api/x-components.resetbrowsestateifnorequestwire.md +13 -0
  99. package/docs/API-reference/api/x-components.resetfromnobrowseresultswithfilters.md +13 -0
  100. package/docs/API-reference/api/x-components.resetisnobrowseresults.md +13 -0
  101. package/docs/API-reference/api/x-components.savebrowseorigin.md +13 -0
  102. package/docs/API-reference/api/x-components.savebrowseoriginwire.md +13 -0
  103. package/docs/API-reference/api/x-components.savebrowseresponse.md +13 -0
  104. package/docs/API-reference/api/x-components.setbrowsecategory.md +13 -0
  105. package/docs/API-reference/api/x-components.setbrowseextraparams.md +13 -0
  106. package/docs/API-reference/api/x-components.setbrowsepage.md +13 -0
  107. package/docs/API-reference/api/x-components.setbrowseselectedfilters.md +13 -0
  108. package/docs/API-reference/api/x-components.setbrowsesort.md +13 -0
  109. package/docs/API-reference/api/x-components.setbrowseurlparams.md +13 -0
  110. package/docs/API-reference/api/x-components.setbrowseurlparamswire.md +13 -0
  111. package/docs/API-reference/api/x-components.setresults.md +13 -0
  112. package/docs/API-reference/api/x-components.simplefilter.md +1 -0
  113. package/docs/API-reference/api/x-components.snippetcallbacks.md +4 -3
  114. package/docs/API-reference/api/x-components.usealiasapi.browsetotalresults.md +1 -1
  115. package/docs/API-reference/api/x-components.usealiasapi.md +1 -1
  116. package/docs/API-reference/api/x-components.vendoractions.md +11 -0
  117. package/docs/API-reference/api/x-components.vendorgetters.md +11 -0
  118. package/docs/API-reference/api/x-components.vendormutations.md +54 -0
  119. package/docs/API-reference/api/x-components.vendormutations.setresults.md +11 -0
  120. package/docs/API-reference/api/x-components.vendorresult.md +57 -0
  121. package/docs/API-reference/api/x-components.vendorresult.position.md +11 -0
  122. package/docs/API-reference/api/x-components.vendorresultslist.md +31 -0
  123. package/docs/API-reference/api/x-components.vendorstate.md +54 -0
  124. package/docs/API-reference/api/x-components.vendorstate.results.md +11 -0
  125. package/docs/API-reference/api/x-components.vendorxevents.md +58 -0
  126. package/docs/API-reference/api/x-components.vendorxevents.vendorresultschanged.md +13 -0
  127. package/docs/API-reference/api/x-components.vendorxmodule.md +13 -0
  128. package/docs/API-reference/api/x-components.vendorxstoremodule.md +11 -0
  129. package/docs/API-reference/api/x-components.watchedinternalbrowserequest.md +73 -0
  130. package/docs/API-reference/api/x-components.watchedinternalbrowserequest.newrequest.md +11 -0
  131. package/docs/API-reference/api/x-components.watchedinternalbrowserequest.oldrequest.md +11 -0
  132. package/docs/API-reference/api/x-components.xeventstypes.md +2 -2
  133. package/docs/API-reference/api/x-components.xmodulestree.md +18 -1
  134. package/docs/API-reference/api/x-components.xmodulestree.vendor.md +11 -0
  135. package/docs/API-reference/api/x-types.result.md +2 -2
  136. package/docs/API-reference/components/vendor/x-components.vendor-results-list.md +21 -0
  137. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  138. package/js/components/result/base-result-add-to-cart.vue2.js +1 -1
  139. package/js/components/result/base-result-add-to-cart.vue2.js.map +1 -1
  140. package/js/components/result/base-result-link.vue.js +12 -8
  141. package/js/components/result/base-result-link.vue.js.map +1 -1
  142. package/js/components/result/base-result-link.vue2.js.map +1 -1
  143. package/js/index.js +20 -0
  144. package/js/index.js.map +1 -1
  145. package/js/wiring/namespaced-wires.factory.js +1 -1
  146. package/js/x-modules/browse/components/browse-results-list.vue.js +46 -0
  147. package/js/x-modules/browse/components/browse-results-list.vue.js.map +1 -0
  148. package/js/x-modules/browse/components/browse-results-list.vue2.js +6 -0
  149. package/js/x-modules/browse/components/browse-results-list.vue2.js.map +1 -0
  150. package/js/x-modules/browse/components/browse-sort-picker-list.vue.js +73 -0
  151. package/js/x-modules/browse/components/browse-sort-picker-list.vue.js.map +1 -0
  152. package/js/x-modules/browse/components/browse-sort-picker-list.vue2.js +6 -0
  153. package/js/x-modules/browse/components/browse-sort-picker-list.vue2.js.map +1 -0
  154. package/js/x-modules/browse/store/actions/fetch-and-save-browse-response.action.js +57 -0
  155. package/js/x-modules/browse/store/actions/fetch-and-save-browse-response.action.js.map +1 -0
  156. package/js/x-modules/browse/store/actions/fetch-and-save-results-enrichment.action.js +21 -0
  157. package/js/x-modules/browse/store/actions/fetch-and-save-results-enrichment.action.js.map +1 -0
  158. package/js/x-modules/browse/store/actions/fetch-browse-response.action.js +16 -0
  159. package/js/x-modules/browse/store/actions/fetch-browse-response.action.js.map +1 -0
  160. package/js/x-modules/browse/store/actions/increase-page-apending-results.action.js +18 -0
  161. package/js/x-modules/browse/store/actions/increase-page-apending-results.action.js.map +1 -0
  162. package/js/x-modules/browse/store/actions/reset-request-on-refinement.action.js +36 -0
  163. package/js/x-modules/browse/store/actions/reset-request-on-refinement.action.js.map +1 -0
  164. package/js/x-modules/browse/store/actions/save-browse-response.action.js +42 -0
  165. package/js/x-modules/browse/store/actions/save-browse-response.action.js.map +1 -0
  166. package/js/x-modules/browse/store/actions/save-origin.action.js +16 -0
  167. package/js/x-modules/browse/store/actions/save-origin.action.js.map +1 -0
  168. package/js/x-modules/browse/store/actions/set-url-params.action.js +20 -0
  169. package/js/x-modules/browse/store/actions/set-url-params.action.js.map +1 -0
  170. package/js/x-modules/browse/store/emitters.js +48 -0
  171. package/js/x-modules/browse/store/emitters.js.map +1 -0
  172. package/js/x-modules/browse/store/getters/request.getter.js +27 -0
  173. package/js/x-modules/browse/store/getters/request.getter.js.map +1 -0
  174. package/js/x-modules/browse/store/module.js +163 -0
  175. package/js/x-modules/browse/store/module.js.map +1 -0
  176. package/js/x-modules/browse/wiring.js +213 -0
  177. package/js/x-modules/browse/wiring.js.map +1 -0
  178. package/js/x-modules/browse/x-module.js +21 -0
  179. package/js/x-modules/browse/x-module.js.map +1 -0
  180. package/js/x-modules/vendor/components/vendor-results-list.vue.js +81 -0
  181. package/js/x-modules/vendor/components/vendor-results-list.vue.js.map +1 -0
  182. package/js/x-modules/vendor/components/vendor-results-list.vue2.js +6 -0
  183. package/js/x-modules/vendor/components/vendor-results-list.vue2.js.map +1 -0
  184. package/js/x-modules/vendor/store/emitters.js +13 -0
  185. package/js/x-modules/vendor/store/emitters.js.map +1 -0
  186. package/js/x-modules/vendor/store/module.js +15 -0
  187. package/js/x-modules/vendor/store/module.js.map +1 -0
  188. package/js/x-modules/vendor/wiring.js +42 -0
  189. package/js/x-modules/vendor/wiring.js.map +1 -0
  190. package/js/x-modules/vendor/x-module.js +21 -0
  191. package/js/x-modules/vendor/x-module.js.map +1 -0
  192. package/package.json +4 -4
  193. package/report/x-components.api.json +5304 -752
  194. package/report/x-components.api.md +456 -11
  195. package/report/x-types.api.json +1 -1
  196. package/types/src/components/result/base-result-add-to-cart.vue.d.ts +1 -2
  197. package/types/src/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
  198. package/types/src/components/snippet-callbacks.vue.d.ts +4 -3
  199. package/types/src/components/snippet-callbacks.vue.d.ts.map +1 -1
  200. package/types/src/index.d.ts +2 -0
  201. package/types/src/index.d.ts.map +1 -1
  202. package/types/src/wiring/events.types.d.ts +2 -1
  203. package/types/src/wiring/events.types.d.ts.map +1 -1
  204. package/types/src/x-modules/browse/components/browse-results-list.vue.d.ts +30 -0
  205. package/types/src/x-modules/browse/components/browse-results-list.vue.d.ts.map +1 -0
  206. package/types/src/x-modules/browse/components/browse-sort-picker-list.vue.d.ts +50 -0
  207. package/types/src/x-modules/browse/components/browse-sort-picker-list.vue.d.ts.map +1 -0
  208. package/types/src/x-modules/browse/store/actions/index.d.ts +5 -5
  209. package/types/src/x-modules/browse/store/actions/index.d.ts.map +1 -1
  210. package/types/src/x-modules/browse/store/module.d.ts +1 -1
  211. package/types/src/x-modules/browse/store/module.d.ts.map +1 -1
  212. package/types/src/x-modules/browse/wiring.d.ts +26 -26
  213. package/types/src/x-modules/browse/wiring.d.ts.map +1 -1
  214. package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +1 -0
  215. package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  216. package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts +1 -0
  217. package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  218. package/types/src/x-modules/vendor/components/index.d.ts +2 -0
  219. package/types/src/x-modules/vendor/components/index.d.ts.map +1 -0
  220. package/types/src/x-modules/vendor/components/vendor-results-list.vue.d.ts +30 -0
  221. package/types/src/x-modules/vendor/components/vendor-results-list.vue.d.ts.map +1 -0
  222. package/types/src/x-modules/vendor/events.types.d.ts +15 -0
  223. package/types/src/x-modules/vendor/events.types.d.ts.map +1 -0
  224. package/types/src/x-modules/vendor/index.d.ts +7 -0
  225. package/types/src/x-modules/vendor/index.d.ts.map +1 -0
  226. package/types/src/x-modules/vendor/store/emitters.d.ts +7 -0
  227. package/types/src/x-modules/vendor/store/emitters.d.ts.map +1 -0
  228. package/types/src/x-modules/vendor/store/index.d.ts +4 -0
  229. package/types/src/x-modules/vendor/store/index.d.ts.map +1 -0
  230. package/types/src/x-modules/vendor/store/module.d.ts +3 -0
  231. package/types/src/x-modules/vendor/store/module.d.ts.map +1 -0
  232. package/types/src/x-modules/vendor/store/types.d.ts +14 -0
  233. package/types/src/x-modules/vendor/store/types.d.ts.map +1 -0
  234. package/types/src/x-modules/vendor/types.d.ts +8 -0
  235. package/types/src/x-modules/vendor/types.d.ts.map +1 -0
  236. package/types/src/x-modules/vendor/wiring.d.ts +20 -0
  237. package/types/src/x-modules/vendor/wiring.d.ts.map +1 -0
  238. package/types/src/x-modules/vendor/x-module.d.ts +16 -0
  239. package/types/src/x-modules/vendor/x-module.d.ts.map +1 -0
  240. package/types/src/x-modules/x-modules.types.d.ts +2 -0
  241. package/types/src/x-modules/x-modules.types.d.ts.map +1 -1
  242. package/vendor/index.d.ts +1 -0
  243. package/vendor/index.js +5 -0
@@ -0,0 +1,57 @@
1
+ import { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils.js';
2
+
3
+ const { fetchAndSave, cancelPrevious } = createFetchAndSaveActions({
4
+ async fetch({ dispatch, state }, request) {
5
+ return request && request.browseField !== '' && request.browseValue !== ''
6
+ ? dispatch('fetchBrowseResponse', enrichRequest(request, state))
7
+ : Promise.resolve(null);
8
+ },
9
+ onSuccess({ dispatch }, response) {
10
+ if (response !== null) {
11
+ void dispatch('saveBrowseResponse', response);
12
+ }
13
+ },
14
+ });
15
+ /**
16
+ * Enriches the {@link BrowseRequest} object with the origin and page properties taken from the
17
+ * {@link BrowseState | browse state}.
18
+ *
19
+ * @param request - The {@link InternalBrowseRequest}.
20
+ * @param state - {@link BrowseState}.
21
+ *
22
+ * @returns The browse request.
23
+ * @internal
24
+ */
25
+ function enrichRequest(request, state) {
26
+ const { page, ...restRequest } = request;
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;
36
+ return {
37
+ ...restRequest,
38
+ ...(origin && { origin }),
39
+ start,
40
+ rows,
41
+ };
42
+ }
43
+ /**
44
+ * Default implementation for {@link BrowseActions.fetchAndSaveBrowseResponse} action.
45
+ *
46
+ * @public
47
+ */
48
+ const fetchAndSaveBrowseResponse = fetchAndSave;
49
+ /**
50
+ * Default implementation for {@link BrowseActions.cancelFetchAndSaveBrowseResponse} action.
51
+ *
52
+ * @public
53
+ */
54
+ const cancelFetchAndSaveBrowseResponse = cancelPrevious;
55
+
56
+ export { cancelFetchAndSaveBrowseResponse, fetchAndSaveBrowseResponse };
57
+ //# sourceMappingURL=fetch-and-save-browse-response.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-and-save-browse-response.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/fetch-and-save-browse-response.action.ts"],"sourcesContent":["import type { BrowseRequest, BrowseResponse } from '@empathyco/x-types'\nimport type { InternalBrowseRequest } from '../../types'\nimport type { BrowseActionContext, BrowseState } from '../types'\nimport { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils'\n\nconst { fetchAndSave, cancelPrevious } = createFetchAndSaveActions<\n BrowseActionContext,\n InternalBrowseRequest | null,\n BrowseResponse | null\n>({\n async fetch({ dispatch, state }, request) {\n return request && request.browseField !== '' && request.browseValue !== ''\n ? dispatch('fetchBrowseResponse', enrichRequest(request, state))\n : Promise.resolve(null)\n },\n onSuccess({ dispatch }, response) {\n if (response !== null) {\n void dispatch('saveBrowseResponse', response)\n }\n },\n})\n\n/**\n * Enriches the {@link BrowseRequest} object with the origin and page properties taken from the\n * {@link BrowseState | browse state}.\n *\n * @param request - The {@link InternalBrowseRequest}.\n * @param state - {@link BrowseState}.\n *\n * @returns The browse request.\n * @internal\n */\nfunction enrichRequest(request: InternalBrowseRequest, state: BrowseState): BrowseRequest {\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 BrowseActions.fetchAndSaveBrowseResponse} action.\n *\n * @public\n */\nexport const fetchAndSaveBrowseResponse = fetchAndSave\n\n/**\n * Default implementation for {@link BrowseActions.cancelFetchAndSaveBrowseResponse} action.\n *\n * @public\n */\nexport const cancelFetchAndSaveBrowseResponse = cancelPrevious\n"],"names":[],"mappings":";;AAKA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAIhE;IACA,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAA;AACtC,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,KAAK;cACpE,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;AAC/D,cAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;AACD,IAAA,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAA;AAC9B,QAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;AACrB,YAAA,KAAK,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QAC/C;IACF,CAAC;AACF,CAAA,CAAC;AAEF;;;;;;;;;AASG;AACH,SAAS,aAAa,CAAC,OAA8B,EAAE,KAAkB,EAAA;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO;AACxC,IAAA,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9B,MAAM,EACN,OAAO,GACR,GAAG,KAAK;AAET,IAAA,IAAI,KAAK;AACT,IAAA,IAAI,QAAQ,KAAK,iBAAiB,EAAE;AAClC,QAAA,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM;IACzC;SAAO;AACL,QAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;IAC5C;AAEA,IAAA,MAAM,IAAI,GAAG,QAAQ,KAAK,iBAAiB,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ;IAEhF,OAAO;AACL,QAAA,GAAG,WAAW;AACd,QAAA,IAAI,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,KAAK;QACL,IAAI;KACL;AACH;AAEA;;;;AAIG;AACI,MAAM,0BAA0B,GAAG;AAE1C;;;;AAIG;AACI,MAAM,gCAAgC,GAAG;;;;"}
@@ -0,0 +1,21 @@
1
+ import { DefaultResultsEnrichmentService } from '../../../../services/results-enrichment.service.js';
2
+ import { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils.js';
3
+
4
+ const { fetchAndSave, cancelPrevious } = createFetchAndSaveActions({
5
+ async fetch(_, results) {
6
+ return results.length > 0 ? DefaultResultsEnrichmentService.instance.fetchResults(results) : [];
7
+ },
8
+ onSuccess({ commit }, enrichmentResults) {
9
+ commit('updateResultsFromEnrichment', enrichmentResults);
10
+ },
11
+ });
12
+ /**
13
+ * Default implementation for {@link BrowseActions.fetchAndSaveResultsEnrichment}
14
+ * action.
15
+ *
16
+ * @public
17
+ */
18
+ const fetchAndSaveResultsEnrichment = fetchAndSave;
19
+
20
+ export { fetchAndSaveResultsEnrichment };
21
+ //# sourceMappingURL=fetch-and-save-results-enrichment.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-and-save-results-enrichment.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/fetch-and-save-results-enrichment.action.ts"],"sourcesContent":["import type { Result } from '@empathyco/x-types'\n\nimport type { BrowseActionContext } from '../types'\nimport { DefaultResultsEnrichmentService } from '../../../../services/results-enrichment.service'\nimport { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils'\n\nconst { fetchAndSave, cancelPrevious } = createFetchAndSaveActions<\n BrowseActionContext,\n Result[],\n any[]\n>({\n async fetch(_, results) {\n return results.length > 0 ? DefaultResultsEnrichmentService.instance.fetchResults(results) : []\n },\n onSuccess({ commit }, enrichmentResults) {\n commit('updateResultsFromEnrichment', enrichmentResults)\n },\n})\n\n/**\n * Default implementation for {@link BrowseActions.fetchAndSaveResultsEnrichment}\n * action.\n *\n * @public\n */\nexport const fetchAndSaveResultsEnrichment = fetchAndSave\n\n/**\n * Default implementation for {@link BrowseActions.cancelFetchAndSaveResultsEnrichment}\n * action.\n *\n * @public\n */\nexport const cancelFetchAndSaveResultsEnrichment = cancelPrevious\n"],"names":[],"mappings":";;;AAMA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAIhE;AACA,IAAA,MAAM,KAAK,CAAC,CAAC,EAAE,OAAO,EAAA;QACpB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,+BAA+B,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE;IACjG,CAAC;AACD,IAAA,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAA;AACrC,QAAA,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC;IAC1D,CAAC;AACF,CAAA,CAAC;AAEF;;;;;AAKG;AACI,MAAM,6BAA6B,GAAG;;;;"}
@@ -0,0 +1,16 @@
1
+ import { XPlugin } from '../../../../plugins/x-plugin.js';
2
+
3
+ /**
4
+ * Default implementation for the {@link BrowseActions.fetchBrowseResponse}.
5
+ *
6
+ * @param _context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
7
+ * provided by Vuex.
8
+ * @param request - The browse request to make.
9
+ * @returns A Promise of browse response that resolves when it fetches browse response.
10
+ *
11
+ * @public
12
+ */
13
+ const fetchBrowseResponse = async (_context, request) => XPlugin.adapter.browse(request);
14
+
15
+ export { fetchBrowseResponse };
16
+ //# sourceMappingURL=fetch-browse-response.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-browse-response.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/fetch-browse-response.action.ts"],"sourcesContent":["import type { BrowseXStoreModule } from '../types'\nimport { XPlugin } from '../../../../plugins/x-plugin'\n\n/**\n * Default implementation for the {@link BrowseActions.fetchBrowseResponse}.\n *\n * @param _context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param request - The browse request to make.\n * @returns A Promise of browse response that resolves when it fetches browse response.\n *\n * @public\n */\nexport const fetchBrowseResponse: BrowseXStoreModule['actions']['fetchBrowseResponse'] = async (\n _context,\n request,\n) => XPlugin.adapter.browse(request)\n"],"names":[],"mappings":";;AAGA;;;;;;;;;AASG;MACU,mBAAmB,GAAyD,OACvF,QAAQ,EACR,OAAO,KACJ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO;;;;"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Default implementation for the {@link BrowseActions.increasePageAppendingResults}.
3
+ *
4
+ * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
5
+ * provided by Vuex.
6
+ *
7
+ * @public
8
+ */
9
+ const increasePageAppendingResults = ({ commit, state }) => {
10
+ const newPage = state.page + 1;
11
+ if (newPage >= 1 && state.page * state.config.pageSize < state.totalResults) {
12
+ commit('setPage', newPage);
13
+ commit('setIsAppendResults', true);
14
+ }
15
+ };
16
+
17
+ export { increasePageAppendingResults };
18
+ //# sourceMappingURL=increase-page-apending-results.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"increase-page-apending-results.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/increase-page-apending-results.action.ts"],"sourcesContent":["import type { BrowseXStoreModule } from '../types'\n\n/**\n * Default implementation for the {@link BrowseActions.increasePageAppendingResults}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n *\n * @public\n */\n\nexport const increasePageAppendingResults: BrowseXStoreModule['actions']['increasePageAppendingResults'] =\n ({ commit, state }) => {\n const newPage = state.page + 1\n if (newPage >= 1 && state.page * state.config.pageSize < state.totalResults) {\n commit('setPage', newPage)\n commit('setIsAppendResults', true)\n }\n }\n"],"names":[],"mappings":"AAEA;;;;;;;AAOG;AAEI,MAAM,4BAA4B,GACvC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAI;AACpB,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;AAC9B,IAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE;AAC3E,QAAA,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1B,QAAA,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpC;AACF;;;;"}
@@ -0,0 +1,36 @@
1
+ import { getNewAndUpdatedKeys } from '@empathyco/x-utils';
2
+ import { isArrayEmpty } from '../../../../utils/array.js';
3
+
4
+ /**
5
+ * Default implementation for the {@link BrowseActions.resetRequestOnRefinement}.
6
+ *
7
+ * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
8
+ * provided by Vuex.
9
+ * @param watchedRequest - The {@link WatchedInternalBrowseRequest} object.
10
+ * @public
11
+ */
12
+ const resetRequestOnRefinement = ({ commit, state }, { newRequest, oldRequest }) => {
13
+ if (state.fromNoResultsWithFilters && state.results.length) {
14
+ commit('setFromNoResultsWithFilters', false);
15
+ }
16
+ // is refining request
17
+ if (!!newRequest && !!oldRequest) {
18
+ const changedKeys = getNewAndUpdatedKeys(newRequest, oldRequest).filter(value => value !== 'extraParams');
19
+ const changedExtraParams = getNewAndUpdatedKeys(newRequest.extraParams, oldRequest.extraParams);
20
+ if (!isArrayEmpty(changedKeys)) {
21
+ if (!changedKeys.includes('page')) {
22
+ commit('setPage', 1);
23
+ }
24
+ if (changedKeys.includes('browseField') && changedKeys.includes('browseValue')) {
25
+ commit('setSort', '');
26
+ }
27
+ }
28
+ if (!isArrayEmpty(changedExtraParams)) {
29
+ commit('setPage', 1);
30
+ commit('setSort', '');
31
+ }
32
+ }
33
+ };
34
+
35
+ export { resetRequestOnRefinement };
36
+ //# sourceMappingURL=reset-request-on-refinement.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-request-on-refinement.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/reset-request-on-refinement.action.ts"],"sourcesContent":["import type { BrowseXStoreModule } from '../types'\nimport { getNewAndUpdatedKeys } from '@empathyco/x-utils'\nimport { isArrayEmpty } from '../../../../utils/array'\n\n/**\n * Default implementation for the {@link BrowseActions.resetRequestOnRefinement}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param watchedRequest - The {@link WatchedInternalBrowseRequest} object.\n * @public\n */\nexport const resetRequestOnRefinement: BrowseXStoreModule['actions']['resetRequestOnRefinement'] = (\n { commit, state },\n { newRequest, oldRequest },\n) => {\n if (state.fromNoResultsWithFilters && state.results.length) {\n commit('setFromNoResultsWithFilters', false)\n }\n // is refining request\n if (!!newRequest && !!oldRequest) {\n const changedKeys = getNewAndUpdatedKeys(newRequest, oldRequest).filter(\n value => value !== 'extraParams',\n )\n const changedExtraParams = getNewAndUpdatedKeys(newRequest.extraParams, oldRequest.extraParams)\n\n if (!isArrayEmpty(changedKeys)) {\n if (!changedKeys.includes('page')) {\n commit('setPage', 1)\n }\n if (changedKeys.includes('browseField') && changedKeys.includes('browseValue')) {\n commit('setSort', '')\n }\n }\n if (!isArrayEmpty(changedExtraParams)) {\n commit('setPage', 1)\n commit('setSort', '')\n }\n }\n}\n"],"names":[],"mappings":";;;AAIA;;;;;;;AAOG;AACI,MAAM,wBAAwB,GAA8D,CACjG,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,EAAE,UAAU,EAAE,UAAU,EAAE,KACxB;IACF,IAAI,KAAK,CAAC,wBAAwB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC1D,QAAA,MAAM,CAAC,6BAA6B,EAAE,KAAK,CAAC;IAC9C;;IAEA,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,EAAE;AAChC,QAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,MAAM,CACrE,KAAK,IAAI,KAAK,KAAK,aAAa,CACjC;AACD,QAAA,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;AAE/F,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,gBAAA,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACtB;AACA,YAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC9E,gBAAA,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB;QACF;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE;AACrC,YAAA,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACpB,YAAA,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB;IACF;AACF;;;;"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Default implementation for the {@link BrowseActions.saveBrowseResponse}.
3
+ *
4
+ * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
5
+ * provided by Vuex.
6
+ * @param response - The {@link @empathyco/x-types#BrowseResponse} to save.
7
+ * @public
8
+ */
9
+ const saveBrowseResponse = ({ commit, state, getters }, { results, facets, banners, promoteds, totalResults, browseTagging, displayBrowseTagging, stats }) => {
10
+ if (totalResults === 0) {
11
+ commit('setIsNoResults', true);
12
+ if (getters.request && Object.keys(getters.request.filters).length > 0) {
13
+ commit('setSelectedFilters', []);
14
+ commit('setFromNoResultsWithFilters', true);
15
+ }
16
+ }
17
+ else {
18
+ commit('setIsNoResults', false);
19
+ }
20
+ if (state.isAppendResults) {
21
+ commit('appendResults', results);
22
+ }
23
+ else {
24
+ commit('setResults', results);
25
+ commit('setBanners', banners ?? []);
26
+ commit('setPromoteds', promoteds ?? []);
27
+ }
28
+ if (facets) {
29
+ commit('setFacets', facets);
30
+ }
31
+ if (browseTagging) {
32
+ commit('setBrowseTagging', browseTagging);
33
+ }
34
+ if (displayBrowseTagging) {
35
+ commit('setDisplayBrowseTagging', displayBrowseTagging);
36
+ }
37
+ commit('setTotalResults', totalResults);
38
+ commit('setStats', stats);
39
+ };
40
+
41
+ export { saveBrowseResponse };
42
+ //# sourceMappingURL=save-browse-response.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-browse-response.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/save-browse-response.action.ts"],"sourcesContent":["import type { Stats } from '@empathyco/x-types'\nimport type { BrowseXStoreModule } from '../types'\n\n/**\n * Default implementation for the {@link BrowseActions.saveBrowseResponse}.\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#BrowseResponse} to save.\n * @public\n */\nexport const saveBrowseResponse: BrowseXStoreModule['actions']['saveBrowseResponse'] = (\n { commit, state, getters },\n { results, facets, banners, promoteds, totalResults, browseTagging, displayBrowseTagging, stats },\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 }\n\n if (facets) {\n commit('setFacets', facets)\n }\n\n if (browseTagging) {\n commit('setBrowseTagging', browseTagging)\n }\n\n if (displayBrowseTagging) {\n commit('setDisplayBrowseTagging', displayBrowseTagging)\n }\n\n commit('setTotalResults', totalResults)\n commit('setStats', stats as Stats)\n}\n"],"names":[],"mappings":"AAGA;;;;;;;AAOG;AACI,MAAM,kBAAkB,GAAwD,CACrF,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAC1B,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAC/F;AACF,IAAA,IAAI,YAAY,KAAK,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC;AAC9B,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;AAChC,YAAA,MAAM,CAAC,6BAA6B,EAAE,IAAI,CAAC;QAC7C;IACF;SAAO;AACL,QAAA,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACjC;AAEA,IAAA,IAAI,KAAK,CAAC,eAAe,EAAE;AACzB,QAAA,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;SAAO;AACL,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;AAC7B,QAAA,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;AACnC,QAAA,MAAM,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC;IACzC;IAEA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;IAEA,IAAI,aAAa,EAAE;AACjB,QAAA,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAC3C;IAEA,IAAI,oBAAoB,EAAE;AACxB,QAAA,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;IACzD;AAEA,IAAA,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC;AACvC,IAAA,MAAM,CAAC,UAAU,EAAE,KAAc,CAAC;AACpC;;;;"}
@@ -0,0 +1,16 @@
1
+ import { createOrigin } from '../../../../utils/origin.js';
2
+
3
+ /**
4
+ * Default implementation for the {@link BrowseActions.saveOrigin}.
5
+ *
6
+ * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
7
+ * provided by Vuex.
8
+ * @param queryOriginInit - The object to create the {@link QueryOrigin} with.
9
+ * @public
10
+ */
11
+ const saveOrigin = ({ commit }, queryOriginInit) => {
12
+ commit('setOrigin', createOrigin(queryOriginInit));
13
+ };
14
+
15
+ export { saveOrigin };
16
+ //# sourceMappingURL=save-origin.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-origin.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/save-origin.action.ts"],"sourcesContent":["import type { QueryOrigin } from '../../../../types/origin'\nimport type { BrowseXStoreModule } from '../types'\nimport { createOrigin } from '../../../../utils/origin'\n\n/**\n * Default implementation for the {@link BrowseActions.saveOrigin}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param queryOriginInit - The object to create the {@link QueryOrigin} with.\n * @public\n */\nexport const saveOrigin: BrowseXStoreModule['actions']['saveOrigin'] = (\n { commit },\n queryOriginInit,\n) => {\n commit('setOrigin', createOrigin(queryOriginInit) as QueryOrigin | null)\n}\n"],"names":[],"mappings":";;AAIA;;;;;;;AAOG;AACI,MAAM,UAAU,GAAgD,CACrE,EAAE,MAAM,EAAE,EACV,eAAe,KACb;IACF,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,eAAe,CAAuB,CAAC;AAC1E;;;;"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Default implementation for the {@link BrowseActions.setUrlParams}.
3
+ *
4
+ * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
5
+ * provided by Vuex.
6
+ * @param urlParams - List of params from the url.
7
+ * @public
8
+ */
9
+ const setUrlParams = ({ commit, state }, { browseValue, browseField, page, sort }) => {
10
+ const currentCategory = state.selectedCategory;
11
+ commit('setSelectedCategory', { browseValue, browseField });
12
+ commit('setPage', !currentCategory ||
13
+ (currentCategory.browseValue === browseValue && currentCategory.browseField === browseField)
14
+ ? page
15
+ : 1);
16
+ commit('setSort', sort);
17
+ };
18
+
19
+ export { setUrlParams };
20
+ //# sourceMappingURL=set-url-params.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-url-params.action.js","sources":["../../../../../../src/x-modules/browse/store/actions/set-url-params.action.ts"],"sourcesContent":["import type { BrowseXStoreModule } from '../types'\n\n/**\n * Default implementation for the {@link BrowseActions.setUrlParams}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param urlParams - List of params from the url.\n * @public\n */\nexport const setUrlParams: BrowseXStoreModule['actions']['setUrlParams'] = (\n { commit, state },\n { browseValue, browseField, page, sort },\n) => {\n const currentCategory = state.selectedCategory\n\n commit('setSelectedCategory', { browseValue, browseField })\n commit(\n 'setPage',\n !currentCategory ||\n (currentCategory.browseValue === browseValue && currentCategory.browseField === browseField)\n ? page\n : 1,\n )\n commit('setSort', sort)\n}\n"],"names":[],"mappings":"AAEA;;;;;;;AAOG;MACU,YAAY,GAAkD,CACzE,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KACtC;AACF,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB;IAE9C,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC3D,IAAA,MAAM,CACJ,SAAS,EACT,CAAC,eAAe;SACb,eAAe,CAAC,WAAW,KAAK,WAAW,IAAI,eAAe,CAAC,WAAW,KAAK,WAAW;AAC3F,UAAE;UACA,CAAC,CACN;AACD,IAAA,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACzB;;;;"}
@@ -0,0 +1,48 @@
1
+ import '@empathyco/x-utils';
2
+ import { createStoreEmitters } from '../../../store/utils/store-emitters.utils.js';
3
+ import { isStringEmpty } from '../../../utils/string.js';
4
+ import { browseXStoreModule } from './module.js';
5
+
6
+ /**
7
+ * {@link StoreEmitters} For the browse module.
8
+ *
9
+ * @internal
10
+ */
11
+ const browseEmitters = createStoreEmitters(browseXStoreModule, {
12
+ FacetsChanged: {
13
+ selector: state => state.facets,
14
+ filter(newValue, oldValue) {
15
+ return newValue.length !== 0 || oldValue.length !== 0;
16
+ },
17
+ },
18
+ PageChanged: state => state.page,
19
+ ResultsChanged: state => state.results,
20
+ BrowseRequestChanged: (_, getters) => getters.request,
21
+ BrowseRequestUpdated: (_, getters) => getters.request,
22
+ BrowseResponseChanged: {
23
+ selector: (state, getters) => {
24
+ return {
25
+ request: getters.request,
26
+ status: state.status,
27
+ banners: state.banners,
28
+ facets: state.facets,
29
+ promoteds: state.promoteds,
30
+ browseTagging: state.browseTagging,
31
+ displayBrowseTagging: state.displayBrowseTagging,
32
+ results: state.results,
33
+ totalResults: state.totalResults,
34
+ };
35
+ },
36
+ filter: (newValue, oldValue) => {
37
+ return (newValue.status !== oldValue.status && oldValue.status === 'loading' && !!newValue.request);
38
+ },
39
+ },
40
+ BrowseTaggingChanged: {
41
+ selector: state => state.browseTagging,
42
+ filter: ({ url }) => !isStringEmpty(url),
43
+ },
44
+ SortChanged: state => state.sort,
45
+ });
46
+
47
+ export { browseEmitters };
48
+ //# sourceMappingURL=emitters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/browse/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store'\nimport { isStringEmpty } from '../../../utils/string'\nimport { browseXStoreModule } from './module'\n\n/**\n * {@link StoreEmitters} For the browse module.\n *\n * @internal\n */\nexport const browseEmitters = createStoreEmitters(browseXStoreModule, {\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 BrowseRequestChanged: (_, getters) => getters.request,\n BrowseRequestUpdated: (_, getters) => getters.request,\n BrowseResponseChanged: {\n selector: (state, getters) => {\n return {\n request: getters.request!,\n status: state.status,\n banners: state.banners,\n facets: state.facets,\n promoteds: state.promoteds,\n browseTagging: state.browseTagging,\n displayBrowseTagging: state.displayBrowseTagging,\n results: state.results,\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 BrowseTaggingChanged: {\n selector: state => state.browseTagging,\n filter: ({ url }) => !isStringEmpty(url),\n },\n SortChanged: state => state.sort,\n})\n"],"names":[],"mappings":";;;;;AAIA;;;;AAIG;AACI,MAAM,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;QACvD,CAAC;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,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;gBAChD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;aACjC;QACH,CAAC;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;QAE9F,CAAC;AACF,KAAA;AACD,IAAA,oBAAoB,EAAE;AACpB,QAAA,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,aAAa;AACtC,QAAA,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;AACzC,KAAA;AACD,IAAA,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;AACjC,CAAA;;;;"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Default implementation for the {@link BrowseGetters.request} getter.
3
+ *
4
+ * @param state - Current {@link https://vuex.vuejs.org/guide/state.html | state} of the browse
5
+ * module.
6
+ * @param getters - Current {@link https://vuex.vuejs.org/guide/getters.html | getters} of the
7
+ * browse module.
8
+ * @returns The browse request to fetch data from the API.
9
+ * @public
10
+ */
11
+ const request = ({ page, params, selectedFilters: filters, sort, selectedCategory, }) => {
12
+ const browseValue = selectedCategory?.browseValue?.trim();
13
+ const browseField = selectedCategory?.browseField?.trim();
14
+ return browseValue && browseField
15
+ ? {
16
+ browseField,
17
+ browseValue,
18
+ sort,
19
+ page,
20
+ filters,
21
+ extraParams: params,
22
+ }
23
+ : null;
24
+ };
25
+
26
+ export { request };
27
+ //# sourceMappingURL=request.getter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.getter.js","sources":["../../../../../../src/x-modules/browse/store/getters/request.getter.ts"],"sourcesContent":["import type { BrowseXStoreModule } from '../types'\n\n/**\n * Default implementation for the {@link BrowseGetters.request} getter.\n *\n * @param state - Current {@link https://vuex.vuejs.org/guide/state.html | state} of the browse\n * module.\n * @param getters - Current {@link https://vuex.vuejs.org/guide/getters.html | getters} of the\n * browse module.\n * @returns The browse request to fetch data from the API.\n * @public\n */\nexport const request: BrowseXStoreModule['getters']['request'] = ({\n page,\n params,\n selectedFilters: filters,\n sort,\n selectedCategory,\n}) => {\n const browseValue = selectedCategory?.browseValue?.trim()\n const browseField = selectedCategory?.browseField?.trim()\n\n return browseValue && browseField\n ? {\n browseField,\n browseValue,\n sort,\n page,\n filters,\n extraParams: params,\n }\n : null\n}\n"],"names":[],"mappings":"AAEA;;;;;;;;;AASG;AACI,MAAM,OAAO,GAA6C,CAAC,EAChE,IAAI,EACJ,MAAM,EACN,eAAe,EAAE,OAAO,EACxB,IAAI,EACJ,gBAAgB,GACjB,KAAI;IACH,MAAM,WAAW,GAAG,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE;IACzD,MAAM,WAAW,GAAG,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE;IAEzD,OAAO,WAAW,IAAI;AACpB,UAAE;YACE,WAAW;YACX,WAAW;YACX,IAAI;YACJ,IAAI;YACJ,OAAO;AACP,YAAA,WAAW,EAAE,MAAM;AACpB;UACD,IAAI;AACV;;;;"}
@@ -0,0 +1,163 @@
1
+ import { isFacetFilter } from '@empathyco/x-types';
2
+ import { DefaultResultsEnrichmentService } from '../../../services/results-enrichment.service.js';
3
+ import { mergeConfig, setConfig } from '../../../store/utils/config-store.utils.js';
4
+ import '@empathyco/x-utils';
5
+ import { setStatus } from '../../../store/utils/status-store.utils.js';
6
+ import { groupItemsBy } from '../../../utils/array.js';
7
+ import { UNKNOWN_FACET_KEY } from '../../facets/store/constants.js';
8
+ import { fetchAndSaveBrowseResponse, cancelFetchAndSaveBrowseResponse } from './actions/fetch-and-save-browse-response.action.js';
9
+ import { fetchAndSaveResultsEnrichment } from './actions/fetch-and-save-results-enrichment.action.js';
10
+ import { fetchBrowseResponse } from './actions/fetch-browse-response.action.js';
11
+ import { increasePageAppendingResults } from './actions/increase-page-apending-results.action.js';
12
+ import { resetRequestOnRefinement } from './actions/reset-request-on-refinement.action.js';
13
+ import { saveBrowseResponse } from './actions/save-browse-response.action.js';
14
+ import { saveOrigin } from './actions/save-origin.action.js';
15
+ import { setUrlParams } from './actions/set-url-params.action.js';
16
+ import { request } from './getters/request.getter.js';
17
+
18
+ /**
19
+ * {@link XStoreModule} For the browse module.
20
+ *
21
+ * @internal
22
+ */
23
+ const browseXStoreModule = {
24
+ state: () => ({
25
+ ...resettableBrowseState(),
26
+ selectedFilters: {},
27
+ params: {},
28
+ config: {
29
+ threshold: 24,
30
+ pageSize: 24,
31
+ pageMode: 'infinite_scroll',
32
+ },
33
+ status: 'initial',
34
+ isNoResults: false,
35
+ fromNoResultsWithFilters: false,
36
+ }),
37
+ getters: {
38
+ request,
39
+ },
40
+ mutations: {
41
+ appendResults(state, results) {
42
+ state.results = [...state.results, ...results];
43
+ },
44
+ resetState(state) {
45
+ Object.assign(state, resettableBrowseState());
46
+ },
47
+ resetStateForReload(state) {
48
+ const { selectedCategory, facets, sort, page, ...resettable } = resettableBrowseState();
49
+ Object.assign(state, resettable);
50
+ },
51
+ setResults(state, results) {
52
+ state.results = results;
53
+ },
54
+ setFacets(state, facets) {
55
+ state.facets = facets;
56
+ },
57
+ setSelectedFilters(state, selectedFilters) {
58
+ state.selectedFilters = groupItemsBy(selectedFilters, filter => isFacetFilter(filter) ? filter.facetId : UNKNOWN_FACET_KEY);
59
+ },
60
+ setBanners(state, banners) {
61
+ state.banners = banners;
62
+ },
63
+ setPromoteds(state, promoteds) {
64
+ state.promoteds = promoteds;
65
+ },
66
+ setTotalResults(state, totalResults) {
67
+ state.totalResults = totalResults;
68
+ },
69
+ setSort(state, sort) {
70
+ state.sort = sort;
71
+ },
72
+ setPage(state, page) {
73
+ state.page = page;
74
+ },
75
+ setSelectedCategory(state, selectedCategory) {
76
+ state.selectedCategory = selectedCategory;
77
+ },
78
+ setConfig,
79
+ mergeConfig,
80
+ setIsAppendResults(state, isAppendResults) {
81
+ state.isAppendResults = isAppendResults;
82
+ },
83
+ setIsNoResults(state, isNoResults) {
84
+ state.isNoResults = isNoResults;
85
+ },
86
+ setFromNoResultsWithFilters(state, fromNoResultsWithFilters) {
87
+ state.fromNoResultsWithFilters = fromNoResultsWithFilters;
88
+ },
89
+ setStatus,
90
+ setParams(state, params) {
91
+ state.params = params;
92
+ },
93
+ setOrigin(state, origin = null) {
94
+ state.origin = origin;
95
+ },
96
+ setBrowseTagging(state, browseTagging) {
97
+ state.browseTagging = browseTagging;
98
+ },
99
+ setDisplayBrowseTagging(state, displayBrowseTagging) {
100
+ state.displayBrowseTagging = displayBrowseTagging;
101
+ },
102
+ updateResult(state, result) {
103
+ const stateResult = state.results.find(stateResult => result.id === stateResult.id);
104
+ if (stateResult) {
105
+ Object.assign(stateResult, result);
106
+ }
107
+ },
108
+ updateResultsFromEnrichment(state, enrichmentResults) {
109
+ DefaultResultsEnrichmentService.instance.updateResults(state.results, enrichmentResults);
110
+ },
111
+ setStats(state, stats) {
112
+ state.stats = stats;
113
+ },
114
+ },
115
+ actions: {
116
+ cancelFetchAndSaveBrowseResponse,
117
+ fetchBrowseResponse,
118
+ fetchAndSaveBrowseResponse,
119
+ fetchAndSaveResultsEnrichment,
120
+ increasePageAppendingResults,
121
+ resetRequestOnRefinement,
122
+ saveBrowseResponse,
123
+ setUrlParams,
124
+ saveOrigin,
125
+ },
126
+ };
127
+ /**
128
+ * Function to return the "resettable" part of the state. This will be used in the `resetState`
129
+ * mutation to reset to the initial state.
130
+ *
131
+ * @returns The "resettable" part of the {@link BrowseState}.
132
+ *
133
+ * @internal
134
+ */
135
+ function resettableBrowseState() {
136
+ return {
137
+ selectedCategory: {
138
+ browseValue: '',
139
+ browseField: '',
140
+ },
141
+ results: [],
142
+ facets: [],
143
+ banners: [],
144
+ promoteds: [],
145
+ totalResults: 0,
146
+ sort: '',
147
+ page: 1,
148
+ origin: null,
149
+ isAppendResults: false,
150
+ browseTagging: {
151
+ url: '',
152
+ params: {},
153
+ },
154
+ displayBrowseTagging: {
155
+ url: '',
156
+ params: {},
157
+ },
158
+ stats: {},
159
+ };
160
+ }
161
+
162
+ export { browseXStoreModule, resettableBrowseState };
163
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sources":["../../../../../src/x-modules/browse/store/module.ts"],"sourcesContent":["import type { Stats } from '@empathyco/x-types'\nimport type { BrowseXStoreModule } from './types'\nimport { isFacetFilter } from '@empathyco/x-types'\nimport { DefaultResultsEnrichmentService } from '../../../services/results-enrichment.service'\nimport { setStatus } from '../../../store'\nimport { mergeConfig, setConfig } from '../../../store/utils/config-store.utils'\nimport { groupItemsBy } from '../../../utils/array'\nimport { UNKNOWN_FACET_KEY } from '../../facets/store/constants'\nimport {\n cancelFetchAndSaveBrowseResponse,\n fetchAndSaveBrowseResponse,\n fetchBrowseResponse,\n saveBrowseResponse,\n} from './actions'\nimport { fetchAndSaveResultsEnrichment } from './actions/fetch-and-save-results-enrichment.action'\nimport { increasePageAppendingResults } from './actions/increase-page-apending-results.action'\nimport { resetRequestOnRefinement } from './actions/reset-request-on-refinement.action'\nimport { saveOrigin } from './actions/save-origin.action'\nimport { setUrlParams } from './actions/set-url-params.action'\nimport { request } from './getters/request.getter'\n\n/**\n * {@link XStoreModule} For the browse module.\n *\n * @internal\n */\nexport const browseXStoreModule: BrowseXStoreModule = {\n state: () => ({\n ...resettableBrowseState(),\n selectedFilters: {},\n params: {},\n config: {\n threshold: 24,\n pageSize: 24,\n pageMode: 'infinite_scroll',\n },\n status: 'initial',\n isNoResults: false,\n fromNoResultsWithFilters: false,\n }),\n getters: {\n request,\n },\n mutations: {\n appendResults(state, results) {\n state.results = [...state.results, ...results]\n },\n resetState(state) {\n Object.assign(state, resettableBrowseState())\n },\n resetStateForReload(state) {\n const { selectedCategory, facets, sort, page, ...resettable } = resettableBrowseState()\n Object.assign(state, resettable)\n },\n setResults(state, results) {\n state.results = results\n },\n setFacets(state, facets) {\n state.facets = facets\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 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 setSelectedCategory(state, selectedCategory) {\n state.selectedCategory = selectedCategory\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 setBrowseTagging(state, browseTagging) {\n state.browseTagging = browseTagging\n },\n setDisplayBrowseTagging(state, displayBrowseTagging) {\n state.displayBrowseTagging = displayBrowseTagging\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 updateResultsFromEnrichment(state, enrichmentResults) {\n DefaultResultsEnrichmentService.instance.updateResults(state.results, enrichmentResults)\n },\n setStats(state, stats) {\n state.stats = stats\n },\n },\n actions: {\n cancelFetchAndSaveBrowseResponse,\n fetchBrowseResponse,\n fetchAndSaveBrowseResponse,\n fetchAndSaveResultsEnrichment,\n increasePageAppendingResults,\n resetRequestOnRefinement,\n saveBrowseResponse,\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 BrowseState}.\n *\n * @internal\n */\nexport function resettableBrowseState() {\n return {\n selectedCategory: {\n browseValue: '',\n browseField: '',\n },\n results: [],\n facets: [],\n banners: [],\n promoteds: [],\n totalResults: 0,\n sort: '',\n page: 1,\n origin: null,\n isAppendResults: false,\n browseTagging: {\n url: '',\n params: {},\n },\n displayBrowseTagging: {\n url: '',\n params: {},\n },\n stats: {} as Stats,\n }\n}\n"],"names":[],"mappings":"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"}