@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.
- package/dist/cjs/Finder/FinderStore.d.ts +10 -2
- package/dist/cjs/Finder/FinderStore.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderStore.js +67 -3
- package/dist/cjs/Finder/Stores/SelectionStore.d.ts +11 -2
- package/dist/cjs/Finder/Stores/SelectionStore.d.ts.map +1 -1
- package/dist/cjs/Finder/Stores/SelectionStore.js +64 -14
- package/dist/cjs/Search/Stores/QueryStore.d.ts +2 -1
- package/dist/cjs/Search/Stores/QueryStore.d.ts.map +1 -1
- package/dist/cjs/Search/Stores/QueryStore.js +4 -0
- package/dist/cjs/Storage/StorageStore.d.ts +2 -1
- package/dist/cjs/Storage/StorageStore.d.ts.map +1 -1
- package/dist/cjs/Storage/StorageStore.js +10 -3
- package/dist/cjs/types.d.ts +14 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Finder/FinderStore.d.ts +10 -2
- package/dist/esm/Finder/FinderStore.d.ts.map +1 -1
- package/dist/esm/Finder/FinderStore.js +64 -3
- package/dist/esm/Finder/Stores/SelectionStore.d.ts +11 -2
- package/dist/esm/Finder/Stores/SelectionStore.d.ts.map +1 -1
- package/dist/esm/Finder/Stores/SelectionStore.js +59 -12
- package/dist/esm/Search/Stores/QueryStore.d.ts +2 -1
- package/dist/esm/Search/Stores/QueryStore.d.ts.map +1 -1
- package/dist/esm/Search/Stores/QueryStore.js +4 -0
- package/dist/esm/Storage/StorageStore.d.ts +2 -1
- package/dist/esm/Storage/StorageStore.d.ts.map +1 -1
- package/dist/esm/Storage/StorageStore.js +10 -3
- package/dist/esm/types.d.ts +14 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -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,
|
|
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.
|
|
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,
|
|
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,
|
|
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;
|
|
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,
|
|
42
|
-
var _a;
|
|
43
|
-
var
|
|
44
|
-
|
|
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
|
-
(
|
|
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
|
-
|
|
111
|
+
selectedSelections.push(new SelectionHierarchy(services, config.id, state, facet, levelConfig, loading, storage));
|
|
69
112
|
});
|
|
70
113
|
}
|
|
71
114
|
else {
|
|
72
|
-
|
|
115
|
+
selectedSelections.push(new Selection(services, config.id, state, facet, fieldObj, loading, storage));
|
|
73
116
|
}
|
|
74
117
|
});
|
|
75
118
|
}
|
|
76
|
-
return _super.apply(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:
|
|
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;
|
|
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;
|
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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 = {}));
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -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
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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;
|
|
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
|
|
7
|
-
if (
|
|
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
|
-
|
|
73
|
+
selectedSelections.push(new SelectionHierarchy(services, config.id, state, facet, levelConfig, loading, storage));
|
|
34
74
|
});
|
|
35
75
|
}
|
|
36
76
|
else {
|
|
37
|
-
|
|
77
|
+
selectedSelections.push(new Selection(services, config.id, state, facet, fieldObj, loading, storage));
|
|
38
78
|
}
|
|
39
79
|
});
|
|
40
80
|
}
|
|
41
|
-
super(...
|
|
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:
|
|
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;
|
|
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
|
}
|
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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 = {}));
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -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
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
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.
|
|
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.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.25.0",
|
|
24
24
|
"mobx": "^6.3.12"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-url-manager": "^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": "
|
|
33
|
+
"gitHead": "b227a42874d7ae49b2cbe99a9879c7d761b24ee5"
|
|
34
34
|
}
|