@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,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Page = exports.PageSizeOption = exports.SearchPaginationStore = void 0;
4
+ var mobx_1 = require("mobx");
5
+ var SearchPaginationStore = /** @class */ (function () {
6
+ function SearchPaginationStore(params) {
7
+ var _this = this;
8
+ var _a, _b;
9
+ var _c = params || {}, services = _c.services, data = _c.data, config = _c.config;
10
+ var _d = data || {}, search = _d.search, meta = _d.meta;
11
+ var pagination = (search || {}).pagination;
12
+ var paginationSettings = (_a = config === null || config === void 0 ? void 0 : config.settings) === null || _a === void 0 ? void 0 : _a.pagination;
13
+ this.services = services;
14
+ this.controllerConfig = config;
15
+ this.page = pagination === null || pagination === void 0 ? void 0 : pagination.page;
16
+ this.pageSize = pagination === null || pagination === void 0 ? void 0 : pagination.pageSize;
17
+ this.totalResults = pagination === null || pagination === void 0 ? void 0 : pagination.totalResults;
18
+ this.defaultPageSize = (_b = meta === null || meta === void 0 ? void 0 : meta.pagination) === null || _b === void 0 ? void 0 : _b.defaultPageSize;
19
+ this.totalPages = pagination === null || pagination === void 0 ? void 0 : pagination.totalPages;
20
+ var pageSizeOptions = (paginationSettings === null || paginationSettings === void 0 ? void 0 : paginationSettings.pageSizeOptions) || [
21
+ {
22
+ label: "Show ".concat(this.defaultPageSize),
23
+ value: this.defaultPageSize,
24
+ },
25
+ {
26
+ label: "Show ".concat(this.defaultPageSize * 2),
27
+ value: this.defaultPageSize * 2,
28
+ },
29
+ {
30
+ label: "Show ".concat(this.defaultPageSize * 3),
31
+ value: this.defaultPageSize * 3,
32
+ },
33
+ ];
34
+ //dont allow any page size options over the api limit of 100
35
+ this.pageSizeOptions = pageSizeOptions
36
+ .filter(function (option) { return option.value <= 100; })
37
+ .map(function (pageOption) {
38
+ return new PageSizeOption(_this.services, _this.pageSize, {
39
+ label: pageOption.label,
40
+ value: pageOption.value,
41
+ });
42
+ });
43
+ this.pageSizeOption = this.pageSizeOptions.find(function (option) { return option.active; });
44
+ (0, mobx_1.makeObservable)(this, {
45
+ page: mobx_1.observable,
46
+ pageSize: mobx_1.observable,
47
+ totalResults: mobx_1.observable,
48
+ totalPages: mobx_1.observable,
49
+ begin: mobx_1.computed,
50
+ end: mobx_1.computed,
51
+ multiplePages: mobx_1.computed,
52
+ current: mobx_1.computed,
53
+ first: mobx_1.computed,
54
+ last: mobx_1.computed,
55
+ next: mobx_1.computed,
56
+ previous: mobx_1.computed,
57
+ getPages: mobx_1.action,
58
+ setPageSize: mobx_1.action,
59
+ });
60
+ }
61
+ Object.defineProperty(SearchPaginationStore.prototype, "begin", {
62
+ get: function () {
63
+ var _a, _b, _c;
64
+ if ((_c = (_b = (_a = this.controllerConfig) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.infinite) === null || _c === void 0 ? void 0 : _c.enabled) {
65
+ return 1;
66
+ }
67
+ return this.pageSize * (this.page - 1) + 1;
68
+ },
69
+ enumerable: false,
70
+ configurable: true
71
+ });
72
+ Object.defineProperty(SearchPaginationStore.prototype, "end", {
73
+ get: function () {
74
+ if (this.pageSize * this.page > this.totalResults) {
75
+ return this.totalResults;
76
+ }
77
+ return this.pageSize * this.page;
78
+ },
79
+ enumerable: false,
80
+ configurable: true
81
+ });
82
+ Object.defineProperty(SearchPaginationStore.prototype, "multiplePages", {
83
+ get: function () {
84
+ return this.pageSize < this.totalResults;
85
+ },
86
+ enumerable: false,
87
+ configurable: true
88
+ });
89
+ Object.defineProperty(SearchPaginationStore.prototype, "current", {
90
+ get: function () {
91
+ return new Page(this.services, {
92
+ number: this.page,
93
+ active: true,
94
+ });
95
+ },
96
+ enumerable: false,
97
+ configurable: true
98
+ });
99
+ Object.defineProperty(SearchPaginationStore.prototype, "first", {
100
+ get: function () {
101
+ return new Page(this.services, {
102
+ number: 1,
103
+ active: this.page == 1,
104
+ });
105
+ },
106
+ enumerable: false,
107
+ configurable: true
108
+ });
109
+ Object.defineProperty(SearchPaginationStore.prototype, "last", {
110
+ get: function () {
111
+ return new Page(this.services, {
112
+ number: this.totalPages,
113
+ active: this.totalPages == this.page,
114
+ });
115
+ },
116
+ enumerable: false,
117
+ configurable: true
118
+ });
119
+ Object.defineProperty(SearchPaginationStore.prototype, "next", {
120
+ get: function () {
121
+ if (this.page < this.totalPages) {
122
+ return new Page(this.services, {
123
+ number: this.page + 1,
124
+ });
125
+ }
126
+ },
127
+ enumerable: false,
128
+ configurable: true
129
+ });
130
+ Object.defineProperty(SearchPaginationStore.prototype, "previous", {
131
+ get: function () {
132
+ if (this.page > 1) {
133
+ return new Page(this.services, {
134
+ number: this.page - 1,
135
+ });
136
+ }
137
+ },
138
+ enumerable: false,
139
+ configurable: true
140
+ });
141
+ SearchPaginationStore.prototype.getPages = function (min, max) {
142
+ if (min === void 0) { min = 5; }
143
+ if (!Number.isInteger(min)) {
144
+ return [];
145
+ }
146
+ if (typeof max == 'undefined' || !Number.isInteger(max)) {
147
+ var surrounding = min - 1;
148
+ var from = this.page;
149
+ var to = this.page;
150
+ var last = to - from;
151
+ do {
152
+ last = to - from;
153
+ if (to < this.totalPages) {
154
+ to++;
155
+ }
156
+ if (to - from >= surrounding) {
157
+ break;
158
+ }
159
+ if (from > 1) {
160
+ from--;
161
+ }
162
+ } while (last != to - from && to - from < surrounding);
163
+ min = from - this.page;
164
+ max = to - this.page;
165
+ }
166
+ else {
167
+ min = -Math.abs(min);
168
+ max = Math.abs(max);
169
+ }
170
+ var pages = [];
171
+ for (var i = this.page + min; i <= this.page + max; i++) {
172
+ if (i > 0 && i <= this.totalPages) {
173
+ pages.push(new Page(this.services, {
174
+ number: i,
175
+ active: i == this.page,
176
+ }));
177
+ }
178
+ }
179
+ return pages;
180
+ };
181
+ SearchPaginationStore.prototype.setPageSize = function (num) {
182
+ if (num) {
183
+ this.services.urlManager.remove('page').set('pageSize', num).go();
184
+ }
185
+ };
186
+ return SearchPaginationStore;
187
+ }());
188
+ exports.SearchPaginationStore = SearchPaginationStore;
189
+ var PageSizeOption = /** @class */ (function () {
190
+ function PageSizeOption(services, currentPageSize, option) {
191
+ var _a;
192
+ this.services = services;
193
+ this.value = option.value;
194
+ this.label = option.label;
195
+ this.url = (_a = this.services) === null || _a === void 0 ? void 0 : _a.urlManager.remove('page').set('pageSize', option.value);
196
+ this.active = Boolean(currentPageSize == option.value);
197
+ }
198
+ return PageSizeOption;
199
+ }());
200
+ exports.PageSizeOption = PageSizeOption;
201
+ var Page = /** @class */ (function () {
202
+ function Page(services, page) {
203
+ var _a, _b;
204
+ this.services = services;
205
+ this.number = page.number;
206
+ this.active = page.active || false;
207
+ this.url = (_b = (_a = this.services) === null || _a === void 0 ? void 0 : _a.urlManager) === null || _b === void 0 ? void 0 : _b.set('page', this.number);
208
+ this.key = this.url.href;
209
+ }
210
+ return Page;
211
+ }());
212
+ exports.Page = Page;
@@ -0,0 +1,23 @@
1
+ import type { UrlManager } from '@athoscommerce/snap-url-manager';
2
+ import type { StoreServices } from '../../types';
3
+ import type { SearchResponseModel, SearchResponseModelSearchMatchTypeEnum } from '@athoscommerce/snapi-types';
4
+ type SearchQueryStoreConfig = {
5
+ services: StoreServices;
6
+ data: {
7
+ search?: SearchResponseModel;
8
+ };
9
+ };
10
+ export declare class SearchQueryStore {
11
+ query?: Query;
12
+ didYouMean?: Query;
13
+ originalQuery?: Query;
14
+ matchType: SearchResponseModelSearchMatchTypeEnum;
15
+ constructor(params: SearchQueryStoreConfig);
16
+ }
17
+ export declare class Query {
18
+ string: string;
19
+ url: UrlManager;
20
+ constructor(services: StoreServices, query: string);
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=SearchQueryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchQueryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchQueryStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sCAAsC,EAAE,MAAM,4BAA4B,CAAC;AAE9G,KAAK,sBAAsB,GAAG;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE;QACL,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC7B,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAgB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,SAAS,EAAE,sCAAsC,CAAC;gBAE7C,MAAM,EAAE,sBAAsB;CAyB1C;AASD,qBAAa,KAAK;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;gBAEX,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;CASlD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = exports.SearchQueryStore = void 0;
4
+ var mobx_1 = require("mobx");
5
+ var snap_toolbox_1 = require("@athoscommerce/snap-toolbox");
6
+ var SearchQueryStore = /** @class */ (function () {
7
+ function SearchQueryStore(params) {
8
+ var _a = params || {}, services = _a.services, data = _a.data;
9
+ var search = (data.search || {}).search;
10
+ var observables = {};
11
+ if (search === null || search === void 0 ? void 0 : search.query) {
12
+ this.query = new Query(services, search.query);
13
+ observables.query = mobx_1.observable;
14
+ }
15
+ if (search === null || search === void 0 ? void 0 : search.didYouMean) {
16
+ this.didYouMean = new Query(services, search.didYouMean);
17
+ observables.didYouMean = mobx_1.observable;
18
+ }
19
+ if (search === null || search === void 0 ? void 0 : search.originalQuery) {
20
+ this.originalQuery = new Query(services, search.originalQuery);
21
+ observables.originalQuery = mobx_1.observable;
22
+ }
23
+ this.matchType = search === null || search === void 0 ? void 0 : search.matchType;
24
+ observables.matchType = mobx_1.observable;
25
+ (0, mobx_1.makeObservable)(this, observables);
26
+ }
27
+ return SearchQueryStore;
28
+ }());
29
+ exports.SearchQueryStore = SearchQueryStore;
30
+ var Query = /** @class */ (function () {
31
+ function Query(services, query) {
32
+ var _a;
33
+ this.string = (0, snap_toolbox_1.escapeHTML)(query);
34
+ this.url = (_a = services === null || services === void 0 ? void 0 : services.urlManager) === null || _a === void 0 ? void 0 : _a.remove('page').remove('filter').set('query', this.string);
35
+ (0, mobx_1.makeObservable)(this, {
36
+ string: mobx_1.observable,
37
+ });
38
+ }
39
+ return Query;
40
+ }());
41
+ exports.Query = Query;
@@ -0,0 +1,175 @@
1
+ import type { ResultBadge, VariantOptionConfig, VariantConfig, StoreConfigs } from '../../types';
2
+ import type { SearchResponseModelResult, SearchResponseModelResultMappings, SearchResponseModelMerchandisingContentInline, SearchResponseModelMerchandisingContentConfig, SearchResponseModel, MetaResponseModel, SearchResponseModelResultBadges, SearchResponseModelResultVariantsData, SearchResponseModelResultVariantsOptionConfig } from '@athoscommerce/snapi-types';
3
+ type SearchResultStoreConfig = {
4
+ config: StoreConfigs;
5
+ state: {
6
+ loaded: boolean;
7
+ };
8
+ stores?: {
9
+ previousResults?: SearchResultStore;
10
+ };
11
+ data: {
12
+ search?: Partial<SearchResponseModel>;
13
+ meta: MetaResponseModel;
14
+ previousSearch?: SearchResponseModel;
15
+ };
16
+ };
17
+ export declare class SearchResultStore extends Array<Product | Banner> {
18
+ static get [Symbol.species](): ArrayConstructor;
19
+ constructor(params: SearchResultStoreConfig);
20
+ }
21
+ type BannerData = {
22
+ data: {
23
+ banner: SearchResponseModelMerchandisingContentInline;
24
+ responseId: string;
25
+ };
26
+ };
27
+ export declare class Banner {
28
+ type: string;
29
+ id: string;
30
+ responseId: string;
31
+ attributes: Record<string, unknown>;
32
+ mappings: SearchResponseModelResultMappings;
33
+ custom: {};
34
+ config: SearchResponseModelMerchandisingContentConfig;
35
+ value: string;
36
+ constructor(bannerData: BannerData);
37
+ }
38
+ export type VariantData = SearchResponseModelResultVariantsData & {
39
+ attributes?: Record<string, unknown>;
40
+ };
41
+ export type VariantDataOptions = Record<string, {
42
+ value: string;
43
+ background?: string;
44
+ backgroundImageUrl?: string;
45
+ attributeId?: string;
46
+ optionId?: string;
47
+ optionValue?: string;
48
+ }>;
49
+ type ProductMinimal = {
50
+ id: string;
51
+ attributes: Record<string, unknown>;
52
+ mappings: SearchResponseModelResultMappings;
53
+ badges: Badges;
54
+ };
55
+ type ProductData = {
56
+ config: StoreConfigs;
57
+ data: {
58
+ result: SearchResponseModelResult & {
59
+ responseId?: string;
60
+ };
61
+ meta: MetaResponseModel;
62
+ };
63
+ position: number;
64
+ responseId: string;
65
+ };
66
+ export declare class Product {
67
+ type: string;
68
+ id: string;
69
+ responseId: string;
70
+ attributes: Record<string, unknown>;
71
+ mappings: SearchResponseModelResultMappings;
72
+ custom: {};
73
+ badges: Badges;
74
+ bundleSeed: boolean | undefined;
75
+ quantity: number;
76
+ mask: ProductMask;
77
+ variants?: Variants;
78
+ position?: number;
79
+ constructor(productData: ProductData);
80
+ get display(): ProductMinimal;
81
+ }
82
+ type BadgesData = {
83
+ data: {
84
+ meta: MetaResponseModel;
85
+ result: SearchResponseModelResult;
86
+ };
87
+ };
88
+ export declare class Badges {
89
+ all: ResultBadge[];
90
+ constructor(badgesData: BadgesData);
91
+ atLocation(location?: string[] | string): ResultBadge[];
92
+ get tags(): Record<string, ResultBadge>;
93
+ get locations(): Record<string, Record<string, ResultBadge[]>>;
94
+ }
95
+ export declare class ProductMask {
96
+ data: Partial<Product>;
97
+ constructor();
98
+ merge(mask: Partial<Product>): void;
99
+ set(mask: Partial<Product>): void;
100
+ reset(): void;
101
+ }
102
+ type VariantsData = {
103
+ config?: VariantConfig;
104
+ data: {
105
+ mask: ProductMask;
106
+ variants: VariantData[];
107
+ preferences?: Record<string, string[]>;
108
+ meta: MetaResponseModel;
109
+ optionConfig?: {
110
+ [key: string]: SearchResponseModelResultVariantsOptionConfig;
111
+ };
112
+ };
113
+ };
114
+ export declare class Variants {
115
+ active?: Variant;
116
+ data: Variant[];
117
+ selections: VariantSelection[];
118
+ setActive: (variant: Variant) => void;
119
+ private config?;
120
+ optionConfig?: {
121
+ [key: string]: SearchResponseModelResultVariantsOptionConfig;
122
+ };
123
+ constructor(variantData: VariantsData);
124
+ update(variantData: VariantData[], config?: VariantConfig | undefined, preferences?: Record<string, string[]>): void;
125
+ makeSelections(options?: Record<string, string[]>): void;
126
+ refineSelections(fromSelection: VariantSelection): void;
127
+ }
128
+ export type VariantSelectionValue = {
129
+ value: string;
130
+ label?: string;
131
+ thumbnailImageUrl?: string;
132
+ backgroundImageUrl?: string;
133
+ background?: string;
134
+ available?: boolean;
135
+ disabled?: boolean;
136
+ };
137
+ type VariantSelectionData = {
138
+ config?: VariantOptionConfig;
139
+ optionConfig?: SearchResponseModelResultVariantsOptionConfig;
140
+ data: {
141
+ variants: Variants;
142
+ selectorField: string;
143
+ };
144
+ };
145
+ export declare class VariantSelection {
146
+ field: string;
147
+ label: string;
148
+ type?: string;
149
+ count?: number;
150
+ selected?: VariantSelectionValue;
151
+ previouslySelected?: VariantSelectionValue;
152
+ values: VariantSelectionValue[];
153
+ private config;
154
+ private variantsUpdate;
155
+ constructor(variantSelectionData: VariantSelectionData);
156
+ refineValues(variants: Variants): void;
157
+ reset(): void;
158
+ select(value: string | number, internalSelection?: boolean): void;
159
+ }
160
+ export declare class Variant {
161
+ type: string;
162
+ available: boolean;
163
+ attributes?: Record<string, unknown>;
164
+ options: VariantDataOptions;
165
+ badges: SearchResponseModelResultBadges[];
166
+ mappings: SearchResponseModelResultMappings;
167
+ custom: {};
168
+ constructor(variantData: {
169
+ data: {
170
+ variant: VariantData;
171
+ };
172
+ });
173
+ }
174
+ export {};
175
+ //# sourceMappingURL=SearchResultStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"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"}