@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,44 @@
1
+ import type { UrlManager } from '@athoscommerce/snap-url-manager';
2
+ import type { AutocompleteStoreConfig, SearchStoreConfig, StoreServices } from '../../types';
3
+ import type { SearchResponseModelFilterRange, SearchResponseModelFilterValue, MetaResponseModelFacetDefaults, MetaResponseModelFacet, SearchResponseModel, MetaResponseModel } from '@athoscommerce/snapi-types';
4
+ type SearchFilterStoreConfig = {
5
+ services: StoreServices;
6
+ config?: SearchStoreConfig | AutocompleteStoreConfig;
7
+ data: {
8
+ search?: SearchResponseModel;
9
+ meta: MetaResponseModel;
10
+ };
11
+ };
12
+ export declare class SearchFilterStore extends Array<RangeFilter | Filter> {
13
+ static get [Symbol.species](): ArrayConstructor;
14
+ constructor(params: SearchFilterStoreConfig);
15
+ }
16
+ export declare class Filter {
17
+ label: string;
18
+ facet: {
19
+ field?: string;
20
+ label?: string;
21
+ };
22
+ value: {
23
+ value?: string;
24
+ label?: string;
25
+ };
26
+ url: UrlManager;
27
+ constructor(services: StoreServices, filter: SearchResponseModelFilterValue, meta: MetaResponseModelFacet & MetaResponseModelFacetDefaults);
28
+ }
29
+ export declare class RangeFilter {
30
+ label: string;
31
+ facet: {
32
+ field?: string;
33
+ label?: string;
34
+ };
35
+ value: {
36
+ low?: number;
37
+ high?: number;
38
+ label: string;
39
+ };
40
+ url: UrlManager;
41
+ constructor(services: StoreServices, filter: SearchResponseModelFilterRange, meta: MetaResponseModelFacet & MetaResponseModelFacetDefaults);
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=SearchFilterStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchFilterStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchFilterStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EACX,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,4BAA4B,CAAC;AAGpC,KAAK,uBAAuB,GAAG;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,GAAG,uBAAuB,CAAC;IACrD,IAAI,EAAE;QACL,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,IAAI,EAAE,iBAAiB,CAAC;KACxB,CAAC;CACF,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;IACjE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAEW,MAAM,EAAE,uBAAuB;CA8B3C;AAED,qBAAa,MAAM;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACK,KAAK,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEK,GAAG,EAAE,UAAU,CAAC;gBAEX,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,8BAA8B;CAmB1I;AAED,qBAAa,WAAW;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACK,KAAK,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IAEK,GAAG,EAAE,UAAU,CAAC;gBAEX,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,8BAA8B;CAoB1I"}
@@ -0,0 +1,102 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.RangeFilter = exports.Filter = exports.SearchFilterStore = void 0;
19
+ var mobx_1 = require("mobx");
20
+ var snap_toolbox_1 = require("@athoscommerce/snap-toolbox");
21
+ var SearchFilterStore = /** @class */ (function (_super) {
22
+ __extends(SearchFilterStore, _super);
23
+ function SearchFilterStore(params) {
24
+ var _a = params || {}, services = _a.services, data = _a.data, config = _a.config;
25
+ var _b = data || {}, search = _b.search, meta = _b.meta;
26
+ var filters = (search || {}).filters;
27
+ var filtersArr = (filters === null || filters === void 0 ? void 0 : filters.map(function (filter) {
28
+ var _a, _b, _c, _d, _e, _f, _g, _h;
29
+ var field = filter.field;
30
+ var facetMeta = meta.facets && meta.facets[field];
31
+ switch (filter.type) {
32
+ case 'range':
33
+ var rangeFilter = filter;
34
+ var format = ((_d = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.settings) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.fields) === null || _c === void 0 ? void 0 : _c[filter.field]) === null || _d === void 0 ? void 0 : _d.rangeFormatValue) ||
35
+ ((_f = (_e = config === null || config === void 0 ? void 0 : config.settings) === null || _e === void 0 ? void 0 : _e.filters) === null || _f === void 0 ? void 0 : _f.rangeFormatValue);
36
+ if (format) {
37
+ rangeFilter.label = (0, snap_toolbox_1.sprintf)(format, (_g = rangeFilter.value) === null || _g === void 0 ? void 0 : _g.low, (_h = rangeFilter.value) === null || _h === void 0 ? void 0 : _h.high);
38
+ }
39
+ return new RangeFilter(services, rangeFilter, facetMeta);
40
+ case 'value':
41
+ default:
42
+ var valueFilter = filter;
43
+ return new Filter(services, valueFilter, facetMeta);
44
+ }
45
+ })) || [];
46
+ return _super.apply(this, filtersArr) || this;
47
+ }
48
+ Object.defineProperty(SearchFilterStore, Symbol.species, {
49
+ get: function () {
50
+ return Array;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
55
+ return SearchFilterStore;
56
+ }(Array));
57
+ exports.SearchFilterStore = SearchFilterStore;
58
+ var Filter = /** @class */ (function () {
59
+ function Filter(services, filter, meta) {
60
+ var _a;
61
+ this.facet = {
62
+ field: filter.field,
63
+ label: (meta === null || meta === void 0 ? void 0 : meta.label) || filter.field,
64
+ };
65
+ this.value = {
66
+ value: filter.value,
67
+ label: filter.label,
68
+ };
69
+ this.label = "".concat(this.facet.label, ": ").concat(this.value.label);
70
+ this.url = (_a = services === null || services === void 0 ? void 0 : services.urlManager) === null || _a === void 0 ? void 0 : _a.remove('page').remove("filter.".concat(this.facet.field), this.value.value);
71
+ (0, mobx_1.makeObservable)(this, {
72
+ facet: mobx_1.observable,
73
+ value: mobx_1.observable,
74
+ label: mobx_1.observable,
75
+ });
76
+ }
77
+ return Filter;
78
+ }());
79
+ exports.Filter = Filter;
80
+ var RangeFilter = /** @class */ (function () {
81
+ function RangeFilter(services, filter, meta) {
82
+ var _a, _b, _c, _d, _e;
83
+ this.facet = {
84
+ field: filter.field,
85
+ label: (meta === null || meta === void 0 ? void 0 : meta.label) || filter.field,
86
+ };
87
+ this.value = {
88
+ low: (_a = filter === null || filter === void 0 ? void 0 : filter.value) === null || _a === void 0 ? void 0 : _a.low,
89
+ high: (_b = filter === null || filter === void 0 ? void 0 : filter.value) === null || _b === void 0 ? void 0 : _b.high,
90
+ label: filter.label || "".concat((_c = filter === null || filter === void 0 ? void 0 : filter.value) === null || _c === void 0 ? void 0 : _c.low, " - ").concat((_d = filter === null || filter === void 0 ? void 0 : filter.value) === null || _d === void 0 ? void 0 : _d.high),
91
+ };
92
+ this.label = "".concat(this.facet.label, ": ").concat(this.value.label);
93
+ this.url = (_e = services === null || services === void 0 ? void 0 : services.urlManager) === null || _e === void 0 ? void 0 : _e.remove('page').remove("filter.".concat(this.facet.field), { low: this.value.low, high: this.value.high });
94
+ (0, mobx_1.makeObservable)(this, {
95
+ facet: mobx_1.observable,
96
+ value: mobx_1.observable,
97
+ label: mobx_1.observable,
98
+ });
99
+ }
100
+ return RangeFilter;
101
+ }());
102
+ exports.RangeFilter = RangeFilter;
@@ -0,0 +1,20 @@
1
+ import type { AutocompleteStoreConfig, SearchStoreConfig, StoreServices } from '../../types';
2
+ import { Query } from './SearchQueryStore';
3
+ type SearchHistoryStoreConfig = {
4
+ services: StoreServices;
5
+ config: Partial<AutocompleteStoreConfig | SearchStoreConfig>;
6
+ };
7
+ export declare class SearchHistoryStore {
8
+ private config;
9
+ private storage;
10
+ private services;
11
+ private max;
12
+ constructor(params: SearchHistoryStoreConfig);
13
+ get queries(): Query[];
14
+ save(term: string): void;
15
+ remove(term: string): void;
16
+ reset(): void;
17
+ getStoredData(limit?: number): string[];
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=SearchHistoryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchHistoryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchHistoryStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC,uBAAuB,GAAG,iBAAiB,CAAC,CAAC;CAC7D,CAAC;AAEF,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,MAAM,CAAuD;IACrE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAS;gBAER,MAAM,EAAE,wBAAwB;IAoC5C,IAAI,OAAO,IAAI,KAAK,EAAE,CAGrB;IAEM,IAAI,CAAC,IAAI,EAAE,MAAM;IAoBjB,MAAM,CAAC,IAAI,EAAE,MAAM;IAWnB,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAmB9C"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.SearchHistoryStore = void 0;
15
+ var StorageStore_1 = require("../../Storage/StorageStore");
16
+ var SearchQueryStore_1 = require("./SearchQueryStore");
17
+ var SearchHistoryStore = /** @class */ (function () {
18
+ function SearchHistoryStore(params) {
19
+ var _this = this;
20
+ var _a, _b, _c, _d, _e, _f, _g;
21
+ var _h = params || {}, services = _h.services, config = _h.config;
22
+ this.config = config;
23
+ this.services = services;
24
+ this.max = (_c = (_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.history) === null || _b === void 0 ? void 0 : _b.max) !== null && _c !== void 0 ? _c : 25;
25
+ if ((_e = (_d = this.config.settings) === null || _d === void 0 ? void 0 : _d.history) === null || _e === void 0 ? void 0 : _e.url) {
26
+ this.services.urlManager = this.services.urlManager.withConfig(function (translatorConfig) {
27
+ var _a, _b;
28
+ return __assign(__assign({}, translatorConfig), { urlRoot: (_b = (_a = _this.config.settings) === null || _a === void 0 ? void 0 : _a.history) === null || _b === void 0 ? void 0 : _b.url });
29
+ });
30
+ }
31
+ this.storage = new StorageStore_1.StorageStore({
32
+ type: 'local',
33
+ key: "athos-history".concat(((_f = this.config.globals) === null || _f === void 0 ? void 0 : _f.siteId) ? "-".concat((_g = this.config.globals) === null || _g === void 0 ? void 0 : _g.siteId) : ""),
34
+ });
35
+ // reset to zero to clear any potentially existing terms
36
+ if (this.max === 0) {
37
+ this.reset();
38
+ }
39
+ // trim history if the current queries are more than config max
40
+ if (this.queries.length > this.max) {
41
+ this.getStoredData().forEach(function (term, index) {
42
+ if (index > _this.max - 1) {
43
+ _this.remove(term);
44
+ }
45
+ });
46
+ }
47
+ }
48
+ Object.defineProperty(SearchHistoryStore.prototype, "queries", {
49
+ get: function () {
50
+ var _this = this;
51
+ var queries = this.getStoredData();
52
+ return queries.map(function (query) { return new SearchQueryStore_1.Query(_this.services, query); });
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ SearchHistoryStore.prototype.save = function (term) {
58
+ // adding term to array if max is not zero
59
+ if (this.max) {
60
+ var history_1 = this.getStoredData();
61
+ // removing term if already present
62
+ var index = history_1.indexOf(term);
63
+ if (index != -1) {
64
+ history_1.splice(index, 1);
65
+ }
66
+ history_1.unshift(term);
67
+ if (history_1.length > this.max) {
68
+ history_1.pop();
69
+ }
70
+ this.storage.set('history', JSON.stringify(history_1));
71
+ }
72
+ };
73
+ SearchHistoryStore.prototype.remove = function (term) {
74
+ var history = this.getStoredData();
75
+ // removing term if already present
76
+ var index = history.indexOf(term);
77
+ if (index != -1) {
78
+ history.splice(index, 1);
79
+ this.storage.set('history', JSON.stringify(history));
80
+ }
81
+ };
82
+ SearchHistoryStore.prototype.reset = function () {
83
+ this.storage.clear();
84
+ };
85
+ SearchHistoryStore.prototype.getStoredData = function (limit) {
86
+ var storedHistory = this.storage.get('history');
87
+ if (storedHistory) {
88
+ try {
89
+ var history_2 = JSON.parse(storedHistory);
90
+ if (Array.isArray(history_2)) {
91
+ if (limit && Number.isInteger(limit)) {
92
+ return history_2.slice(0, limit);
93
+ }
94
+ return history_2;
95
+ }
96
+ }
97
+ catch (err) {
98
+ // storage corrupted - resetting it
99
+ this.reset();
100
+ }
101
+ }
102
+ return [];
103
+ };
104
+ return SearchHistoryStore;
105
+ }());
106
+ exports.SearchHistoryStore = SearchHistoryStore;
@@ -0,0 +1,36 @@
1
+ import type { SearchResponseModelMerchandisingCampaigns, SearchResponseModel, SearchResponseModelMerchandisingExperiments, SearchResponseModelTracking } from '@athoscommerce/snapi-types';
2
+ export declare enum ContentType {
3
+ HEADER = "header",
4
+ BANNER = "banner",
5
+ FOOTER = "footer",
6
+ LEFT = "left",
7
+ INLINE = "inline"
8
+ }
9
+ export type BannerContent = Partial<Record<ContentType, Content>>;
10
+ type SearchMerchandisingStoreConfig = {
11
+ data: {
12
+ search?: SearchResponseModel;
13
+ tracking?: SearchResponseModelTracking;
14
+ };
15
+ };
16
+ export declare class SearchMerchandisingStore {
17
+ redirect: string;
18
+ responseId: string;
19
+ content: BannerContent;
20
+ campaigns: SearchResponseModelMerchandisingCampaigns[];
21
+ landingPage?: SearchResponseModelMerchandisingCampaigns;
22
+ personalized?: boolean;
23
+ experiments: SearchResponseModelMerchandisingExperiments[];
24
+ constructor(params: SearchMerchandisingStoreConfig);
25
+ }
26
+ export type MerchandisingContentBanner = {
27
+ value: string[];
28
+ uid: string;
29
+ responseId: string;
30
+ };
31
+ declare class Content extends Array<MerchandisingContentBanner> {
32
+ static get [Symbol.species](): ArrayConstructor;
33
+ constructor(content: MerchandisingContentBanner[]);
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=SearchMerchandisingStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchMerchandisingStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchMerchandisingStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,yCAAyC,EACzC,mBAAmB,EACnB,2CAA2C,EAC3C,2BAA2B,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,oBAAY,WAAW;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAElE,KAAK,8BAA8B,GAAG;IACrC,IAAI,EAAE;QACL,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,QAAQ,CAAC,EAAE,2BAA2B,CAAC;KACvC,CAAC;CACF,CAAC;AAEF,qBAAa,wBAAwB;IAC7B,QAAQ,SAAM;IACd,UAAU,SAAM;IAChB,OAAO,EAAE,aAAa,CAAM;IAC5B,SAAS,EAAE,yCAAyC,EAAE,CAAM;IAC5D,WAAW,CAAC,EAAE,yCAAyC,CAAC;IACxD,YAAY,CAAC,EAAE,OAAO,CAAS;IAC/B,WAAW,EAAE,2CAA2C,EAAE,CAAM;gBAE3D,MAAM,EAAE,8BAA8B;CAyClD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,cAAM,OAAQ,SAAQ,KAAK,CAAC,0BAA0B,CAAC;IACtD,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAEW,OAAO,EAAE,0BAA0B,EAAE;CAGjD"}
@@ -0,0 +1,90 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SearchMerchandisingStore = exports.ContentType = void 0;
19
+ var ContentType;
20
+ (function (ContentType) {
21
+ ContentType["HEADER"] = "header";
22
+ ContentType["BANNER"] = "banner";
23
+ ContentType["FOOTER"] = "footer";
24
+ ContentType["LEFT"] = "left";
25
+ ContentType["INLINE"] = "inline";
26
+ })(ContentType || (exports.ContentType = ContentType = {}));
27
+ var SearchMerchandisingStore = /** @class */ (function () {
28
+ function SearchMerchandisingStore(params) {
29
+ var _this = this;
30
+ var _a, _b, _c, _d, _e, _f;
31
+ this.redirect = '';
32
+ this.responseId = '';
33
+ this.content = {};
34
+ this.campaigns = [];
35
+ this.personalized = false;
36
+ this.experiments = [];
37
+ var merchandising = (((_a = params === null || params === void 0 ? void 0 : params.data) === null || _a === void 0 ? void 0 : _a.search) || {}).merchandising;
38
+ if (merchandising) {
39
+ this.redirect = merchandising.redirect || '';
40
+ this.responseId = ((_d = (_c = (_b = params === null || params === void 0 ? void 0 : params.data) === null || _b === void 0 ? void 0 : _b.search) === null || _c === void 0 ? void 0 : _c.tracking) === null || _d === void 0 ? void 0 : _d.responseId) || ((_f = (_e = params === null || params === void 0 ? void 0 : params.data) === null || _e === void 0 ? void 0 : _e.tracking) === null || _f === void 0 ? void 0 : _f.responseId) || ''; // Autocomplete 'beforeSubmit' doesn't have a response reference
41
+ if (merchandising.content) {
42
+ Object.values(ContentType).forEach(function (type) {
43
+ var _a;
44
+ if (merchandising.content && merchandising.content[type]) {
45
+ // Extract data-banner-id from the HTML string
46
+ var htmlString = ((_a = merchandising.content[type]) === null || _a === void 0 ? void 0 : _a[0]) || '';
47
+ var match = typeof htmlString === 'string' && htmlString.match(/data-banner-id="(\d+)"/);
48
+ var uid = match ? match[1] : '';
49
+ _this.content[type] = new Content([
50
+ {
51
+ value: merchandising.content[type],
52
+ uid: uid,
53
+ responseId: _this.responseId,
54
+ },
55
+ ]);
56
+ }
57
+ });
58
+ }
59
+ if (merchandising.campaigns) {
60
+ this.campaigns = merchandising.campaigns;
61
+ // if we find a 'landing-page', get landingPage details from merchandising.campaigns
62
+ merchandising.campaigns.forEach(function (campaign) {
63
+ if (campaign.type == 'landing-page') {
64
+ _this.landingPage = campaign;
65
+ }
66
+ });
67
+ }
68
+ if (merchandising.experiments) {
69
+ this.experiments = merchandising.experiments;
70
+ }
71
+ this.personalized = !!merchandising.personalized;
72
+ }
73
+ }
74
+ return SearchMerchandisingStore;
75
+ }());
76
+ exports.SearchMerchandisingStore = SearchMerchandisingStore;
77
+ var Content = /** @class */ (function (_super) {
78
+ __extends(Content, _super);
79
+ function Content(content) {
80
+ return _super.apply(this, content) || this;
81
+ }
82
+ Object.defineProperty(Content, Symbol.species, {
83
+ get: function () {
84
+ return Array;
85
+ },
86
+ enumerable: false,
87
+ configurable: true
88
+ });
89
+ return Content;
90
+ }(Array));
@@ -0,0 +1,57 @@
1
+ import type { StoreServices, SearchStoreConfig } from '../../types';
2
+ import type { UrlManager } from '@athoscommerce/snap-url-manager';
3
+ import { MetaResponseModel, SearchResponseModel } from '@athoscommerce/snapi-types';
4
+ type SearchPaginationStoreConfig = {
5
+ config?: SearchStoreConfig;
6
+ services: StoreServices;
7
+ data: {
8
+ search?: SearchResponseModel;
9
+ meta: MetaResponseModel;
10
+ };
11
+ };
12
+ export declare class SearchPaginationStore {
13
+ services: StoreServices;
14
+ page: number;
15
+ pageSize: number;
16
+ pageSizeOption?: PageSizeOption;
17
+ pageSizeOptions: PageSizeOption[];
18
+ defaultPageSize: number;
19
+ totalResults: number;
20
+ totalPages: number;
21
+ controllerConfig?: SearchStoreConfig;
22
+ constructor(params: SearchPaginationStoreConfig);
23
+ get begin(): number;
24
+ get end(): number;
25
+ get multiplePages(): boolean;
26
+ get current(): Page;
27
+ get first(): Page;
28
+ get last(): Page;
29
+ get next(): Page | undefined;
30
+ get previous(): Page | undefined;
31
+ getPages(min?: number, max?: number): Page[];
32
+ setPageSize(num: number): void;
33
+ }
34
+ export declare class PageSizeOption {
35
+ private services;
36
+ value: number;
37
+ label: string;
38
+ url: UrlManager;
39
+ active: boolean;
40
+ constructor(services: StoreServices, currentPageSize: number, option: {
41
+ value: number;
42
+ label: string;
43
+ });
44
+ }
45
+ export declare class Page {
46
+ private services;
47
+ number: number;
48
+ active: boolean;
49
+ url: UrlManager;
50
+ key: string;
51
+ constructor(services: StoreServices, page: {
52
+ number: number;
53
+ active?: boolean;
54
+ });
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=SearchPaginationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPaginationStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchPaginationStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,KAAK,2BAA2B,GAAG;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE;QACL,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,IAAI,EAAE,iBAAiB,CAAC;KACxB,CAAC;CACF,CAAC;AAEF,qBAAa,qBAAqB;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;gBAEhC,MAAM,EAAE,2BAA2B;IA8D/C,IAAW,KAAK,IAAI,MAAM,CAKzB;IAED,IAAW,GAAG,IAAI,MAAM,CAMvB;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,OAAO,IAAI,IAAI,CAKzB;IAED,IAAW,KAAK,IAAI,IAAI,CAKvB;IAED,IAAW,IAAI,IAAI,IAAI,CAKtB;IAED,IAAW,IAAI,IAAI,IAAI,GAAG,SAAS,CAMlC;IAED,IAAW,QAAQ,IAAI,IAAI,GAAG,SAAS,CAMtC;IAEM,QAAQ,CAAC,GAAG,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE;IAmDvC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAKrC;AAED,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAgB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;gBAGtB,QAAQ,EAAE,aAAa,EACvB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACd;CAQF;AAED,qBAAa,IAAI;IAChB,OAAO,CAAC,QAAQ,CAAgB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;gBAGlB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB;CAQF"}