@wix/bex-core 2.36.0 → 2.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/cjs/InMemoryBackend/InMemoryBackend.js +6 -2
  2. package/dist/cjs/InMemoryBackend/InMemoryBackend.js.map +1 -1
  3. package/dist/cjs/assets/locale/messages_cs.json +1 -0
  4. package/dist/cjs/assets/locale/messages_da.json +1 -0
  5. package/dist/cjs/assets/locale/messages_de.json +1 -0
  6. package/dist/cjs/assets/locale/messages_en.json +2 -1
  7. package/dist/cjs/assets/locale/messages_es.json +1 -0
  8. package/dist/cjs/assets/locale/messages_fr.json +1 -0
  9. package/dist/cjs/assets/locale/messages_hi.json +1 -0
  10. package/dist/cjs/assets/locale/messages_id.json +1 -0
  11. package/dist/cjs/assets/locale/messages_it.json +1 -0
  12. package/dist/cjs/assets/locale/messages_ja.json +1 -0
  13. package/dist/cjs/assets/locale/messages_ko.json +1 -0
  14. package/dist/cjs/assets/locale/messages_nl.json +1 -0
  15. package/dist/cjs/assets/locale/messages_no.json +1 -0
  16. package/dist/cjs/assets/locale/messages_pl.json +1 -0
  17. package/dist/cjs/assets/locale/messages_pt.json +1 -0
  18. package/dist/cjs/assets/locale/messages_ru.json +1 -0
  19. package/dist/cjs/assets/locale/messages_sv.json +1 -0
  20. package/dist/cjs/assets/locale/messages_th.json +1 -0
  21. package/dist/cjs/assets/locale/messages_tr.json +1 -0
  22. package/dist/cjs/assets/locale/messages_uk.json +1 -0
  23. package/dist/cjs/assets/locale/messages_vi.json +1 -0
  24. package/dist/cjs/assets/locale/messages_visuale2e.json +2 -0
  25. package/dist/cjs/assets/locale/messages_zh.json +1 -0
  26. package/dist/cjs/model/actionMove.js.map +1 -1
  27. package/dist/cjs/services/translations.js.map +1 -1
  28. package/dist/cjs/state/CollectionOptimisticActions.js +2 -1
  29. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  30. package/dist/cjs/state/CollectionOptimisticProcessor.js +1 -0
  31. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  32. package/dist/cjs/state/index.js +7 -0
  33. package/dist/cjs/state/index.js.map +1 -1
  34. package/dist/cjs/state/optimistic-simulation/filterByApplyAllPatches.js +19 -0
  35. package/dist/cjs/state/optimistic-simulation/filterByApplyAllPatches.js.map +1 -0
  36. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js +3 -0
  37. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  38. package/dist/cjs/state/optimistic-simulation/orderByMoves.js +8 -0
  39. package/dist/cjs/state/optimistic-simulation/orderByMoves.js.map +1 -1
  40. package/dist/esm/InMemoryBackend/InMemoryBackend.js +8 -2
  41. package/dist/esm/InMemoryBackend/InMemoryBackend.js.map +1 -1
  42. package/dist/esm/assets/locale/messages_cs.json +1 -0
  43. package/dist/esm/assets/locale/messages_da.json +1 -0
  44. package/dist/esm/assets/locale/messages_de.json +1 -0
  45. package/dist/esm/assets/locale/messages_en.json +2 -1
  46. package/dist/esm/assets/locale/messages_es.json +1 -0
  47. package/dist/esm/assets/locale/messages_fr.json +1 -0
  48. package/dist/esm/assets/locale/messages_hi.json +1 -0
  49. package/dist/esm/assets/locale/messages_id.json +1 -0
  50. package/dist/esm/assets/locale/messages_it.json +1 -0
  51. package/dist/esm/assets/locale/messages_ja.json +1 -0
  52. package/dist/esm/assets/locale/messages_ko.json +1 -0
  53. package/dist/esm/assets/locale/messages_nl.json +1 -0
  54. package/dist/esm/assets/locale/messages_no.json +1 -0
  55. package/dist/esm/assets/locale/messages_pl.json +1 -0
  56. package/dist/esm/assets/locale/messages_pt.json +1 -0
  57. package/dist/esm/assets/locale/messages_ru.json +1 -0
  58. package/dist/esm/assets/locale/messages_sv.json +1 -0
  59. package/dist/esm/assets/locale/messages_th.json +1 -0
  60. package/dist/esm/assets/locale/messages_tr.json +1 -0
  61. package/dist/esm/assets/locale/messages_uk.json +1 -0
  62. package/dist/esm/assets/locale/messages_vi.json +1 -0
  63. package/dist/esm/assets/locale/messages_visuale2e.json +2 -0
  64. package/dist/esm/assets/locale/messages_zh.json +1 -0
  65. package/dist/esm/state/CollectionOptimisticActions.js +3 -1
  66. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  67. package/dist/esm/state/CollectionOptimisticProcessor.js +1 -0
  68. package/dist/esm/state/CollectionOptimisticProcessor.js.map +1 -1
  69. package/dist/esm/state/index.js +1 -0
  70. package/dist/esm/state/index.js.map +1 -1
  71. package/dist/esm/state/optimistic-simulation/filterByApplyAllPatches.js +10 -0
  72. package/dist/esm/state/optimistic-simulation/filterByApplyAllPatches.js.map +1 -0
  73. package/dist/esm/state/optimistic-simulation/mergePatchedItems.js +3 -0
  74. package/dist/esm/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  75. package/dist/esm/state/optimistic-simulation/orderByMoves.js +8 -1
  76. package/dist/esm/state/optimistic-simulation/orderByMoves.js.map +1 -1
  77. package/dist/types/InMemoryBackend/InMemoryBackend.d.ts +10 -6
  78. package/dist/types/InMemoryBackend/InMemoryBackend.d.ts.map +1 -1
  79. package/dist/types/model/actionMove.d.ts +1 -1
  80. package/dist/types/model/actionMove.d.ts.map +1 -1
  81. package/dist/types/services/translations.d.ts +1 -1
  82. package/dist/types/services/translations.d.ts.map +1 -1
  83. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  84. package/dist/types/state/CollectionOptimisticProcessor.d.ts.map +1 -1
  85. package/dist/types/state/index.d.ts +1 -0
  86. package/dist/types/state/index.d.ts.map +1 -1
  87. package/dist/types/state/optimistic-simulation/filterByApplyAllPatches.d.ts +5 -0
  88. package/dist/types/state/optimistic-simulation/filterByApplyAllPatches.d.ts.map +1 -0
  89. package/dist/types/state/optimistic-simulation/mergePatchedItems.d.ts.map +1 -1
  90. package/dist/types/state/optimistic-simulation/orderByMoves.d.ts +1 -0
  91. package/dist/types/state/optimistic-simulation/orderByMoves.d.ts.map +1 -1
  92. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","Map","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","query","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","sequences","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences = new Map<string, CollectionOptimisticSequenceExecutor>();\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences;\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.sequences =\n params.sequences ??\n new Map<string, CollectionOptimisticSequenceExecutor>();\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -126,6 +126,7 @@ class CollectionOptimisticProcessor {
126
126
  currentFiltersKeyHash: query.filtersKeyHash,
127
127
  itemKey,
128
128
  toMerge: itemToMerge,
129
+ itemPredicate,
129
130
  limit
130
131
  }) : (0, _orderByOrders.orderByOrders)(pageWithPatchedItems, itemToMerge, {
131
132
  orders,
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","orderByIteratee","limit","length","orders","_orderByMode","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n this.optimistic._orderByMode === 'orders'\n ? orderByIteratee(originQuery)\n : [];\n\n let finalPages = pages;\n\n finalPages = finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n });\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && this.optimistic._orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return this.optimistic._orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","orderByIteratee","limit","length","orders","_orderByMode","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n this.optimistic._orderByMode === 'orders'\n ? orderByIteratee(originQuery)\n : [];\n\n let finalPages = pages;\n\n finalPages = finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n });\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && this.optimistic._orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return this.optimistic._orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n itemPredicate,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -147,6 +147,13 @@ Object.keys(_CollectionOptimisticActions).forEach(function (key) {
147
147
  });
148
148
  var _CollectionOptimisticExecutor = require("./CollectionOptimisticExecutor");
149
149
  exports.EventuallyUpdated = _CollectionOptimisticExecutor.EventuallyUpdated;
150
+ var _CollectionOptimisticSequenceExecutor = require("./CollectionOptimisticSequenceExecutor");
151
+ Object.keys(_CollectionOptimisticSequenceExecutor).forEach(function (key) {
152
+ if (key === "default" || key === "__esModule") return;
153
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
154
+ if (key in exports && exports[key] === _CollectionOptimisticSequenceExecutor[key]) return;
155
+ exports[key] = _CollectionOptimisticSequenceExecutor[key];
156
+ });
150
157
  var _QueryResultSimulation = require("./QueryResultSimulation");
151
158
  Object.keys(_QueryResultSimulation).forEach(function (key) {
152
159
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_QueryState","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_SelectState","_QueryResultState","_CollectionState","_CollectionBIReporter","_ToggleState","_ModalState","_ArrayFilterState","_StringFilterState","_CustomFilterState","_RangeFilterState","_PromiseState","_PromisesState","_PickerState","_PaginationMode","_TaskState","_WixPatternsContainer","_ValueBox","_BulkSelectState","_CollectionOptimisticActions","_CollectionOptimisticExecutor","EventuallyUpdated","_QueryResultSimulation","_OnlineState","_ConditionalModalState","_TransitionState","_buildWixPatternsContainer","_warmUpPickerStandalone","_ExportState","_DataExtensionState","_CustomFieldModalState","_CollectionPageState","_PageState","_FormPageState","_SelectionStatus","_SelectionStatusWixPatternsPreset","_SidePanelState","_MultiCollectionSupport","_BulkActionModalState","_TextOverflowState","_resizeObserverCompat","_QueryPendingState","_mutationObserverCompat","_FedopsReporter","_CustomFieldsViewWidgetState","_onItemsCreated","_TagsState","_SortState"],"sources":["../../../src/state/index.ts"],"sourcesContent":["export * from './QueryState';\nexport * from './SelectState';\nexport * from './QueryResultState';\nexport * from './CollectionState';\nexport * from './CollectionBIReporter';\nexport * from './ToggleState';\nexport * from './ModalState';\nexport * from './ArrayFilterState';\nexport * from './StringFilterState';\nexport * from './CustomFilterState';\nexport * from './RangeFilterState';\nexport * from './PromiseState';\nexport * from './PromisesState';\nexport * from './PickerState';\nexport * from './PaginationMode';\nexport * from './TaskState';\nexport * from './WixPatternsContainer';\nexport * from './ValueBox';\nexport * from './BulkSelectState';\nexport * from './CollectionOptimisticActions';\nexport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nexport * from './QueryResultSimulation';\nexport * from './OnlineState';\nexport * from './ConditionalModalState';\nexport * from './TransitionState';\nexport * from './buildWixPatternsContainer';\nexport * from './warmUpPickerStandalone';\nexport * from './ExportState';\nexport * from './DataExtensionState';\nexport * from './CustomFieldModalState';\nexport * from './CollectionPageState';\nexport * from './PageState';\nexport * from './FormPageState';\nexport * from './SelectionStatus';\nexport * from './SelectionStatusWixPatternsPreset';\nexport * from './SidePanelState';\nexport * from './MultiCollectionSupport';\nexport * from './BulkActionModalState';\nexport * from './TextOverflowState';\nexport * from './resizeObserverCompat';\nexport * from './QueryPendingState';\nexport * from './mutationObserverCompat';\nexport * from './FedopsReporter';\nexport * from './CustomFieldsViewWidgetState';\nexport * from './onItemsCreated';\nexport * from './TagsState';\nexport * from './SortState';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_QueryState","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_SelectState","_QueryResultState","_CollectionState","_CollectionBIReporter","_ToggleState","_ModalState","_ArrayFilterState","_StringFilterState","_CustomFilterState","_RangeFilterState","_PromiseState","_PromisesState","_PickerState","_PaginationMode","_TaskState","_WixPatternsContainer","_ValueBox","_BulkSelectState","_CollectionOptimisticActions","_CollectionOptimisticExecutor","EventuallyUpdated","_CollectionOptimisticSequenceExecutor","_QueryResultSimulation","_OnlineState","_ConditionalModalState","_TransitionState","_buildWixPatternsContainer","_warmUpPickerStandalone","_ExportState","_DataExtensionState","_CustomFieldModalState","_CollectionPageState","_PageState","_FormPageState","_SelectionStatus","_SelectionStatusWixPatternsPreset","_SidePanelState","_MultiCollectionSupport","_BulkActionModalState","_TextOverflowState","_resizeObserverCompat","_QueryPendingState","_mutationObserverCompat","_FedopsReporter","_CustomFieldsViewWidgetState","_onItemsCreated","_TagsState","_SortState"],"sources":["../../../src/state/index.ts"],"sourcesContent":["export * from './QueryState';\nexport * from './SelectState';\nexport * from './QueryResultState';\nexport * from './CollectionState';\nexport * from './CollectionBIReporter';\nexport * from './ToggleState';\nexport * from './ModalState';\nexport * from './ArrayFilterState';\nexport * from './StringFilterState';\nexport * from './CustomFilterState';\nexport * from './RangeFilterState';\nexport * from './PromiseState';\nexport * from './PromisesState';\nexport * from './PickerState';\nexport * from './PaginationMode';\nexport * from './TaskState';\nexport * from './WixPatternsContainer';\nexport * from './ValueBox';\nexport * from './BulkSelectState';\nexport * from './CollectionOptimisticActions';\nexport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nexport * from './CollectionOptimisticSequenceExecutor';\nexport * from './QueryResultSimulation';\nexport * from './OnlineState';\nexport * from './ConditionalModalState';\nexport * from './TransitionState';\nexport * from './buildWixPatternsContainer';\nexport * from './warmUpPickerStandalone';\nexport * from './ExportState';\nexport * from './DataExtensionState';\nexport * from './CustomFieldModalState';\nexport * from './CollectionPageState';\nexport * from './PageState';\nexport * from './FormPageState';\nexport * from './SelectionStatus';\nexport * from './SelectionStatusWixPatternsPreset';\nexport * from './SidePanelState';\nexport * from './MultiCollectionSupport';\nexport * from './BulkActionModalState';\nexport * from './TextOverflowState';\nexport * from './resizeObserverCompat';\nexport * from './QueryPendingState';\nexport * from './mutationObserverCompat';\nexport * from './FedopsReporter';\nexport * from './CustomFieldsViewWidgetState';\nexport * from './onItemsCreated';\nexport * from './TagsState';\nexport * from './SortState';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.filterByApplyAllPatches = void 0;
5
+ const filterByApplyAllPatches = (patches, {
6
+ itemPredicate
7
+ }) => item => {
8
+ const i = patches.reduce((acc, {
9
+ patch
10
+ }) => {
11
+ return {
12
+ ...acc,
13
+ ...patch(item)
14
+ };
15
+ }, item);
16
+ return itemPredicate(i);
17
+ };
18
+ exports.filterByApplyAllPatches = filterByApplyAllPatches;
19
+ //# sourceMappingURL=filterByApplyAllPatches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["filterByApplyAllPatches","patches","itemPredicate","item","i","reduce","acc","patch","exports"],"sources":["../../../../src/state/optimistic-simulation/filterByApplyAllPatches.ts"],"sourcesContent":["import { OptimisticPatch } from '../CollectionOptimisticPatch';\n\nexport const filterByApplyAllPatches =\n <T>(\n patches: OptimisticPatch<T>[],\n { itemPredicate }: { itemPredicate: (item: T) => boolean },\n ) =>\n (item: T) => {\n const i = patches.reduce<T>((acc, { patch }) => {\n return {\n ...acc,\n ...patch(item),\n };\n }, item);\n\n return itemPredicate(i);\n };\n"],"mappings":";;;;AAEO,MAAMA,uBAAuB,GAClCA,CACEC,OAA6B,EAC7B;EAAEC;AAAuD,CAAC,KAE3DC,IAAO,IAAK;EACX,MAAMC,CAAC,GAAGH,OAAO,CAACI,MAAM,CAAI,CAACC,GAAG,EAAE;IAAEC;EAAM,CAAC,KAAK;IAC9C,OAAO;MACL,GAAGD,GAAG;MACN,GAAGC,KAAK,CAACJ,IAAI;IACf,CAAC;EACH,CAAC,EAAEA,IAAI,CAAC;EAER,OAAOD,aAAa,CAACE,CAAC,CAAC;AACzB,CAAC;AAACI,OAAA,CAAAR,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -26,6 +26,9 @@ function mergePatchedItems(toMerge, {
26
26
  if (!orders.length && keepPosition && originalItem != null && itemPredicate(originalItem)) {
27
27
  continue;
28
28
  }
29
+ if (!itemPredicate(item)) {
30
+ continue;
31
+ }
29
32
  pageWithPatchedItemsMapTmp.set(key, {
30
33
  item
31
34
  });
@@ -1 +1 @@
1
- {"version":3,"names":["mergePatchedItems","toMerge","page","itemKey","orders","itemPredicate","itemsToMerge","all","pageWithPatchedItemsMapTmp","Map","key","item","optimisticPatch","Array","from","entries","keepPosition","originalItems","originalItem","get","length","set","pageWithPatchedItemsMap","created","keys","has","delete","toInsert","orderByItem","values"],"sources":["../../../../src/state/optimistic-simulation/mergePatchedItems.ts"],"sourcesContent":["import { Order } from '../QueryResultSimulation';\nimport { OptimisticPatch } from '../CollectionOptimisticPatch';\n\nexport function mergePatchedItems<T>(\n toMerge: {\n all: Map<string, { item: T; optimisticPatch: OptimisticPatch<T> }>;\n created: Map<string, { item: T; optimisticPatch: OptimisticPatch<T> }>;\n },\n {\n page,\n itemKey,\n orders,\n itemPredicate,\n }: {\n page: T[];\n limit: number;\n itemKey: (item: T) => string;\n orders: Order<T>[];\n itemPredicate: (item: T) => boolean;\n },\n) {\n const itemsToMerge = toMerge.all;\n\n // merge items into page. replace if already exists in page. order by original if `keepPosition=true`\n const pageWithPatchedItemsMapTmp = new Map<\n string,\n { item: T; orderByItem?: T }\n >();\n\n for (const [key, { item, optimisticPatch }] of Array.from(\n itemsToMerge.entries(),\n )) {\n const { keepPosition, originalItems } = optimisticPatch;\n const originalItem = originalItems.get(key);\n // if `order` is empty (can't simulate ordering) and keepPosition=true and item didn't match current filtering before update\n // skip on pushing the item into the page\n if (\n !orders.length &&\n keepPosition &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n continue;\n }\n\n pageWithPatchedItemsMapTmp.set(key, { item });\n }\n\n // place \"type=createMany\" items first\n const pageWithPatchedItemsMap = new Map<\n string,\n { item: T; orderByItem?: T }\n >();\n\n for (const key of toMerge.created.keys()) {\n if (pageWithPatchedItemsMapTmp.has(key)) {\n pageWithPatchedItemsMap.set(key, {\n item: pageWithPatchedItemsMapTmp.get(key)!.item,\n });\n pageWithPatchedItemsMapTmp.delete(key);\n }\n }\n\n for (const [key, { item }] of Array.from(\n pageWithPatchedItemsMapTmp.entries(),\n )) {\n pageWithPatchedItemsMap.set(key, { item });\n }\n\n for (const item of page) {\n const key = itemKey(item);\n const toInsert = itemsToMerge.get(key);\n\n if (toInsert && toInsert.optimisticPatch.keepPosition) {\n pageWithPatchedItemsMap.delete(key);\n pageWithPatchedItemsMap.set(key, {\n item: toInsert.item,\n orderByItem: item,\n });\n } else if (!toInsert) {\n pageWithPatchedItemsMap.set(key, { item });\n }\n }\n\n return Array.from(pageWithPatchedItemsMap.values());\n}\n"],"mappings":";;;;AAGO,SAASA,iBAAiBA,CAC/BC,OAGC,EACD;EACEC,IAAI;EACJC,OAAO;EACPC,MAAM;EACNC;AAOF,CAAC,EACD;EACA,MAAMC,YAAY,GAAGL,OAAO,CAACM,GAAG;;EAEhC;EACA,MAAMC,0BAA0B,GAAG,IAAIC,GAAG,CAGxC,CAAC;EAEH,KAAK,MAAM,CAACC,GAAG,EAAE;IAAEC,IAAI;IAAEC;EAAgB,CAAC,CAAC,IAAIC,KAAK,CAACC,IAAI,CACvDR,YAAY,CAACS,OAAO,CAAC,CACvB,CAAC,EAAE;IACD,MAAM;MAAEC,YAAY;MAAEC;IAAc,CAAC,GAAGL,eAAe;IACvD,MAAMM,YAAY,GAAGD,aAAa,CAACE,GAAG,CAACT,GAAG,CAAC;IAC3C;IACA;IACA,IACE,CAACN,MAAM,CAACgB,MAAM,IACdJ,YAAY,IACZE,YAAY,IAAI,IAAI,IACpBb,aAAa,CAACa,YAAY,CAAC,EAC3B;MACA;IACF;IAEAV,0BAA0B,CAACa,GAAG,CAACX,GAAG,EAAE;MAAEC;IAAK,CAAC,CAAC;EAC/C;;EAEA;EACA,MAAMW,uBAAuB,GAAG,IAAIb,GAAG,CAGrC,CAAC;EAEH,KAAK,MAAMC,GAAG,IAAIT,OAAO,CAACsB,OAAO,CAACC,IAAI,CAAC,CAAC,EAAE;IACxC,IAAIhB,0BAA0B,CAACiB,GAAG,CAACf,GAAG,CAAC,EAAE;MACvCY,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAC/BC,IAAI,EAAEH,0BAA0B,CAACW,GAAG,CAACT,GAAG,CAAC,CAAEC;MAC7C,CAAC,CAAC;MACFH,0BAA0B,CAACkB,MAAM,CAAChB,GAAG,CAAC;IACxC;EACF;EAEA,KAAK,MAAM,CAACA,GAAG,EAAE;IAAEC;EAAK,CAAC,CAAC,IAAIE,KAAK,CAACC,IAAI,CACtCN,0BAA0B,CAACO,OAAO,CAAC,CACrC,CAAC,EAAE;IACDO,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;MAAEC;IAAK,CAAC,CAAC;EAC5C;EAEA,KAAK,MAAMA,IAAI,IAAIT,IAAI,EAAE;IACvB,MAAMQ,GAAG,GAAGP,OAAO,CAACQ,IAAI,CAAC;IACzB,MAAMgB,QAAQ,GAAGrB,YAAY,CAACa,GAAG,CAACT,GAAG,CAAC;IAEtC,IAAIiB,QAAQ,IAAIA,QAAQ,CAACf,eAAe,CAACI,YAAY,EAAE;MACrDM,uBAAuB,CAACI,MAAM,CAAChB,GAAG,CAAC;MACnCY,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAC/BC,IAAI,EAAEgB,QAAQ,CAAChB,IAAI;QACnBiB,WAAW,EAAEjB;MACf,CAAC,CAAC;IACJ,CAAC,MAAM,IAAI,CAACgB,QAAQ,EAAE;MACpBL,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAAEC;MAAK,CAAC,CAAC;IAC5C;EACF;EAEA,OAAOE,KAAK,CAACC,IAAI,CAACQ,uBAAuB,CAACO,MAAM,CAAC,CAAC,CAAC;AACrD","ignoreList":[]}
1
+ {"version":3,"names":["mergePatchedItems","toMerge","page","itemKey","orders","itemPredicate","itemsToMerge","all","pageWithPatchedItemsMapTmp","Map","key","item","optimisticPatch","Array","from","entries","keepPosition","originalItems","originalItem","get","length","set","pageWithPatchedItemsMap","created","keys","has","delete","toInsert","orderByItem","values"],"sources":["../../../../src/state/optimistic-simulation/mergePatchedItems.ts"],"sourcesContent":["import { Order } from '../QueryResultSimulation';\nimport { OptimisticPatch } from '../CollectionOptimisticPatch';\n\nexport function mergePatchedItems<T>(\n toMerge: {\n all: Map<string, { item: T; optimisticPatch: OptimisticPatch<T> }>;\n created: Map<string, { item: T; optimisticPatch: OptimisticPatch<T> }>;\n },\n {\n page,\n itemKey,\n orders,\n itemPredicate,\n }: {\n page: T[];\n limit: number;\n itemKey: (item: T) => string;\n orders: Order<T>[];\n itemPredicate: (item: T) => boolean;\n },\n) {\n const itemsToMerge = toMerge.all;\n\n // merge items into page. replace if already exists in page. order by original if `keepPosition=true`\n const pageWithPatchedItemsMapTmp = new Map<\n string,\n { item: T; orderByItem?: T }\n >();\n\n for (const [key, { item, optimisticPatch }] of Array.from(\n itemsToMerge.entries(),\n )) {\n const { keepPosition, originalItems } = optimisticPatch;\n const originalItem = originalItems.get(key);\n // if `order` is empty (can't simulate ordering) and keepPosition=true and item didn't match current filtering before update\n // skip on pushing the item into the page\n if (\n !orders.length &&\n keepPosition &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n continue;\n }\n\n if (!itemPredicate(item)) {\n continue;\n }\n\n pageWithPatchedItemsMapTmp.set(key, { item });\n }\n\n // place \"type=createMany\" items first\n const pageWithPatchedItemsMap = new Map<\n string,\n { item: T; orderByItem?: T }\n >();\n\n for (const key of toMerge.created.keys()) {\n if (pageWithPatchedItemsMapTmp.has(key)) {\n pageWithPatchedItemsMap.set(key, {\n item: pageWithPatchedItemsMapTmp.get(key)!.item,\n });\n pageWithPatchedItemsMapTmp.delete(key);\n }\n }\n\n for (const [key, { item }] of Array.from(\n pageWithPatchedItemsMapTmp.entries(),\n )) {\n pageWithPatchedItemsMap.set(key, { item });\n }\n\n for (const item of page) {\n const key = itemKey(item);\n const toInsert = itemsToMerge.get(key);\n\n if (toInsert && toInsert.optimisticPatch.keepPosition) {\n pageWithPatchedItemsMap.delete(key);\n pageWithPatchedItemsMap.set(key, {\n item: toInsert.item,\n orderByItem: item,\n });\n } else if (!toInsert) {\n pageWithPatchedItemsMap.set(key, { item });\n }\n }\n\n return Array.from(pageWithPatchedItemsMap.values());\n}\n"],"mappings":";;;;AAGO,SAASA,iBAAiBA,CAC/BC,OAGC,EACD;EACEC,IAAI;EACJC,OAAO;EACPC,MAAM;EACNC;AAOF,CAAC,EACD;EACA,MAAMC,YAAY,GAAGL,OAAO,CAACM,GAAG;;EAEhC;EACA,MAAMC,0BAA0B,GAAG,IAAIC,GAAG,CAGxC,CAAC;EAEH,KAAK,MAAM,CAACC,GAAG,EAAE;IAAEC,IAAI;IAAEC;EAAgB,CAAC,CAAC,IAAIC,KAAK,CAACC,IAAI,CACvDR,YAAY,CAACS,OAAO,CAAC,CACvB,CAAC,EAAE;IACD,MAAM;MAAEC,YAAY;MAAEC;IAAc,CAAC,GAAGL,eAAe;IACvD,MAAMM,YAAY,GAAGD,aAAa,CAACE,GAAG,CAACT,GAAG,CAAC;IAC3C;IACA;IACA,IACE,CAACN,MAAM,CAACgB,MAAM,IACdJ,YAAY,IACZE,YAAY,IAAI,IAAI,IACpBb,aAAa,CAACa,YAAY,CAAC,EAC3B;MACA;IACF;IAEA,IAAI,CAACb,aAAa,CAACM,IAAI,CAAC,EAAE;MACxB;IACF;IAEAH,0BAA0B,CAACa,GAAG,CAACX,GAAG,EAAE;MAAEC;IAAK,CAAC,CAAC;EAC/C;;EAEA;EACA,MAAMW,uBAAuB,GAAG,IAAIb,GAAG,CAGrC,CAAC;EAEH,KAAK,MAAMC,GAAG,IAAIT,OAAO,CAACsB,OAAO,CAACC,IAAI,CAAC,CAAC,EAAE;IACxC,IAAIhB,0BAA0B,CAACiB,GAAG,CAACf,GAAG,CAAC,EAAE;MACvCY,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAC/BC,IAAI,EAAEH,0BAA0B,CAACW,GAAG,CAACT,GAAG,CAAC,CAAEC;MAC7C,CAAC,CAAC;MACFH,0BAA0B,CAACkB,MAAM,CAAChB,GAAG,CAAC;IACxC;EACF;EAEA,KAAK,MAAM,CAACA,GAAG,EAAE;IAAEC;EAAK,CAAC,CAAC,IAAIE,KAAK,CAACC,IAAI,CACtCN,0BAA0B,CAACO,OAAO,CAAC,CACrC,CAAC,EAAE;IACDO,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;MAAEC;IAAK,CAAC,CAAC;EAC5C;EAEA,KAAK,MAAMA,IAAI,IAAIT,IAAI,EAAE;IACvB,MAAMQ,GAAG,GAAGP,OAAO,CAACQ,IAAI,CAAC;IACzB,MAAMgB,QAAQ,GAAGrB,YAAY,CAACa,GAAG,CAACT,GAAG,CAAC;IAEtC,IAAIiB,QAAQ,IAAIA,QAAQ,CAACf,eAAe,CAACI,YAAY,EAAE;MACrDM,uBAAuB,CAACI,MAAM,CAAChB,GAAG,CAAC;MACnCY,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAC/BC,IAAI,EAAEgB,QAAQ,CAAChB,IAAI;QACnBiB,WAAW,EAAEjB;MACf,CAAC,CAAC;IACJ,CAAC,MAAM,IAAI,CAACgB,QAAQ,EAAE;MACpBL,uBAAuB,CAACD,GAAG,CAACX,GAAG,EAAE;QAAEC;MAAK,CAAC,CAAC;IAC5C;EACF;EAEA,OAAOE,KAAK,CAACC,IAAI,CAACQ,uBAAuB,CAACO,MAAM,CAAC,CAAC,CAAC;AACrD","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports.orderByMoves = orderByMoves;
5
5
  var _trimAddedItemsFromPagePredicate = require("./trimAddedItemsFromPagePredicate");
6
+ var _filterByApplyAllPatches = require("./filterByApplyAllPatches");
6
7
  function orderByMoves(params) {
7
8
  const {
8
9
  pageWithPatchedItems,
@@ -11,6 +12,7 @@ function orderByMoves(params) {
11
12
  itemKey,
12
13
  pageIndex,
13
14
  toMerge,
15
+ itemPredicate,
14
16
  limit
15
17
  } = params;
16
18
  const newPage = pageWithPatchedItems.map(({
@@ -20,6 +22,9 @@ function orderByMoves(params) {
20
22
  itemKey,
21
23
  limit
22
24
  }));
25
+ const patchedItemPredicate = (0, _filterByApplyAllPatches.filterByApplyAllPatches)(patches, {
26
+ itemPredicate
27
+ });
23
28
  for (const {
24
29
  move
25
30
  } of patches) {
@@ -34,6 +39,9 @@ function orderByMoves(params) {
34
39
  move.from.item = newPage[fromIndex];
35
40
  newPage.splice(fromIndex, 1);
36
41
  }
42
+ if (!patchedItemPredicate(move.from.item)) {
43
+ continue;
44
+ }
37
45
  if (toKey != null) {
38
46
  const toIndex = newPage.findIndex(item => toKey === itemKey(item));
39
47
  if (toIndex !== -1) {
@@ -1 +1 @@
1
- {"version":3,"names":["_trimAddedItemsFromPagePredicate","require","orderByMoves","params","pageWithPatchedItems","patches","currentFiltersKeyHash","itemKey","pageIndex","toMerge","limit","newPage","map","item","filter","trimAddedItemsFromPagePredicate","addedItems","all","move","_move$after","filtersKeyHash","fromKey","from","key","toKey","after","fromIndex","findIndex","splice","toIndex"],"sources":["../../../../src/state/optimistic-simulation/orderByMoves.ts"],"sourcesContent":["import { OptimisticPatch } from '../CollectionOptimisticPatch';\nimport { trimAddedItemsFromPagePredicate } from './trimAddedItemsFromPagePredicate';\n\nexport interface OrderByMovesParams<T> {\n pageWithPatchedItems: { item: T; orderByItem?: T }[];\n patches: OptimisticPatch<T>[];\n pageIndex: number;\n currentFiltersKeyHash: string;\n itemKey: (item: T) => string;\n toMerge: {\n all: Map<string, { item: T; keepPosition?: boolean }>;\n created: Map<string, { item: T; keepPosition?: boolean }>;\n };\n limit: number;\n}\n\nexport function orderByMoves<T>(params: OrderByMovesParams<T>): T[] {\n const {\n pageWithPatchedItems,\n patches,\n currentFiltersKeyHash,\n itemKey,\n pageIndex,\n toMerge,\n limit,\n } = params;\n const newPage = pageWithPatchedItems\n .map(({ item }) => item)\n .filter(\n trimAddedItemsFromPagePredicate({\n addedItems: toMerge.all,\n itemKey,\n limit,\n }),\n );\n\n for (const { move } of patches) {\n if (move == null || move.filtersKeyHash !== currentFiltersKeyHash) {\n continue;\n }\n\n const fromKey = move.from.key;\n const toKey = move.after?.key;\n\n const fromIndex = newPage.findIndex((item) => fromKey === itemKey(item));\n if (fromIndex !== -1) {\n move.from.item = newPage[fromIndex];\n newPage.splice(fromIndex, 1);\n }\n\n if (toKey != null) {\n const toIndex = newPage.findIndex((item) => toKey === itemKey(item));\n if (toIndex !== -1) {\n newPage.splice(toIndex + 1, 0, move.from.item);\n }\n } else if (pageIndex === 0) {\n newPage.splice(0, 0, move.from.item);\n }\n }\n\n return newPage;\n}\n"],"mappings":";;;;AACA,IAAAA,gCAAA,GAAAC,OAAA;AAeO,SAASC,YAAYA,CAAIC,MAA6B,EAAO;EAClE,MAAM;IACJC,oBAAoB;IACpBC,OAAO;IACPC,qBAAqB;IACrBC,OAAO;IACPC,SAAS;IACTC,OAAO;IACPC;EACF,CAAC,GAAGP,MAAM;EACV,MAAMQ,OAAO,GAAGP,oBAAoB,CACjCQ,GAAG,CAAC,CAAC;IAAEC;EAAK,CAAC,KAAKA,IAAI,CAAC,CACvBC,MAAM,CACL,IAAAC,gEAA+B,EAAC;IAC9BC,UAAU,EAAEP,OAAO,CAACQ,GAAG;IACvBV,OAAO;IACPG;EACF,CAAC,CACH,CAAC;EAEH,KAAK,MAAM;IAAEQ;EAAK,CAAC,IAAIb,OAAO,EAAE;IAAA,IAAAc,WAAA;IAC9B,IAAID,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACE,cAAc,KAAKd,qBAAqB,EAAE;MACjE;IACF;IAEA,MAAMe,OAAO,GAAGH,IAAI,CAACI,IAAI,CAACC,GAAG;IAC7B,MAAMC,KAAK,IAAAL,WAAA,GAAGD,IAAI,CAACO,KAAK,qBAAVN,WAAA,CAAYI,GAAG;IAE7B,MAAMG,SAAS,GAAGf,OAAO,CAACgB,SAAS,CAAEd,IAAI,IAAKQ,OAAO,KAAKd,OAAO,CAACM,IAAI,CAAC,CAAC;IACxE,IAAIa,SAAS,KAAK,CAAC,CAAC,EAAE;MACpBR,IAAI,CAACI,IAAI,CAACT,IAAI,GAAGF,OAAO,CAACe,SAAS,CAAC;MACnCf,OAAO,CAACiB,MAAM,CAACF,SAAS,EAAE,CAAC,CAAC;IAC9B;IAEA,IAAIF,KAAK,IAAI,IAAI,EAAE;MACjB,MAAMK,OAAO,GAAGlB,OAAO,CAACgB,SAAS,CAAEd,IAAI,IAAKW,KAAK,KAAKjB,OAAO,CAACM,IAAI,CAAC,CAAC;MACpE,IAAIgB,OAAO,KAAK,CAAC,CAAC,EAAE;QAClBlB,OAAO,CAACiB,MAAM,CAACC,OAAO,GAAG,CAAC,EAAE,CAAC,EAAEX,IAAI,CAACI,IAAI,CAACT,IAAI,CAAC;MAChD;IACF,CAAC,MAAM,IAAIL,SAAS,KAAK,CAAC,EAAE;MAC1BG,OAAO,CAACiB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAEV,IAAI,CAACI,IAAI,CAACT,IAAI,CAAC;IACtC;EACF;EAEA,OAAOF,OAAO;AAChB","ignoreList":[]}
1
+ {"version":3,"names":["_trimAddedItemsFromPagePredicate","require","_filterByApplyAllPatches","orderByMoves","params","pageWithPatchedItems","patches","currentFiltersKeyHash","itemKey","pageIndex","toMerge","itemPredicate","limit","newPage","map","item","filter","trimAddedItemsFromPagePredicate","addedItems","all","patchedItemPredicate","filterByApplyAllPatches","move","_move$after","filtersKeyHash","fromKey","from","key","toKey","after","fromIndex","findIndex","splice","toIndex"],"sources":["../../../../src/state/optimistic-simulation/orderByMoves.ts"],"sourcesContent":["import { OptimisticPatch } from '../CollectionOptimisticPatch';\nimport { trimAddedItemsFromPagePredicate } from './trimAddedItemsFromPagePredicate';\nimport { filterByApplyAllPatches } from './filterByApplyAllPatches';\n\nexport interface OrderByMovesParams<T> {\n pageWithPatchedItems: { item: T; orderByItem?: T }[];\n patches: OptimisticPatch<T>[];\n pageIndex: number;\n currentFiltersKeyHash: string;\n itemKey: (item: T) => string;\n toMerge: {\n all: Map<string, { item: T; keepPosition?: boolean }>;\n created: Map<string, { item: T; keepPosition?: boolean }>;\n };\n itemPredicate: (item: T) => boolean;\n limit: number;\n}\n\nexport function orderByMoves<T>(params: OrderByMovesParams<T>): T[] {\n const {\n pageWithPatchedItems,\n patches,\n currentFiltersKeyHash,\n itemKey,\n pageIndex,\n toMerge,\n itemPredicate,\n limit,\n } = params;\n const newPage = pageWithPatchedItems\n .map(({ item }) => item)\n .filter(\n trimAddedItemsFromPagePredicate({\n addedItems: toMerge.all,\n itemKey,\n limit,\n }),\n );\n\n const patchedItemPredicate = filterByApplyAllPatches(patches, {\n itemPredicate,\n });\n\n for (const { move } of patches) {\n if (move == null || move.filtersKeyHash !== currentFiltersKeyHash) {\n continue;\n }\n\n const fromKey = move.from.key;\n const toKey = move.after?.key;\n\n const fromIndex = newPage.findIndex((item) => fromKey === itemKey(item));\n if (fromIndex !== -1) {\n move.from.item = newPage[fromIndex];\n newPage.splice(fromIndex, 1);\n }\n\n if (!patchedItemPredicate(move.from.item)) {\n continue;\n }\n\n if (toKey != null) {\n const toIndex = newPage.findIndex((item) => toKey === itemKey(item));\n if (toIndex !== -1) {\n newPage.splice(toIndex + 1, 0, move.from.item);\n }\n } else if (pageIndex === 0) {\n newPage.splice(0, 0, move.from.item);\n }\n }\n\n return newPage;\n}\n"],"mappings":";;;;AACA,IAAAA,gCAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAgBO,SAASE,YAAYA,CAAIC,MAA6B,EAAO;EAClE,MAAM;IACJC,oBAAoB;IACpBC,OAAO;IACPC,qBAAqB;IACrBC,OAAO;IACPC,SAAS;IACTC,OAAO;IACPC,aAAa;IACbC;EACF,CAAC,GAAGR,MAAM;EACV,MAAMS,OAAO,GAAGR,oBAAoB,CACjCS,GAAG,CAAC,CAAC;IAAEC;EAAK,CAAC,KAAKA,IAAI,CAAC,CACvBC,MAAM,CACL,IAAAC,gEAA+B,EAAC;IAC9BC,UAAU,EAAER,OAAO,CAACS,GAAG;IACvBX,OAAO;IACPI;EACF,CAAC,CACH,CAAC;EAEH,MAAMQ,oBAAoB,GAAG,IAAAC,gDAAuB,EAACf,OAAO,EAAE;IAC5DK;EACF,CAAC,CAAC;EAEF,KAAK,MAAM;IAAEW;EAAK,CAAC,IAAIhB,OAAO,EAAE;IAAA,IAAAiB,WAAA;IAC9B,IAAID,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACE,cAAc,KAAKjB,qBAAqB,EAAE;MACjE;IACF;IAEA,MAAMkB,OAAO,GAAGH,IAAI,CAACI,IAAI,CAACC,GAAG;IAC7B,MAAMC,KAAK,IAAAL,WAAA,GAAGD,IAAI,CAACO,KAAK,qBAAVN,WAAA,CAAYI,GAAG;IAE7B,MAAMG,SAAS,GAAGjB,OAAO,CAACkB,SAAS,CAAEhB,IAAI,IAAKU,OAAO,KAAKjB,OAAO,CAACO,IAAI,CAAC,CAAC;IACxE,IAAIe,SAAS,KAAK,CAAC,CAAC,EAAE;MACpBR,IAAI,CAACI,IAAI,CAACX,IAAI,GAAGF,OAAO,CAACiB,SAAS,CAAC;MACnCjB,OAAO,CAACmB,MAAM,CAACF,SAAS,EAAE,CAAC,CAAC;IAC9B;IAEA,IAAI,CAACV,oBAAoB,CAACE,IAAI,CAACI,IAAI,CAACX,IAAI,CAAC,EAAE;MACzC;IACF;IAEA,IAAIa,KAAK,IAAI,IAAI,EAAE;MACjB,MAAMK,OAAO,GAAGpB,OAAO,CAACkB,SAAS,CAAEhB,IAAI,IAAKa,KAAK,KAAKpB,OAAO,CAACO,IAAI,CAAC,CAAC;MACpE,IAAIkB,OAAO,KAAK,CAAC,CAAC,EAAE;QAClBpB,OAAO,CAACmB,MAAM,CAACC,OAAO,GAAG,CAAC,EAAE,CAAC,EAAEX,IAAI,CAACI,IAAI,CAACX,IAAI,CAAC;MAChD;IACF,CAAC,MAAM,IAAIN,SAAS,KAAK,CAAC,EAAE;MAC1BI,OAAO,CAACmB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAEV,IAAI,CAACI,IAAI,CAACX,IAAI,CAAC;IACtC;EACF;EAEA,OAAOF,OAAO;AAChB","ignoreList":[]}
@@ -43,6 +43,7 @@ export class InMemoryBackend {
43
43
  this.projection = params.projection;
44
44
  this.initialTotal = params.total;
45
45
  this.delay = params.delay ?? { min: 0, max: 5 };
46
+ this.excludeOrdinalFilters = params.excludeOrdinalFilters ?? [];
46
47
  this.map = new Map(this.newList(params.total).map((item) => [this.itemKey(item), item]));
47
48
  }
48
49
  async simulateAsyncDelay({ delay, throwError } = {}) {
@@ -121,8 +122,12 @@ export class InMemoryBackend {
121
122
  this.events.emit('updatedMany');
122
123
  }
123
124
  _getOrdinal(filters) {
124
- const { categoriesOrdinal } = this;
125
- const category = hashQueryKey([{ filters }]);
125
+ const { categoriesOrdinal, excludeOrdinalFilters } = this;
126
+ const category = hashQueryKey([
127
+ {
128
+ filters: Object.fromEntries(Object.entries(filters).filter(([key]) => !excludeOrdinalFilters.includes(key))),
129
+ },
130
+ ]);
126
131
  const ordinal = categoriesOrdinal.get(category) ?? new Map();
127
132
  if (!categoriesOrdinal.has(category)) {
128
133
  categoriesOrdinal.set(category, ordinal);
@@ -131,6 +136,7 @@ export class InMemoryBackend {
131
136
  }
132
137
  async move(events, params = {}) {
133
138
  const { itemKey } = this;
139
+ this.events.emit('moveStart', events);
134
140
  await this.simulateAsyncDelay(params);
135
141
  for (const { from, after, filters } of events) {
136
142
  const ordinal = this._getOrdinal(filters);