@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.
- package/CHANGELOG.md +15 -0
- package/browse/index.d.ts +1 -0
- package/browse/index.js +15 -0
- package/core/index.js.map +1 -1
- package/docs/API-reference/api/x-components.baseaddtocart.md +1 -1
- package/docs/API-reference/api/x-components.browseactioncontext.md +15 -0
- package/docs/API-reference/api/x-components.browseactions.cancelfetchandsavebrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.fetchandsavebrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.fetchandsaveresultsenrichment.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.fetchbrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.increasepageappendingresults.md +18 -0
- package/docs/API-reference/api/x-components.browseactions.md +210 -0
- package/docs/API-reference/api/x-components.browseactions.resetrequestonrefinement.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.savebrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.saveorigin.md +13 -0
- package/docs/API-reference/api/x-components.browseactions.seturlparams.md +13 -0
- package/docs/API-reference/api/x-components.browseconfig.md +75 -0
- package/docs/API-reference/api/x-components.browseconfig.pagemode.md +11 -0
- package/docs/API-reference/api/x-components.browseconfig.pagesize.md +13 -0
- package/docs/API-reference/api/x-components.browsegetters.md +58 -0
- package/docs/API-reference/api/x-components.browsegetters.request.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.appendresults.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.md +458 -0
- package/docs/API-reference/api/x-components.browsemutations.resetstate.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.resetstateforreload.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setbanners.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setbrowsetagging.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setdisplaybrowsetagging.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setfacets.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setfromnoresultswithfilters.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setisappendresults.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setisnoresults.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setorigin.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setpage.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setparams.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setpromoteds.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setresults.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setselectedcategory.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setselectedfilters.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setsort.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.setstats.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.settotalresults.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.updateresult.md +13 -0
- package/docs/API-reference/api/x-components.browsemutations.updateresultsfromenrichment.md +13 -0
- package/docs/API-reference/api/x-components.browserequest.md +13 -0
- package/docs/API-reference/api/x-components.browseresultslist.md +31 -0
- package/docs/API-reference/api/x-components.browsesortpickerlist.md +45 -0
- package/docs/API-reference/api/x-components.browsestate.banners.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.browsetagging.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.config.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.displaybrowsetagging.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.facets.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.fromnoresultswithfilters.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.isappendresults.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.isnoresults.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.md +382 -0
- package/docs/API-reference/api/x-components.browsestate.origin.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.page.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.params.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.promoteds.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.results.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.selectedcategory.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.selectedfilters.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.sort.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.stats.md +13 -0
- package/docs/API-reference/api/x-components.browsestate.totalresults.md +13 -0
- package/docs/API-reference/api/x-components.browsexevents.browserequestchanged.md +13 -0
- package/docs/API-reference/api/x-components.browsexevents.browserequestupdated.md +18 -0
- package/docs/API-reference/api/x-components.browsexevents.browseresponsechanged.md +13 -0
- package/docs/API-reference/api/x-components.browsexevents.browsetaggingchanged.md +13 -0
- package/docs/API-reference/api/x-components.browsexevents.md +172 -0
- package/docs/API-reference/api/x-components.browsexevents.selectedbrowsesortprovided.md +18 -0
- package/docs/API-reference/api/x-components.browsexevents.userbrowsedtocategory.md +13 -0
- package/docs/API-reference/api/x-components.browsexevents.userclickedabrowsesort.md +13 -0
- package/docs/API-reference/api/x-components.browsexmodule.md +13 -0
- package/docs/API-reference/api/x-components.browsexstoremodule.md +15 -0
- package/docs/API-reference/api/x-components.cancelfetchandsavebrowseresponse.md +17 -0
- package/docs/API-reference/api/x-components.cancelfetchandsavebrowseresponsewire.md +13 -0
- package/docs/API-reference/api/x-components.clearbrowsequery.md +13 -0
- package/docs/API-reference/api/x-components.fetchandsavebrowseresponse.md +66 -0
- package/docs/API-reference/api/x-components.fetchandsavebrowseresponsewire.md +13 -0
- package/docs/API-reference/api/x-components.fetchandsavebrowseresultsenrichment.md +66 -0
- package/docs/API-reference/api/x-components.fetchandsavebrowseresultsenrichmentwire.md +13 -0
- package/docs/API-reference/api/x-components.fetchbrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.hierarchicalfilter.md +1 -0
- package/docs/API-reference/api/x-components.increasebrowsepageappendingresults.md +13 -0
- package/docs/API-reference/api/x-components.increasebrowsepageappendingresultswire.md +13 -0
- package/docs/API-reference/api/x-components.internalbrowserequest.md +59 -0
- package/docs/API-reference/api/x-components.internalbrowserequest.page.md +13 -0
- package/docs/API-reference/api/x-components.internalbrowseresponse.md +78 -0
- package/docs/API-reference/api/x-components.internalbrowseresponse.request.md +13 -0
- package/docs/API-reference/api/x-components.internalbrowseresponse.status.md +13 -0
- package/docs/API-reference/api/x-components.md +601 -0
- package/docs/API-reference/api/x-components.resetbrowseappending.md +13 -0
- package/docs/API-reference/api/x-components.resetbrowserequestonrefinement.md +13 -0
- package/docs/API-reference/api/x-components.resetbrowserequestonrefinementwire.md +13 -0
- package/docs/API-reference/api/x-components.resetbrowsestateforreloadwire.md +13 -0
- package/docs/API-reference/api/x-components.resetbrowsestateifnorequestwire.md +13 -0
- package/docs/API-reference/api/x-components.resetfromnobrowseresultswithfilters.md +13 -0
- package/docs/API-reference/api/x-components.resetisnobrowseresults.md +13 -0
- package/docs/API-reference/api/x-components.savebrowseorigin.md +13 -0
- package/docs/API-reference/api/x-components.savebrowseoriginwire.md +13 -0
- package/docs/API-reference/api/x-components.savebrowseresponse.md +13 -0
- package/docs/API-reference/api/x-components.setbrowsecategory.md +13 -0
- package/docs/API-reference/api/x-components.setbrowseextraparams.md +13 -0
- package/docs/API-reference/api/x-components.setbrowsepage.md +13 -0
- package/docs/API-reference/api/x-components.setbrowseselectedfilters.md +13 -0
- package/docs/API-reference/api/x-components.setbrowsesort.md +13 -0
- package/docs/API-reference/api/x-components.setbrowseurlparams.md +13 -0
- package/docs/API-reference/api/x-components.setbrowseurlparamswire.md +13 -0
- package/docs/API-reference/api/x-components.setresults.md +13 -0
- package/docs/API-reference/api/x-components.simplefilter.md +1 -0
- package/docs/API-reference/api/x-components.snippetcallbacks.md +4 -3
- package/docs/API-reference/api/x-components.usealiasapi.browsetotalresults.md +1 -1
- package/docs/API-reference/api/x-components.usealiasapi.md +1 -1
- package/docs/API-reference/api/x-components.vendoractions.md +11 -0
- package/docs/API-reference/api/x-components.vendorgetters.md +11 -0
- package/docs/API-reference/api/x-components.vendormutations.md +54 -0
- package/docs/API-reference/api/x-components.vendormutations.setresults.md +11 -0
- package/docs/API-reference/api/x-components.vendorresult.md +57 -0
- package/docs/API-reference/api/x-components.vendorresult.position.md +11 -0
- package/docs/API-reference/api/x-components.vendorresultslist.md +31 -0
- package/docs/API-reference/api/x-components.vendorstate.md +54 -0
- package/docs/API-reference/api/x-components.vendorstate.results.md +11 -0
- package/docs/API-reference/api/x-components.vendorxevents.md +58 -0
- package/docs/API-reference/api/x-components.vendorxevents.vendorresultschanged.md +13 -0
- package/docs/API-reference/api/x-components.vendorxmodule.md +13 -0
- package/docs/API-reference/api/x-components.vendorxstoremodule.md +11 -0
- package/docs/API-reference/api/x-components.watchedinternalbrowserequest.md +73 -0
- package/docs/API-reference/api/x-components.watchedinternalbrowserequest.newrequest.md +11 -0
- package/docs/API-reference/api/x-components.watchedinternalbrowserequest.oldrequest.md +11 -0
- package/docs/API-reference/api/x-components.xeventstypes.md +2 -2
- package/docs/API-reference/api/x-components.xmodulestree.md +18 -1
- package/docs/API-reference/api/x-components.xmodulestree.vendor.md +11 -0
- package/docs/API-reference/api/x-types.result.md +2 -2
- package/docs/API-reference/components/vendor/x-components.vendor-results-list.md +21 -0
- package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
- package/js/components/result/base-result-add-to-cart.vue2.js +1 -1
- package/js/components/result/base-result-add-to-cart.vue2.js.map +1 -1
- package/js/components/result/base-result-link.vue.js +12 -8
- package/js/components/result/base-result-link.vue.js.map +1 -1
- package/js/components/result/base-result-link.vue2.js.map +1 -1
- package/js/index.js +20 -0
- package/js/index.js.map +1 -1
- package/js/wiring/namespaced-wires.factory.js +1 -1
- package/js/x-modules/browse/components/browse-results-list.vue.js +46 -0
- package/js/x-modules/browse/components/browse-results-list.vue.js.map +1 -0
- package/js/x-modules/browse/components/browse-results-list.vue2.js +6 -0
- package/js/x-modules/browse/components/browse-results-list.vue2.js.map +1 -0
- package/js/x-modules/browse/components/browse-sort-picker-list.vue.js +73 -0
- package/js/x-modules/browse/components/browse-sort-picker-list.vue.js.map +1 -0
- package/js/x-modules/browse/components/browse-sort-picker-list.vue2.js +6 -0
- package/js/x-modules/browse/components/browse-sort-picker-list.vue2.js.map +1 -0
- package/js/x-modules/browse/store/actions/fetch-and-save-browse-response.action.js +57 -0
- package/js/x-modules/browse/store/actions/fetch-and-save-browse-response.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/fetch-and-save-results-enrichment.action.js +21 -0
- package/js/x-modules/browse/store/actions/fetch-and-save-results-enrichment.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/fetch-browse-response.action.js +16 -0
- package/js/x-modules/browse/store/actions/fetch-browse-response.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/increase-page-apending-results.action.js +18 -0
- package/js/x-modules/browse/store/actions/increase-page-apending-results.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/reset-request-on-refinement.action.js +36 -0
- package/js/x-modules/browse/store/actions/reset-request-on-refinement.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/save-browse-response.action.js +42 -0
- package/js/x-modules/browse/store/actions/save-browse-response.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/save-origin.action.js +16 -0
- package/js/x-modules/browse/store/actions/save-origin.action.js.map +1 -0
- package/js/x-modules/browse/store/actions/set-url-params.action.js +20 -0
- package/js/x-modules/browse/store/actions/set-url-params.action.js.map +1 -0
- package/js/x-modules/browse/store/emitters.js +48 -0
- package/js/x-modules/browse/store/emitters.js.map +1 -0
- package/js/x-modules/browse/store/getters/request.getter.js +27 -0
- package/js/x-modules/browse/store/getters/request.getter.js.map +1 -0
- package/js/x-modules/browse/store/module.js +163 -0
- package/js/x-modules/browse/store/module.js.map +1 -0
- package/js/x-modules/browse/wiring.js +213 -0
- package/js/x-modules/browse/wiring.js.map +1 -0
- package/js/x-modules/browse/x-module.js +21 -0
- package/js/x-modules/browse/x-module.js.map +1 -0
- package/js/x-modules/vendor/components/vendor-results-list.vue.js +81 -0
- package/js/x-modules/vendor/components/vendor-results-list.vue.js.map +1 -0
- package/js/x-modules/vendor/components/vendor-results-list.vue2.js +6 -0
- package/js/x-modules/vendor/components/vendor-results-list.vue2.js.map +1 -0
- package/js/x-modules/vendor/store/emitters.js +13 -0
- package/js/x-modules/vendor/store/emitters.js.map +1 -0
- package/js/x-modules/vendor/store/module.js +15 -0
- package/js/x-modules/vendor/store/module.js.map +1 -0
- package/js/x-modules/vendor/wiring.js +42 -0
- package/js/x-modules/vendor/wiring.js.map +1 -0
- package/js/x-modules/vendor/x-module.js +21 -0
- package/js/x-modules/vendor/x-module.js.map +1 -0
- package/package.json +4 -4
- package/report/x-components.api.json +5304 -752
- package/report/x-components.api.md +456 -11
- package/report/x-types.api.json +1 -1
- package/types/src/components/result/base-result-add-to-cart.vue.d.ts +1 -2
- package/types/src/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
- package/types/src/components/snippet-callbacks.vue.d.ts +4 -3
- package/types/src/components/snippet-callbacks.vue.d.ts.map +1 -1
- package/types/src/index.d.ts +2 -0
- package/types/src/index.d.ts.map +1 -1
- package/types/src/wiring/events.types.d.ts +2 -1
- package/types/src/wiring/events.types.d.ts.map +1 -1
- package/types/src/x-modules/browse/components/browse-results-list.vue.d.ts +30 -0
- package/types/src/x-modules/browse/components/browse-results-list.vue.d.ts.map +1 -0
- package/types/src/x-modules/browse/components/browse-sort-picker-list.vue.d.ts +50 -0
- package/types/src/x-modules/browse/components/browse-sort-picker-list.vue.d.ts.map +1 -0
- package/types/src/x-modules/browse/store/actions/index.d.ts +5 -5
- package/types/src/x-modules/browse/store/actions/index.d.ts.map +1 -1
- package/types/src/x-modules/browse/store/module.d.ts +1 -1
- package/types/src/x-modules/browse/store/module.d.ts.map +1 -1
- package/types/src/x-modules/browse/wiring.d.ts +26 -26
- package/types/src/x-modules/browse/wiring.d.ts.map +1 -1
- package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +1 -0
- package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
- package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts +1 -0
- package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
- package/types/src/x-modules/vendor/components/index.d.ts +2 -0
- package/types/src/x-modules/vendor/components/index.d.ts.map +1 -0
- package/types/src/x-modules/vendor/components/vendor-results-list.vue.d.ts +30 -0
- package/types/src/x-modules/vendor/components/vendor-results-list.vue.d.ts.map +1 -0
- package/types/src/x-modules/vendor/events.types.d.ts +15 -0
- package/types/src/x-modules/vendor/events.types.d.ts.map +1 -0
- package/types/src/x-modules/vendor/index.d.ts +7 -0
- package/types/src/x-modules/vendor/index.d.ts.map +1 -0
- package/types/src/x-modules/vendor/store/emitters.d.ts +7 -0
- package/types/src/x-modules/vendor/store/emitters.d.ts.map +1 -0
- package/types/src/x-modules/vendor/store/index.d.ts +4 -0
- package/types/src/x-modules/vendor/store/index.d.ts.map +1 -0
- package/types/src/x-modules/vendor/store/module.d.ts +3 -0
- package/types/src/x-modules/vendor/store/module.d.ts.map +1 -0
- package/types/src/x-modules/vendor/store/types.d.ts +14 -0
- package/types/src/x-modules/vendor/store/types.d.ts.map +1 -0
- package/types/src/x-modules/vendor/types.d.ts +8 -0
- package/types/src/x-modules/vendor/types.d.ts.map +1 -0
- package/types/src/x-modules/vendor/wiring.d.ts +20 -0
- package/types/src/x-modules/vendor/wiring.d.ts.map +1 -0
- package/types/src/x-modules/vendor/x-module.d.ts +16 -0
- package/types/src/x-modules/vendor/x-module.d.ts.map +1 -0
- package/types/src/x-modules/x-modules.types.d.ts +2 -0
- package/types/src/x-modules/x-modules.types.d.ts.map +1 -1
- package/vendor/index.d.ts +1 -0
- 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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"}
|