@searchspring/snap-store-mobx 0.24.0 → 0.25.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.
@@ -3,18 +3,26 @@ import { AbstractStore } from '../Abstract/AbstractStore';
3
3
  import { PaginationStore } from '../Search/Stores';
4
4
  import { StorageStore } from '../Storage/StorageStore';
5
5
  import { SelectionStore } from './Stores';
6
- import type { FinderStoreConfig, StoreServices } from '../types';
6
+ import type { FinderStoreConfig, StoreServices, SelectedSelection, FinderStoreState } from '../types';
7
7
  export declare class FinderStore extends AbstractStore {
8
8
  services: StoreServices;
9
9
  config: FinderStoreConfig;
10
+ data: SearchResponseModel & {
11
+ meta: MetaResponseModel;
12
+ };
10
13
  meta: MetaResponseModel;
11
14
  storage: StorageStore;
15
+ persistedStorage: StorageStore;
12
16
  pagination: PaginationStore;
13
17
  selections: SelectionStore;
18
+ state: FinderStoreState;
14
19
  constructor(config: FinderStoreConfig, services: StoreServices);
15
20
  setService(name: any, service: any): void;
21
+ save(): void;
22
+ reset: () => void;
23
+ loadPersisted(): void;
16
24
  update(data: SearchResponseModel & {
17
25
  meta: MetaResponseModel;
18
- }): void;
26
+ }, selectedSelections?: SelectedSelection[]): void;
19
27
  }
20
28
  //# sourceMappingURL=FinderStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjE,qBAAa,WAAY,SAAQ,aAAa;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAM;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;gBAEf,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IAmB9D,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI;IAM/B,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;CAOrE"}
1
+ {"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAe,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtG,qBAAa,WAAY,SAAQ,aAAa;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACxD,IAAI,EAAE,iBAAiB,CAAM;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAErB;gBAEU,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IA0B9D,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI;IAM/B,IAAI,IAAI,IAAI;IAkBZ,KAAK,QAAO,IAAI,CAWd;IAEF,aAAa,IAAI,IAAI;IAoBrB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAe/G"}
@@ -25,13 +25,34 @@ var FinderStore = /** @class */ (function (_super) {
25
25
  __extends(FinderStore, _super);
26
26
  function FinderStore(config, services) {
27
27
  var _this = this;
28
- var _a;
28
+ var _a, _b;
29
29
  _this = _super.call(this, config) || this;
30
30
  _this.meta = {};
31
+ _this.state = {
32
+ persisted: false,
33
+ };
34
+ _this.reset = function () {
35
+ var _a;
36
+ if ((_a = _this.config.persist) === null || _a === void 0 ? void 0 : _a.enabled) {
37
+ _this.persistedStorage.clear();
38
+ _this.state.persisted = false;
39
+ }
40
+ if (_this.services.urlManager.state.filter) {
41
+ _this.storage.clear();
42
+ _this.selections = [];
43
+ _this.loaded = false;
44
+ }
45
+ };
31
46
  if (typeof services != 'object' || typeof ((_a = services.urlManager) === null || _a === void 0 ? void 0 : _a.subscribe) != 'function') {
32
47
  throw new Error("Invalid service 'urlManager' passed to AutocompleteStore. Missing \"subscribe\" function.");
33
48
  }
34
49
  _this.services = services;
50
+ if ((_b = config.persist) === null || _b === void 0 ? void 0 : _b.enabled) {
51
+ _this.persistedStorage = new StorageStore_1.StorageStore({
52
+ type: StorageStore_1.StorageType.LOCAL,
53
+ key: "ss-".concat(config.id, "-persisted"),
54
+ });
55
+ }
35
56
  _this.storage = new StorageStore_1.StorageStore();
36
57
  _this.update({ meta: {} });
37
58
  (0, mobx_1.makeObservable)(_this, {
@@ -45,12 +66,55 @@ var FinderStore = /** @class */ (function (_super) {
45
66
  this.services[name] = service;
46
67
  }
47
68
  };
48
- FinderStore.prototype.update = function (data) {
69
+ FinderStore.prototype.save = function () {
70
+ var _a;
71
+ if (((_a = this.config.persist) === null || _a === void 0 ? void 0 : _a.enabled) && this.selections.filter(function (selection) { return selection.selected; }).length) {
72
+ this.persistedStorage.set('config', this.config);
73
+ this.persistedStorage.set('data', this.data);
74
+ this.persistedStorage.set('date', Date.now());
75
+ this.persistedStorage.set('selections', this.selections.map(function (selection) {
76
+ return {
77
+ selected: selection.selected,
78
+ data: selection.data,
79
+ facet: selection.facet,
80
+ };
81
+ }));
82
+ }
83
+ };
84
+ FinderStore.prototype.loadPersisted = function () {
85
+ var _a;
86
+ if (((_a = this.config.persist) === null || _a === void 0 ? void 0 : _a.enabled) && !this.loaded) {
87
+ var date = this.persistedStorage.get('date');
88
+ var data = this.persistedStorage.get('data');
89
+ var config = this.persistedStorage.get('config');
90
+ var selections = this.persistedStorage.get('selections');
91
+ var isExpired = this.config.persist.expiration && Date.now() - date > this.config.persist.expiration;
92
+ if (data && selections.filter(function (selection) { return selection.selected; }).length) {
93
+ if (JSON.stringify(config) === JSON.stringify(this.config) && !isExpired) {
94
+ this.update(data, selections);
95
+ this.state.persisted = true;
96
+ this.services.urlManager.go();
97
+ }
98
+ else {
99
+ this.reset();
100
+ }
101
+ }
102
+ }
103
+ };
104
+ FinderStore.prototype.update = function (data, selectedSelections) {
49
105
  this.error = undefined;
106
+ this.data = JSON.parse(JSON.stringify(data));
50
107
  this.loaded = !!data.pagination;
51
108
  this.meta = data.meta;
52
109
  this.pagination = new Stores_1.PaginationStore(this.config, this.services, data.pagination);
53
- this.selections = new Stores_2.SelectionStore(this.config, this.services, data.facets, this.meta, this.loading, this.storage);
110
+ this.selections = new Stores_2.SelectionStore(this.config, this.services, {
111
+ state: this.state,
112
+ facets: data.facets,
113
+ meta: this.meta,
114
+ loading: this.loading,
115
+ storage: this.storage,
116
+ selections: selectedSelections,
117
+ });
54
118
  };
55
119
  return FinderStore;
56
120
  }(AbstractStore_1.AbstractStore));
@@ -1,8 +1,17 @@
1
- import type { FinderStoreConfig, StoreServices } from '../../types';
1
+ import type { FinderStoreConfig, StoreServices, SelectedSelection, FinderStoreState } from '../../types';
2
2
  import type { StorageStore } from '../../Storage/StorageStore';
3
3
  import type { MetaResponseModel, SearchResponseModelFacet } from '@searchspring/snapi-types';
4
+ declare type SelectionStoreData = {
5
+ state: FinderStoreState;
6
+ facets: SearchResponseModelFacet[];
7
+ meta: MetaResponseModel;
8
+ loading: boolean;
9
+ storage: StorageStore;
10
+ selections: SelectedSelection[];
11
+ };
4
12
  export declare class SelectionStore extends Array {
5
13
  static get [Symbol.species](): ArrayConstructor;
6
- constructor(config: FinderStoreConfig, services: StoreServices, facets: SearchResponseModelFacet[], meta: MetaResponseModel, loading: boolean, storage: StorageStore);
14
+ constructor(config: FinderStoreConfig, services: StoreServices, { state, facets, meta, loading, storage, selections }: SelectionStoreData);
7
15
  }
16
+ export {};
8
17
  //# sourceMappingURL=SelectionStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionStore.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/SelectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAEvI,qBAAa,cAAe,SAAQ,KAAK;IACxC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAGA,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,wBAAwB,EAAE,EAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY;CA+CtB"}
1
+ {"version":3,"file":"SelectionStore.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/SelectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAEvI,aAAK,kBAAkB,GAAG;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CAChC,CAAC;AACF,qBAAa,cAAe,SAAQ,KAAK;IACxC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAEW,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB;CA+FzI"}
@@ -38,17 +38,60 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.SelectionStore = void 0;
39
39
  var SelectionStore = /** @class */ (function (_super) {
40
40
  __extends(SelectionStore, _super);
41
- function SelectionStore(config, services, facets, meta, loading, storage) {
42
- var _a;
43
- var selections = [];
44
- if (facets && meta) {
41
+ function SelectionStore(config, services, _a) {
42
+ var state = _a.state, facets = _a.facets, meta = _a.meta, loading = _a.loading, storage = _a.storage, selections = _a.selections;
43
+ var _b;
44
+ var selectedSelections = [];
45
+ if (selections === null || selections === void 0 ? void 0 : selections.length) {
46
+ config.fields.forEach(function (fieldObj) {
47
+ var _a;
48
+ var storedData = selections.find(function (selection) { return selection.facet.field === fieldObj.field; });
49
+ if (storedData) {
50
+ var facet_1 = storedData.facet, selected = storedData.selected;
51
+ if (facet_1 === null || facet_1 === void 0 ? void 0 : facet_1.hierarchyDelimiter) {
52
+ // hierarchy
53
+ selections.forEach(function (selection, index) {
54
+ var _a, _b;
55
+ 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));
56
+ var levelConfig = { index: index, label: fieldObj.levels ? levels[index] : '', key: "ss-".concat(index) };
57
+ var storageKey = generateStorageKey(config.id, facet_1.field);
58
+ storage.set("".concat(storageKey, ".").concat(levelConfig.key, ".values"), selection.data);
59
+ var selectionHierarchy = new SelectionHierarchy(services, config.id, state, facet_1, levelConfig, loading, storage);
60
+ selectionHierarchy.selected = selection.selected;
61
+ selectionHierarchy.data = selection.data;
62
+ if ((_b = config.persist) === null || _b === void 0 ? void 0 : _b.lockSelections) {
63
+ selectionHierarchy.disabled = true;
64
+ }
65
+ if (selection.selected) {
66
+ services.urlManager = services.urlManager.set("filter.".concat(selection.facet.field), selection.selected);
67
+ }
68
+ selectedSelections.push(selectionHierarchy);
69
+ });
70
+ }
71
+ else {
72
+ var selection = new Selection(services, config.id, state, facet_1, fieldObj, loading, storage);
73
+ selection.selected = selected;
74
+ selection.storage.set('selected', selected);
75
+ selection.data = facet_1.values;
76
+ if (selected) {
77
+ services.urlManager = services.urlManager.set("filter.".concat(facet_1.field), selected);
78
+ }
79
+ if ((_a = config.persist) === null || _a === void 0 ? void 0 : _a.lockSelections) {
80
+ selection.disabled = true;
81
+ }
82
+ selectedSelections.push(selection);
83
+ }
84
+ }
85
+ });
86
+ }
87
+ else if (facets && meta) {
45
88
  // re-order facets to match our config
46
89
  (config === null || config === void 0 ? void 0 : config.fields) &&
47
90
  facets.sort(function (a, b) {
48
91
  var fields = config.fields.map(function (fieldConfig) { return fieldConfig.field; });
49
92
  return fields.indexOf(a.field) - fields.indexOf(b.field);
50
93
  });
51
- (_a = config === null || config === void 0 ? void 0 : config.fields) === null || _a === void 0 ? void 0 : _a.forEach(function (fieldObj) {
94
+ (_b = config === null || config === void 0 ? void 0 : config.fields) === null || _b === void 0 ? void 0 : _b.forEach(function (fieldObj) {
52
95
  var _a;
53
96
  var facet = facets === null || facets === void 0 ? void 0 : facets.filter(function (facet) { return facet.field == fieldObj.field; }).pop();
54
97
  facet = __assign(__assign({}, meta === null || meta === void 0 ? void 0 : meta.facets[fieldObj.field]), facet);
@@ -65,15 +108,15 @@ var SelectionStore = /** @class */ (function (_super) {
65
108
  var levels = (fieldObj === null || fieldObj === void 0 ? void 0 : fieldObj.levels) || ((_a = facet === null || facet === void 0 ? void 0 : facet.values[(facet === null || facet === void 0 ? void 0 : facet.values.length) - 1]) === null || _a === void 0 ? void 0 : _a.value.split(facet.hierarchyDelimiter));
66
109
  levels === null || levels === void 0 ? void 0 : levels.map(function (level, index) {
67
110
  var levelConfig = { index: index, label: fieldObj.levels ? level : '', key: "ss-".concat(index) };
68
- selections.push(new SelectionHierarchy(services, config.id, facet, levelConfig, loading, storage));
111
+ selectedSelections.push(new SelectionHierarchy(services, config.id, state, facet, levelConfig, loading, storage));
69
112
  });
70
113
  }
71
114
  else {
72
- selections.push(new Selection(services, config.id, facet, fieldObj, loading, storage));
115
+ selectedSelections.push(new Selection(services, config.id, state, facet, fieldObj, loading, storage));
73
116
  }
74
117
  });
75
118
  }
76
- return _super.apply(this, selections) || this;
119
+ return _super.apply(this, selectedSelections) || this;
77
120
  }
78
121
  Object.defineProperty(SelectionStore, Symbol.species, {
79
122
  get: function () {
@@ -86,7 +129,7 @@ var SelectionStore = /** @class */ (function (_super) {
86
129
  }(Array));
87
130
  exports.SelectionStore = SelectionStore;
88
131
  var SelectionBase = /** @class */ (function () {
89
- function SelectionBase(services, id, facet, selectionConfig, loading, storageStore) {
132
+ function SelectionBase(services, id, state, facet, selectionConfig, loading, storageStore) {
90
133
  this.filtered = false;
91
134
  this.collapsed = false;
92
135
  this.display = '';
@@ -95,9 +138,11 @@ var SelectionBase = /** @class */ (function () {
95
138
  this.custom = {};
96
139
  this.services = services;
97
140
  this.loading = loading;
141
+ this.state = state;
98
142
  this.id = id;
99
143
  this.config = selectionConfig;
100
144
  // inherit all standard facet properties
145
+ this.facet = facet;
101
146
  this.type = facet.type;
102
147
  this.field = facet.field;
103
148
  this.filtered = facet.filtered;
@@ -107,7 +152,7 @@ var SelectionBase = /** @class */ (function () {
107
152
  this.multiple = facet.multiple;
108
153
  // abstracted StorageStore
109
154
  this.storage = {
110
- key: "ss-finder-".concat(this.id, ".").concat(this.field),
155
+ key: generateStorageKey(this.id, this.field),
111
156
  get: function (key) {
112
157
  var path = this.key + (key ? ".".concat(key) : '');
113
158
  return storageStore.get(path);
@@ -135,8 +180,8 @@ var SelectionBase = /** @class */ (function () {
135
180
  }());
136
181
  var Selection = /** @class */ (function (_super) {
137
182
  __extends(Selection, _super);
138
- function Selection(services, id, facet, config, loading, storageStore) {
139
- var _this = _super.call(this, services, id, facet, config, loading, storageStore) || this;
183
+ function Selection(services, id, state, facet, config, loading, storageStore) {
184
+ var _this = _super.call(this, services, id, state, facet, config, loading, storageStore) || this;
140
185
  _this.loading = loading;
141
186
  _this.storage.set('values', facet.values);
142
187
  var storageData = _this.storage.get();
@@ -152,6 +197,7 @@ var Selection = /** @class */ (function (_super) {
152
197
  return;
153
198
  this.selected = value;
154
199
  this.storage.set('selected', value);
200
+ this.state.persisted = false;
155
201
  if (!value) {
156
202
  this.services.urlManager.remove("filter.".concat(this.field)).go();
157
203
  }
@@ -163,10 +209,10 @@ var Selection = /** @class */ (function (_super) {
163
209
  }(SelectionBase));
164
210
  var SelectionHierarchy = /** @class */ (function (_super) {
165
211
  __extends(SelectionHierarchy, _super);
166
- function SelectionHierarchy(services, id, facet, config, loading, storageStore) {
212
+ function SelectionHierarchy(services, id, state, facet, config, loading, storageStore) {
167
213
  var _this = this;
168
214
  var _a, _b, _c;
169
- _this = _super.call(this, services, id, facet, config, loading, storageStore) || this;
215
+ _this = _super.call(this, services, id, state, facet, config, loading, storageStore) || this;
170
216
  // inherit additional facet properties
171
217
  _this.hierarchyDelimiter = facet.hierarchyDelimiter;
172
218
  var storageData = _this.storage.get();
@@ -204,6 +250,7 @@ var SelectionHierarchy = /** @class */ (function (_super) {
204
250
  if (this.loading)
205
251
  return;
206
252
  this.selected = value;
253
+ this.state.persisted = false;
207
254
  var selectedLevel = this.config.index;
208
255
  var storedLevels = this.storage.get();
209
256
  var keysToRemove = Object.keys(storedLevels).slice(selectedLevel);
@@ -227,3 +274,6 @@ var SelectionHierarchy = /** @class */ (function (_super) {
227
274
  };
228
275
  return SelectionHierarchy;
229
276
  }(SelectionBase));
277
+ function generateStorageKey(id, field) {
278
+ return "ss-finder-".concat(id, ".").concat(field);
279
+ }
@@ -1,10 +1,11 @@
1
1
  import type { UrlManager } from '@searchspring/snap-url-manager';
2
2
  import type { StoreServices } from '../../types';
3
- import type { SearchResponseModelSearch } from '@searchspring/snapi-types';
3
+ import type { SearchResponseModelSearch, SearchResponseModelSearchMatchTypeEnum } from '@searchspring/snapi-types';
4
4
  export declare class QueryStore {
5
5
  query: Query;
6
6
  didYouMean: Query;
7
7
  originalQuery: Query;
8
+ matchType: SearchResponseModelSearchMatchTypeEnum;
8
9
  constructor(services: StoreServices, search: SearchResponseModelSearch);
9
10
  }
10
11
  declare class Query {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/QueryStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;gBAET,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB;CAoBtE;AAQD,cAAM,KAAK;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;gBAEJ,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;CASlD"}
1
+ {"version":3,"file":"QueryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/QueryStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnH,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;IACrB,SAAS,EAAE,sCAAsC,CAAC;gBAEtC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB;CAyBtE;AASD,cAAM,KAAK;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;gBAEJ,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;CASlD"}
@@ -17,6 +17,10 @@ var QueryStore = /** @class */ (function () {
17
17
  this.originalQuery = new Query(services, search.originalQuery);
18
18
  observables.originalQuery = mobx_1.observable;
19
19
  }
20
+ if (search === null || search === void 0 ? void 0 : search.matchType) {
21
+ this.matchType = search.matchType;
22
+ observables.matchType = mobx_1.observable;
23
+ }
20
24
  (0, mobx_1.makeObservable)(this, observables);
21
25
  }
22
26
  return QueryStore;
@@ -20,6 +20,7 @@ export declare type StorageConfig = {
20
20
  export declare enum StorageType {
21
21
  SESSION = "session",
22
22
  LOCAL = "local",
23
- COOKIE = "cookie"
23
+ COOKIE = "cookie",
24
+ MEMORY = "memory"
24
25
  }
25
26
  //# sourceMappingURL=StorageStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAChC,UAAU,SAAe;IACzB,QAAQ,MAAa;IACrB,GAAG,SAAgB;IACnB,KAAK,KAAM;gBAEC,MAAM,CAAC,EAAE,aAAa;IAwClC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IA+BtB,KAAK,IAAI,IAAI;CAcb;AAED,oBAAY,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CACjB"}
1
+ {"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAChC,UAAU,SAAe;IACzB,QAAQ,MAAa;IACrB,GAAG,SAAgB;IACnB,KAAK,KAAM;gBAEC,MAAM,CAAC,EAAE,aAAa;IA8ClC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IA+BtB,KAAK,IAAI,IAAI;CAcb;AAED,oBAAY,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB"}
@@ -24,21 +24,23 @@ var StorageStore = /** @class */ (function () {
24
24
  this.sameSite = config.cookie.sameSite;
25
25
  }
26
26
  switch (config.type) {
27
- case StorageType.SESSION:
27
+ case StorageType.SESSION: {
28
28
  this.type = snap_toolbox_1.featureFlags.storage ? config.type : null;
29
29
  if (this.type) {
30
30
  this.state = JSON.parse(window.sessionStorage.getItem(this.key) || '{}');
31
31
  window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
32
32
  }
33
33
  break;
34
- case StorageType.LOCAL:
34
+ }
35
+ case StorageType.LOCAL: {
35
36
  this.type = snap_toolbox_1.featureFlags.storage ? config.type : null;
36
37
  if (this.type && !window.localStorage.getItem(this.key)) {
37
38
  this.state = JSON.parse(window.localStorage.getItem(this.key) || '{}');
38
39
  window.localStorage.setItem(this.key, JSON.stringify(this.state));
39
40
  }
40
41
  break;
41
- case StorageType.COOKIE:
42
+ }
43
+ case StorageType.COOKIE: {
42
44
  if (snap_toolbox_1.featureFlags.cookies) {
43
45
  this.type = config.type;
44
46
  var data = utils.cookies.get(this.key);
@@ -47,6 +49,10 @@ var StorageStore = /** @class */ (function () {
47
49
  }
48
50
  }
49
51
  break;
52
+ }
53
+ default: {
54
+ this.type = StorageType.MEMORY;
55
+ }
50
56
  }
51
57
  }
52
58
  }
@@ -127,4 +133,5 @@ var StorageType;
127
133
  StorageType["SESSION"] = "session";
128
134
  StorageType["LOCAL"] = "local";
129
135
  StorageType["COOKIE"] = "cookie";
136
+ StorageType["MEMORY"] = "memory";
130
137
  })(StorageType = exports.StorageType || (exports.StorageType = {}));
@@ -1,4 +1,5 @@
1
1
  import type { UrlManager } from '@searchspring/snap-url-manager';
2
+ import type { SearchResponseModelFacetValueAllOfValues } from '@searchspring/snapi-types';
2
3
  export declare type StoreConfig = {
3
4
  id: string;
4
5
  [any: string]: unknown;
@@ -34,6 +35,11 @@ export declare type FinderStoreConfig = StoreConfig & {
34
35
  globals?: any;
35
36
  url?: string;
36
37
  fields: FinderFieldConfig[];
38
+ persist?: {
39
+ enabled: boolean;
40
+ lockSelections?: boolean;
41
+ expiration?: number;
42
+ };
37
43
  };
38
44
  export declare type FinderFieldConfig = {
39
45
  field: string;
@@ -86,5 +92,13 @@ export declare enum ErrorType {
86
92
  INFO = "info",
87
93
  ERROR = "error"
88
94
  }
95
+ export declare type SelectedSelection = {
96
+ selected: string;
97
+ data: SearchResponseModelFacetValueAllOfValues[];
98
+ facet: any;
99
+ };
100
+ export declare type FinderStoreState = {
101
+ persisted: boolean;
102
+ };
89
103
  export {};
90
104
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,26 @@ import { AbstractStore } from '../Abstract/AbstractStore';
3
3
  import { PaginationStore } from '../Search/Stores';
4
4
  import { StorageStore } from '../Storage/StorageStore';
5
5
  import { SelectionStore } from './Stores';
6
- import type { FinderStoreConfig, StoreServices } from '../types';
6
+ import type { FinderStoreConfig, StoreServices, SelectedSelection, FinderStoreState } from '../types';
7
7
  export declare class FinderStore extends AbstractStore {
8
8
  services: StoreServices;
9
9
  config: FinderStoreConfig;
10
+ data: SearchResponseModel & {
11
+ meta: MetaResponseModel;
12
+ };
10
13
  meta: MetaResponseModel;
11
14
  storage: StorageStore;
15
+ persistedStorage: StorageStore;
12
16
  pagination: PaginationStore;
13
17
  selections: SelectionStore;
18
+ state: FinderStoreState;
14
19
  constructor(config: FinderStoreConfig, services: StoreServices);
15
20
  setService(name: any, service: any): void;
21
+ save(): void;
22
+ reset: () => void;
23
+ loadPersisted(): void;
16
24
  update(data: SearchResponseModel & {
17
25
  meta: MetaResponseModel;
18
- }): void;
26
+ }, selectedSelections?: SelectedSelection[]): void;
19
27
  }
20
28
  //# sourceMappingURL=FinderStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjE,qBAAa,WAAY,SAAQ,aAAa;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAM;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;gBAEf,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IAmB9D,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI;IAM/B,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;CAOrE"}
1
+ {"version":3,"file":"FinderStore.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAe,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtG,qBAAa,WAAY,SAAQ,aAAa;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACxD,IAAI,EAAE,iBAAiB,CAAM;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAErB;gBAEU,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa;IA0B9D,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI;IAM/B,IAAI,IAAI,IAAI;IAkBZ,KAAK,QAAO,IAAI,CAWd;IAEF,aAAa,IAAI,IAAI;IAoBrB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAe/G"}
@@ -1,16 +1,36 @@
1
1
  import { makeObservable, observable } from 'mobx';
2
2
  import { AbstractStore } from '../Abstract/AbstractStore';
3
3
  import { PaginationStore } from '../Search/Stores';
4
- import { StorageStore } from '../Storage/StorageStore';
4
+ import { StorageStore, StorageType } from '../Storage/StorageStore';
5
5
  import { SelectionStore } from './Stores';
6
6
  export class FinderStore extends AbstractStore {
7
7
  constructor(config, services) {
8
8
  super(config);
9
9
  this.meta = {};
10
+ this.state = {
11
+ persisted: false,
12
+ };
13
+ this.reset = () => {
14
+ if (this.config.persist?.enabled) {
15
+ this.persistedStorage.clear();
16
+ this.state.persisted = false;
17
+ }
18
+ if (this.services.urlManager.state.filter) {
19
+ this.storage.clear();
20
+ this.selections = [];
21
+ this.loaded = false;
22
+ }
23
+ };
10
24
  if (typeof services != 'object' || typeof services.urlManager?.subscribe != 'function') {
11
25
  throw new Error(`Invalid service 'urlManager' passed to AutocompleteStore. Missing "subscribe" function.`);
12
26
  }
13
27
  this.services = services;
28
+ if (config.persist?.enabled) {
29
+ this.persistedStorage = new StorageStore({
30
+ type: StorageType.LOCAL,
31
+ key: `ss-${config.id}-persisted`,
32
+ });
33
+ }
14
34
  this.storage = new StorageStore();
15
35
  this.update({ meta: {} });
16
36
  makeObservable(this, {
@@ -23,11 +43,52 @@ export class FinderStore extends AbstractStore {
23
43
  this.services[name] = service;
24
44
  }
25
45
  }
26
- update(data) {
46
+ save() {
47
+ if (this.config.persist?.enabled && this.selections.filter((selection) => selection.selected).length) {
48
+ this.persistedStorage.set('config', this.config);
49
+ this.persistedStorage.set('data', this.data);
50
+ this.persistedStorage.set('date', Date.now());
51
+ this.persistedStorage.set('selections', this.selections.map((selection) => {
52
+ return {
53
+ selected: selection.selected,
54
+ data: selection.data,
55
+ facet: selection.facet,
56
+ };
57
+ }));
58
+ }
59
+ }
60
+ loadPersisted() {
61
+ if (this.config.persist?.enabled && !this.loaded) {
62
+ const date = this.persistedStorage.get('date');
63
+ const data = this.persistedStorage.get('data');
64
+ const config = this.persistedStorage.get('config');
65
+ const selections = this.persistedStorage.get('selections');
66
+ const isExpired = this.config.persist.expiration && Date.now() - date > this.config.persist.expiration;
67
+ if (data && selections.filter((selection) => selection.selected).length) {
68
+ if (JSON.stringify(config) === JSON.stringify(this.config) && !isExpired) {
69
+ this.update(data, selections);
70
+ this.state.persisted = true;
71
+ this.services.urlManager.go();
72
+ }
73
+ else {
74
+ this.reset();
75
+ }
76
+ }
77
+ }
78
+ }
79
+ update(data, selectedSelections) {
27
80
  this.error = undefined;
81
+ this.data = JSON.parse(JSON.stringify(data));
28
82
  this.loaded = !!data.pagination;
29
83
  this.meta = data.meta;
30
84
  this.pagination = new PaginationStore(this.config, this.services, data.pagination);
31
- this.selections = new SelectionStore(this.config, this.services, data.facets, this.meta, this.loading, this.storage);
85
+ this.selections = new SelectionStore(this.config, this.services, {
86
+ state: this.state,
87
+ facets: data.facets,
88
+ meta: this.meta,
89
+ loading: this.loading,
90
+ storage: this.storage,
91
+ selections: selectedSelections,
92
+ });
32
93
  }
33
94
  }
@@ -1,8 +1,17 @@
1
- import type { FinderStoreConfig, StoreServices } from '../../types';
1
+ import type { FinderStoreConfig, StoreServices, SelectedSelection, FinderStoreState } from '../../types';
2
2
  import type { StorageStore } from '../../Storage/StorageStore';
3
3
  import type { MetaResponseModel, SearchResponseModelFacet } from '@searchspring/snapi-types';
4
+ declare type SelectionStoreData = {
5
+ state: FinderStoreState;
6
+ facets: SearchResponseModelFacet[];
7
+ meta: MetaResponseModel;
8
+ loading: boolean;
9
+ storage: StorageStore;
10
+ selections: SelectedSelection[];
11
+ };
4
12
  export declare class SelectionStore extends Array {
5
13
  static get [Symbol.species](): ArrayConstructor;
6
- constructor(config: FinderStoreConfig, services: StoreServices, facets: SearchResponseModelFacet[], meta: MetaResponseModel, loading: boolean, storage: StorageStore);
14
+ constructor(config: FinderStoreConfig, services: StoreServices, { state, facets, meta, loading, storage, selections }: SelectionStoreData);
7
15
  }
16
+ export {};
8
17
  //# sourceMappingURL=SelectionStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionStore.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/SelectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAEvI,qBAAa,cAAe,SAAQ,KAAK;IACxC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAGA,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,wBAAwB,EAAE,EAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY;CA+CtB"}
1
+ {"version":3,"file":"SelectionStore.d.ts","sourceRoot":"","sources":["../../../../src/Finder/Stores/SelectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAEvI,aAAK,kBAAkB,GAAG;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CAChC,CAAC;AACF,qBAAa,cAAe,SAAQ,KAAK;IACxC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAEW,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB;CA+FzI"}
@@ -2,9 +2,49 @@ export class SelectionStore extends Array {
2
2
  static get [Symbol.species]() {
3
3
  return Array;
4
4
  }
5
- constructor(config, services, facets, meta, loading, storage) {
6
- const selections = [];
7
- if (facets && meta) {
5
+ constructor(config, services, { state, facets, meta, loading, storage, selections }) {
6
+ const selectedSelections = [];
7
+ if (selections?.length) {
8
+ config.fields.forEach((fieldObj) => {
9
+ const storedData = selections.find((selection) => selection.facet.field === fieldObj.field);
10
+ if (storedData) {
11
+ const { facet, selected } = storedData;
12
+ if (facet?.hierarchyDelimiter) {
13
+ // hierarchy
14
+ selections.forEach((selection, index) => {
15
+ const levels = fieldObj?.levels || facet?.values[facet?.values.length - 1]?.value.split(facet.hierarchyDelimiter);
16
+ const levelConfig = { index, label: fieldObj.levels ? levels[index] : '', key: `ss-${index}` };
17
+ const storageKey = generateStorageKey(config.id, facet.field);
18
+ storage.set(`${storageKey}.${levelConfig.key}.values`, selection.data);
19
+ const selectionHierarchy = new SelectionHierarchy(services, config.id, state, facet, levelConfig, loading, storage);
20
+ selectionHierarchy.selected = selection.selected;
21
+ selectionHierarchy.data = selection.data;
22
+ if (config.persist?.lockSelections) {
23
+ selectionHierarchy.disabled = true;
24
+ }
25
+ if (selection.selected) {
26
+ services.urlManager = services.urlManager.set(`filter.${selection.facet.field}`, selection.selected);
27
+ }
28
+ selectedSelections.push(selectionHierarchy);
29
+ });
30
+ }
31
+ else {
32
+ const selection = new Selection(services, config.id, state, facet, fieldObj, loading, storage);
33
+ selection.selected = selected;
34
+ selection.storage.set('selected', selected);
35
+ selection.data = facet.values;
36
+ if (selected) {
37
+ services.urlManager = services.urlManager.set(`filter.${facet.field}`, selected);
38
+ }
39
+ if (config.persist?.lockSelections) {
40
+ selection.disabled = true;
41
+ }
42
+ selectedSelections.push(selection);
43
+ }
44
+ }
45
+ });
46
+ }
47
+ else if (facets && meta) {
8
48
  // re-order facets to match our config
9
49
  config?.fields &&
10
50
  facets.sort((a, b) => {
@@ -30,19 +70,19 @@ export class SelectionStore extends Array {
30
70
  const levels = fieldObj?.levels || facet?.values[facet?.values.length - 1]?.value.split(facet.hierarchyDelimiter);
31
71
  levels?.map((level, index) => {
32
72
  const levelConfig = { index, label: fieldObj.levels ? level : '', key: `ss-${index}` };
33
- selections.push(new SelectionHierarchy(services, config.id, facet, levelConfig, loading, storage));
73
+ selectedSelections.push(new SelectionHierarchy(services, config.id, state, facet, levelConfig, loading, storage));
34
74
  });
35
75
  }
36
76
  else {
37
- selections.push(new Selection(services, config.id, facet, fieldObj, loading, storage));
77
+ selectedSelections.push(new Selection(services, config.id, state, facet, fieldObj, loading, storage));
38
78
  }
39
79
  });
40
80
  }
41
- super(...selections);
81
+ super(...selectedSelections);
42
82
  }
43
83
  }
44
84
  class SelectionBase {
45
- constructor(services, id, facet, selectionConfig, loading, storageStore) {
85
+ constructor(services, id, state, facet, selectionConfig, loading, storageStore) {
46
86
  this.filtered = false;
47
87
  this.collapsed = false;
48
88
  this.display = '';
@@ -51,9 +91,11 @@ class SelectionBase {
51
91
  this.custom = {};
52
92
  this.services = services;
53
93
  this.loading = loading;
94
+ this.state = state;
54
95
  this.id = id;
55
96
  this.config = selectionConfig;
56
97
  // inherit all standard facet properties
98
+ this.facet = facet;
57
99
  this.type = facet.type;
58
100
  this.field = facet.field;
59
101
  this.filtered = facet.filtered;
@@ -63,7 +105,7 @@ class SelectionBase {
63
105
  this.multiple = facet.multiple;
64
106
  // abstracted StorageStore
65
107
  this.storage = {
66
- key: `ss-finder-${this.id}.${this.field}`,
108
+ key: generateStorageKey(this.id, this.field),
67
109
  get: function (key) {
68
110
  const path = this.key + (key ? `.${key}` : '');
69
111
  return storageStore.get(path);
@@ -85,8 +127,8 @@ class SelectionBase {
85
127
  }
86
128
  }
87
129
  class Selection extends SelectionBase {
88
- constructor(services, id, facet, config, loading, storageStore) {
89
- super(services, id, facet, config, loading, storageStore);
130
+ constructor(services, id, state, facet, config, loading, storageStore) {
131
+ super(services, id, state, facet, config, loading, storageStore);
90
132
  this.loading = loading;
91
133
  this.storage.set('values', facet.values);
92
134
  const storageData = this.storage.get();
@@ -100,6 +142,7 @@ class Selection extends SelectionBase {
100
142
  return;
101
143
  this.selected = value;
102
144
  this.storage.set('selected', value);
145
+ this.state.persisted = false;
103
146
  if (!value) {
104
147
  this.services.urlManager.remove(`filter.${this.field}`).go();
105
148
  }
@@ -109,8 +152,8 @@ class Selection extends SelectionBase {
109
152
  }
110
153
  }
111
154
  class SelectionHierarchy extends SelectionBase {
112
- constructor(services, id, facet, config, loading, storageStore) {
113
- super(services, id, facet, config, loading, storageStore);
155
+ constructor(services, id, state, facet, config, loading, storageStore) {
156
+ super(services, id, state, facet, config, loading, storageStore);
114
157
  // inherit additional facet properties
115
158
  this.hierarchyDelimiter = facet.hierarchyDelimiter;
116
159
  let storageData = this.storage.get();
@@ -145,6 +188,7 @@ class SelectionHierarchy extends SelectionBase {
145
188
  if (this.loading)
146
189
  return;
147
190
  this.selected = value;
191
+ this.state.persisted = false;
148
192
  const selectedLevel = this.config.index;
149
193
  const storedLevels = this.storage.get();
150
194
  const keysToRemove = Object.keys(storedLevels).slice(selectedLevel);
@@ -167,3 +211,6 @@ class SelectionHierarchy extends SelectionBase {
167
211
  }
168
212
  }
169
213
  }
214
+ function generateStorageKey(id, field) {
215
+ return `ss-finder-${id}.${field}`;
216
+ }
@@ -1,10 +1,11 @@
1
1
  import type { UrlManager } from '@searchspring/snap-url-manager';
2
2
  import type { StoreServices } from '../../types';
3
- import type { SearchResponseModelSearch } from '@searchspring/snapi-types';
3
+ import type { SearchResponseModelSearch, SearchResponseModelSearchMatchTypeEnum } from '@searchspring/snapi-types';
4
4
  export declare class QueryStore {
5
5
  query: Query;
6
6
  didYouMean: Query;
7
7
  originalQuery: Query;
8
+ matchType: SearchResponseModelSearchMatchTypeEnum;
8
9
  constructor(services: StoreServices, search: SearchResponseModelSearch);
9
10
  }
10
11
  declare class Query {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/QueryStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;gBAET,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB;CAoBtE;AAQD,cAAM,KAAK;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;gBAEJ,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;CASlD"}
1
+ {"version":3,"file":"QueryStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/QueryStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnH,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC;IACrB,SAAS,EAAE,sCAAsC,CAAC;gBAEtC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB;CAyBtE;AASD,cAAM,KAAK;IACV,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;gBAEJ,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;CASlD"}
@@ -14,6 +14,10 @@ export class QueryStore {
14
14
  this.originalQuery = new Query(services, search.originalQuery);
15
15
  observables.originalQuery = observable;
16
16
  }
17
+ if (search?.matchType) {
18
+ this.matchType = search.matchType;
19
+ observables.matchType = observable;
20
+ }
17
21
  makeObservable(this, observables);
18
22
  }
19
23
  }
@@ -20,6 +20,7 @@ export declare type StorageConfig = {
20
20
  export declare enum StorageType {
21
21
  SESSION = "session",
22
22
  LOCAL = "local",
23
- COOKIE = "cookie"
23
+ COOKIE = "cookie",
24
+ MEMORY = "memory"
24
25
  }
25
26
  //# sourceMappingURL=StorageStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAChC,UAAU,SAAe;IACzB,QAAQ,MAAa;IACrB,GAAG,SAAgB;IACnB,KAAK,KAAM;gBAEC,MAAM,CAAC,EAAE,aAAa;IAwClC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IA+BtB,KAAK,IAAI,IAAI;CAcb;AAED,oBAAY,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CACjB"}
1
+ {"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAChC,UAAU,SAAe;IACzB,QAAQ,MAAa;IACrB,GAAG,SAAgB;IACnB,KAAK,KAAM;gBAEC,MAAM,CAAC,EAAE,aAAa;IA8ClC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAyBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IA+BtB,KAAK,IAAI,IAAI;CAcb;AAED,oBAAY,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB"}
@@ -20,21 +20,23 @@ export class StorageStore {
20
20
  this.sameSite = config.cookie.sameSite;
21
21
  }
22
22
  switch (config.type) {
23
- case StorageType.SESSION:
23
+ case StorageType.SESSION: {
24
24
  this.type = featureFlags.storage ? config.type : null;
25
25
  if (this.type) {
26
26
  this.state = JSON.parse(window.sessionStorage.getItem(this.key) || '{}');
27
27
  window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
28
28
  }
29
29
  break;
30
- case StorageType.LOCAL:
30
+ }
31
+ case StorageType.LOCAL: {
31
32
  this.type = featureFlags.storage ? config.type : null;
32
33
  if (this.type && !window.localStorage.getItem(this.key)) {
33
34
  this.state = JSON.parse(window.localStorage.getItem(this.key) || '{}');
34
35
  window.localStorage.setItem(this.key, JSON.stringify(this.state));
35
36
  }
36
37
  break;
37
- case StorageType.COOKIE:
38
+ }
39
+ case StorageType.COOKIE: {
38
40
  if (featureFlags.cookies) {
39
41
  this.type = config.type;
40
42
  const data = utils.cookies.get(this.key);
@@ -43,6 +45,10 @@ export class StorageStore {
43
45
  }
44
46
  }
45
47
  break;
48
+ }
49
+ default: {
50
+ this.type = StorageType.MEMORY;
51
+ }
46
52
  }
47
53
  }
48
54
  }
@@ -120,4 +126,5 @@ export var StorageType;
120
126
  StorageType["SESSION"] = "session";
121
127
  StorageType["LOCAL"] = "local";
122
128
  StorageType["COOKIE"] = "cookie";
129
+ StorageType["MEMORY"] = "memory";
123
130
  })(StorageType || (StorageType = {}));
@@ -1,4 +1,5 @@
1
1
  import type { UrlManager } from '@searchspring/snap-url-manager';
2
+ import type { SearchResponseModelFacetValueAllOfValues } from '@searchspring/snapi-types';
2
3
  export declare type StoreConfig = {
3
4
  id: string;
4
5
  [any: string]: unknown;
@@ -34,6 +35,11 @@ export declare type FinderStoreConfig = StoreConfig & {
34
35
  globals?: any;
35
36
  url?: string;
36
37
  fields: FinderFieldConfig[];
38
+ persist?: {
39
+ enabled: boolean;
40
+ lockSelections?: boolean;
41
+ expiration?: number;
42
+ };
37
43
  };
38
44
  export declare type FinderFieldConfig = {
39
45
  field: string;
@@ -86,5 +92,13 @@ export declare enum ErrorType {
86
92
  INFO = "info",
87
93
  ERROR = "error"
88
94
  }
95
+ export declare type SelectedSelection = {
96
+ selected: string;
97
+ data: SearchResponseModelFacetValueAllOfValues[];
98
+ facet: any;
99
+ };
100
+ export declare type FinderStoreState = {
101
+ persisted: boolean;
102
+ };
89
103
  export {};
90
104
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-store-mobx",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Snap MobX Store",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,15 +20,15 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.24.0",
23
+ "@searchspring/snap-toolbox": "^0.25.0",
24
24
  "mobx": "^6.3.12"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-url-manager": "^0.24.0"
27
+ "@searchspring/snap-url-manager": "^0.25.0"
28
28
  },
29
29
  "sideEffects": false,
30
30
  "files": [
31
31
  "dist/**/*"
32
32
  ],
33
- "gitHead": "2aadf9555a7c409f6922a4ab72938d2ea0510faf"
33
+ "gitHead": "b227a42874d7ae49b2cbe99a9879c7d761b24ee5"
34
34
  }