@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.
Files changed (55) hide show
  1. package/dist/cjs/Autocomplete/AutocompleteStore.d.ts +2 -1
  2. package/dist/cjs/Autocomplete/AutocompleteStore.d.ts.map +1 -1
  3. package/dist/cjs/Autocomplete/AutocompleteStore.js +7 -6
  4. package/dist/cjs/Finder/FinderStore.d.ts +3 -2
  5. package/dist/cjs/Finder/FinderStore.d.ts.map +1 -1
  6. package/dist/cjs/Finder/FinderStore.js +5 -5
  7. package/dist/cjs/Meta/MetaStore.d.ts +15 -0
  8. package/dist/cjs/Meta/MetaStore.d.ts.map +1 -0
  9. package/dist/cjs/Meta/MetaStore.js +54 -0
  10. package/dist/cjs/Recommendation/RecommendationStore.d.ts +6 -1
  11. package/dist/cjs/Recommendation/RecommendationStore.d.ts.map +1 -1
  12. package/dist/cjs/Recommendation/RecommendationStore.js +3 -1
  13. package/dist/cjs/Search/SearchStore.d.ts +2 -1
  14. package/dist/cjs/Search/SearchStore.d.ts.map +1 -1
  15. package/dist/cjs/Search/SearchStore.js +7 -6
  16. package/dist/cjs/Search/Stores/SearchHistoryStore.js +1 -1
  17. package/dist/cjs/Search/Stores/SearchResultStore.d.ts +12 -4
  18. package/dist/cjs/Search/Stores/SearchResultStore.d.ts.map +1 -1
  19. package/dist/cjs/Search/Stores/SearchResultStore.js +63 -4
  20. package/dist/cjs/Storage/StorageStore.d.ts +5 -5
  21. package/dist/cjs/Storage/StorageStore.d.ts.map +1 -1
  22. package/dist/cjs/Storage/StorageStore.js +17 -17
  23. package/dist/cjs/index.d.ts +1 -0
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +3 -1
  26. package/dist/cjs/types.d.ts +2 -1
  27. package/dist/cjs/types.d.ts.map +1 -1
  28. package/dist/esm/Autocomplete/AutocompleteStore.d.ts +2 -1
  29. package/dist/esm/Autocomplete/AutocompleteStore.d.ts.map +1 -1
  30. package/dist/esm/Autocomplete/AutocompleteStore.js +7 -6
  31. package/dist/esm/Finder/FinderStore.d.ts +3 -2
  32. package/dist/esm/Finder/FinderStore.d.ts.map +1 -1
  33. package/dist/esm/Finder/FinderStore.js +6 -6
  34. package/dist/esm/Meta/MetaStore.d.ts +15 -0
  35. package/dist/esm/Meta/MetaStore.d.ts.map +1 -0
  36. package/dist/esm/Meta/MetaStore.js +44 -0
  37. package/dist/esm/Recommendation/RecommendationStore.d.ts +6 -1
  38. package/dist/esm/Recommendation/RecommendationStore.d.ts.map +1 -1
  39. package/dist/esm/Recommendation/RecommendationStore.js +3 -1
  40. package/dist/esm/Search/SearchStore.d.ts +2 -1
  41. package/dist/esm/Search/SearchStore.d.ts.map +1 -1
  42. package/dist/esm/Search/SearchStore.js +7 -6
  43. package/dist/esm/Search/Stores/SearchHistoryStore.js +2 -2
  44. package/dist/esm/Search/Stores/SearchResultStore.d.ts +12 -4
  45. package/dist/esm/Search/Stores/SearchResultStore.d.ts.map +1 -1
  46. package/dist/esm/Search/Stores/SearchResultStore.js +53 -3
  47. package/dist/esm/Storage/StorageStore.d.ts +5 -5
  48. package/dist/esm/Storage/StorageStore.d.ts.map +1 -1
  49. package/dist/esm/Storage/StorageStore.js +17 -17
  50. package/dist/esm/index.d.ts +1 -0
  51. package/dist/esm/index.d.ts.map +1 -1
  52. package/dist/esm/index.js +1 -0
  53. package/dist/esm/types.d.ts +2 -1
  54. package/dist/esm/types.d.ts.map +1 -1
  55. 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);
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
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: MetaResponseModel;
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;AAEvE,qBAAa,iBAAkB,SAAQ,aAAa;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAG,iBAAiB,CAAC;IACzB,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"}
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: MetaResponseModel;
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: MetaResponseModel;
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,EAAe,MAAM,yBAAyB,CAAC;AACpE,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;AAE5D,qBAAa,WAAY,SAAQ,aAAa;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAG,iBAAiB,CAAC;IAC3B,IAAI,EAAE,iBAAiB,CAAM;IAC7B,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,EAAE,iBAAiB,CAAA;KAAE,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAiCtH"}
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, StorageType } from '../Storage/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: StorageType.LOCAL,
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): void;
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;AAEhF,qBAAa,mBAAoB,SAAQ,aAAa;IAC9C,QAAQ,EAAE,aAAa,CAAC;IACxB,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,IAAI;CAW1D"}
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: MetaResponseModel;
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;AAEvD,qBAAa,WAAY,SAAQ,aAAa;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAG,iBAAiB,CAAC;IACzB,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"}
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, StorageType } from '../../Storage/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: StorageType.LOCAL,
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":"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"}
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,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvI,OAAO,KAAK,EACX,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,6CAA6C,EAC7C,6CAA6C,EAC7C,iBAAiB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7D,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAGA,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,CAAC,EAAE,yBAAyB,EAAE,EACxC,cAAc,CAAC,EAAE,6BAA6B,EAC9C,SAAS,CAAC,EAAE,gCAAgC;CAqB7C;AAED,qBAAa,MAAM;IACX,IAAI,SAAY;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,MAAM,EAAE,6CAA6C,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,6CAA6C;CAW1F;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CACd,MAAM,EACN;QACC,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CACD,CAAC;CACF,CAAC;AAEF,KAAK,cAAc,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF,qBAAa,OAAO;IACZ,IAAI,SAAa;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,SAAK;IACb,IAAI,cAAqB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAEf,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,YAAY;IAgD1H,IAAW,OAAO,IAAI,cAAc,CAEnC;CACD;AAED,qBAAa,MAAM;IACX,GAAG,EAAE,WAAW,EAAE,CAAM;gBAEnB,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,iBAAiB;IA2BnE,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE;IAQ9D,IAAW,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAK7C;IAED,IAAW,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAQpE;CACD;AAGD,qBAAa,WAAW;IAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAM;;IAQ5B,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAQ5B,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;IAQ1B,KAAK;CAGZ;AAED,qBAAa,QAAQ;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,EAAE,CAAM;IACrB,UAAU,EAAE,gBAAgB,EAAE,CAAM;IACpC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7C,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,WAAW,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa;IAU1E,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,MAAM,4BAAc;IA4CvD,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAgDjD,gBAAgB,CAAC,aAAa,EAAE,gBAAgB;CA+BvD;AAED,KAAK,cAAc,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAM;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAM;IACjC,MAAM,EAAE,cAAc,EAAE,CAAM;IAErC,OAAO,CAAC,cAAc,CAAa;gBAEvB,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB;IAgBhE,YAAY,CAAC,QAAQ,EAAE,QAAQ;IA4D/B,KAAK;IAKL,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,UAAQ;CAYtD;AAED,qBAAa,OAAO;IACZ,IAAI,SAAa;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,OAAO,EAAE,MAAM,CACrB,MAAM,EACN;QACC,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CACD,CAAC;IAEK,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;gBAEP,WAAW,EAAE,WAAW;CAapC;AAED,cAAM,KAAK;IACH,IAAI,SAAW;IACf,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,MAAM,KAAM;gBAEP,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB;CAUtE"}
@@ -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
- SESSION = "session",
22
- LOCAL = "local",
23
- COOKIE = "cookie",
24
- MEMORY = "memory"
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;IAClB,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"}
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.SESSION: {
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.LOCAL: {
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.COOKIE: {
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.MEMORY;
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.SESSION:
68
+ case StorageType.session:
69
69
  window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
70
70
  break;
71
- case StorageType.LOCAL:
71
+ case StorageType.local:
72
72
  window.localStorage.setItem(this.key, JSON.stringify(this.state));
73
73
  break;
74
- case StorageType.COOKIE:
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.SESSION:
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.LOCAL:
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.COOKIE:
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.SESSION:
113
+ case StorageType.session:
114
114
  window.sessionStorage.removeItem(this.key);
115
115
  break;
116
- case StorageType.LOCAL:
116
+ case StorageType.local:
117
117
  window.localStorage.removeItem(this.key);
118
118
  break;
119
- case StorageType.COOKIE:
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["SESSION"] = "session";
129
- StorageType["LOCAL"] = "local";
130
- StorageType["COOKIE"] = "cookie";
131
- StorageType["MEMORY"] = "memory";
128
+ StorageType["session"] = "session";
129
+ StorageType["local"] = "local";
130
+ StorageType["cookie"] = "cookie";
131
+ StorageType["memory"] = "memory";
132
132
  })(StorageType || (StorageType = {}));