@searchspring/snap-store-mobx 0.54.0 → 0.55.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/dist/cjs/Autocomplete/AutocompleteStore.d.ts +2 -1
- package/dist/cjs/Autocomplete/AutocompleteStore.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteStore.js +7 -6
- package/dist/cjs/Finder/FinderStore.d.ts +3 -2
- package/dist/cjs/Finder/FinderStore.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderStore.js +5 -5
- package/dist/cjs/Meta/MetaStore.d.ts +15 -0
- package/dist/cjs/Meta/MetaStore.d.ts.map +1 -0
- package/dist/cjs/Meta/MetaStore.js +54 -0
- package/dist/cjs/Recommendation/RecommendationStore.d.ts +6 -1
- package/dist/cjs/Recommendation/RecommendationStore.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationStore.js +3 -1
- package/dist/cjs/Search/SearchStore.d.ts +2 -1
- package/dist/cjs/Search/SearchStore.d.ts.map +1 -1
- package/dist/cjs/Search/SearchStore.js +7 -6
- package/dist/cjs/Search/Stores/SearchHistoryStore.js +1 -1
- package/dist/cjs/Search/Stores/SearchResultStore.d.ts +12 -4
- package/dist/cjs/Search/Stores/SearchResultStore.d.ts.map +1 -1
- package/dist/cjs/Search/Stores/SearchResultStore.js +63 -4
- package/dist/cjs/Storage/StorageStore.d.ts +5 -5
- package/dist/cjs/Storage/StorageStore.d.ts.map +1 -1
- package/dist/cjs/Storage/StorageStore.js +17 -17
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteStore.d.ts +2 -1
- package/dist/esm/Autocomplete/AutocompleteStore.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteStore.js +7 -6
- package/dist/esm/Finder/FinderStore.d.ts +3 -2
- package/dist/esm/Finder/FinderStore.d.ts.map +1 -1
- package/dist/esm/Finder/FinderStore.js +6 -6
- package/dist/esm/Meta/MetaStore.d.ts +15 -0
- package/dist/esm/Meta/MetaStore.d.ts.map +1 -0
- package/dist/esm/Meta/MetaStore.js +44 -0
- package/dist/esm/Recommendation/RecommendationStore.d.ts +6 -1
- package/dist/esm/Recommendation/RecommendationStore.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationStore.js +3 -1
- package/dist/esm/Search/SearchStore.d.ts +2 -1
- package/dist/esm/Search/SearchStore.d.ts.map +1 -1
- package/dist/esm/Search/SearchStore.js +7 -6
- package/dist/esm/Search/Stores/SearchHistoryStore.js +2 -2
- package/dist/esm/Search/Stores/SearchResultStore.d.ts +12 -4
- package/dist/esm/Search/Stores/SearchResultStore.d.ts.map +1 -1
- package/dist/esm/Search/Stores/SearchResultStore.js +53 -3
- package/dist/esm/Storage/StorageStore.d.ts +5 -5
- package/dist/esm/Storage/StorageStore.d.ts.map +1 -1
- package/dist/esm/Storage/StorageStore.js +17 -17
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.StorageType = exports.StorageStore = exports.CartStore = exports.RecommendationStore = exports.SearchStore = exports.FinderStore = exports.AutocompleteStore = exports.AbstractStore = void 0;
|
|
17
|
+
exports.MetaStore = exports.StorageType = exports.StorageStore = exports.CartStore = exports.RecommendationStore = exports.SearchStore = exports.FinderStore = exports.AutocompleteStore = exports.AbstractStore = void 0;
|
|
18
18
|
var AbstractStore_1 = require("./Abstract/AbstractStore");
|
|
19
19
|
Object.defineProperty(exports, "AbstractStore", { enumerable: true, get: function () { return AbstractStore_1.AbstractStore; } });
|
|
20
20
|
var AutocompleteStore_1 = require("./Autocomplete/AutocompleteStore");
|
|
@@ -31,4 +31,6 @@ Object.defineProperty(exports, "CartStore", { enumerable: true, get: function ()
|
|
|
31
31
|
var StorageStore_1 = require("./Storage/StorageStore");
|
|
32
32
|
Object.defineProperty(exports, "StorageStore", { enumerable: true, get: function () { return StorageStore_1.StorageStore; } });
|
|
33
33
|
Object.defineProperty(exports, "StorageType", { enumerable: true, get: function () { return StorageStore_1.StorageType; } });
|
|
34
|
+
var MetaStore_1 = require("./Meta/MetaStore");
|
|
35
|
+
Object.defineProperty(exports, "MetaStore", { enumerable: true, get: function () { return MetaStore_1.MetaStore; } });
|
|
34
36
|
__exportStar(require("./types"), exports);
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
2
|
-
import type { SearchResponseModelFacetValueAllOfValues, AutocompleteRequestModel, SearchRequestModel } from '@searchspring/snapi-types';
|
|
2
|
+
import type { SearchResponseModelFacetValueAllOfValues, AutocompleteRequestModel, SearchRequestModel, MetaResponseModelBadgeTag, SearchResponseModelResultBadges } from '@searchspring/snapi-types';
|
|
3
3
|
export type StoreConfig = {
|
|
4
4
|
id: string;
|
|
5
5
|
[any: string]: unknown;
|
|
@@ -125,4 +125,5 @@ export type SelectedSelection = {
|
|
|
125
125
|
export type FinderStoreState = {
|
|
126
126
|
persisted: boolean;
|
|
127
127
|
};
|
|
128
|
+
export type ResultBadge = MetaResponseModelBadgeTag & SearchResponseModelResultBadges;
|
|
128
129
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,10 @@ import { AutocompleteStateStore, AutocompleteTermStore, AutocompleteQueryStore,
|
|
|
6
6
|
import type { AutocompleteResponseModel, MetaResponseModel } from '@searchspring/snapi-types';
|
|
7
7
|
import type { TrendingResponseModel } from '@searchspring/snap-client';
|
|
8
8
|
import type { AutocompleteStoreConfig, StoreServices } from '../types';
|
|
9
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
9
10
|
export declare class AutocompleteStore extends AbstractStore {
|
|
10
11
|
services: StoreServices;
|
|
11
|
-
meta:
|
|
12
|
+
meta: MetaStore;
|
|
12
13
|
merchandising: SearchMerchandisingStore;
|
|
13
14
|
search: AutocompleteQueryStore;
|
|
14
15
|
terms: AutocompleteTermStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteStore.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AutocompleteStore.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,iBAAkB,SAAQ,aAAa;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAG,SAAS,CAAC;IACjB,aAAa,EAAG,wBAAwB,CAAC;IACzC,MAAM,EAAG,sBAAsB,CAAC;IAChC,KAAK,EAAG,qBAAqB,CAAC;IAC9B,MAAM,EAAG,sBAAsB,CAAC;IAChC,OAAO,EAAG,iBAAiB,CAAC;IAC5B,OAAO,EAAG,iBAAiB,CAAC;IAC5B,UAAU,EAAG,qBAAqB,CAAC;IACnC,OAAO,EAAG,kBAAkB,CAAC;IAC7B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,OAAO,EAAE,wBAAwB,CAAC;gBAE7B,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa;IAiC7D,KAAK,IAAI,IAAI;IAMb,WAAW,IAAI,IAAI;IAgBnB,UAAU,IAAI,IAAI;IAMlB,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,IAAI;IAIpB,UAAU,CAAC,IAAI,EAAE,MAAM,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAUhE,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAWtD,MAAM,CAAC,IAAI,GAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAO,GAAG,IAAI;CA2DxF"}
|
|
@@ -3,6 +3,7 @@ import { AbstractStore } from '../Abstract/AbstractStore';
|
|
|
3
3
|
import { SearchFilterStore, SearchResultStore, SearchMerchandisingStore, SearchPaginationStore, SearchSortingStore, SearchHistoryStore, } from '../Search/Stores';
|
|
4
4
|
import { StorageStore } from '../Storage/StorageStore';
|
|
5
5
|
import { AutocompleteStateStore, AutocompleteTermStore, AutocompleteQueryStore, AutocompleteFacetStore, AutocompleteTrendingStore, AutocompleteHistoryStore, } from './Stores';
|
|
6
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
6
7
|
export class AutocompleteStore extends AbstractStore {
|
|
7
8
|
constructor(config, services) {
|
|
8
9
|
super(config);
|
|
@@ -76,7 +77,7 @@ export class AutocompleteStore extends AbstractStore {
|
|
|
76
77
|
return;
|
|
77
78
|
this.error = undefined;
|
|
78
79
|
this.loaded = !!data.pagination;
|
|
79
|
-
this.meta = data.meta
|
|
80
|
+
this.meta = new MetaStore(data.meta);
|
|
80
81
|
// set the query to match the actual queried term and not the input query
|
|
81
82
|
if (data.search) {
|
|
82
83
|
this.state.url = this.services.urlManager = this.services.urlManager.set('query', data.search.query);
|
|
@@ -93,16 +94,16 @@ export class AutocompleteStore extends AbstractStore {
|
|
|
93
94
|
this.search = new AutocompleteQueryStore(this.services, data.autocomplete || {}, data.search || {}, this.config);
|
|
94
95
|
// only run if we want to update the facets (not locked)
|
|
95
96
|
if (!this.state.locks.facets.locked) {
|
|
96
|
-
this.facets = new AutocompleteFacetStore(this.config, this.services, this.storage, data.facets || [], data.pagination || {}, this.meta, this.state, data.merchandising || {});
|
|
97
|
+
this.facets = new AutocompleteFacetStore(this.config, this.services, this.storage, data.facets || [], data.pagination || {}, this.meta.data, this.state, data.merchandising || {});
|
|
97
98
|
}
|
|
98
|
-
this.filters = new SearchFilterStore(this.services, data.filters, this.meta);
|
|
99
|
-
this.results = new SearchResultStore(this.config, this.services, data.results || [], data.pagination, data.merchandising);
|
|
99
|
+
this.filters = new SearchFilterStore(this.services, data.filters, this.meta.data);
|
|
100
|
+
this.results = new SearchResultStore(this.config, this.services, this.meta.data, data.results || [], data.pagination, data.merchandising);
|
|
100
101
|
if ((this.results.length === 0 && !this.trending.filter((term) => term.active).length) || this.terms?.filter((term) => term.active).length) {
|
|
101
102
|
// if a trending term was selected and then a subsequent search yields no results, reset trending terms to remove active state
|
|
102
103
|
// OR if any terms are active, also reset to ensure only a single term or trending term is active
|
|
103
104
|
this.resetTrending();
|
|
104
105
|
}
|
|
105
|
-
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta);
|
|
106
|
-
this.sorting = new SearchSortingStore(this.services, data.sorting || [], data.search || {}, this.meta);
|
|
106
|
+
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta.data);
|
|
107
|
+
this.sorting = new SearchSortingStore(this.services, data.sorting || [], data.search || {}, this.meta.data);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
@@ -5,10 +5,11 @@ import { StorageStore } from '../Storage/StorageStore';
|
|
|
5
5
|
import { FinderSelectionStore } from './Stores';
|
|
6
6
|
import type { FinderStoreConfig, StoreServices, SelectedSelection, FinderStoreState } from '../types';
|
|
7
7
|
import { UrlManager } from '@searchspring/snap-url-manager';
|
|
8
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
8
9
|
export declare class FinderStore extends AbstractStore {
|
|
9
10
|
services: StoreServices;
|
|
10
11
|
config: FinderStoreConfig;
|
|
11
|
-
meta:
|
|
12
|
+
meta: MetaStore;
|
|
12
13
|
storage: StorageStore;
|
|
13
14
|
persistedStorage: StorageStore;
|
|
14
15
|
pagination: SearchPaginationStore;
|
|
@@ -20,7 +21,7 @@ export declare class FinderStore extends AbstractStore {
|
|
|
20
21
|
reset: () => void;
|
|
21
22
|
loadPersisted(): void;
|
|
22
23
|
update(data: SearchResponseModel & {
|
|
23
|
-
meta
|
|
24
|
+
meta?: MetaResponseModel;
|
|
24
25
|
}, selectedSelections?: SelectedSelection[]): void;
|
|
25
26
|
}
|
|
26
27
|
//# sourceMappingURL=FinderStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,aAAa;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAG,iBAAiB,CAAC;IAC3B,IAAI,EAAG,SAAS,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAG,YAAY,CAAC;IAChC,UAAU,EAAG,qBAAqB,CAAC;IACnC,UAAU,EAAG,oBAAoB,CAAC;IAClC,KAAK,EAAE,gBAAgB,CAE5B;gBAEU,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IA0BvD,UAAU,CAAC,IAAI,EAAE,MAAM,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAQhE,IAAI,EAAE,MAAM,IAAI,CAAY;IAE5B,KAAK,QAAO,IAAI,CAWrB;IAEK,aAAa,IAAI,IAAI;IAyBrB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAiCvH"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { makeObservable, observable } from 'mobx';
|
|
2
2
|
import { AbstractStore } from '../Abstract/AbstractStore';
|
|
3
3
|
import { SearchPaginationStore } from '../Search/Stores';
|
|
4
|
-
import { StorageStore
|
|
4
|
+
import { StorageStore } from '../Storage/StorageStore';
|
|
5
5
|
import { FinderSelectionStore } from './Stores';
|
|
6
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
6
7
|
export class FinderStore extends AbstractStore {
|
|
7
8
|
constructor(config, services) {
|
|
8
9
|
super(config);
|
|
9
|
-
this.meta = {};
|
|
10
10
|
this.state = {
|
|
11
11
|
persisted: false,
|
|
12
12
|
};
|
|
@@ -30,7 +30,7 @@ export class FinderStore extends AbstractStore {
|
|
|
30
30
|
this.services = services;
|
|
31
31
|
if (config.persist?.enabled) {
|
|
32
32
|
this.persistedStorage = new StorageStore({
|
|
33
|
-
type:
|
|
33
|
+
type: 'local',
|
|
34
34
|
key: `ss-${config.id}-persisted`,
|
|
35
35
|
});
|
|
36
36
|
}
|
|
@@ -72,12 +72,12 @@ export class FinderStore extends AbstractStore {
|
|
|
72
72
|
update(data, selectedSelections) {
|
|
73
73
|
this.error = undefined;
|
|
74
74
|
this.loaded = !!data.pagination;
|
|
75
|
-
this.meta = data.meta;
|
|
76
|
-
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta);
|
|
75
|
+
this.meta = new MetaStore(data.meta);
|
|
76
|
+
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta.data);
|
|
77
77
|
this.selections = new FinderSelectionStore(this.config, this.services, {
|
|
78
78
|
state: this.state,
|
|
79
79
|
facets: data.facets || [],
|
|
80
|
-
meta: this.meta,
|
|
80
|
+
meta: this.meta.data,
|
|
81
81
|
loading: this.loading,
|
|
82
82
|
storage: this.storage,
|
|
83
83
|
selections: selectedSelections || [],
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MetaResponseModel } from '@searchspring/snapi-types';
|
|
2
|
+
export declare class MetaStore {
|
|
3
|
+
data: MetaResponseModel;
|
|
4
|
+
badges: MetaBadges;
|
|
5
|
+
constructor(metaData?: MetaResponseModel);
|
|
6
|
+
}
|
|
7
|
+
declare class MetaBadges {
|
|
8
|
+
groups: Record<string, {
|
|
9
|
+
sections: string[];
|
|
10
|
+
grid: string[][];
|
|
11
|
+
}>;
|
|
12
|
+
constructor(metaData?: MetaResponseModel);
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=MetaStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaStore.d.ts","sourceRoot":"","sources":["../../../src/Meta/MetaStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,qBAAa,SAAS;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;gBAEd,QAAQ,CAAC,EAAE,iBAAiB;CAIxC;AAED,cAAM,UAAU;IACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,CAAC,CAAM;gBAEjE,QAAQ,CAAC,EAAE,iBAAiB;CA8BxC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export class MetaStore {
|
|
2
|
+
constructor(metaData) {
|
|
3
|
+
this.data = metaData ?? {};
|
|
4
|
+
this.badges = new MetaBadges(this.data);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
class MetaBadges {
|
|
8
|
+
constructor(metaData) {
|
|
9
|
+
this.groups = {};
|
|
10
|
+
// 'overlay' group is created by default - could support additional groups via config in the future
|
|
11
|
+
const groups = { overlay: { sections: ['left', 'right'] } };
|
|
12
|
+
// process groups - create the grid for each group
|
|
13
|
+
Object.keys(groups).map((name) => {
|
|
14
|
+
const group = groups[name];
|
|
15
|
+
const sections = group.sections.map((section) => ({
|
|
16
|
+
areas: metaData?.badges?.locations?.[section]?.map((area) => area.tag) || [],
|
|
17
|
+
grid: [],
|
|
18
|
+
}));
|
|
19
|
+
// find lcm of sections
|
|
20
|
+
const lcmSections = sections.map((section) => section.areas.length).reduce(lcm);
|
|
21
|
+
sections.forEach((section) => {
|
|
22
|
+
section.grid = Array.from({ length: lcmSections }).map((_, index) => section.areas[Math.floor(index / (lcmSections / section.areas.length))]);
|
|
23
|
+
});
|
|
24
|
+
// set the grid by creating rows of columns
|
|
25
|
+
const grid = Array.from({ length: lcmSections }).map((_, i) => {
|
|
26
|
+
return sections.map((section) => section.grid[i]);
|
|
27
|
+
});
|
|
28
|
+
this.groups[name] = {
|
|
29
|
+
sections: group.sections,
|
|
30
|
+
grid,
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function gcd(a, b) {
|
|
36
|
+
if (!b) {
|
|
37
|
+
return a;
|
|
38
|
+
}
|
|
39
|
+
return gcd(b, a % b);
|
|
40
|
+
}
|
|
41
|
+
function lcm(a, b) {
|
|
42
|
+
const gcdValue = gcd(a, b);
|
|
43
|
+
return (a * b) / gcdValue;
|
|
44
|
+
}
|
|
@@ -4,14 +4,19 @@ import { CartStore } from '../Cart/CartStore';
|
|
|
4
4
|
import { RecommendationProfileStore } from './Stores';
|
|
5
5
|
import type { RecommendationStoreConfig, StoreServices } from '../types';
|
|
6
6
|
import type { RecommendCombinedResponseModel } from '@searchspring/snap-client';
|
|
7
|
+
import { MetaResponseModel } from '@searchspring/snapi-types';
|
|
8
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
7
9
|
export declare class RecommendationStore extends AbstractStore {
|
|
8
10
|
services: StoreServices;
|
|
11
|
+
meta: MetaStore;
|
|
9
12
|
loaded: boolean;
|
|
10
13
|
profile: RecommendationProfileStore;
|
|
11
14
|
results: Product[];
|
|
12
15
|
cart: CartStore;
|
|
13
16
|
constructor(config: RecommendationStoreConfig, services: StoreServices);
|
|
14
17
|
reset(): void;
|
|
15
|
-
update(data?: RecommendCombinedResponseModel
|
|
18
|
+
update(data?: RecommendCombinedResponseModel & {
|
|
19
|
+
meta?: MetaResponseModel;
|
|
20
|
+
}): void;
|
|
16
21
|
}
|
|
17
22
|
//# sourceMappingURL=RecommendationStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationStore.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"RecommendationStore.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,mBAAoB,SAAQ,aAAa;IAC9C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAG,SAAS,CAAC;IACjB,MAAM,UAAS;IACf,OAAO,EAAG,0BAA0B,CAAC;IACrC,OAAO,EAAG,OAAO,EAAE,CAAC;IACpB,IAAI,EAAG,SAAS,CAAC;gBAEZ,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,aAAa;IAiB/D,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,IAAI,CAAC,EAAE,8BAA8B,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;CAYzF"}
|
|
@@ -3,6 +3,7 @@ import { AbstractStore } from '../Abstract/AbstractStore';
|
|
|
3
3
|
import { SearchResultStore } from '../Search/Stores';
|
|
4
4
|
import { CartStore } from '../Cart/CartStore';
|
|
5
5
|
import { RecommendationProfileStore } from './Stores';
|
|
6
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
6
7
|
export class RecommendationStore extends AbstractStore {
|
|
7
8
|
constructor(config, services) {
|
|
8
9
|
super(config);
|
|
@@ -23,8 +24,9 @@ export class RecommendationStore extends AbstractStore {
|
|
|
23
24
|
update(data) {
|
|
24
25
|
this.error = undefined;
|
|
25
26
|
this.loaded = !!data?.profile;
|
|
27
|
+
this.meta = new MetaStore(data?.meta);
|
|
26
28
|
this.profile = new RecommendationProfileStore(this.services, data);
|
|
27
|
-
this.results = new SearchResultStore(this.config, this.services, data?.results);
|
|
29
|
+
this.results = new SearchResultStore(this.config, this.services, this.meta.data, data?.results);
|
|
28
30
|
// only create a cart store when type is bundle
|
|
29
31
|
if (this.profile.type == 'bundle') {
|
|
30
32
|
this.cart = new CartStore();
|
|
@@ -3,9 +3,10 @@ import type { SearchStoreConfig, StoreServices } from '../types';
|
|
|
3
3
|
import { SearchMerchandisingStore, SearchFacetStore, SearchFilterStore, SearchResultStore, SearchPaginationStore, SearchSortingStore, SearchQueryStore, SearchHistoryStore } from './Stores';
|
|
4
4
|
import { AbstractStore } from '../Abstract/AbstractStore';
|
|
5
5
|
import { StorageStore } from '../Storage/StorageStore';
|
|
6
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
6
7
|
export declare class SearchStore extends AbstractStore {
|
|
7
8
|
services: StoreServices;
|
|
8
|
-
meta:
|
|
9
|
+
meta: MetaStore;
|
|
9
10
|
merchandising: SearchMerchandisingStore;
|
|
10
11
|
search: SearchQueryStore;
|
|
11
12
|
facets: SearchFacetStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchStore.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchStore.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,aAAa;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAG,SAAS,CAAC;IACjB,aAAa,EAAG,wBAAwB,CAAC;IACzC,MAAM,EAAG,gBAAgB,CAAC;IAC1B,MAAM,EAAG,gBAAgB,CAAC;IAC1B,OAAO,EAAG,iBAAiB,CAAC;IAC5B,OAAO,EAAG,iBAAiB,CAAC;IAC5B,UAAU,EAAG,qBAAqB,CAAC;IACnC,OAAO,EAAG,kBAAkB,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;gBAEvB,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IAiDvD,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,IAAI,GAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAO,GAAG,IAAI;CAoBlF"}
|
|
@@ -2,6 +2,7 @@ import { makeObservable, observable } from 'mobx';
|
|
|
2
2
|
import { SearchMerchandisingStore, SearchFacetStore, SearchFilterStore, SearchResultStore, SearchPaginationStore, SearchSortingStore, SearchQueryStore, SearchHistoryStore, } from './Stores';
|
|
3
3
|
import { AbstractStore } from '../Abstract/AbstractStore';
|
|
4
4
|
import { StorageStore } from '../Storage/StorageStore';
|
|
5
|
+
import { MetaStore } from '../Meta/MetaStore';
|
|
5
6
|
export class SearchStore extends AbstractStore {
|
|
6
7
|
constructor(config, services) {
|
|
7
8
|
super(config);
|
|
@@ -48,13 +49,13 @@ export class SearchStore extends AbstractStore {
|
|
|
48
49
|
update(data = {}) {
|
|
49
50
|
this.error = undefined;
|
|
50
51
|
this.loaded = !!data.pagination;
|
|
51
|
-
this.meta = data.meta
|
|
52
|
+
this.meta = new MetaStore(data.meta);
|
|
52
53
|
this.merchandising = new SearchMerchandisingStore(this.services, data?.merchandising || {});
|
|
53
54
|
this.search = new SearchQueryStore(this.services, data?.search || {});
|
|
54
|
-
this.facets = new SearchFacetStore(this.config, this.services, this.storage, data.facets, data?.pagination || {}, this.meta, data?.merchandising || {});
|
|
55
|
-
this.filters = new SearchFilterStore(this.services, data.filters, this.meta);
|
|
56
|
-
this.results = new SearchResultStore(this.config, this.services, data?.results || [], data.pagination, data.merchandising);
|
|
57
|
-
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta);
|
|
58
|
-
this.sorting = new SearchSortingStore(this.services, data?.sorting || [], data?.search || {}, this.meta);
|
|
55
|
+
this.facets = new SearchFacetStore(this.config, this.services, this.storage, data.facets, data?.pagination || {}, this.meta.data, data?.merchandising || {});
|
|
56
|
+
this.filters = new SearchFilterStore(this.services, data.filters, this.meta.data);
|
|
57
|
+
this.results = new SearchResultStore(this.config, this.services, this.meta.data, data?.results || [], data.pagination, data.merchandising);
|
|
58
|
+
this.pagination = new SearchPaginationStore(this.config, this.services, data.pagination, this.meta.data);
|
|
59
|
+
this.sorting = new SearchSortingStore(this.services, data?.sorting || [], data?.search || {}, this.meta.data);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StorageStore
|
|
1
|
+
import { StorageStore } from '../../Storage/StorageStore';
|
|
2
2
|
import { Query } from './SearchQueryStore';
|
|
3
3
|
export class SearchHistoryStore {
|
|
4
4
|
constructor(config, services) {
|
|
@@ -16,7 +16,7 @@ export class SearchHistoryStore {
|
|
|
16
16
|
this.config.max = 25;
|
|
17
17
|
}
|
|
18
18
|
this.storage = new StorageStore({
|
|
19
|
-
type:
|
|
19
|
+
type: 'local',
|
|
20
20
|
key: `ss-history${this.config.siteId ? `-${this.config.siteId}` : ``}`,
|
|
21
21
|
});
|
|
22
22
|
// reset to zero to clear any potentially existing terms
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { StoreServices, StoreConfigs, VariantSelectionOptions, VariantConfig } from '../../types';
|
|
2
|
-
import type { SearchResponseModelResult, SearchResponseModelPagination, SearchResponseModelMerchandising, SearchResponseModelResultMappings, SearchResponseModelMerchandisingContentInline, SearchResponseModelMerchandisingContentConfig } from '@searchspring/snapi-types';
|
|
1
|
+
import type { StoreServices, StoreConfigs, VariantSelectionOptions, ResultBadge, VariantConfig } from '../../types';
|
|
2
|
+
import type { SearchResponseModelResult, SearchResponseModelPagination, SearchResponseModelMerchandising, SearchResponseModelResultMappings, SearchResponseModelMerchandisingContentInline, SearchResponseModelMerchandisingContentConfig, MetaResponseModel } from '@searchspring/snapi-types';
|
|
3
3
|
export declare class SearchResultStore extends Array<Product | Banner> {
|
|
4
4
|
static get [Symbol.species](): ArrayConstructor;
|
|
5
|
-
constructor(config: StoreConfigs, services: StoreServices, resultData?: SearchResponseModelResult[], paginationData?: SearchResponseModelPagination, merchData?: SearchResponseModelMerchandising);
|
|
5
|
+
constructor(config: StoreConfigs, services: StoreServices, metaData: MetaResponseModel, resultData?: SearchResponseModelResult[], paginationData?: SearchResponseModelPagination, merchData?: SearchResponseModelMerchandising);
|
|
6
6
|
}
|
|
7
7
|
export declare class Banner {
|
|
8
8
|
type: string;
|
|
@@ -35,12 +35,20 @@ export declare class Product {
|
|
|
35
35
|
mappings: SearchResponseModelResultMappings;
|
|
36
36
|
custom: {};
|
|
37
37
|
children?: Array<Child>;
|
|
38
|
+
badges: Badges;
|
|
38
39
|
quantity: number;
|
|
39
40
|
mask: ProductMask;
|
|
40
41
|
variants?: Variants;
|
|
41
|
-
constructor(services: StoreServices, result: SearchResponseModelResult, config?: StoreConfigs);
|
|
42
|
+
constructor(services: StoreServices, result: SearchResponseModelResult, metaData: MetaResponseModel, config?: StoreConfigs);
|
|
42
43
|
get display(): ProductMinimal;
|
|
43
44
|
}
|
|
45
|
+
export declare class Badges {
|
|
46
|
+
all: ResultBadge[];
|
|
47
|
+
constructor(result: SearchResponseModelResult, metaData: MetaResponseModel);
|
|
48
|
+
atLocation(location?: string[] | string): ResultBadge[];
|
|
49
|
+
get tags(): Record<string, ResultBadge>;
|
|
50
|
+
get locations(): Record<string, Record<string, ResultBadge[]>>;
|
|
51
|
+
}
|
|
44
52
|
export declare class ProductMask {
|
|
45
53
|
data: Partial<Product>;
|
|
46
54
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ export class SearchResultStore extends Array {
|
|
|
5
5
|
static get [Symbol.species]() {
|
|
6
6
|
return Array;
|
|
7
7
|
}
|
|
8
|
-
constructor(config, services, resultData, paginationData, merchData) {
|
|
8
|
+
constructor(config, services, metaData, resultData, paginationData, merchData) {
|
|
9
9
|
let results = (resultData || []).map((result) => {
|
|
10
|
-
return new Product(services, result, config);
|
|
10
|
+
return new Product(services, result, metaData, config);
|
|
11
11
|
});
|
|
12
12
|
if (merchData?.content?.inline) {
|
|
13
13
|
const banners = merchData.content.inline
|
|
@@ -43,7 +43,7 @@ export class Banner {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
export class Product {
|
|
46
|
-
constructor(services, result, config) {
|
|
46
|
+
constructor(services, result, metaData, config) {
|
|
47
47
|
this.type = 'product';
|
|
48
48
|
this.attributes = {};
|
|
49
49
|
this.mappings = {
|
|
@@ -56,6 +56,7 @@ export class Product {
|
|
|
56
56
|
this.id = result.id;
|
|
57
57
|
this.attributes = result.attributes;
|
|
58
58
|
this.mappings = result.mappings;
|
|
59
|
+
this.badges = new Badges(result, metaData);
|
|
59
60
|
const variantsField = config?.settings?.variants?.field;
|
|
60
61
|
if (config && variantsField && this.attributes && this.attributes[variantsField]) {
|
|
61
62
|
try {
|
|
@@ -96,6 +97,55 @@ export class Product {
|
|
|
96
97
|
return deepmerge({ id: this.id, mappings: this.mappings, attributes: this.attributes }, this.mask.data, { isMergeableObject: isPlainObject });
|
|
97
98
|
}
|
|
98
99
|
}
|
|
100
|
+
export class Badges {
|
|
101
|
+
constructor(result, metaData) {
|
|
102
|
+
this.all = [];
|
|
103
|
+
this.all = (result.badges || [])
|
|
104
|
+
.filter((badge) => {
|
|
105
|
+
// remove badges that are not in the meta or are disabled
|
|
106
|
+
return !!(badge?.tag && metaData?.badges?.tags && metaData?.badges?.tags[badge.tag] && metaData?.badges?.tags[badge.tag].enabled);
|
|
107
|
+
})
|
|
108
|
+
.map((badge) => {
|
|
109
|
+
// merge badge with badge meta data
|
|
110
|
+
const metaBadgeData = metaData?.badges?.tags?.[badge.tag];
|
|
111
|
+
return {
|
|
112
|
+
...badge,
|
|
113
|
+
...metaBadgeData,
|
|
114
|
+
};
|
|
115
|
+
})
|
|
116
|
+
.sort((a, b) => {
|
|
117
|
+
return a.priority - b.priority;
|
|
118
|
+
});
|
|
119
|
+
makeObservable(this, {
|
|
120
|
+
all: observable,
|
|
121
|
+
tags: computed,
|
|
122
|
+
locations: computed,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
// get all the result badges that are in a specific location
|
|
126
|
+
atLocation(location) {
|
|
127
|
+
const locations = Array.isArray(location) ? location : [location];
|
|
128
|
+
return this.all.filter((badge) => {
|
|
129
|
+
// filter location
|
|
130
|
+
return locations.some((location) => badge.location.startsWith(`${location}/`) || badge.location == location);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
get tags() {
|
|
134
|
+
return this.all.reduce((badgeMap, badge) => {
|
|
135
|
+
badgeMap[badge.tag] = badge;
|
|
136
|
+
return badgeMap;
|
|
137
|
+
}, {});
|
|
138
|
+
}
|
|
139
|
+
get locations() {
|
|
140
|
+
return this.all.reduce((locationMap, badge) => {
|
|
141
|
+
// put badge in location by path
|
|
142
|
+
const [section, tag] = badge.location.split('/');
|
|
143
|
+
locationMap[section] = locationMap[section] || {};
|
|
144
|
+
locationMap[section][tag] = (locationMap[section][tag] || []).concat(badge);
|
|
145
|
+
return locationMap;
|
|
146
|
+
}, {});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
99
149
|
// Mask is used to power the product display for quick attribute swapping
|
|
100
150
|
export class ProductMask {
|
|
101
151
|
constructor() {
|
|
@@ -10,7 +10,7 @@ export declare class StorageStore {
|
|
|
10
10
|
clear(): void;
|
|
11
11
|
}
|
|
12
12
|
export type StorageConfig = {
|
|
13
|
-
type: StorageType;
|
|
13
|
+
type: StorageType | keyof typeof StorageType;
|
|
14
14
|
cookie?: {
|
|
15
15
|
expiration?: number;
|
|
16
16
|
sameSite?: string;
|
|
@@ -18,9 +18,9 @@ export type StorageConfig = {
|
|
|
18
18
|
key: string;
|
|
19
19
|
};
|
|
20
20
|
export declare enum StorageType {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
session = "session",
|
|
22
|
+
local = "local",
|
|
23
|
+
cookie = "cookie",
|
|
24
|
+
memory = "memory"
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=StorageStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAiClC,KAAK,IAAI,IAAI;CAcpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAiClC,KAAK,IAAI,IAAI;CAcpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,MAAM,OAAO,WAAW,CAAC;IAC7C,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB"}
|
|
@@ -20,7 +20,7 @@ export class StorageStore {
|
|
|
20
20
|
this.sameSite = config.cookie.sameSite;
|
|
21
21
|
}
|
|
22
22
|
switch (config.type) {
|
|
23
|
-
case StorageType.
|
|
23
|
+
case StorageType.session: {
|
|
24
24
|
this.type = featureFlags.storage ? config.type : null;
|
|
25
25
|
if (this.type) {
|
|
26
26
|
this.state = JSON.parse(window.sessionStorage.getItem(this.key) || '{}');
|
|
@@ -28,7 +28,7 @@ export class StorageStore {
|
|
|
28
28
|
}
|
|
29
29
|
break;
|
|
30
30
|
}
|
|
31
|
-
case StorageType.
|
|
31
|
+
case StorageType.local: {
|
|
32
32
|
this.type = featureFlags.storage ? config.type : null;
|
|
33
33
|
if (this.type) {
|
|
34
34
|
this.state = JSON.parse(window.localStorage.getItem(this.key) || '{}');
|
|
@@ -36,7 +36,7 @@ export class StorageStore {
|
|
|
36
36
|
}
|
|
37
37
|
break;
|
|
38
38
|
}
|
|
39
|
-
case StorageType.
|
|
39
|
+
case StorageType.cookie: {
|
|
40
40
|
if (featureFlags.cookies) {
|
|
41
41
|
this.type = config.type;
|
|
42
42
|
const data = utils.cookies.get(this.key);
|
|
@@ -47,7 +47,7 @@ export class StorageStore {
|
|
|
47
47
|
break;
|
|
48
48
|
}
|
|
49
49
|
default: {
|
|
50
|
-
this.type = StorageType.
|
|
50
|
+
this.type = StorageType.memory;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -65,28 +65,28 @@ export class StorageStore {
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
switch (this.type) {
|
|
68
|
-
case StorageType.
|
|
68
|
+
case StorageType.session:
|
|
69
69
|
window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
|
|
70
70
|
break;
|
|
71
|
-
case StorageType.
|
|
71
|
+
case StorageType.local:
|
|
72
72
|
window.localStorage.setItem(this.key, JSON.stringify(this.state));
|
|
73
73
|
break;
|
|
74
|
-
case StorageType.
|
|
74
|
+
case StorageType.cookie:
|
|
75
75
|
utils.cookies.set(this.key, JSON.stringify(this.state), this.sameSite, this.expiration);
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
get(path) {
|
|
80
80
|
switch (this.type) {
|
|
81
|
-
case StorageType.
|
|
81
|
+
case StorageType.session:
|
|
82
82
|
const sessionData = window.sessionStorage.getItem(this.key);
|
|
83
83
|
this.state = sessionData ? JSON.parse(sessionData) : {};
|
|
84
84
|
break;
|
|
85
|
-
case StorageType.
|
|
85
|
+
case StorageType.local:
|
|
86
86
|
const localData = window.localStorage.getItem(this.key);
|
|
87
87
|
this.state = localData ? JSON.parse(localData) : {};
|
|
88
88
|
break;
|
|
89
|
-
case StorageType.
|
|
89
|
+
case StorageType.cookie:
|
|
90
90
|
const data = utils.cookies.get(this.key);
|
|
91
91
|
if (data) {
|
|
92
92
|
this.state = JSON.parse(data) || {};
|
|
@@ -110,13 +110,13 @@ export class StorageStore {
|
|
|
110
110
|
}
|
|
111
111
|
clear() {
|
|
112
112
|
switch (this.type) {
|
|
113
|
-
case StorageType.
|
|
113
|
+
case StorageType.session:
|
|
114
114
|
window.sessionStorage.removeItem(this.key);
|
|
115
115
|
break;
|
|
116
|
-
case StorageType.
|
|
116
|
+
case StorageType.local:
|
|
117
117
|
window.localStorage.removeItem(this.key);
|
|
118
118
|
break;
|
|
119
|
-
case StorageType.
|
|
119
|
+
case StorageType.cookie:
|
|
120
120
|
utils.cookies.unset(this.key);
|
|
121
121
|
break;
|
|
122
122
|
}
|
|
@@ -125,8 +125,8 @@ export class StorageStore {
|
|
|
125
125
|
}
|
|
126
126
|
export var StorageType;
|
|
127
127
|
(function (StorageType) {
|
|
128
|
-
StorageType["
|
|
129
|
-
StorageType["
|
|
130
|
-
StorageType["
|
|
131
|
-
StorageType["
|
|
128
|
+
StorageType["session"] = "session";
|
|
129
|
+
StorageType["local"] = "local";
|
|
130
|
+
StorageType["cookie"] = "cookie";
|
|
131
|
+
StorageType["memory"] = "memory";
|
|
132
132
|
})(StorageType || (StorageType = {}));
|