@athoscommerce/snap-store-mobx 1.0.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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/cjs/Abstract/AbstractStore.d.ts +17 -0
  4. package/dist/cjs/Abstract/AbstractStore.d.ts.map +1 -0
  5. package/dist/cjs/Abstract/AbstractStore.js +28 -0
  6. package/dist/cjs/Autocomplete/AutocompleteStore.d.ts +40 -0
  7. package/dist/cjs/Autocomplete/AutocompleteStore.d.ts.map +1 -0
  8. package/dist/cjs/Autocomplete/AutocompleteStore.js +246 -0
  9. package/dist/cjs/Autocomplete/Stores/AutocompleteFacetStore.d.ts +13 -0
  10. package/dist/cjs/Autocomplete/Stores/AutocompleteFacetStore.d.ts.map +1 -0
  11. package/dist/cjs/Autocomplete/Stores/AutocompleteFacetStore.js +67 -0
  12. package/dist/cjs/Autocomplete/Stores/AutocompleteHistoryStore.d.ts +19 -0
  13. package/dist/cjs/Autocomplete/Stores/AutocompleteHistoryStore.d.ts.map +1 -0
  14. package/dist/cjs/Autocomplete/Stores/AutocompleteHistoryStore.js +57 -0
  15. package/dist/cjs/Autocomplete/Stores/AutocompleteQueryStore.d.ts +25 -0
  16. package/dist/cjs/Autocomplete/Stores/AutocompleteQueryStore.d.ts.map +1 -0
  17. package/dist/cjs/Autocomplete/Stores/AutocompleteQueryStore.js +34 -0
  18. package/dist/cjs/Autocomplete/Stores/AutocompleteStateStore.d.ts +29 -0
  19. package/dist/cjs/Autocomplete/Stores/AutocompleteStateStore.d.ts.map +1 -0
  20. package/dist/cjs/Autocomplete/Stores/AutocompleteStateStore.js +54 -0
  21. package/dist/cjs/Autocomplete/Stores/AutocompleteTermStore.d.ts +47 -0
  22. package/dist/cjs/Autocomplete/Stores/AutocompleteTermStore.d.ts.map +1 -0
  23. package/dist/cjs/Autocomplete/Stores/AutocompleteTermStore.js +102 -0
  24. package/dist/cjs/Autocomplete/Stores/AutocompleteTrendingStore.d.ts +20 -0
  25. package/dist/cjs/Autocomplete/Stores/AutocompleteTrendingStore.d.ts.map +1 -0
  26. package/dist/cjs/Autocomplete/Stores/AutocompleteTrendingStore.js +58 -0
  27. package/dist/cjs/Autocomplete/Stores/index.d.ts +7 -0
  28. package/dist/cjs/Autocomplete/Stores/index.d.ts.map +1 -0
  29. package/dist/cjs/Autocomplete/Stores/index.js +16 -0
  30. package/dist/cjs/Cart/CartStore.d.ts +15 -0
  31. package/dist/cjs/Cart/CartStore.d.ts.map +1 -0
  32. package/dist/cjs/Cart/CartStore.js +109 -0
  33. package/dist/cjs/Finder/FinderStore.d.ts +27 -0
  34. package/dist/cjs/Finder/FinderStore.d.ts.map +1 -0
  35. package/dist/cjs/Finder/FinderStore.js +156 -0
  36. package/dist/cjs/Finder/Stores/FinderSelectionStore.d.ts +73 -0
  37. package/dist/cjs/Finder/Stores/FinderSelectionStore.d.ts.map +1 -0
  38. package/dist/cjs/Finder/Stores/FinderSelectionStore.js +320 -0
  39. package/dist/cjs/Finder/Stores/index.d.ts +2 -0
  40. package/dist/cjs/Finder/Stores/index.d.ts.map +1 -0
  41. package/dist/cjs/Finder/Stores/index.js +5 -0
  42. package/dist/cjs/Meta/MetaStore.d.ts +20 -0
  43. package/dist/cjs/Meta/MetaStore.d.ts.map +1 -0
  44. package/dist/cjs/Meta/MetaStore.js +55 -0
  45. package/dist/cjs/Recommendation/RecommendationStore.d.ts +19 -0
  46. package/dist/cjs/Recommendation/RecommendationStore.d.ts.map +1 -0
  47. package/dist/cjs/Recommendation/RecommendationStore.js +97 -0
  48. package/dist/cjs/Recommendation/Stores/RecommendationProfileStore.d.ts +15 -0
  49. package/dist/cjs/Recommendation/Stores/RecommendationProfileStore.d.ts.map +1 -0
  50. package/dist/cjs/Recommendation/Stores/RecommendationProfileStore.js +30 -0
  51. package/dist/cjs/Recommendation/Stores/index.d.ts +2 -0
  52. package/dist/cjs/Recommendation/Stores/index.d.ts.map +1 -0
  53. package/dist/cjs/Recommendation/Stores/index.js +5 -0
  54. package/dist/cjs/Search/SearchStore.d.ts +27 -0
  55. package/dist/cjs/Search/SearchStore.d.ts.map +1 -0
  56. package/dist/cjs/Search/SearchStore.js +125 -0
  57. package/dist/cjs/Search/Stores/SearchFacetStore.d.ts +89 -0
  58. package/dist/cjs/Search/Stores/SearchFacetStore.d.ts.map +1 -0
  59. package/dist/cjs/Search/Stores/SearchFacetStore.js +368 -0
  60. package/dist/cjs/Search/Stores/SearchFilterStore.d.ts +44 -0
  61. package/dist/cjs/Search/Stores/SearchFilterStore.d.ts.map +1 -0
  62. package/dist/cjs/Search/Stores/SearchFilterStore.js +102 -0
  63. package/dist/cjs/Search/Stores/SearchHistoryStore.d.ts +20 -0
  64. package/dist/cjs/Search/Stores/SearchHistoryStore.d.ts.map +1 -0
  65. package/dist/cjs/Search/Stores/SearchHistoryStore.js +106 -0
  66. package/dist/cjs/Search/Stores/SearchMerchandisingStore.d.ts +36 -0
  67. package/dist/cjs/Search/Stores/SearchMerchandisingStore.d.ts.map +1 -0
  68. package/dist/cjs/Search/Stores/SearchMerchandisingStore.js +90 -0
  69. package/dist/cjs/Search/Stores/SearchPaginationStore.d.ts +57 -0
  70. package/dist/cjs/Search/Stores/SearchPaginationStore.d.ts.map +1 -0
  71. package/dist/cjs/Search/Stores/SearchPaginationStore.js +212 -0
  72. package/dist/cjs/Search/Stores/SearchQueryStore.d.ts +23 -0
  73. package/dist/cjs/Search/Stores/SearchQueryStore.d.ts.map +1 -0
  74. package/dist/cjs/Search/Stores/SearchQueryStore.js +41 -0
  75. package/dist/cjs/Search/Stores/SearchResultStore.d.ts +175 -0
  76. package/dist/cjs/Search/Stores/SearchResultStore.d.ts.map +1 -0
  77. package/dist/cjs/Search/Stores/SearchResultStore.js +749 -0
  78. package/dist/cjs/Search/Stores/SearchSortingStore.d.ts +32 -0
  79. package/dist/cjs/Search/Stores/SearchSortingStore.d.ts.map +1 -0
  80. package/dist/cjs/Search/Stores/SearchSortingStore.js +77 -0
  81. package/dist/cjs/Search/Stores/index.d.ts +9 -0
  82. package/dist/cjs/Search/Stores/index.d.ts.map +1 -0
  83. package/dist/cjs/Search/Stores/index.js +30 -0
  84. package/dist/cjs/Storage/StorageStore.d.ts +27 -0
  85. package/dist/cjs/Storage/StorageStore.d.ts.map +1 -0
  86. package/dist/cjs/Storage/StorageStore.js +176 -0
  87. package/dist/cjs/index.d.ts +12 -0
  88. package/dist/cjs/index.d.ts.map +1 -0
  89. package/dist/cjs/index.js +37 -0
  90. package/dist/cjs/types.d.ts +170 -0
  91. package/dist/cjs/types.d.ts.map +1 -0
  92. package/dist/cjs/types.js +9 -0
  93. package/dist/esm/Abstract/AbstractStore.d.ts +17 -0
  94. package/dist/esm/Abstract/AbstractStore.d.ts.map +1 -0
  95. package/dist/esm/Abstract/AbstractStore.js +22 -0
  96. package/dist/esm/Autocomplete/AutocompleteStore.d.ts +40 -0
  97. package/dist/esm/Autocomplete/AutocompleteStore.d.ts.map +1 -0
  98. package/dist/esm/Autocomplete/AutocompleteStore.js +210 -0
  99. package/dist/esm/Autocomplete/Stores/AutocompleteFacetStore.d.ts +13 -0
  100. package/dist/esm/Autocomplete/Stores/AutocompleteFacetStore.d.ts.map +1 -0
  101. package/dist/esm/Autocomplete/Stores/AutocompleteFacetStore.js +35 -0
  102. package/dist/esm/Autocomplete/Stores/AutocompleteHistoryStore.d.ts +19 -0
  103. package/dist/esm/Autocomplete/Stores/AutocompleteHistoryStore.d.ts.map +1 -0
  104. package/dist/esm/Autocomplete/Stores/AutocompleteHistoryStore.js +27 -0
  105. package/dist/esm/Autocomplete/Stores/AutocompleteQueryStore.d.ts +25 -0
  106. package/dist/esm/Autocomplete/Stores/AutocompleteQueryStore.d.ts.map +1 -0
  107. package/dist/esm/Autocomplete/Stores/AutocompleteQueryStore.js +28 -0
  108. package/dist/esm/Autocomplete/Stores/AutocompleteStateStore.d.ts +29 -0
  109. package/dist/esm/Autocomplete/Stores/AutocompleteStateStore.d.ts.map +1 -0
  110. package/dist/esm/Autocomplete/Stores/AutocompleteStateStore.js +42 -0
  111. package/dist/esm/Autocomplete/Stores/AutocompleteTermStore.d.ts +47 -0
  112. package/dist/esm/Autocomplete/Stores/AutocompleteTermStore.d.ts.map +1 -0
  113. package/dist/esm/Autocomplete/Stores/AutocompleteTermStore.js +56 -0
  114. package/dist/esm/Autocomplete/Stores/AutocompleteTrendingStore.d.ts +20 -0
  115. package/dist/esm/Autocomplete/Stores/AutocompleteTrendingStore.d.ts.map +1 -0
  116. package/dist/esm/Autocomplete/Stores/AutocompleteTrendingStore.js +27 -0
  117. package/dist/esm/Autocomplete/Stores/index.d.ts +7 -0
  118. package/dist/esm/Autocomplete/Stores/index.d.ts.map +1 -0
  119. package/dist/esm/Autocomplete/Stores/index.js +6 -0
  120. package/dist/esm/Cart/CartStore.d.ts +15 -0
  121. package/dist/esm/Cart/CartStore.d.ts.map +1 -0
  122. package/dist/esm/Cart/CartStore.js +74 -0
  123. package/dist/esm/Finder/FinderStore.d.ts +27 -0
  124. package/dist/esm/Finder/FinderStore.d.ts.map +1 -0
  125. package/dist/esm/Finder/FinderStore.js +118 -0
  126. package/dist/esm/Finder/Stores/FinderSelectionStore.d.ts +73 -0
  127. package/dist/esm/Finder/Stores/FinderSelectionStore.d.ts.map +1 -0
  128. package/dist/esm/Finder/Stores/FinderSelectionStore.js +258 -0
  129. package/dist/esm/Finder/Stores/index.d.ts +2 -0
  130. package/dist/esm/Finder/Stores/index.d.ts.map +1 -0
  131. package/dist/esm/Finder/Stores/index.js +1 -0
  132. package/dist/esm/Meta/MetaStore.d.ts +20 -0
  133. package/dist/esm/Meta/MetaStore.d.ts.map +1 -0
  134. package/dist/esm/Meta/MetaStore.js +45 -0
  135. package/dist/esm/Recommendation/RecommendationStore.d.ts +19 -0
  136. package/dist/esm/Recommendation/RecommendationStore.d.ts.map +1 -0
  137. package/dist/esm/Recommendation/RecommendationStore.js +71 -0
  138. package/dist/esm/Recommendation/Stores/RecommendationProfileStore.d.ts +15 -0
  139. package/dist/esm/Recommendation/Stores/RecommendationProfileStore.d.ts.map +1 -0
  140. package/dist/esm/Recommendation/Stores/RecommendationProfileStore.js +25 -0
  141. package/dist/esm/Recommendation/Stores/index.d.ts +2 -0
  142. package/dist/esm/Recommendation/Stores/index.d.ts.map +1 -0
  143. package/dist/esm/Recommendation/Stores/index.js +1 -0
  144. package/dist/esm/Search/SearchStore.d.ts +27 -0
  145. package/dist/esm/Search/SearchStore.d.ts.map +1 -0
  146. package/dist/esm/Search/SearchStore.js +102 -0
  147. package/dist/esm/Search/Stores/SearchFacetStore.d.ts +89 -0
  148. package/dist/esm/Search/Stores/SearchFacetStore.d.ts.map +1 -0
  149. package/dist/esm/Search/Stores/SearchFacetStore.js +292 -0
  150. package/dist/esm/Search/Stores/SearchFilterStore.d.ts +44 -0
  151. package/dist/esm/Search/Stores/SearchFilterStore.d.ts.map +1 -0
  152. package/dist/esm/Search/Stores/SearchFilterStore.js +70 -0
  153. package/dist/esm/Search/Stores/SearchHistoryStore.d.ts +20 -0
  154. package/dist/esm/Search/Stores/SearchHistoryStore.d.ts.map +1 -0
  155. package/dist/esm/Search/Stores/SearchHistoryStore.js +85 -0
  156. package/dist/esm/Search/Stores/SearchMerchandisingStore.d.ts +36 -0
  157. package/dist/esm/Search/Stores/SearchMerchandisingStore.d.ts.map +1 -0
  158. package/dist/esm/Search/Stores/SearchMerchandisingStore.js +61 -0
  159. package/dist/esm/Search/Stores/SearchPaginationStore.d.ts +57 -0
  160. package/dist/esm/Search/Stores/SearchPaginationStore.d.ts.map +1 -0
  161. package/dist/esm/Search/Stores/SearchPaginationStore.js +163 -0
  162. package/dist/esm/Search/Stores/SearchQueryStore.d.ts +23 -0
  163. package/dist/esm/Search/Stores/SearchQueryStore.d.ts.map +1 -0
  164. package/dist/esm/Search/Stores/SearchQueryStore.js +33 -0
  165. package/dist/esm/Search/Stores/SearchResultStore.d.ts +175 -0
  166. package/dist/esm/Search/Stores/SearchResultStore.d.ts.map +1 -0
  167. package/dist/esm/Search/Stores/SearchResultStore.js +648 -0
  168. package/dist/esm/Search/Stores/SearchSortingStore.d.ts +32 -0
  169. package/dist/esm/Search/Stores/SearchSortingStore.d.ts.map +1 -0
  170. package/dist/esm/Search/Stores/SearchSortingStore.js +67 -0
  171. package/dist/esm/Search/Stores/index.d.ts +9 -0
  172. package/dist/esm/Search/Stores/index.d.ts.map +1 -0
  173. package/dist/esm/Search/Stores/index.js +8 -0
  174. package/dist/esm/Storage/StorageStore.d.ts +27 -0
  175. package/dist/esm/Storage/StorageStore.d.ts.map +1 -0
  176. package/dist/esm/Storage/StorageStore.js +169 -0
  177. package/dist/esm/index.d.ts +12 -0
  178. package/dist/esm/index.d.ts.map +1 -0
  179. package/dist/esm/index.js +11 -0
  180. package/dist/esm/types.d.ts +170 -0
  181. package/dist/esm/types.d.ts.map +1 -0
  182. package/dist/esm/types.js +6 -0
  183. package/package.json +35 -0
@@ -0,0 +1,73 @@
1
+ import type { FinderStoreConfig, FinderFieldConfig, StoreServices, SelectedSelection } from '../../types';
2
+ import type { StorageStore } from '../../Storage/StorageStore';
3
+ import type { MetaResponseModel, MetaResponseModelFacetGrid, MetaResponseModelFacetHierarchy, MetaResponseModelFacetList, MetaResponseModelFacetPalette, MetaResponseModelFacetSlider, SearchResponseModel, SearchResponseModelFacetRange, SearchResponseModelFacetRangeBuckets, SearchResponseModelFacetValue, SearchResponseModelFacetValueAllOfValues } from '@athoscommerce/snapi-types';
4
+ type FacetWithMeta = MetaResponseModelFacetGrid & MetaResponseModelFacetHierarchy & MetaResponseModelFacetList & MetaResponseModelFacetPalette & MetaResponseModelFacetSlider & SearchResponseModelFacetValue & SearchResponseModelFacetRange & SearchResponseModelFacetRangeBuckets;
5
+ type FinderSelectionStoreConfig = {
6
+ config: FinderStoreConfig;
7
+ services: StoreServices;
8
+ stores: {
9
+ storage: StorageStore;
10
+ };
11
+ state: {
12
+ persisted: boolean;
13
+ };
14
+ data: {
15
+ search?: SearchResponseModel;
16
+ meta: MetaResponseModel;
17
+ selections: SelectedSelection[];
18
+ };
19
+ };
20
+ export declare class FinderSelectionStore extends Array<Selection | SelectionHierarchy> {
21
+ static get [Symbol.species](): ArrayConstructor;
22
+ constructor(params: FinderSelectionStoreConfig);
23
+ }
24
+ declare class SelectionBase {
25
+ persisted: boolean;
26
+ type: string;
27
+ field: string;
28
+ filtered: boolean;
29
+ collapsed: boolean;
30
+ display: string;
31
+ label: string;
32
+ multiple: string;
33
+ id: string;
34
+ disabled: boolean;
35
+ selected: string;
36
+ custom: {};
37
+ facet: FacetWithMeta;
38
+ services: StoreServices;
39
+ config: FinderFieldConfig | LevelConfig;
40
+ data?: SearchResponseModelFacetValueAllOfValues[];
41
+ storage: {
42
+ key: string;
43
+ get: (key?: string) => any;
44
+ set: (key: string, value: unknown) => void;
45
+ };
46
+ constructor(selectionData: SelectionData);
47
+ get values(): SearchResponseModelFacetValueAllOfValues[];
48
+ }
49
+ type SelectionData = Omit<FinderSelectionStoreConfig, 'config' | 'data'> & {
50
+ config: FinderFieldConfig | LevelConfig;
51
+ data: {
52
+ id: string;
53
+ facet: FacetWithMeta;
54
+ };
55
+ };
56
+ declare class Selection extends SelectionBase {
57
+ config: FinderFieldConfig;
58
+ constructor(selectionData: SelectionData);
59
+ select(value?: string): void;
60
+ }
61
+ declare class SelectionHierarchy extends SelectionBase {
62
+ hierarchyDelimiter: string;
63
+ config: LevelConfig;
64
+ constructor(selectionData: SelectionData);
65
+ select(value?: string): void;
66
+ }
67
+ type LevelConfig = {
68
+ index: number;
69
+ label?: string;
70
+ key: string;
71
+ };
72
+ export {};
73
+ //# sourceMappingURL=FinderSelectionStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinderSelectionStore.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/FinderSelectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,wCAAwC,EACxC,MAAM,4BAA4B,CAAC;AAEpC,KAAK,aAAa,GAAG,0BAA0B,GAC9C,+BAA+B,GAC/B,0BAA0B,GAC1B,6BAA6B,GAC7B,4BAA4B,GAC5B,6BAA6B,GAC7B,6BAA6B,GAC7B,oCAAoC,CAAC;AAEtC,KAAK,0BAA0B,GAAG;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE;QACP,OAAO,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,KAAK,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,IAAI,EAAE;QACL,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,IAAI,EAAE,iBAAiB,CAAC;QACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;KAChC,CAAC;CACF,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC9E,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAEW,MAAM,EAAE,0BAA0B;CA2I9C;AAED,cAAM,aAAa;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,UAAS;IACjB,SAAS,UAAS;IAClB,OAAO,SAAM;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,UAAS;IACjB,QAAQ,SAAM;IACd,MAAM,KAAM;IACZ,KAAK,gBAAC;IAEN,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAAC;IACxC,IAAI,CAAC,EAAE,wCAAwC,EAAE,CAAC;IAClD,OAAO;;oBA0BS,MAAM;mBAIP,MAAM,SAAS,OAAO;MA9B7B;gBAEH,aAAa,EAAE,aAAa;IAmCxC,IAAW,MAAM,+CAUhB;CACD;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG;IAC1E,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAAC;IACxC,IAAI,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,aAAa,CAAC;KACrB,CAAC;CACF,CAAC;AAEF,cAAM,SAAU,SAAQ,aAAa;IAC7B,MAAM,EAAG,iBAAiB,CAAC;gBAEtB,aAAa,EAAE,aAAa;IAejC,MAAM,CAAC,KAAK,SAAK;CAWxB;AAED,cAAM,kBAAmB,SAAQ,aAAa;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAG,WAAW,CAAC;gBAEhB,aAAa,EAAE,aAAa;IAuCjC,MAAM,CAAC,KAAK,SAAK;CA2BxB;AAED,KAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC"}
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
+ if (ar || !(i in from)) {
31
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
+ ar[i] = from[i];
33
+ }
34
+ }
35
+ return to.concat(ar || Array.prototype.slice.call(from));
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.FinderSelectionStore = void 0;
39
+ var FinderSelectionStore = /** @class */ (function (_super) {
40
+ __extends(FinderSelectionStore, _super);
41
+ function FinderSelectionStore(params) {
42
+ var _a;
43
+ var config = params.config;
44
+ var _b = params || {}, services = _b.services, data = _b.data, stores = _b.stores, state = _b.state;
45
+ var storage = (stores || {}).storage;
46
+ var _c = data || {}, search = _c.search, meta = _c.meta, selections = _c.selections;
47
+ var facets = (search || {}).facets;
48
+ var selectedSelections = [];
49
+ if (selections === null || selections === void 0 ? void 0 : selections.length) {
50
+ config.fields.forEach(function (fieldObj) {
51
+ var _a;
52
+ var storedData = selections.find(function (selection) { return selection.facet.field === fieldObj.field; });
53
+ if (storedData) {
54
+ var _b = storedData || {}, facet_1 = _b.facet, selected = _b.selected;
55
+ if (facet_1 === null || facet_1 === void 0 ? void 0 : facet_1.hierarchyDelimiter) {
56
+ // hierarchy
57
+ selections.forEach(function (selection, index) {
58
+ var _a, _b;
59
+ var levels = (fieldObj === null || fieldObj === void 0 ? void 0 : fieldObj.levels) || ((_a = facet_1 === null || facet_1 === void 0 ? void 0 : facet_1.values[(facet_1 === null || facet_1 === void 0 ? void 0 : facet_1.values.length) - 1]) === null || _a === void 0 ? void 0 : _a.value.split(facet_1.hierarchyDelimiter));
60
+ var levelConfig = { index: index, label: fieldObj.levels ? levels[index] : '', key: "ss-".concat(index) };
61
+ var storageKey = generateStorageKey(config.id, facet_1.field);
62
+ storage.set("".concat(storageKey, ".").concat(levelConfig.key, ".values"), selection.data);
63
+ storage.set("".concat(storageKey, ".").concat(levelConfig.key, ".selected"), selection.selected);
64
+ var selectionHierarchy = new SelectionHierarchy({
65
+ config: levelConfig,
66
+ services: services,
67
+ stores: stores,
68
+ state: state,
69
+ data: {
70
+ id: config.id,
71
+ facet: facet_1,
72
+ },
73
+ });
74
+ if ((_b = config.persist) === null || _b === void 0 ? void 0 : _b.lockSelections) {
75
+ selectionHierarchy.disabled = true;
76
+ }
77
+ if (selection.selected) {
78
+ services.urlManager = services.urlManager.set("filter.".concat(selection.facet.field), selection.selected);
79
+ }
80
+ selectedSelections.push(selectionHierarchy);
81
+ });
82
+ }
83
+ else {
84
+ var selection = new Selection({
85
+ config: fieldObj,
86
+ services: services,
87
+ stores: stores,
88
+ state: state,
89
+ data: {
90
+ id: config.id,
91
+ facet: facet_1,
92
+ },
93
+ });
94
+ selection.selected = selected;
95
+ selection.storage.set('selected', selected);
96
+ selection.data = facet_1.values;
97
+ if (selected) {
98
+ services.urlManager = services.urlManager.set("filter.".concat(facet_1.field), selected);
99
+ }
100
+ if ((_a = config.persist) === null || _a === void 0 ? void 0 : _a.lockSelections) {
101
+ selection.disabled = true;
102
+ }
103
+ selectedSelections.push(selection);
104
+ }
105
+ }
106
+ });
107
+ }
108
+ else if (facets && meta) {
109
+ // re-order facets to match our config
110
+ (config === null || config === void 0 ? void 0 : config.fields) &&
111
+ facets.sort(function (a, b) {
112
+ var fields = config.fields.map(function (fieldConfig) { return fieldConfig.field; });
113
+ return fields.indexOf(a.field) - fields.indexOf(b.field);
114
+ });
115
+ (_a = config === null || config === void 0 ? void 0 : config.fields) === null || _a === void 0 ? void 0 : _a.forEach(function (fieldObj) {
116
+ var _a, _b, _c, _d, _e;
117
+ var facet = facets.filter(function (facet) { return facet.field == fieldObj.field; }).pop();
118
+ facet = __assign(__assign({}, (((meta === null || meta === void 0 ? void 0 : meta.facets) && meta.facets[fieldObj.field]) || {})), facet);
119
+ var isHierarchy = (facet === null || facet === void 0 ? void 0 : facet.display) === 'hierarchy';
120
+ if (isHierarchy) {
121
+ // filter out history/current hierarchy values
122
+ var filtered = (_a = facet.values) === null || _a === void 0 ? void 0 : _a.filter(function (value) { return value.filtered; }).pop();
123
+ if (filtered) {
124
+ var filteredLevel_1 = (_b = filtered.value) === null || _b === void 0 ? void 0 : _b.split(facet === null || facet === void 0 ? void 0 : facet.hierarchyDelimiter).length;
125
+ facet.values = (_c = facet.values) === null || _c === void 0 ? void 0 : _c.filter(function (value, index) {
126
+ var _a;
127
+ return (value.value && value.value.split(facet === null || facet === void 0 ? void 0 : facet.hierarchyDelimiter).length > filteredLevel_1) || index == ((_a = facet.values) === null || _a === void 0 ? void 0 : _a.length) - 1;
128
+ });
129
+ }
130
+ var levels = (fieldObj === null || fieldObj === void 0 ? void 0 : fieldObj.levels) || ((facet === null || facet === void 0 ? void 0 : facet.values) && ((_e = facet === null || facet === void 0 ? void 0 : facet.values[((_d = facet === null || facet === void 0 ? void 0 : facet.values) === null || _d === void 0 ? void 0 : _d.length) - 1].value) === null || _e === void 0 ? void 0 : _e.split(facet.hierarchyDelimiter)));
131
+ levels === null || levels === void 0 ? void 0 : levels.map(function (level, index) {
132
+ var levelConfig = { index: index, label: fieldObj.levels ? level : '', key: "ss-".concat(index) };
133
+ selectedSelections.push(new SelectionHierarchy({
134
+ config: levelConfig,
135
+ services: services,
136
+ stores: stores,
137
+ state: state,
138
+ data: {
139
+ id: config.id,
140
+ facet: facet,
141
+ },
142
+ }));
143
+ });
144
+ }
145
+ else {
146
+ selectedSelections.push(new Selection({
147
+ config: fieldObj,
148
+ services: services,
149
+ stores: stores,
150
+ state: state,
151
+ data: {
152
+ id: config.id,
153
+ facet: facet,
154
+ },
155
+ }));
156
+ }
157
+ });
158
+ }
159
+ return _super.apply(this, selectedSelections) || this;
160
+ }
161
+ Object.defineProperty(FinderSelectionStore, Symbol.species, {
162
+ get: function () {
163
+ return Array;
164
+ },
165
+ enumerable: false,
166
+ configurable: true
167
+ });
168
+ return FinderSelectionStore;
169
+ }(Array));
170
+ exports.FinderSelectionStore = FinderSelectionStore;
171
+ var SelectionBase = /** @class */ (function () {
172
+ function SelectionBase(selectionData) {
173
+ this.filtered = false;
174
+ this.collapsed = false;
175
+ this.display = '';
176
+ this.disabled = false;
177
+ this.selected = '';
178
+ this.custom = {};
179
+ var _a = selectionData || {}, config = _a.config, services = _a.services, stores = _a.stores, state = _a.state, data = _a.data;
180
+ var storage = (stores || {}).storage;
181
+ var _b = data || {}, id = _b.id, facet = _b.facet;
182
+ var persisted = state.persisted;
183
+ this.services = services;
184
+ this.persisted = persisted;
185
+ this.id = id;
186
+ this.config = config;
187
+ // inherit all standard facet properties
188
+ this.facet = facet;
189
+ this.type = facet.type;
190
+ this.field = facet.field;
191
+ this.filtered = facet.filtered;
192
+ this.collapsed = facet.collapsed;
193
+ this.display = facet.display;
194
+ this.label = facet.label;
195
+ this.multiple = facet.multiple;
196
+ // abstracted StorageStore
197
+ this.storage = {
198
+ key: generateStorageKey(this.id, this.field),
199
+ get: function (key) {
200
+ var path = this.key + (key ? ".".concat(key) : '');
201
+ return storage.get(path);
202
+ },
203
+ set: function (key, value) {
204
+ var path = this.key + (key ? ".".concat(key) : '');
205
+ return storage.set(path, value);
206
+ },
207
+ };
208
+ }
209
+ Object.defineProperty(SelectionBase.prototype, "values", {
210
+ get: function () {
211
+ var values = __spreadArray([], (this.data || []), true);
212
+ values.unshift({
213
+ filtered: false,
214
+ value: '',
215
+ label: this.config.label || this.label,
216
+ });
217
+ return values;
218
+ },
219
+ enumerable: false,
220
+ configurable: true
221
+ });
222
+ return SelectionBase;
223
+ }());
224
+ var Selection = /** @class */ (function (_super) {
225
+ __extends(Selection, _super);
226
+ function Selection(selectionData) {
227
+ var _this = _super.call(this, selectionData) || this;
228
+ var data = (selectionData || {}).data;
229
+ var facet = (data || {}).facet;
230
+ _this.storage.set('values', facet.values);
231
+ var storageData = _this.storage.get();
232
+ _this.data = storageData.values || [];
233
+ // check if any dropdowns have been selected
234
+ _this.disabled = !_this.values.length;
235
+ _this.selected = _this.disabled ? '' : storageData.selected || '';
236
+ return _this;
237
+ }
238
+ Selection.prototype.select = function (value) {
239
+ if (value === void 0) { value = ''; }
240
+ this.selected = value;
241
+ this.storage.set('selected', value);
242
+ this.persisted = false;
243
+ if (!value) {
244
+ this.services.urlManager.remove("filter.".concat(this.field)).go();
245
+ }
246
+ else {
247
+ this.services.urlManager.set("filter.".concat(this.field), value).go();
248
+ }
249
+ };
250
+ return Selection;
251
+ }(SelectionBase));
252
+ var SelectionHierarchy = /** @class */ (function (_super) {
253
+ __extends(SelectionHierarchy, _super);
254
+ function SelectionHierarchy(selectionData) {
255
+ var _a, _b, _c;
256
+ var _this = _super.call(this, selectionData) || this;
257
+ var data = (selectionData || {}).data;
258
+ var facet = (data || {}).facet;
259
+ // inherit additional facet properties
260
+ _this.hierarchyDelimiter = facet.hierarchyDelimiter;
261
+ var storageData = _this.storage.get();
262
+ if (!storageData) {
263
+ // nothing in storage - initial state for first dropdown
264
+ _this.storage.set("".concat(_this.config.key, ".values"), facet.values);
265
+ storageData = _this.storage.get();
266
+ }
267
+ else if ((_a = storageData[_this.config.key]) === null || _a === void 0 ? void 0 : _a.values) {
268
+ // set selected from storage
269
+ _this.selected = ((_b = storageData[_this.config.key]) === null || _b === void 0 ? void 0 : _b.selected) || '';
270
+ }
271
+ else {
272
+ // value does not exist in storage
273
+ var storedLevels_1 = _this.storage.get();
274
+ var levels = Object.keys(storedLevels_1).map(function (a, index) { return "ss-".concat(index); });
275
+ !levels.includes(_this.config.key) && levels.push(_this.config.key);
276
+ var selectedLevels = Object.keys(storedLevels_1).filter(function (key) { return storedLevels_1[key].selected; });
277
+ var lastSelected = selectedLevels[selectedLevels.length - 1];
278
+ var labelIndex = levels.indexOf(_this.config.key);
279
+ var lastSelectedIndex = levels.indexOf(lastSelected);
280
+ if (lastSelectedIndex != -1 && labelIndex == lastSelectedIndex + 1) {
281
+ _this.storage.set("".concat(_this.config.key, ".values"), facet.values);
282
+ }
283
+ else {
284
+ _this.disabled = true;
285
+ }
286
+ }
287
+ _this.data = ((_c = storageData[_this.config.key]) === null || _c === void 0 ? void 0 : _c.values) || [];
288
+ return _this;
289
+ }
290
+ SelectionHierarchy.prototype.select = function (value) {
291
+ var _this = this;
292
+ if (value === void 0) { value = ''; }
293
+ this.selected = value;
294
+ this.persisted = false;
295
+ var selectedLevel = this.config.index;
296
+ var storedLevels = this.storage.get();
297
+ var keysToRemove = Object.keys(storedLevels).slice(selectedLevel);
298
+ Object.keys(storedLevels)
299
+ .reverse()
300
+ .forEach(function (key) {
301
+ if (key == _this.config.key) {
302
+ _this.storage.set("".concat(key, ".selected"), value);
303
+ }
304
+ else if (keysToRemove.includes(key)) {
305
+ _this.storage.set("".concat(key), {});
306
+ }
307
+ value = value || _this.storage.get("".concat(key, ".selected"));
308
+ });
309
+ if (!value) {
310
+ this.services.urlManager.remove("filter.".concat(this.field)).go();
311
+ }
312
+ else {
313
+ this.services.urlManager.set("filter.".concat(this.field), value).go();
314
+ }
315
+ };
316
+ return SelectionHierarchy;
317
+ }(SelectionBase));
318
+ function generateStorageKey(id, field) {
319
+ return "ss-finder-".concat(id, ".").concat(field);
320
+ }
@@ -0,0 +1,2 @@
1
+ export { FinderSelectionStore } from './FinderSelectionStore';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FinderSelectionStore = void 0;
4
+ var FinderSelectionStore_1 = require("./FinderSelectionStore");
5
+ Object.defineProperty(exports, "FinderSelectionStore", { enumerable: true, get: function () { return FinderSelectionStore_1.FinderSelectionStore; } });
@@ -0,0 +1,20 @@
1
+ import type { MetaResponseModel } from '@athoscommerce/snapi-types';
2
+ type MetaStoreConfig = {
3
+ data: {
4
+ meta?: MetaResponseModel;
5
+ };
6
+ };
7
+ export declare class MetaStore {
8
+ data: MetaResponseModel;
9
+ badges: MetaBadges;
10
+ constructor(params: MetaStoreConfig);
11
+ }
12
+ declare class MetaBadges {
13
+ groups: Record<string, {
14
+ sections: string[];
15
+ grid: string[][];
16
+ }>;
17
+ constructor(metaData: MetaResponseModel);
18
+ }
19
+ export {};
20
+ //# 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,4BAA4B,CAAC;AAEpE,KAAK,eAAe,GAAG;IACtB,IAAI,EAAE;QACL,IAAI,CAAC,EAAE,iBAAiB,CAAC;KACzB,CAAC;CACF,CAAC;AACF,qBAAa,SAAS;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;gBAEd,MAAM,EAAE,eAAe;CAKnC;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,EAAE,iBAAiB;CA8BvC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetaStore = void 0;
4
+ var MetaStore = /** @class */ (function () {
5
+ function MetaStore(params) {
6
+ var meta = ((params === null || params === void 0 ? void 0 : params.data) || {}).meta;
7
+ this.data = meta !== null && meta !== void 0 ? meta : {};
8
+ this.badges = new MetaBadges(this.data);
9
+ }
10
+ return MetaStore;
11
+ }());
12
+ exports.MetaStore = MetaStore;
13
+ var MetaBadges = /** @class */ (function () {
14
+ function MetaBadges(metaData) {
15
+ var _this = this;
16
+ this.groups = {};
17
+ // 'overlay' group is created by default - could support additional groups via config in the future
18
+ var groups = { overlay: { sections: ['left', 'right'] } };
19
+ // process groups - create the grid for each group
20
+ Object.keys(groups).map(function (name) {
21
+ var group = groups[name];
22
+ var sections = group.sections.map(function (section) {
23
+ var _a, _b, _c;
24
+ return ({
25
+ areas: ((_c = (_b = (_a = metaData === null || metaData === void 0 ? void 0 : metaData.badges) === null || _a === void 0 ? void 0 : _a.locations) === null || _b === void 0 ? void 0 : _b[section]) === null || _c === void 0 ? void 0 : _c.map(function (area) { return area.tag; })) || [],
26
+ grid: [],
27
+ });
28
+ });
29
+ // find lcm of sections
30
+ var lcmSections = sections.map(function (section) { return section.areas.length; }).reduce(lcm);
31
+ sections.forEach(function (section) {
32
+ section.grid = Array.from({ length: lcmSections }).map(function (_, index) { return section.areas[Math.floor(index / (lcmSections / section.areas.length))]; });
33
+ });
34
+ // set the grid by creating rows of columns
35
+ var grid = Array.from({ length: lcmSections }).map(function (_, i) {
36
+ return sections.map(function (section) { return section.grid[i]; });
37
+ });
38
+ _this.groups[name] = {
39
+ sections: group.sections,
40
+ grid: grid,
41
+ };
42
+ });
43
+ }
44
+ return MetaBadges;
45
+ }());
46
+ function gcd(a, b) {
47
+ if (!b) {
48
+ return a;
49
+ }
50
+ return gcd(b, a % b);
51
+ }
52
+ function lcm(a, b) {
53
+ var gcdValue = gcd(a, b);
54
+ return (a * b) / gcdValue;
55
+ }
@@ -0,0 +1,19 @@
1
+ import { AbstractStore } from '../Abstract/AbstractStore';
2
+ import { Product } from '../Search/Stores';
3
+ import { CartStore } from '../Cart/CartStore';
4
+ import { RecommendationProfileStore } from './Stores';
5
+ import type { RecommendationStoreConfig, StoreServices } from '../types';
6
+ import type { RecommendCombinedResponseModel } from '@athoscommerce/snap-client';
7
+ import { MetaStore } from '../Meta/MetaStore';
8
+ export declare class RecommendationStore extends AbstractStore<RecommendationStoreConfig> {
9
+ services: StoreServices;
10
+ meta?: MetaStore;
11
+ loaded: boolean;
12
+ profile: RecommendationProfileStore | Record<string, any>;
13
+ results: Product[];
14
+ cart?: CartStore;
15
+ constructor(config: RecommendationStoreConfig, services: StoreServices);
16
+ reset(): void;
17
+ update(data: RecommendCombinedResponseModel): void;
18
+ }
19
+ //# sourceMappingURL=RecommendationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecommendationStore.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationStore.ts"],"names":[],"mappings":"AAEA,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,4BAA4B,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IACzE,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,UAAS;IACf,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAC/D,OAAO,EAAE,OAAO,EAAE,CAAM;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;gBAEZ,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,aAAa;IAe/D,KAAK,IAAI,IAAI;IAOb,MAAM,CAAC,IAAI,EAAE,8BAA8B,GAAG,IAAI;CA+CzD"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.RecommendationStore = void 0;
22
+ var mobx_1 = require("mobx");
23
+ var deepmerge_1 = __importDefault(require("deepmerge"));
24
+ var AbstractStore_1 = require("../Abstract/AbstractStore");
25
+ var Stores_1 = require("../Search/Stores");
26
+ var CartStore_1 = require("../Cart/CartStore");
27
+ var Stores_2 = require("./Stores");
28
+ var MetaStore_1 = require("../Meta/MetaStore");
29
+ var RecommendationStore = /** @class */ (function (_super) {
30
+ __extends(RecommendationStore, _super);
31
+ function RecommendationStore(config, services) {
32
+ var _a;
33
+ var _this = _super.call(this, config) || this;
34
+ _this.loaded = false;
35
+ _this.profile = {};
36
+ _this.results = [];
37
+ if (typeof services != 'object' || typeof ((_a = services.urlManager) === null || _a === void 0 ? void 0 : _a.subscribe) != 'function') {
38
+ throw new Error("Invalid service 'urlManager' passed to AutocompleteStore. Missing \"subscribe\" function.");
39
+ }
40
+ _this.services = services;
41
+ (0, mobx_1.makeObservable)(_this, {
42
+ profile: mobx_1.observable,
43
+ results: mobx_1.observable,
44
+ });
45
+ return _this;
46
+ }
47
+ RecommendationStore.prototype.reset = function () {
48
+ this.error = undefined;
49
+ this.loaded = false;
50
+ this.profile = {};
51
+ this.results = [];
52
+ };
53
+ RecommendationStore.prototype.update = function (data) {
54
+ var _a = data || {}, meta = _a.meta, profile = _a.profile, results = _a.results;
55
+ this.error = undefined;
56
+ this.meta = new MetaStore_1.MetaStore({
57
+ data: {
58
+ meta: meta,
59
+ },
60
+ });
61
+ this.profile = new Stores_2.RecommendationProfileStore({
62
+ data: {
63
+ profile: {
64
+ profile: profile,
65
+ },
66
+ },
67
+ });
68
+ if (this.profile.type == 'bundle') {
69
+ // enable autoSelect for bundles (to ensure selection has been made for add to cart)
70
+ this.config.settings = (0, deepmerge_1.default)(this.config.settings || {}, {
71
+ variants: {
72
+ autoSelect: true,
73
+ },
74
+ });
75
+ // only create a cart store when type is bundle
76
+ this.cart = new CartStore_1.CartStore();
77
+ }
78
+ this.results = new Stores_1.SearchResultStore({
79
+ config: this.config,
80
+ state: {
81
+ loaded: this.loaded,
82
+ },
83
+ data: {
84
+ search: {
85
+ results: results,
86
+ tracking: {
87
+ responseId: data.responseId,
88
+ },
89
+ },
90
+ meta: this.meta.data,
91
+ },
92
+ });
93
+ this.loaded = !!profile;
94
+ };
95
+ return RecommendationStore;
96
+ }(AbstractStore_1.AbstractStore));
97
+ exports.RecommendationStore = RecommendationStore;
@@ -0,0 +1,15 @@
1
+ import type { ProfileResponseModel } from '@athoscommerce/snap-client';
2
+ type RecommendationProfileStoreConfig = {
3
+ data: {
4
+ profile?: ProfileResponseModel;
5
+ };
6
+ };
7
+ export declare class RecommendationProfileStore {
8
+ tag: string;
9
+ placement: string;
10
+ display: Record<string, any>;
11
+ type?: string | undefined;
12
+ constructor(params: RecommendationProfileStoreConfig);
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=RecommendationProfileStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecommendationProfileStore.d.ts","sourceRoot":"","sources":["../../../../src/Recommendation/Stores/RecommendationProfileStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,KAAK,gCAAgC,GAAG;IACvC,IAAI,EAAE;QACL,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAC/B,CAAC;CACF,CAAC;AACF,qBAAa,0BAA0B;IAC/B,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,IAAI,CAAC,qBAAa;gBAEb,MAAM,EAAE,gCAAgC;CAwBpD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecommendationProfileStore = void 0;
4
+ var mobx_1 = require("mobx");
5
+ var RecommendationProfileStore = /** @class */ (function () {
6
+ function RecommendationProfileStore(params) {
7
+ this.display = {};
8
+ this.type = 'default';
9
+ var data = (params || {}).data;
10
+ var profile = ((data === null || data === void 0 ? void 0 : data.profile) || {}).profile;
11
+ if (!(profile === null || profile === void 0 ? void 0 : profile.tag)) {
12
+ return;
13
+ }
14
+ if (!profile.display.template) {
15
+ throw new Error("Recommendation Profile Store found a profile without a set template: ".concat(profile.tag));
16
+ }
17
+ this.tag = profile.tag;
18
+ this.placement = profile.placement;
19
+ this.display = profile.display;
20
+ this.type = profile.display.template.type;
21
+ (0, mobx_1.makeObservable)(this, {
22
+ tag: mobx_1.observable,
23
+ placement: mobx_1.observable,
24
+ display: mobx_1.observable,
25
+ type: mobx_1.observable,
26
+ });
27
+ }
28
+ return RecommendationProfileStore;
29
+ }());
30
+ exports.RecommendationProfileStore = RecommendationProfileStore;