@wix/bex-core 2.353.0 → 2.354.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +20 -16
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +11 -0
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/QueryResultState.js +62 -1
- package/dist/cjs/state/QueryResultState.js.map +1 -1
- package/dist/cjs/types/Schema.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js +17 -14
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/CollectionState.js +11 -0
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/QueryResultState.js +58 -1
- package/dist/esm/state/QueryResultState.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +2 -0
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/QueryResultState.d.ts +6 -0
- package/dist/types/state/QueryResultState.d.ts.map +1 -1
- package/dist/types/types/Schema.d.ts +10 -1
- package/dist/types/types/Schema.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_state","_services","_util","_useExport","_useImport","_createCollection","_useCollectionDatasetSync","_hooks","CollectionConfigWithConditionals","CollectionFactory","useSyncProps","useSelector","_core","QueryCache","_DeepPartial","DeepPartial","_SchemaSource","defineSchemaSource","sourceFetchData","_FieldTypeDefinition"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './model';\nexport * from './state';\nexport * from './services';\nexport * from './util';\nexport * from './hooks/useExport';\nexport * from './hooks/useImport';\nexport * from './hooks/createCollection';\nexport * from './hooks/useCollectionDatasetSync';\nexport {\n CollectionConfigWithConditionals,\n CollectionFactory,\n useSyncProps,\n useSelector,\n} from './hooks';\nexport { QueryCache } from 'react-query/core';\nexport { DeepPartial } from './types/DeepPartial';\nexport type {\n PatternsFieldType,\n QueryOperator,\n NumberRange,\n StringLengthRange,\n SpecificValue,\n BaseReferenceField,\n ReferenceField,\n MultiReferenceField,\n NonReferenceField,\n Field,\n FieldSpec,\n} from './types/Field';\nexport type {\n Schema,\n SchemaPermissions,\n ItemPermissions,\n RemoveItemDisabledResult,\n CollectionBackendBase,\n CollectionBackend,\n FieldActions,\n FieldSettings,\n BackupConfig,\n BulkInsertResult,\n BulkInsertError,\n LoadedSchema,\n SchemaLoader,\n FindOptions,\n} from './types/Schema';\nexport type {\n FieldsSource,\n FieldManagement,\n FieldArchive,\n ArchivedFieldItem,\n ResolvedFieldTypeOption,\n FieldPermissions,\n FieldDraft,\n FieldModalText,\n FieldModalSubtitle,\n FieldPiiWarning,\n FieldModalCollectionOption,\n FieldModalCollectionOptionsLoader,\n FieldModalCollectionInput,\n FieldSettingsProps,\n FieldSettingsSection,\n} from './types/FieldsSource';\nexport { defineSchemaSource, sourceFetchData } from './types/SchemaSource';\nexport type {\n SchemaSource,\n SchemaSourceInput,\n FieldModalInput,\n FieldTypeOption,\n} from './types/SchemaSource';\nexport * from './types/FieldTypeDefinition';\nexport type {\n CursorQuery,\n OffsetQuery,\n CursorQueryResult,\n OffsetQueryResult,\n CursorFetchDataFn,\n OffsetFetchDataFn,\n FetchTotalFn,\n} from './hooks/paginationModeConfig';\n"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_model","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_state","_services","_util","_useExport","_useImport","_createCollection","_useCollectionDatasetSync","_hooks","CollectionConfigWithConditionals","CollectionFactory","useSyncProps","useSelector","_core","QueryCache","_DeepPartial","DeepPartial","_SchemaSource","defineSchemaSource","sourceFetchData","_FieldTypeDefinition"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './model';\nexport * from './state';\nexport * from './services';\nexport * from './util';\nexport * from './hooks/useExport';\nexport * from './hooks/useImport';\nexport * from './hooks/createCollection';\nexport * from './hooks/useCollectionDatasetSync';\nexport {\n CollectionConfigWithConditionals,\n CollectionFactory,\n useSyncProps,\n useSelector,\n} from './hooks';\nexport { QueryCache } from 'react-query/core';\nexport { DeepPartial } from './types/DeepPartial';\nexport type {\n PatternsFieldType,\n QueryOperator,\n NumberRange,\n StringLengthRange,\n SpecificValue,\n BaseReferenceField,\n ReferenceField,\n MultiReferenceField,\n NonReferenceField,\n Field,\n FieldSpec,\n} from './types/Field';\nexport type {\n Schema,\n SchemaPermissions,\n ItemPermissions,\n RemoveItemDisabledResult,\n CollectionBackendBase,\n CollectionBackend,\n FieldActions,\n FieldSettings,\n BackupConfig,\n BulkInsertResult,\n BulkInsertError,\n CollectionUpdateContext,\n LoadedSchema,\n SchemaLoader,\n FindOptions,\n} from './types/Schema';\nexport type {\n FieldsSource,\n FieldManagement,\n FieldArchive,\n ArchivedFieldItem,\n ResolvedFieldTypeOption,\n FieldPermissions,\n FieldDraft,\n FieldModalText,\n FieldModalSubtitle,\n FieldPiiWarning,\n FieldModalCollectionOption,\n FieldModalCollectionOptionsLoader,\n FieldModalCollectionInput,\n FieldSettingsProps,\n FieldSettingsSection,\n} from './types/FieldsSource';\nexport { defineSchemaSource, sourceFetchData } from './types/SchemaSource';\nexport type {\n SchemaSource,\n SchemaSourceInput,\n FieldModalInput,\n FieldTypeOption,\n} from './types/SchemaSource';\nexport * from './types/FieldTypeDefinition';\nexport type {\n CursorQuery,\n OffsetQuery,\n CursorQueryResult,\n OffsetQueryResult,\n CursorFetchDataFn,\n OffsetFetchDataFn,\n FetchTotalFn,\n} from './hooks/paginationModeConfig';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -268,6 +268,12 @@ class CollectionOptimisticActions {
|
|
|
268
268
|
onTryAgain,
|
|
269
269
|
onError
|
|
270
270
|
} = params;
|
|
271
|
+
const originalItems = new Map(patchedItems.map(item => {
|
|
272
|
+
var _result$get;
|
|
273
|
+
const key = itemKey(item);
|
|
274
|
+
const originalItem = ((_result$get = result.get(key)) == null ? void 0 : _result$get.item) ?? item;
|
|
275
|
+
return [key, originalItem];
|
|
276
|
+
}));
|
|
271
277
|
const optimisticPatch = new _CollectionOptimisticPatch.OptimisticPatch({
|
|
272
278
|
queryCache: collection.queryCache,
|
|
273
279
|
queryNames: this._queryNames,
|
|
@@ -275,12 +281,7 @@ class CollectionOptimisticActions {
|
|
|
275
281
|
actionType: 'updateMany',
|
|
276
282
|
keepPosition,
|
|
277
283
|
patchedItems: new Map(patchedItems.map(item => [itemKey(item), item])),
|
|
278
|
-
originalItems
|
|
279
|
-
var _result$get;
|
|
280
|
-
const key = itemKey(item);
|
|
281
|
-
const originalItem = ((_result$get = result.get(itemKey(item))) == null ? void 0 : _result$get.item) ?? item;
|
|
282
|
-
return [key, originalItem];
|
|
283
|
-
})),
|
|
284
|
+
originalItems,
|
|
284
285
|
originalTotal: result.total,
|
|
285
286
|
patch: (item, {
|
|
286
287
|
patchedItems
|
|
@@ -293,16 +294,19 @@ class CollectionOptimisticActions {
|
|
|
293
294
|
optimisticPatch.events.on('scheduleRemoval', this._clearPatchOnNextResultOrUnmount);
|
|
294
295
|
return executor.execute([optimisticPatch], {
|
|
295
296
|
...params,
|
|
296
|
-
submit: (0, _mobx.action)(actions =>
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
297
|
+
submit: (0, _mobx.action)(actions => {
|
|
298
|
+
const updatedByKey = new Map();
|
|
299
|
+
actions.filter(({
|
|
300
|
+
actionType
|
|
301
|
+
}) => actionType === 'updateMany').forEach(({
|
|
302
|
+
patchedItemsEntries
|
|
303
|
+
}) => {
|
|
304
|
+
for (const [key, item] of patchedItemsEntries) {
|
|
305
|
+
updatedByKey.set(key, item);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
return submit(Array.from(updatedByKey.values()));
|
|
309
|
+
}),
|
|
306
310
|
onRollback: () => {
|
|
307
311
|
this.rollback(optimisticPatch);
|
|
308
312
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_util","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","_merge","_interopRequireDefault","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","processors","_commitMode","patches","remove","length","forEach","processorHelpers","commit","invalidate","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","emit","on","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","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","afterItemKey","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","merge","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","requestId","isHttpError","undefined","biName","details","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","_patchesBeforeUnmount","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","checkUnprocessedFilteredOut","_pages","_pagesAtom","reportObserved","unprocessed","processed","checkIsEmptyAndHasUnprocessed","isEmpty","flatMap","page","listeners","_filteredOut","process","env","NODE_ENV","window","__CAIRO_TEST_TRIGGER_REACH_BOTTOM_LISTENER__","fetchNextPageIfNeeded","disposer","toJSON","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap } 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 { CollectionOptimisticExecutor } from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { isHttpError, TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n OptimisticActions,\n UpdateAllParams,\n UpdateManyParams,\n} from './OptimisticActions';\nimport merge from 'lodash/merge';\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 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 implements OptimisticActions<T>\n{\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 _commitMode = false;\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 {\n state,\n collection,\n collections,\n noInvalidate,\n processors,\n _commitMode,\n } = this;\n\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n if (_commitMode && !state.patches.length) {\n processors.forEach(({ processorHelpers }) => processorHelpers.commit());\n }\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 events.emit('updated');\n\n if (this._commitMode) {\n this._clearPatch(patch);\n } else {\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 };\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 createOne(item: T, params: CreateManyParams<T>) {\n return this.createMany([item], params);\n }\n\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n onUndo,\n onTryAgain,\n onError,\n afterItemKey,\n } = 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 afterItemKey,\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 if (!submitResult) {\n return;\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\n const patchedItems = params.patch\n ? items.map((item) => merge({}, item, params.patch ?? {}))\n : items;\n\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(patchedItems.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n patchedItems.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\n const requestId = isHttpError(err) ? err.requestId : undefined;\n\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n details: requestId\n ? {\n requestId,\n }\n : undefined,\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 // The only case when this.state._patchesBeforeUnmount won't be null -\n // when the state was cached with patterns router, so we want to restore the patches that were existed before the unmount\n if (this.state._patchesBeforeUnmount) {\n this.state.patches.clear();\n this.state.patches.push(...this.state._patchesBeforeUnmount);\n }\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 checkUnprocessedFilteredOut = (() => {\n const {\n result: { _pages, _pagesAtom },\n } = collection;\n _pagesAtom.reportObserved();\n const unprocessed =\n _pages.unprocessed[_pages.unprocessed.length - 1];\n const processed = _pages.processed[_pages.processed.length - 1];\n\n if (unprocessed == null || processed == null) {\n return false;\n }\n // check if some items in unprocessed were filtered out\n return unprocessed.length > processed.length;\n })();\n\n const checkIsEmptyAndHasUnprocessed = (() => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n })();\n\n return collection.emitter.listeners('triggerReachBottomListener')\n .length\n ? checkUnprocessedFilteredOut\n : checkIsEmptyAndHasUnprocessed;\n },\n (_filteredOut) => {\n if (!_filteredOut) {\n return;\n }\n\n if (\n collection.emitter.listeners('triggerReachBottomListener').length\n ) {\n if (\n process.env.NODE_ENV === 'test' &&\n (window as any).__CAIRO_TEST_TRIGGER_REACH_BOTTOM_LISTENER__\n ) {\n collection.emitter.emit('triggerReachBottomListener');\n }\n } else {\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 this.state._patchesBeforeUnmount = this.state.patches.toJSON();\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","_util","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","_merge","_interopRequireDefault","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","processors","_commitMode","patches","remove","length","forEach","processorHelpers","commit","invalidate","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","emit","on","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","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","afterItemKey","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","merge","keepPosition","_result$get","originalItem","updatedByKey","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","requestId","isHttpError","undefined","biName","details","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","_patchesBeforeUnmount","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","checkUnprocessedFilteredOut","_pages","_pagesAtom","reportObserved","unprocessed","processed","checkIsEmptyAndHasUnprocessed","isEmpty","flatMap","page","listeners","_filteredOut","process","env","NODE_ENV","window","__CAIRO_TEST_TRIGGER_REACH_BOTTOM_LISTENER__","fetchNextPageIfNeeded","disposer","toJSON","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap } 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 { CollectionOptimisticExecutor } from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { isHttpError, TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n OptimisticActions,\n UpdateAllParams,\n UpdateManyParams,\n} from './OptimisticActions';\nimport merge from 'lodash/merge';\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 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 implements OptimisticActions<T>\n{\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 _commitMode = false;\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 {\n state,\n collection,\n collections,\n noInvalidate,\n processors,\n _commitMode,\n } = this;\n\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n if (_commitMode && !state.patches.length) {\n processors.forEach(({ processorHelpers }) => processorHelpers.commit());\n }\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 events.emit('updated');\n\n if (this._commitMode) {\n this._clearPatch(patch);\n } else {\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 };\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 createOne(item: T, params: CreateManyParams<T>) {\n return this.createMany([item], params);\n }\n\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n onUndo,\n onTryAgain,\n onError,\n afterItemKey,\n } = 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 afterItemKey,\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 if (!submitResult) {\n return;\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\n const patchedItems = params.patch\n ? items.map((item) => merge({}, item, params.patch ?? {}))\n : items;\n\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const originalItems = new Map(\n patchedItems.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(key)?.item ?? item;\n return [key, originalItem];\n }),\n );\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(patchedItems.map((item) => [itemKey(item), item])),\n originalItems,\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 const updatedByKey = new Map<string, T>();\n\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .forEach(({ patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n updatedByKey.set(key, item);\n }\n });\n\n return submit(Array.from(updatedByKey.values()));\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\n const requestId = isHttpError(err) ? err.requestId : undefined;\n\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n details: requestId\n ? {\n requestId,\n }\n : undefined,\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 // The only case when this.state._patchesBeforeUnmount won't be null -\n // when the state was cached with patterns router, so we want to restore the patches that were existed before the unmount\n if (this.state._patchesBeforeUnmount) {\n this.state.patches.clear();\n this.state.patches.push(...this.state._patchesBeforeUnmount);\n }\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 checkUnprocessedFilteredOut = (() => {\n const {\n result: { _pages, _pagesAtom },\n } = collection;\n _pagesAtom.reportObserved();\n const unprocessed =\n _pages.unprocessed[_pages.unprocessed.length - 1];\n const processed = _pages.processed[_pages.processed.length - 1];\n\n if (unprocessed == null || processed == null) {\n return false;\n }\n // check if some items in unprocessed were filtered out\n return unprocessed.length > processed.length;\n })();\n\n const checkIsEmptyAndHasUnprocessed = (() => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n })();\n\n return collection.emitter.listeners('triggerReachBottomListener')\n .length\n ? checkUnprocessedFilteredOut\n : checkIsEmptyAndHasUnprocessed;\n },\n (_filteredOut) => {\n if (!_filteredOut) {\n return;\n }\n\n if (\n collection.emitter.listeners('triggerReachBottomListener').length\n ) {\n if (\n process.env.NODE_ENV === 'test' &&\n (window as any).__CAIRO_TEST_TRIGGER_REACH_BOTTOM_LISTENER__\n ) {\n collection.emitter.emit('triggerReachBottomListener');\n }\n } else {\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 this.state._patchesBeforeUnmount = this.state.patches.toJSON();\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":[]}
|
|
@@ -905,6 +905,17 @@ class CollectionState {
|
|
|
905
905
|
this.invalidate();
|
|
906
906
|
return changeResult.rollback;
|
|
907
907
|
}
|
|
908
|
+
removeItem(itemToRemove) {
|
|
909
|
+
return this.removeItems([itemToRemove]);
|
|
910
|
+
}
|
|
911
|
+
removeItems(itemsToRemove) {
|
|
912
|
+
const changeResult = this.result.removeItems(itemsToRemove);
|
|
913
|
+
if (changeResult != null) {
|
|
914
|
+
this.invalidate();
|
|
915
|
+
return changeResult.rollback;
|
|
916
|
+
}
|
|
917
|
+
return undefined;
|
|
918
|
+
}
|
|
908
919
|
async refreshCurrentPage({
|
|
909
920
|
noInvalidate
|
|
910
921
|
} = {}) {
|