@devisfuture/mega-collection 2.4.6 → 2.4.8

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.
@@ -1,183 +0,0 @@
1
- //#region src/State.ts
2
- var e = class {
3
- constructor(e = [], t = {}) {
4
- this.itemIndexLookup = /* @__PURE__ */ new WeakMap(), this.mutationVersion = 0, this.namespaceSequence = 0, this.previousResultState = null, this.indexMaps = /* @__PURE__ */ new Map(), this.scopedRegistry = /* @__PURE__ */ new Map(), this.listeners = /* @__PURE__ */ new Set(), this.originData = e, this.filterByPreviousResult = t.filterByPreviousResult ?? !1, this.rebuildItemIndexLookup();
5
- }
6
- subscribe(e) {
7
- return this.listeners.add(e), () => {
8
- this.listeners.delete(e);
9
- };
10
- }
11
- getOriginData() {
12
- return this.originData;
13
- }
14
- getItemIndex(e) {
15
- return this.itemIndexLookup.get(e);
16
- }
17
- getMutationVersion() {
18
- return this.mutationVersion;
19
- }
20
- isFilterByPreviousResultEnabled() {
21
- return this.filterByPreviousResult;
22
- }
23
- setFilterByPreviousResult(e) {
24
- this.filterByPreviousResult = e, e || this.clearPreviousResult();
25
- }
26
- getPreviousResult() {
27
- return this.getPreviousResultState()?.result ?? null;
28
- }
29
- getPreviousResultState() {
30
- return this.previousResultState === null || this.previousResultState.version !== this.mutationVersion ? null : this.previousResultState;
31
- }
32
- setPreviousResult(e, t) {
33
- this.previousResultState = {
34
- result: e,
35
- sourceData: t,
36
- version: this.mutationVersion
37
- };
38
- }
39
- clearPreviousResult() {
40
- this.previousResultState = null;
41
- }
42
- createNamespace(e = "scope") {
43
- return this.namespaceSequence += 1, `${e}:${this.namespaceSequence}`;
44
- }
45
- getScopedValue(e, t) {
46
- return this.scopedRegistry.get(e)?.get(t);
47
- }
48
- getOrCreateScopedValue(e, t, n) {
49
- let r = this.getScopedValue(e, t);
50
- if (r !== void 0) return r;
51
- let i = this.getOrCreateScope(e), a = n();
52
- return i.set(t, a), a;
53
- }
54
- setScopedValue(e, t, n) {
55
- return this.getOrCreateScope(e).set(t, n), n;
56
- }
57
- deleteScopedValue(e, t) {
58
- let n = this.scopedRegistry.get(e);
59
- n && (n.delete(t), n.size === 0 && this.scopedRegistry.delete(e));
60
- }
61
- clearScope(e) {
62
- this.scopedRegistry.delete(e);
63
- }
64
- data(e) {
65
- this.originData = e, this.bumpMutationVersion(), this.rebuildItemIndexLookup();
66
- for (let e of this.indexMaps.keys()) this.rebuildIndexMap(e);
67
- this.emit({
68
- type: "data",
69
- data: e
70
- });
71
- }
72
- add(e) {
73
- if (e.length === 0) return;
74
- let t = this.originData.length;
75
- for (let n = 0; n < e.length; n++) this.originData.push(e[n]), this.itemIndexLookup.set(e[n], t + n);
76
- this.bumpMutationVersion();
77
- for (let [n, r] of this.indexMaps) for (let i = 0; i < e.length; i++) r.set(e[i][n], t + i);
78
- this.emit({
79
- type: "add",
80
- items: e,
81
- startIndex: t
82
- });
83
- }
84
- update(e) {
85
- let { field: t, data: n } = e, r = n[t];
86
- if (r == null) return;
87
- let i = this.getOrCreateIndexMap(t).get(r);
88
- if (i === void 0) return;
89
- let a = this.originData[i];
90
- this.originData[i] = n, this.itemIndexLookup.delete(a), this.itemIndexLookup.set(n, i), this.bumpMutationVersion();
91
- for (let [e, t] of this.indexMaps) {
92
- let r = a[e], o = n[e];
93
- r !== o && (t.get(r) === i && t.delete(r), t.set(o, i));
94
- }
95
- this.emit({
96
- type: "update",
97
- field: t,
98
- index: i,
99
- previousItem: a,
100
- nextItem: n
101
- });
102
- }
103
- clearData() {
104
- let e = [];
105
- this.originData = e, this.itemIndexLookup = /* @__PURE__ */ new WeakMap(), this.bumpMutationVersion();
106
- for (let e of this.indexMaps.values()) e.clear();
107
- this.emit({
108
- type: "clearData",
109
- data: e
110
- });
111
- }
112
- removeByFieldValue(e, t) {
113
- let n = this.getOrCreateIndexMap(e).get(t);
114
- if (n === void 0) return;
115
- let r = this.originData.length - 1, i = this.originData[n], a = n === r ? null : this.originData[r];
116
- n !== r && a && (this.originData[n] = a, this.itemIndexLookup.set(a, n)), this.originData.pop(), this.itemIndexLookup.delete(i), this.bumpMutationVersion();
117
- for (let [e, t] of this.indexMaps) {
118
- let r = i[e];
119
- t.get(r) === n && t.delete(r), a && t.set(a[e], n);
120
- }
121
- this.emit({
122
- type: "remove",
123
- field: e,
124
- value: t,
125
- removedItem: i,
126
- removedIndex: n,
127
- movedItem: a,
128
- movedFromIndex: a ? r : null
129
- });
130
- }
131
- removeByFieldValues(e, t) {
132
- if (t.length === 0) return;
133
- let n = this.getOrCreateIndexMap(e), r = [];
134
- for (let e = 0; e < t.length; e++) {
135
- let i = t[e], a = n.get(i);
136
- if (a === void 0) continue;
137
- let o = this.originData.length - 1, s = this.originData[a], c = a === o ? null : this.originData[o];
138
- a !== o && c && (this.originData[a] = c, this.itemIndexLookup.set(c, a)), this.originData.pop(), this.itemIndexLookup.delete(s);
139
- for (let [e, t] of this.indexMaps) {
140
- let n = s[e];
141
- t.get(n) === a && t.delete(n), c && t.set(c[e], a);
142
- }
143
- r.push({
144
- value: i,
145
- removedItem: s,
146
- removedIndex: a,
147
- movedItem: c,
148
- movedFromIndex: c ? o : null
149
- });
150
- }
151
- r.length !== 0 && (this.bumpMutationVersion(), this.emit({
152
- type: "removeMany",
153
- field: e,
154
- entries: r
155
- }));
156
- }
157
- emit(e) {
158
- for (let t of this.listeners) t(e);
159
- }
160
- getOrCreateScope(e) {
161
- let t = this.scopedRegistry.get(e);
162
- if (t) return t;
163
- let n = /* @__PURE__ */ new Map();
164
- return this.scopedRegistry.set(e, n), n;
165
- }
166
- bumpMutationVersion() {
167
- this.mutationVersion += 1, this.clearPreviousResult();
168
- }
169
- getOrCreateIndexMap(e) {
170
- return this.indexMaps.get(e) || this.rebuildIndexMap(e);
171
- }
172
- rebuildIndexMap(e) {
173
- let t = /* @__PURE__ */ new Map();
174
- for (let n = 0; n < this.originData.length; n++) t.set(this.originData[n][e], n);
175
- return this.indexMaps.set(e, t), t;
176
- }
177
- rebuildItemIndexLookup() {
178
- this.itemIndexLookup = /* @__PURE__ */ new WeakMap();
179
- for (let e = 0; e < this.originData.length; e++) this.itemIndexLookup.set(this.originData[e], e);
180
- }
181
- }, t = "__merge__", n = "deferFilterMutationIndexUpdates", r = "deferSearchMutationIndexUpdates", i = "deferSortMutationCacheUpdates";
182
- //#endregion
183
- export { e as a, t as i, r as n, i as r, n as t };
@@ -1,505 +0,0 @@
1
- import { a as e, i as t, n, r, t as i } from "./chunk-BJZg_1dI.mjs";
2
- import { t as a } from "./chunk-C5Zpu_ol.mjs";
3
- //#region src/merge/chain.ts
4
- var o = class {
5
- constructor(e) {
6
- this.callbacks = e;
7
- }
8
- create(e) {
9
- let t = e;
10
- return Object.defineProperties(t, {
11
- search: a((e, t) => t === void 0 ? this.callbacks.search(e) : this.callbacks.search(e, t)),
12
- sort: a((t, n, r) => n === void 0 ? this.callbacks.sort(e, t, r) : this.callbacks.sort(t, n, r)),
13
- filter: a((t, n) => n === void 0 ? this.callbacks.filter(e, t) : this.callbacks.filter(t, n)),
14
- add: a((e) => this.callbacks.add(e)),
15
- update: a((e) => this.callbacks.update(e)),
16
- clearIndexes: a((t) => (this.callbacks.clearIndexes(t), this.create(e))),
17
- clearData: a((t) => (this.callbacks.clearData(t), this.create(e))),
18
- data: a((e) => this.callbacks.data(e)),
19
- getOriginData: a(() => this.callbacks.getOriginData())
20
- }), t;
21
- }
22
- };
23
- //#endregion
24
- //#region src/merge/module-adapters.ts
25
- function s(e) {
26
- return typeof e == "object" && !!e;
27
- }
28
- function c(e, t) {
29
- return s(e) && typeof e[t] == "function";
30
- }
31
- function l(e) {
32
- return c(e, "search") && c(e, "getOriginData");
33
- }
34
- function u(e) {
35
- return c(e, "sort") && c(e, "getOriginData");
36
- }
37
- function d(e) {
38
- return c(e, "rawFilter") && c(e, "getOriginData");
39
- }
40
- var f = (e) => {
41
- let { prototype: t } = e;
42
- return d(t) ? "filter" : u(t) ? "sort" : l(t) ? "search" : null;
43
- }, p = (e, t, n, r) => {
44
- let i = new e({
45
- data: t,
46
- state: n,
47
- ...r
48
- });
49
- return d(i) ? {
50
- moduleName: "filter",
51
- executeFilter: (e, t) => t === void 0 ? i.rawFilter(e) : i.rawFilter(e, t),
52
- clearIndexes: () => i.clearIndexes()
53
- } : u(i) ? {
54
- moduleName: "sort",
55
- executeSort: (e, t, n) => t === void 0 ? i.sort(e) : i.sort(e, t, n),
56
- clearIndexes: () => i.clearIndexes()
57
- } : l(i) ? {
58
- moduleName: "search",
59
- executeSearch: (e, t) => t === void 0 ? i.search(e) : i.search(e, t),
60
- clearIndexes: () => i.clearIndexes()
61
- } : null;
62
- }, m = {
63
- search: "TextSearchEngine",
64
- sort: "SortEngine",
65
- filter: "FilterEngine"
66
- }, h = class e extends Error {
67
- constructor(e) {
68
- super(e), this.name = "MergeEnginesError";
69
- }
70
- static unavailableEngine(t) {
71
- let n = m[t];
72
- return new e(`MergeEngines: ${n} is not available.`);
73
- }
74
- static unavailableGetOriginData() {
75
- return new e("MergeEngines: getOriginData is not available.");
76
- }
77
- static invalidFilterByPreviousResultOption() {
78
- return new e("MergeEngines: \"filter.filterByPreviousResult\" is not supported. Configure \"filterByPreviousResult\" on the MergeEngines root options.");
79
- }
80
- }, g = class {
81
- constructor(a) {
82
- this.previousSearchState = null, this.previousFilterState = null, this.previousSortState = null;
83
- let { imports: s, data: c, filterByPreviousResult: l = !1, ...u } = a;
84
- this.validateFilterByPreviousResultOptions(u.filter), this.state = new e(c, { filterByPreviousResult: l });
85
- let d = new Set(s), m = null, h = null, g = null;
86
- for (let e of d) {
87
- let t = f(e);
88
- if (!t) continue;
89
- let n = this.getModuleInitOptions(t, e.name, u), r = p(e, c, this.state, n);
90
- r && (r.moduleName === "search" && !m && (m = r), r.moduleName === "sort" && !h && (h = r), r.moduleName === "filter" && !g && (g = r));
91
- }
92
- this.searchModule = m, this.sortModule = h, this.filterModule = g, this.sortModule && this.state.setScopedValue(t, r, !0), this.searchModule && this.state.setScopedValue(t, n, !0), this.filterModule && this.state.setScopedValue(t, i, !0), this.state.subscribe((e) => this.handleStateMutation(e)), this.chainBuilder = new o({
93
- search: (e, t) => t === void 0 ? this.search(e) : this.search(e, t),
94
- sort: (e, t, n) => this.sort(e, t, n),
95
- filter: (e, t) => this.filter(e, t),
96
- getOriginData: () => this.getOriginData(),
97
- add: (e) => this.add(e),
98
- update: (e) => this.update(e),
99
- data: (e) => this.data(e),
100
- clearIndexes: (e) => this.clearIndexes(e),
101
- clearData: (e) => this.clearData(e)
102
- });
103
- }
104
- getAdapter(e) {
105
- return e === "search" ? this.searchModule : e === "sort" ? this.sortModule : this.filterModule;
106
- }
107
- getModuleInitOptions(e, t, n) {
108
- let r = {};
109
- for (let i of [e, t]) {
110
- let e = n[i];
111
- s(e) && Object.assign(r, e);
112
- }
113
- return r;
114
- }
115
- validateFilterByPreviousResultOptions(e) {
116
- if (s(e) && Object.prototype.hasOwnProperty.call(e, "filterByPreviousResult")) throw h.invalidFilterByPreviousResultOption();
117
- }
118
- isPreviousResultEnabled() {
119
- return this.state.isFilterByPreviousResultEnabled();
120
- }
121
- getPreviousResultInput() {
122
- return this.isPreviousResultEnabled() ? this.state.getPreviousResult() : null;
123
- }
124
- trackPreviousResult(e, t) {
125
- return this.isPreviousResultEnabled() && this.state.setPreviousResult(e, t), e;
126
- }
127
- clearOperationState(e) {
128
- (!e || e === "search") && (this.previousSearchState = null), (!e || e === "filter") && (this.previousFilterState = null), (!e || e === "sort") && (this.previousSortState = null);
129
- }
130
- createSearchCacheKey(e, t) {
131
- return JSON.stringify([e, t ?? null]);
132
- }
133
- createSortCacheKey(e, t) {
134
- return JSON.stringify({
135
- descriptors: e,
136
- inPlace: t ?? !1
137
- });
138
- }
139
- createFilterCacheKey(e) {
140
- return JSON.stringify(e);
141
- }
142
- handleStateMutation(e) {
143
- switch (e.type) {
144
- case "add":
145
- this.queueSearchCacheMutation(e), this.queueFilterCacheMutation(e), this.queueSortCacheMutation(e);
146
- return;
147
- case "update":
148
- this.queueSearchCacheMutation(e), this.queueFilterCacheMutation(e), this.queueSortCacheMutation(e);
149
- return;
150
- case "remove":
151
- this.previousSearchState = null, this.previousFilterState = null, this.queueSortCacheMutation(e);
152
- return;
153
- case "removeMany":
154
- this.previousSearchState = null, this.previousFilterState = null, this.queueSortCacheMutation(e);
155
- return;
156
- case "data":
157
- case "clearData":
158
- this.previousSearchState = null, this.previousFilterState = null, this.previousSortState = null;
159
- return;
160
- }
161
- }
162
- queueSearchCacheMutation(e) {
163
- let t = this.previousSearchState;
164
- if (t !== null) {
165
- if (!this.canPatchStoredDatasetSearch(t)) {
166
- this.previousSearchState = null;
167
- return;
168
- }
169
- this.previousSearchState = {
170
- ...t,
171
- version: this.state.getMutationVersion(),
172
- pendingMutations: t.pendingMutations.concat(e)
173
- };
174
- }
175
- }
176
- queueFilterCacheMutation(e) {
177
- let t = this.previousFilterState;
178
- if (t !== null) {
179
- if (!this.canPatchStoredDatasetFilter(t)) {
180
- this.previousFilterState = null;
181
- return;
182
- }
183
- this.previousFilterState = {
184
- ...t,
185
- version: this.state.getMutationVersion(),
186
- pendingMutations: t.pendingMutations.concat(e)
187
- };
188
- }
189
- }
190
- queueSortCacheMutation(e) {
191
- let t = this.previousSortState;
192
- if (t !== null) {
193
- if (!this.canPatchStoredDatasetSort(t)) {
194
- this.previousSortState = null;
195
- return;
196
- }
197
- this.previousSortState = {
198
- ...t,
199
- version: this.state.getMutationVersion(),
200
- pendingMutations: t.pendingMutations.concat(e)
201
- };
202
- }
203
- }
204
- resolvePendingSortCache(e) {
205
- if (e.pendingMutations.length === 0) return e;
206
- let t = {
207
- ...e,
208
- pendingMutations: []
209
- };
210
- for (let n = 0; n < e.pendingMutations.length; n++) if (t = this.applySortCacheMutation(t, e.pendingMutations[n]), t === null) return null;
211
- return t;
212
- }
213
- resolvePendingSearchCache(e) {
214
- if (e.pendingMutations.length === 0) return e;
215
- let t = {
216
- ...e,
217
- pendingMutations: []
218
- };
219
- for (let n = 0; n < e.pendingMutations.length; n++) if (t = this.applySearchCacheMutation(t, e.pendingMutations[n]), t === null) return null;
220
- return t;
221
- }
222
- resolvePendingFilterCache(e) {
223
- if (e.pendingMutations.length === 0) return e;
224
- let t = {
225
- ...e,
226
- pendingMutations: []
227
- };
228
- for (let n = 0; n < e.pendingMutations.length; n++) if (t = this.applyFilterCacheMutation(t, e.pendingMutations[n]), t === null) return null;
229
- return t;
230
- }
231
- applySortCacheMutation(e, t) {
232
- switch (t.type) {
233
- case "add": return this.patchSortCacheForAddedItems(e, t.items);
234
- case "update": return this.patchSortCacheForUpdatedItem(e, t.previousItem, t.nextItem);
235
- case "remove": return this.patchSortCacheForRemovedItems(e, [t.removedItem]);
236
- case "removeMany": return this.patchSortCacheForRemovedItems(e, t.entries.map((e) => e.removedItem));
237
- case "data":
238
- case "clearData": return null;
239
- }
240
- }
241
- applySearchCacheMutation(e, t) {
242
- switch (t.type) {
243
- case "add": return this.patchSearchCacheForAddedItems(e, t.items);
244
- case "update": return this.patchSearchCacheForUpdatedItem(e, t.previousItem, t.nextItem);
245
- case "remove":
246
- case "removeMany":
247
- case "data":
248
- case "clearData": return null;
249
- }
250
- }
251
- applyFilterCacheMutation(e, t) {
252
- switch (t.type) {
253
- case "add": return this.patchFilterCacheForAddedItems(e, t.items);
254
- case "update": return this.patchFilterCacheForUpdatedItem(e, t.previousItem, t.nextItem);
255
- case "remove":
256
- case "removeMany":
257
- case "data":
258
- case "clearData": return null;
259
- }
260
- }
261
- canPatchStoredDatasetSearch(e) {
262
- return e.originData === this.state.getOriginData() && e.field !== null;
263
- }
264
- canPatchStoredDatasetFilter(e) {
265
- if (e.sourceData !== this.state.getOriginData()) return !1;
266
- for (let t = 0; t < e.criteria.length; t++) if (!this.isPatchableFilterCriterion(e.criteria[t])) return !1;
267
- return !0;
268
- }
269
- canPatchStoredDatasetSort(e) {
270
- return e.sourceData === this.state.getOriginData();
271
- }
272
- compareItemsByDescriptors(e, t, n) {
273
- for (let r = 0; r < n.length; r++) {
274
- let { field: i, direction: a } = n[r], o = e[i], s = t[i];
275
- if (o < s) return a === "asc" ? -1 : 1;
276
- if (o > s) return a === "asc" ? 1 : -1;
277
- }
278
- return (this.state.getItemIndex(e) ?? -1) - (this.state.getItemIndex(t) ?? -1);
279
- }
280
- findSortInsertPosition(e, t, n) {
281
- let r = 0, i = e.length;
282
- for (; r < i;) {
283
- let a = r + i >> 1;
284
- this.compareItemsByDescriptors(e[a], t, n) <= 0 ? r = a + 1 : i = a;
285
- }
286
- return r;
287
- }
288
- findDatasetInsertPosition(e, t) {
289
- let n = this.state.getItemIndex(t) ?? 2 ** 53 - 1;
290
- for (let t = 0; t < e.length; t++) if ((this.state.getItemIndex(e[t]) ?? 2 ** 53 - 1) > n) return t;
291
- return e.length;
292
- }
293
- doesItemMatchSearchCache(e, t) {
294
- if (e.field === null || e.lowerQuery.length === 0) return !1;
295
- let n = t[e.field];
296
- return typeof n == "string" && n.toLowerCase().includes(e.lowerQuery);
297
- }
298
- patchSearchCacheForAddedItems(e, t) {
299
- if (!this.canPatchStoredDatasetSearch(e)) return null;
300
- let n = e.result.slice();
301
- for (let r = 0; r < t.length; r++) {
302
- let i = t[r];
303
- this.doesItemMatchSearchCache(e, i) && n.push(i);
304
- }
305
- return {
306
- ...e,
307
- result: n,
308
- pendingMutations: [],
309
- version: this.state.getMutationVersion()
310
- };
311
- }
312
- patchSearchCacheForUpdatedItem(e, t, n) {
313
- if (!this.canPatchStoredDatasetSearch(e)) return null;
314
- let r = e.result.slice(), i = r.indexOf(t), a = this.doesItemMatchSearchCache(e, n);
315
- if (i !== -1) a ? r[i] = n : r.splice(i, 1);
316
- else if (a) {
317
- let e = this.findDatasetInsertPosition(r, n);
318
- r.splice(e, 0, n);
319
- }
320
- return {
321
- ...e,
322
- result: r,
323
- pendingMutations: [],
324
- version: this.state.getMutationVersion()
325
- };
326
- }
327
- isPatchableFilterCriterion(e) {
328
- return !String(e.field).includes(".");
329
- }
330
- doesItemMatchFilterCache(e, t) {
331
- for (let n = 0; n < e.criteria.length; n++) {
332
- let r = e.criteria[n];
333
- if (!this.isPatchableFilterCriterion(r)) return !1;
334
- let i = t[r.field];
335
- if (r.values !== void 0 && r.values.length > 0 && !r.values.includes(i) || r.exclude !== void 0 && r.exclude.length > 0 && r.exclude.includes(i)) return !1;
336
- }
337
- return !0;
338
- }
339
- patchFilterCacheForAddedItems(e, t) {
340
- if (!this.canPatchStoredDatasetFilter(e)) return null;
341
- let n = e.result.slice();
342
- for (let r = 0; r < t.length; r++) {
343
- let i = t[r];
344
- this.doesItemMatchFilterCache(e, i) && n.push(i);
345
- }
346
- return {
347
- ...e,
348
- result: n,
349
- pendingMutations: [],
350
- version: this.state.getMutationVersion()
351
- };
352
- }
353
- patchFilterCacheForUpdatedItem(e, t, n) {
354
- if (!this.canPatchStoredDatasetFilter(e)) return null;
355
- let r = e.result.slice(), i = r.indexOf(t), a = this.doesItemMatchFilterCache(e, n);
356
- if (i !== -1) a ? r[i] = n : r.splice(i, 1);
357
- else if (a) {
358
- let e = this.findDatasetInsertPosition(r, n);
359
- r.splice(e, 0, n);
360
- }
361
- return {
362
- ...e,
363
- result: r,
364
- pendingMutations: [],
365
- version: this.state.getMutationVersion()
366
- };
367
- }
368
- patchSortCacheForAddedItems(e, t) {
369
- if (!this.canPatchStoredDatasetSort(e)) return null;
370
- let n = e.result.slice();
371
- for (let r = 0; r < t.length; r++) {
372
- let i = t[r], a = this.findSortInsertPosition(n, i, e.descriptors);
373
- n.splice(a, 0, i);
374
- }
375
- return {
376
- ...e,
377
- result: n,
378
- pendingMutations: [],
379
- version: this.state.getMutationVersion()
380
- };
381
- }
382
- patchSortCacheForUpdatedItem(e, t, n) {
383
- if (!this.canPatchStoredDatasetSort(e)) return null;
384
- let r = e.result.slice(), i = r.indexOf(t);
385
- if (i === -1) return e.result.indexOf(n) === -1 ? null : {
386
- ...e,
387
- pendingMutations: [],
388
- version: this.state.getMutationVersion()
389
- };
390
- if (!e.descriptors.some(({ field: e }) => t[e] !== n[e])) return r[i] = n, {
391
- ...e,
392
- result: r,
393
- pendingMutations: [],
394
- version: this.state.getMutationVersion()
395
- };
396
- r.splice(i, 1);
397
- let a = this.findSortInsertPosition(r, n, e.descriptors);
398
- return r.splice(a, 0, n), {
399
- ...e,
400
- result: r,
401
- pendingMutations: [],
402
- version: this.state.getMutationVersion()
403
- };
404
- }
405
- patchSortCacheForRemovedItems(e, t) {
406
- if (!this.canPatchStoredDatasetSort(e)) return null;
407
- let n = new Set(t);
408
- return {
409
- ...e,
410
- result: Array.prototype.filter.call(e.result, (e) => !n.has(e)),
411
- pendingMutations: [],
412
- version: this.state.getMutationVersion()
413
- };
414
- }
415
- search(e, t) {
416
- if (!this.searchModule) throw h.unavailableEngine("search");
417
- let n = this.state.getOriginData(), r = this.state.getMutationVersion(), i = this.createSearchCacheKey(e, t), a = this.previousSearchState;
418
- if (a?.originData === n && a.key === i && a.version === r) {
419
- let e = this.resolvePendingSearchCache(a);
420
- if (e !== null) return this.previousSearchState = e, this.withChain(this.trackPreviousResult(e.result, n));
421
- this.previousSearchState = null;
422
- }
423
- let o = t === void 0 ? this.searchModule.executeSearch(e) : this.searchModule.executeSearch(e, t);
424
- return this.previousSearchState = {
425
- key: i,
426
- originData: n,
427
- result: o,
428
- version: r,
429
- field: t === void 0 ? null : e,
430
- lowerQuery: (t ?? e).trim().toLowerCase(),
431
- pendingMutations: []
432
- }, this.withChain(this.trackPreviousResult(o, n));
433
- }
434
- sort(e, t, n) {
435
- if (!this.sortModule) throw h.unavailableEngine("sort");
436
- let r, i;
437
- if (t === void 0 ? (i = e, r = this.getPreviousResultInput() ?? this.state.getOriginData()) : (r = e, i = t), !n) {
438
- let e = this.state.getMutationVersion(), a = this.createSortCacheKey(i, n), o = this.previousSortState;
439
- if (o?.sourceData === r && o.key === a && o.version === e) {
440
- let e = this.resolvePendingSortCache(o);
441
- if (e !== null) return this.previousSortState = e, this.withChain(this.trackPreviousResult(e.result, r));
442
- this.previousSortState = null;
443
- }
444
- let s = t === void 0 && r === this.state.getOriginData() ? this.sortModule.executeSort(i) : this.sortModule.executeSort(r, i, n);
445
- return this.previousSortState = {
446
- key: a,
447
- sourceData: r,
448
- result: s,
449
- version: e,
450
- descriptors: i,
451
- pendingMutations: []
452
- }, this.withChain(this.trackPreviousResult(s, r));
453
- }
454
- return this.withChain(this.trackPreviousResult(this.sortModule.executeSort(r, i, n), r));
455
- }
456
- filter(e, t) {
457
- if (!this.filterModule) throw h.unavailableEngine("filter");
458
- if (t === void 0) {
459
- let t = this.getPreviousResultInput(), n = t ?? this.state.getOriginData(), r = e, i = this.state.getMutationVersion(), a = this.createFilterCacheKey(r), o = this.previousFilterState;
460
- if (o?.sourceData === n && o.key === a && o.version === i) {
461
- let e = this.resolvePendingFilterCache(o);
462
- if (e !== null) return this.previousFilterState = e, this.withChain(this.trackPreviousResult(e.result, n));
463
- this.previousFilterState = null;
464
- }
465
- let s = t === null ? this.filterModule.executeFilter(r) : this.filterModule.executeFilter(t, r);
466
- return this.previousFilterState = {
467
- key: a,
468
- sourceData: n,
469
- result: s,
470
- version: i,
471
- criteria: r,
472
- pendingMutations: []
473
- }, this.withChain(this.trackPreviousResult(s, n));
474
- }
475
- let n = e;
476
- return this.withChain(this.trackPreviousResult(this.filterModule.executeFilter(n, t), n));
477
- }
478
- withChain(e) {
479
- return this.chainBuilder.create(e);
480
- }
481
- getOriginData() {
482
- if (this.searchModule || this.sortModule || this.filterModule) return this.state.getOriginData();
483
- throw h.unavailableGetOriginData();
484
- }
485
- add(e) {
486
- return e.length === 0 || this.state.add(e), this;
487
- }
488
- update(e) {
489
- return this.state.update(e), this;
490
- }
491
- clearIndexes(e) {
492
- let t = this.getAdapter(e);
493
- if (t) return t.clearIndexes(), this.clearOperationState(e), this;
494
- throw h.unavailableEngine(e);
495
- }
496
- data(e) {
497
- return this.state.data(e), this;
498
- }
499
- clearData(e) {
500
- if (this.getAdapter(e)) return this.state.clearData(), this;
501
- throw h.unavailableEngine(e);
502
- }
503
- };
504
- //#endregion
505
- export { g as t };
@@ -1,18 +0,0 @@
1
- //#region src/internal.ts
2
- function e(e) {
3
- return {
4
- value: e,
5
- enumerable: !1,
6
- configurable: !0,
7
- writable: !0
8
- };
9
- }
10
- function t(e) {
11
- let t = e.indexOf(".");
12
- return t === -1 ? null : {
13
- collectionKey: e.substring(0, t),
14
- nestedKey: e.substring(t + 1)
15
- };
16
- }
17
- //#endregion
18
- export { t as n, e as t };
@@ -1,4 +0,0 @@
1
- export { FilterEngine } from "./filter";
2
- export type { FilterEngineOptions, FilterEngineChain } from "./types";
3
- export type { CollectionItem, IndexableKey, FilterCriterion } from "../types";
4
- //# sourceMappingURL=index.d.ts.map