@wix/bex-core 2.172.0 → 2.173.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/state/QueryResultState.js +11 -14
- package/dist/cjs/state/QueryResultState.js.map +1 -1
- package/dist/esm/state/QueryResultState.js +9 -11
- package/dist/esm/state/QueryResultState.js.map +1 -1
- package/dist/types/state/QueryResultState.d.ts +1 -2
- package/dist/types/state/QueryResultState.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -12,6 +12,16 @@ class QueryResultState {
|
|
|
12
12
|
this._pagesAtom.reportObserved();
|
|
13
13
|
return this._pages.processed;
|
|
14
14
|
}
|
|
15
|
+
get _keyedItemsMap() {
|
|
16
|
+
const {
|
|
17
|
+
keyedItems
|
|
18
|
+
} = this;
|
|
19
|
+
const map = new Map();
|
|
20
|
+
for (const keyedItem of keyedItems) {
|
|
21
|
+
map.set(keyedItem.key, keyedItem);
|
|
22
|
+
}
|
|
23
|
+
return map;
|
|
24
|
+
}
|
|
15
25
|
constructor(params) {
|
|
16
26
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
17
27
|
(0, _defineProperty2.default)(this, "_pagesAtom", (0, _mobx.createAtom)('QueryResultState.pages'));
|
|
@@ -24,7 +34,6 @@ class QueryResultState {
|
|
|
24
34
|
unprocessed: 0
|
|
25
35
|
});
|
|
26
36
|
(0, _defineProperty2.default)(this, "_supportTotal", false);
|
|
27
|
-
(0, _defineProperty2.default)(this, "_keyedItemsMap", new Map());
|
|
28
37
|
(0, _defineProperty2.default)(this, "fetchTotal", void 0);
|
|
29
38
|
(0, _defineProperty2.default)(this, "available", null);
|
|
30
39
|
(0, _defineProperty2.default)(this, "status", {
|
|
@@ -47,6 +56,7 @@ class QueryResultState {
|
|
|
47
56
|
keyedItems: (0, _mobx.computed)({
|
|
48
57
|
keepAlive: true
|
|
49
58
|
}),
|
|
59
|
+
_keyedItemsMap: _mobx.computed,
|
|
50
60
|
pages: _mobx.computed,
|
|
51
61
|
size: _mobx.computed,
|
|
52
62
|
itemsKeys: _mobx.computed,
|
|
@@ -240,22 +250,11 @@ class QueryResultState {
|
|
|
240
250
|
}
|
|
241
251
|
};
|
|
242
252
|
}
|
|
243
|
-
calcKeyedItemsMap() {
|
|
244
|
-
const {
|
|
245
|
-
keyedItems,
|
|
246
|
-
_keyedItemsMap
|
|
247
|
-
} = this;
|
|
248
|
-
_keyedItemsMap.clear();
|
|
249
|
-
for (const keyedItem of keyedItems) {
|
|
250
|
-
_keyedItemsMap.set(keyedItem.key, keyedItem);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
253
|
clear() {
|
|
254
254
|
this.setNewPages({
|
|
255
255
|
processed: [],
|
|
256
256
|
unprocessed: []
|
|
257
257
|
});
|
|
258
|
-
this._keyedItemsMap.clear();
|
|
259
258
|
}
|
|
260
259
|
addPages(morePages) {
|
|
261
260
|
const {
|
|
@@ -265,7 +264,6 @@ class QueryResultState {
|
|
|
265
264
|
unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],
|
|
266
265
|
processed: [..._pages.processed, ...morePages.processed]
|
|
267
266
|
});
|
|
268
|
-
this.calcKeyedItemsMap();
|
|
269
267
|
}
|
|
270
268
|
setTotals(totals) {
|
|
271
269
|
this._totals = totals;
|
|
@@ -275,7 +273,6 @@ class QueryResultState {
|
|
|
275
273
|
}
|
|
276
274
|
setPages(pages) {
|
|
277
275
|
this.setNewPages(pages);
|
|
278
|
-
this.calcKeyedItemsMap();
|
|
279
276
|
}
|
|
280
277
|
slice(start, end) {
|
|
281
278
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","fetchTotal","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","totalStatus","slice","init","_this$fetchTotal","disposers","forEach","disposer","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\nimport { FetchTotalState } from './FetchTotalState';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n fetchTotal?: FetchTotalState<T, F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n readonly fetchTotal?: FetchTotalState<T, F>;\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n this.fetchTotal = params.fetchTotal;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n totalStatus: computed,\n slice: action,\n });\n }\n\n init() {\n const disposers = [this.fetchTotal?.init()];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;\n }\n\n get totalStatus() {\n return this.fetchTotal ? this.fetchTotal.status : this.status.status;\n }\n\n get supportTotal() {\n return !!this.fetchTotal || this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","_keyedItemsMap","keyedItems","map","Map","keyedItem","set","key","constructor","params","_defineProperty2","default","createAtom","unprocessed","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","fetchTotal","makeObservable","items","computed","keepAlive","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","totalStatus","slice","init","_this$fetchTotal","disposers","forEach","disposer","errorStatus","isError","currentIndex","flatMap","page","pageIndex","item","indexWithinPage","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","has","createRollbackFn","updates","newItem","prevItem","newItems","find","processedPage","itemIndex","findIndex","push","rollback","undefined","addItems","clear","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\nimport { FetchTotalState } from './FetchTotalState';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n fetchTotal?: FetchTotalState<T, F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n\n readonly fetchTotal?: FetchTotalState<T, F>;\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n get _keyedItemsMap() {\n const { keyedItems } = this;\n const map = new Map<string, KeyedItem<T>>();\n for (const keyedItem of keyedItems) {\n map.set(keyedItem.key, keyedItem);\n }\n\n return map;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n this.fetchTotal = params.fetchTotal;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n _keyedItemsMap: computed,\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n totalStatus: computed,\n slice: action,\n });\n }\n\n init() {\n const disposers = [this.fetchTotal?.init()];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;\n }\n\n get totalStatus() {\n return this.fetchTotal ? this.fetchTotal.status : this.status.status;\n }\n\n get supportTotal() {\n return !!this.fetchTotal || this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,12 +6,19 @@ export class QueryResultState {
|
|
|
6
6
|
this._pagesAtom.reportObserved();
|
|
7
7
|
return this._pages.processed;
|
|
8
8
|
}
|
|
9
|
+
get _keyedItemsMap() {
|
|
10
|
+
const { keyedItems } = this;
|
|
11
|
+
const map = new Map();
|
|
12
|
+
for (const keyedItem of keyedItems) {
|
|
13
|
+
map.set(keyedItem.key, keyedItem);
|
|
14
|
+
}
|
|
15
|
+
return map;
|
|
16
|
+
}
|
|
9
17
|
constructor(params) {
|
|
10
18
|
this._pagesAtom = createAtom('QueryResultState.pages');
|
|
11
19
|
this._pages = { processed: [], unprocessed: [] };
|
|
12
20
|
this._totals = { processed: 0, unprocessed: 0 };
|
|
13
21
|
this._supportTotal = false;
|
|
14
|
-
this._keyedItemsMap = new Map();
|
|
15
22
|
this.available = null;
|
|
16
23
|
this.status = {
|
|
17
24
|
...queryStatus.idle,
|
|
@@ -32,6 +39,7 @@ export class QueryResultState {
|
|
|
32
39
|
keyedItems: computed({
|
|
33
40
|
keepAlive: true,
|
|
34
41
|
}),
|
|
42
|
+
_keyedItemsMap: computed,
|
|
35
43
|
pages: computed,
|
|
36
44
|
size: computed,
|
|
37
45
|
itemsKeys: computed,
|
|
@@ -182,16 +190,8 @@ export class QueryResultState {
|
|
|
182
190
|
},
|
|
183
191
|
};
|
|
184
192
|
}
|
|
185
|
-
calcKeyedItemsMap() {
|
|
186
|
-
const { keyedItems, _keyedItemsMap } = this;
|
|
187
|
-
_keyedItemsMap.clear();
|
|
188
|
-
for (const keyedItem of keyedItems) {
|
|
189
|
-
_keyedItemsMap.set(keyedItem.key, keyedItem);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
193
|
clear() {
|
|
193
194
|
this.setNewPages({ processed: [], unprocessed: [] });
|
|
194
|
-
this._keyedItemsMap.clear();
|
|
195
195
|
}
|
|
196
196
|
addPages(morePages) {
|
|
197
197
|
const { _pages } = this;
|
|
@@ -199,7 +199,6 @@ export class QueryResultState {
|
|
|
199
199
|
unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],
|
|
200
200
|
processed: [..._pages.processed, ...morePages.processed],
|
|
201
201
|
});
|
|
202
|
-
this.calcKeyedItemsMap();
|
|
203
202
|
}
|
|
204
203
|
setTotals(totals) {
|
|
205
204
|
this._totals = totals;
|
|
@@ -209,7 +208,6 @@ export class QueryResultState {
|
|
|
209
208
|
}
|
|
210
209
|
setPages(pages) {
|
|
211
210
|
this.setNewPages(pages);
|
|
212
|
-
this.calcKeyedItemsMap();
|
|
213
211
|
}
|
|
214
212
|
slice(start, end) {
|
|
215
213
|
const { _pages } = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResultState.js","sourceRoot":"","sources":["../../../src/state/QueryResultState.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAChF,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAiBrC,MAAM,OAAO,gBAAgB;IAY3B,IAAI,KAAK;QACP,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAUD,YAAY,MAAoC;
|
|
1
|
+
{"version":3,"file":"QueryResultState.js","sourceRoot":"","sources":["../../../src/state/QueryResultState.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,9 @@ export declare class QueryResultState<T, F extends FiltersMap> implements QueryR
|
|
|
17
17
|
_pages: Pages<T>;
|
|
18
18
|
_totals: Totals;
|
|
19
19
|
_supportTotal: boolean;
|
|
20
|
-
readonly _keyedItemsMap: Map<string, KeyedItem<T>>;
|
|
21
20
|
readonly fetchTotal?: FetchTotalState<T, F>;
|
|
22
21
|
get pages(): T[][];
|
|
22
|
+
get _keyedItemsMap(): Map<string, KeyedItem<T>>;
|
|
23
23
|
available: number | null;
|
|
24
24
|
status: QueryResultStatus<DataResultKeyed<T>, unknown>;
|
|
25
25
|
originQuery: ComputedQueryFull<F>;
|
|
@@ -46,7 +46,6 @@ export declare class QueryResultState<T, F extends FiltersMap> implements QueryR
|
|
|
46
46
|
addItems(newItems: T[]): {
|
|
47
47
|
rollback: () => void;
|
|
48
48
|
};
|
|
49
|
-
private calcKeyedItemsMap;
|
|
50
49
|
clear(): void;
|
|
51
50
|
addPages(morePages: Pages<T>): void;
|
|
52
51
|
setTotals(totals: Totals): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResultState.d.ts","sourceRoot":"","sources":["../../../src/state/QueryResultState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,eAAe,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC;IACb,WAAW,EAAE,CAAC,CAAC;CAChB;AAED,KAAK,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,KAAK,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,WAAW,sBAAsB,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU;IAC7D,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC;AAED,qBAAa,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CACnD,YAAW,WAAW,CAAC,CAAC,CAAC;IAEzB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAEtC,QAAQ,CAAC,UAAU,uBAAwC;IAC3D,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAsC;IACtD,OAAO,EAAE,MAAM,CAAoC;IACnD,aAAa,EAAE,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"QueryResultState.d.ts","sourceRoot":"","sources":["../../../src/state/QueryResultState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,eAAe,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC;IACb,WAAW,EAAE,CAAC,CAAC;CAChB;AAED,KAAK,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,KAAK,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,WAAW,sBAAsB,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU;IAC7D,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC;AAED,qBAAa,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CACnD,YAAW,WAAW,CAAC,CAAC,CAAC;IAEzB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAEtC,QAAQ,CAAC,UAAU,uBAAwC;IAC3D,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAsC;IACtD,OAAO,EAAE,MAAM,CAAoC;IACnD,aAAa,EAAE,OAAO,CAAS;IAE/B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,IAAI,KAAK,UAGR;IAED,IAAI,cAAc,8BAQjB;IAED,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,MAAM,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAIpD;IACF,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAEtB,MAAM,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;IAmChD,IAAI;IAQJ,IAAI,WAAW,kFAGd;IAED,OAAO,CAAC,WAAW,CAGhB;IAEH,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAiB/B;IAED,IAAI,SAAS,aAEZ;IAED,IAAI,qBAAqB,YAGxB;IAED,IAAI,OAAO,YAGV;IAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAIf;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,wCAEd;IAED,IAAI,YAAY,YAEf;IAED,IAAI,UAAU,YAGb;IAED,IAAI,UAAU,wBAEb;IAED,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,OAAO,CAAC,gBAAgB;IAqBxB,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE;;;IAqCzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;;;IAetB,KAAK;IAIL,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAQ5B,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,eAAe,CAAC,YAAY,EAAE,OAAO;IAIrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAIxB,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAQlC,IAAI,iBAAiB,YAWpB;IAED,IAAI,UAAU;;;MAMb;IAED,IAAI,IAAI,WAEP;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/bex-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.173.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kobi",
|
|
@@ -161,5 +161,5 @@
|
|
|
161
161
|
"wallaby": {
|
|
162
162
|
"autoDetect": true
|
|
163
163
|
},
|
|
164
|
-
"falconPackageHash": "
|
|
164
|
+
"falconPackageHash": "d91b73c9f4e5d0a0b6839e30a9e24a313f455a4c2109a77bbfe6fd67"
|
|
165
165
|
}
|