@wix/bex-core 2.239.0 → 2.247.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/assets/locale/messages_cs.json +1 -1
- package/dist/cjs/assets/locale/messages_de.json +1 -1
- package/dist/cjs/assets/locale/messages_en.json +1 -1
- package/dist/cjs/assets/locale/messages_it.json +2 -2
- package/dist/cjs/assets/locale/messages_ko.json +1 -1
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +1 -1
- package/dist/cjs/assets/locale/messages_ru.json +1 -1
- package/dist/cjs/assets/locale/messages_sv.json +1 -1
- package/dist/cjs/services/DataExtensionFieldOperationsService.js +70 -1
- package/dist/cjs/services/DataExtensionFieldOperationsService.js.map +1 -1
- package/dist/cjs/services/DataExtensionService/dataExtensionService.js +28 -2
- package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +0 -14
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/DataExtensionState.js +13 -1
- package/dist/cjs/state/DataExtensionState.js.map +1 -1
- package/dist/cjs/state/DataExtensionStateBIReporter.js +6 -0
- package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
- package/dist/cjs/state/DeleteFieldModalState.js +44 -0
- package/dist/cjs/state/DeleteFieldModalState.js.map +1 -0
- package/dist/cjs/state/OptimisticActions.js.map +1 -1
- package/dist/cjs/state/index.js +7 -0
- package/dist/cjs/state/index.js.map +1 -1
- package/dist/cjs/testkit/exportServiceMocks.js +1 -0
- package/dist/cjs/testkit/exportServiceMocks.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +1 -1
- package/dist/esm/assets/locale/messages_de.json +1 -1
- package/dist/esm/assets/locale/messages_en.json +1 -1
- package/dist/esm/assets/locale/messages_it.json +2 -2
- package/dist/esm/assets/locale/messages_ko.json +1 -1
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +1 -1
- package/dist/esm/assets/locale/messages_ru.json +1 -1
- package/dist/esm/assets/locale/messages_sv.json +1 -1
- package/dist/esm/services/DataExtensionFieldOperationsService.js +49 -0
- package/dist/esm/services/DataExtensionFieldOperationsService.js.map +1 -1
- package/dist/esm/services/DataExtensionService/dataExtensionService.js +19 -0
- package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js +0 -12
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/DataExtensionState.js +11 -1
- package/dist/esm/state/DataExtensionState.js.map +1 -1
- package/dist/esm/state/DataExtensionStateBIReporter.js +6 -0
- package/dist/esm/state/DataExtensionStateBIReporter.js.map +1 -1
- package/dist/esm/state/DeleteFieldModalState.js +33 -0
- package/dist/esm/state/DeleteFieldModalState.js.map +1 -0
- package/dist/esm/state/index.js +1 -0
- package/dist/esm/state/index.js.map +1 -1
- package/dist/esm/testkit/exportServiceMocks.js +1 -0
- package/dist/esm/testkit/exportServiceMocks.js.map +1 -1
- package/dist/types/services/DataExtensionFieldOperationsService.d.ts +1 -0
- package/dist/types/services/DataExtensionFieldOperationsService.d.ts.map +1 -1
- package/dist/types/services/DataExtensionService/dataExtensionService.d.ts +3 -0
- package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
- package/dist/types/state/CollectionOptimisticActions.d.ts +0 -12
- package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
- package/dist/types/state/DataExtensionState.d.ts +2 -0
- package/dist/types/state/DataExtensionState.d.ts.map +1 -1
- package/dist/types/state/DataExtensionStateBIReporter.d.ts +1 -0
- package/dist/types/state/DataExtensionStateBIReporter.d.ts.map +1 -1
- package/dist/types/state/DeleteFieldModalState.d.ts +18 -0
- package/dist/types/state/DeleteFieldModalState.d.ts.map +1 -0
- package/dist/types/state/OptimisticActions.d.ts +12 -0
- package/dist/types/state/OptimisticActions.d.ts.map +1 -1
- package/dist/types/state/index.d.ts +1 -0
- package/dist/types/state/index.d.ts.map +1 -1
- package/dist/types/testkit/exportServiceMocks.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -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","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 /**\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 return 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 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":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AASA,IAAAC,iCAAA,GAAAD,OAAA;AACA,IAAAE,8BAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAIA,IAAAI,6BAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,6BAAA,GAAAP,OAAA;AACA,IAAAQ,qCAAA,GAAAR,OAAA;AAWA,IAAAS,MAAA,GAAAC,sBAAA,CAAAV,OAAA;AAqFO,MAAMW,2BAA2B,CAExC;EAkCEC,WAAWA,CAACC,MAA+C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBA3B3C,IAAIC,oBAAY,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAeyB,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sCAIzB,uBAAuB;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BAEpB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBAEV,QAAQ;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBAE7B,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBA4FG,IAAAE,YAAM,EAAEC,KAAyB,IAAK;MAC1D,MAAM;QACJC,KAAK;QACLC,UAAU;QACVC,WAAW;QACXC,YAAY;QACZC,UAAU;QACVC;MACF,CAAC,GAAG,IAAI;MAER,IAAIF,YAAY,EAAE;QAChB;MACF;MAEAH,KAAK,CAACM,OAAO,CAACC,MAAM,CAACR,KAAK,CAAC;MAC3B,IAAIM,WAAW,IAAI,CAACL,KAAK,CAACM,OAAO,CAACE,MAAM,EAAE;QACxCJ,UAAU,CAACK,OAAO,CAAC,CAAC;UAAEC;QAAiB,CAAC,KAAKA,gBAAgB,CAACC,MAAM,CAAC,CAAC,CAAC;MACzE;MACAV,UAAU,CAACW,UAAU,CAAC,CAAC;MACvBV,WAAW,CAACO,OAAO,CAAEI,CAAC,IAAKA,CAAC,CAACC,eAAe,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IAAA,IAAAnB,gBAAA,CAAAC,OAAA,4CAEkCG,KAAyB,IAAK;MAChE,MAAM;QAAEgB;MAAO,CAAC,GAAG,IAAI;MAEvB,MAAMC,UAAU,GAAGA,CAAA,KAAM;QACvBD,MAAM,CAACE,GAAG,CAAC,SAAS,EAAED,UAAU,CAAC;QACjC,IAAI,CAACE,WAAW,CAACnB,KAAK,CAAC;MACzB,CAAC;MAED,MAAMoB,SAAS,GAAGA,CAAC;QAAEC;MAA8B,CAAC,KAAK;QACvDL,MAAM,CAACE,GAAG,CAAC,SAAS,EAAEE,SAAS,CAAC;;QAEhC;QACA,IAAIC,OAAO,EAAE;UACXL,MAAM,CAACM,IAAI,CAAC,qBAAqB,EAAEL,UAAU,CAAC;QAChD;MACF,CAAC;MAEDD,MAAM,CAACO,IAAI,CAAC,SAAS,CAAC;MAEtB,IAAI,IAAI,CAACjB,WAAW,EAAE;QACpB,IAAI,CAACa,WAAW,CAACnB,KAAK,CAAC;MACzB,CAAC,MAAM;QACL;QACAgB,MAAM,CAACQ,EAAE,CAAC,SAAS,EAAEJ,SAAS,CAAC;QAC/B;QACAJ,MAAM,CAACQ,EAAE,CAAC,SAAS,EAAEP,UAAU,CAAC;MAClC;IACF,CAAC;IA1IC,IAAI,CAACf,UAAU,GAAGP,MAAM,CAACO,UAAU;IACnC,IAAI,CAACuB,KAAK,GAAG9B,MAAM,CAAC8B,KAAK,IAAI,IAAI,CAACvB,UAAU,CAACuB,KAAK;IAClD,IAAI,CAACtB,WAAW,GAAGR,MAAM,CAACQ,WAAW,IAAI,EAAE;IAE3C,IAAI,CAACuB,SAAS,GACZ/B,MAAM,CAAC+B,SAAS,IAChB,IAAIC,GAAG,CAA+C,CAAC;IAEzD,IAAI,CAAC1B,KAAK,GAAG,IAAI2B,kEAAgC,CAAI;MACnDC,MAAM,EAAE,IAAI,CAAC3B,UAAU;MACvB4B,YAAY,EAAEnC,MAAM,CAACoC,SAAS,CAACD,YAAY;MAC3CE,cAAc,EAAErC,MAAM,CAACqC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACC,uBAAuB,GAAG,IAAIC,0DAA4B,CAAC;MAC9DhC,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IAEF,IAAI,CAACiC,SAAS,GAAGxC,MAAM,CAACwC,SAAS,IAAI,IAAI,CAACF,uBAAuB,CAACE,SAAS;IAC3E,IAAI,CAACC,OAAO,GAAGzC,MAAM,CAACyC,OAAO,IAAI,IAAI,CAACH,uBAAuB,CAACG,OAAO;IACrE,IAAI,CAACC,SAAS,GAAG1C,MAAM,CAAC0C,SAAS;IACjC,IAAI,CAACjC,YAAY,GAAGT,MAAM,CAACS,YAAY;IAEvC,IAAI,CAACkC,QAAQ,GAAG,IAAIC,0DAA4B,CAAC;MAC/CC,SAAS,EAAE7C,MAAM,CAAC6C,SAAS,IAAI,CAAC;MAChCC,YAAY,EAAE,IAAI,CAACvC,UAAU,CAACuC,YAAY;MAC1CC,SAAS,EAAE,IAAI,CAACxC,UAAU,CAACwC,SAAS;MACpCC,SAAS,EAAE,IAAI,CAACzC,UAAU,CAACyC,SAAS;MACpCC,MAAM,EAAE,IAAI,CAAC1C,UAAU,CAAC0C,MAAM;MAC9Bb,SAAS,EAAEpC,MAAM,CAACoC;IACpB,CAAC,CAAC;IAEF,IAAI,CAAC1B,UAAU,CAACwC,IAAI,CAClB,IAAIC,4DAA6B,CAAC;MAChC,GAAGnD,MAAM;MACToD,UAAU,EAAE;IACd,CAAC,CACH,CAAC;IAED,IAAIpD,MAAM,CAACQ,WAAW,IAAI,IAAI,EAAE;MAC9BR,MAAM,CAACQ,WAAW,CAACO,OAAO,CAAER,UAAU,IAAK;QACzC,IAAI,CAACG,UAAU,CAACwC,IAAI,CAClB,IAAIC,4DAA6B,CAAC;UAChC,GAAGnD,MAAM;UACTO,UAAU;UACV6C,UAAU,EAAE;QACd,CAAC,CACH,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,IAAI,CAAC7C,UAAU,CAAC8C,kBAAkB,GAAG,IAAI;IAEzC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,qBAAqB,EAAEnD,YAAM;MAC7BoD,wBAAwB,EAAEpD,YAAM;MAChCqD,QAAQ,EAAErD,YAAM,CAACsD,KAAK;MACtBC,KAAK,EAAEvD,YAAM;MACbwD,IAAI,EAAExD,YAAM;MACZyD,kBAAkB,EAAEC;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,CACL,IAAI,CAACxD,UAAU,CAACyD,SAAS,EACzB,GAAG,IAAI,CAACxD,WAAW,CAACyD,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACF,SAAS,CAAC,CAC5C;EACH;EAEA,IAAIG,kBAAkBA,CAAA,EAAG;IACvB,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACtC,SAAS,CAACuC,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,CAACnE,KAAK,CAACoE,OAAO,CAAC;EAC7E;EAEA,IAAIb,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACvD,KAAK,CAACM,OAAO,CAAC+D,MAAM,CAAExD,CAAC,IAAKA,CAAC,CAACyC,IAAI,CAAC;EACjD;EAEAH,QAAQA,CAACpD,KAAgD,EAAE;IACzD,MAAM;MAAEgB,MAAM;MAAEf;IAAM,CAAC,GAAG,IAAI;IAC9B,MAAMM,OAAO,GAAGwD,KAAK,CAACQ,OAAO,CAACvE,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;IAEtD,KAAK,MAAMc,CAAC,IAAIP,OAAO,EAAE;MACvBN,KAAK,CAACM,OAAO,CAACC,MAAM,CAACM,CAAC,CAAC;IACzB;IAEAE,MAAM,CAACO,IAAI,CAAC,WAAW,CAAC;EAC1B;EAqDA2B,qBAAqBA,CAAClD,KAAgD,EAAE;IACtE,MAAM;MAAEC,KAAK;MAAEe;IAAO,CAAC,GAAG,IAAI;IAC9B,MAAMT,OAAO,GAAGwD,KAAK,CAACQ,OAAO,CAACvE,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;IACtDC,KAAK,CAACM,OAAO,CAACsC,IAAI,CAAC,GAAGtC,OAAO,CAAC;IAC9BS,MAAM,CAACO,IAAI,CAAC,WAAW,CAAC;EAC1B;EAEA4B,wBAAwBA,CACtBqB,QAA4B,EAC5BC,QAA4B,EAC5B;IACA,MAAM;MAAExE,KAAK;MAAEe;IAAO,CAAC,GAAG,IAAI;IAE9B,MAAM0D,aAAa,GAAGzE,KAAK,CAACM,OAAO,CAACoE,SAAS,CAC1C3E,KAAK,IAAKA,KAAK,KAAKyE,QACvB,CAAC;IACDxE,KAAK,CAACM,OAAO,CAACmE,aAAa,CAAC,GAAGF,QAAQ;IACvCxD,MAAM,CAACO,IAAI,CAAC,WAAW,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEqD,SAASA,CAACC,IAAO,EAAElF,MAA2B,EAAE;IAC9C,OAAO,IAAI,CAACmF,UAAU,CAAC,CAACD,IAAI,CAAC,EAAElF,MAAM,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEmF,UAAUA,CAACC,KAAU,EAAEpF,MAA2B,EAAE;IAClD,MAAM;MAAEO,UAAU;MAAEoC;IAAS,CAAC,GAAG,IAAI;IACrC,MAAM;MAAE0C,OAAO;MAAEC;IAAO,CAAC,GAAG/E,UAAU;IACtC,MAAM;MAAEgF,MAAM;MAAEC,iBAAiB;MAAEC,MAAM;MAAEC,UAAU;MAAEC;IAAQ,CAAC,GAAG3F,MAAM;IAEzE,MAAM4F,qBAA+C,GAAG;MACtDC,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCC,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BnD,OAAO,EAAE,IAAI,CAACN,KAAK,CAACM,OAAO;MAC3BmF,UAAU,EAAE,YAAY;MACxBC,YAAY,EAAE,IAAIhE,GAAG,CAACoD,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC;MACjEe,aAAa,EAAE,IAAIjE,GAAG,CAAC,CAAC;MACxBkE,aAAa,EAAEZ,MAAM,CAACa,KAAK;MAC3B9F,KAAK,EAAEA,CAAC6E,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACI,GAAG,CAACf,OAAO,CAACH,IAAI,CAAC,CAAC;MAClEmB,QAAQ,EAAEA,CAACnB,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACM,GAAG,CAACjB,OAAO,CAACH,IAAI,CAAC;IACtE,CAAC;IAED,MAAMqB,eAAe,GAAG,IAAIC,0CAAe,CAAIZ,qBAAqB,CAAC;IAErE,IAAI,CAACrC,qBAAqB,CAACgD,eAAe,CAAC;IAE3CA,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED,OAAO9D,QAAQ,CAAC+D,OAAO,CAAC,CAACH,eAAe,CAAC,EAAE;MACzC,GAAGvG,MAAM;MACTuF,MAAM,EAAE,IAAAnF,YAAM,EAAC,MAAOuG,OAAO,IAAK;QAChC,MAAMC,YAAY,GAAG,MAAMrB,MAAM,CAC/BnB,KAAK,CAACC,IAAI,CACRsC,OAAO,CACJhC,MAAM,CAAC,CAAC;UAAEoB;QAAW,CAAC,KAAKA,UAAU,KAAK,YAAY,CAAC,CACvDc,MAAM,CAAC,CAAC5C,GAAG,EAAE;UAAE6C;QAAoB,CAAC,KAAK;UACxC,KAAK,MAAM,CAACC,GAAG,EAAE7B,IAAI,CAAC,IAAI4B,mBAAmB,EAAE;YAC7C7C,GAAG,CAAC+C,GAAG,CAACD,GAAG,EAAE7B,IAAI,CAAC;UACpB;UACA,OAAOjB,GAAG;QACZ,CAAC,EAAE,IAAIjC,GAAG,CAAY,CAAC,CAAC,CACvBsC,MAAM,CAAC,CACZ,CACF,CAAC;QAED,IAAI,CAACsC,YAAY,EAAE;UACjB;QACF;QAEA,MAAMK,sBAAsB,GAAG,IAAIT,0CAAe,CAAC;UACjD,GAAGZ,qBAAqB;UACxBI,YAAY,EAAE,IAAIhE,GAAG,CACnB4E,YAAY,CAAC3C,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAClD;QACF,CAAC,CAAC;QAEF,IAAI,CAAC1B,wBAAwB,CAACyD,sBAAsB,EAAEV,eAAe,CAAC;QACtE,IAAI,CAACE,gCAAgC,CAACQ,sBAAsB,CAAC;QAC7D,OAAOL,YAAY;MACrB,CAAC,CAAC;MACFM,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACzD,QAAQ,CAAC8C,eAAe,CAAC;MAChC,CAAC;MACDY,iBAAiB,EAAE3B,iBAAiB;MACpC4B,mBAAmB,EAAEb,eAAe,CAACa,mBAAmB;MACxD1B,UAAU,EAAE,MAAAA,CAAA,KAAY;QACtB,IAAI,CAACnC,qBAAqB,CAACgD,eAAe,CAAC;QAC3C,OAAMb,UAAU,oBAAVA,UAAU,CAAG,CAAC;MACtB,CAAC;MACDC,OAAO;MACPF;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE4B,UAAUA,CAAIjC,KAAU,EAAEpF,MAA8B,EAAE;IACxD,MAAM;MAAE2C,QAAQ;MAAEpC;IAAW,CAAC,GAAG,IAAI;IAErC,MAAMyF,YAAY,GAAGhG,MAAM,CAACK,KAAK,GAC7B+E,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,IAAAoC,cAAK,EAAC,CAAC,CAAC,EAAEpC,IAAI,EAAElF,MAAM,CAACK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GACxD+E,KAAK;IAET,MAAM;MAAEC,OAAO;MAAEC;IAAO,CAAC,GAAG/E,UAAU;IACtC,MAAM;MACJgF,MAAM;MACNC,iBAAiB;MACjB+B,YAAY;MACZ9B,MAAM;MACNC,UAAU;MACVC;IACF,CAAC,GAAG3F,MAAM;IAEV,MAAMuG,eAAe,GAAG,IAAIC,0CAAe,CAAC;MAC1CX,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCC,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BnD,OAAO,EAAE,IAAI,CAACN,KAAK,CAACM,OAAO;MAC3BmF,UAAU,EAAE,YAAY;MACxBwB,YAAY;MACZvB,YAAY,EAAE,IAAIhE,GAAG,CAACgE,YAAY,CAAC/B,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC;MACxEe,aAAa,EAAE,IAAIjE,GAAG,CACpBgE,YAAY,CAAC/B,GAAG,CAAEiB,IAAI,IAAK;QAAA,IAAAsC,WAAA;QACzB,MAAMT,GAAG,GAAG1B,OAAO,CAACH,IAAI,CAAC;QACzB,MAAMuC,YAAY,GAAG,EAAAD,WAAA,GAAAlC,MAAM,CAACc,GAAG,CAACf,OAAO,CAACH,IAAI,CAAC,CAAC,qBAAzBsC,WAAA,CAA2BtC,IAAI,KAAIA,IAAI;QAC5D,OAAO,CAAC6B,GAAG,EAAEU,YAAY,CAAC;MAC5B,CAAC,CACH,CAAC;MACDvB,aAAa,EAAEZ,MAAM,CAACa,KAAK;MAC3B9F,KAAK,EAAEA,CAAC6E,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACI,GAAG,CAACf,OAAO,CAACH,IAAI,CAAC,CAAC;MAClEmB,QAAQ,EAAEA,CAACnB,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACM,GAAG,CAACjB,OAAO,CAACH,IAAI,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,CAAC3B,qBAAqB,CAACgD,eAAe,CAAC;IAE3CA,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED,OAAO9D,QAAQ,CAAC+D,OAAO,CAAC,CAACH,eAAe,CAAC,EAAE;MACzC,GAAGvG,MAAM;MACTuF,MAAM,EAAE,IAAAnF,YAAM,EAAEuG,OAAO,IACrBpB,MAAM,CACJnB,KAAK,CAACC,IAAI,CACRsC,OAAO,CACJhC,MAAM,CAAC,CAAC;QAAEoB;MAAW,CAAC,KAAKA,UAAU,KAAK,YAAY,CAAC,CACvDc,MAAM,CAAC,CAAC5C,GAAG,EAAE;QAAE6C;MAAoB,CAAC,KAAK;QACxC,KAAK,MAAM,CAACC,GAAG,EAAE7B,IAAI,CAAC,IAAI4B,mBAAmB,EAAE;UAC7C7C,GAAG,CAAC+C,GAAG,CAACD,GAAG,EAAE7B,IAAI,CAAC;QACpB;QACA,OAAOjB,GAAG;MACZ,CAAC,EAAE,IAAIjC,GAAG,CAAY,CAAC,CAAC,CACvBsC,MAAM,CAAC,CACZ,CACF,CACF,CAAC;MACD4C,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACzD,QAAQ,CAAC8C,eAAe,CAAC;MAChC,CAAC;MACDY,iBAAiB,EAAE3B,iBAAiB;MACpC4B,mBAAmB,EAAEb,eAAe,CAACa,mBAAmB;MACxD1B,UAAU,EAAE,MAAAA,CAAA,KAAY;QACtB,IAAI,CAACnC,qBAAqB,CAACgD,eAAe,CAAC;QAC3C,OAAMb,UAAU,oBAAVA,UAAU,CAAG,CAAC;MACtB,CAAC;MACDC,OAAO;MACPF;IACF,CAAC,CAAC;EACJ;EAEAiC,gBAAgBA,CACdnB,eAAmC,EACnCvG,MAAwB,EACxB;IACA,MAAM;MAAEuF,MAAM;MAAEG;IAAW,CAAC,GAAG1F,MAAM;IACrC,MAAM;MAAEO,UAAU;MAAED,KAAK;MAAEe;IAAO,CAAC,GAAG,IAAI;IAC1C,MAAM;MAAET;IAAQ,CAAC,GAAGN,KAAK;IAEzB,MAAMqH,KAAK,GAAGpB,eAAe,CAAC3C,IAAI;IAElC,IAAI+D,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,MAAM;MAAEC;IAAe,CAAC,GAAGD,KAAK;IAEhC,MAAME,aAAa,GAAGA,CAAA,KAAM;MAC1B,MAAM;QAAE9F;MAAU,CAAC,GAAG,IAAI;MAC1B,MAAM0C,GAAG,GACP1C,SAAS,CAACqE,GAAG,CAACwB,cAAc,CAAC,IAC7B,IAAIE,0EAAoC,CAAC;QACvC/E,SAAS,EAAExC,UAAU,CAACwC,SAAS;QAC/BC,SAAS,EAAEzC,UAAU,CAACyC,SAAS;QAC/BF,YAAY,EAAEvC,UAAU,CAACuC,YAAY;QACrCoE,UAAU,EAAGa,GAAG,IAAK;UACnB,MAAMC,cAAc,GAAGpH,OAAO,CAAC+D,MAAM,CAClCxD,CAAC;YAAA,IAAA8G,OAAA;YAAA,OAAK,EAAAA,OAAA,GAAA9G,CAAC,CAACyC,IAAI,qBAANqE,OAAA,CAAQL,cAAc,MAAKA,cAAc;UAAA,CAClD,CAAC;UACD,IAAI,CAACnE,QAAQ,CAACuE,cAAc,CAAC;UAE7B,IACED,GAAG,YAAYG,KAAK,IACpBH,GAAG,CAACI,OAAO,KAAK,IAAI,CAACC,0BAA0B,EAC/C;YACAzF,QAAQ,CAAC8B,GAAG,CAACd,KAAK,CAAC,CAAC;YACpB;UACF;UAEAtC,MAAM,CAACO,IAAI,CAAC,0BAA0B,EAAE;YACtChB,OAAO,EAAEoH;UACX,CAAC,CAAC;UACFrF,QAAQ,CAAC8B,GAAG,CAACd,KAAK,CAAC,CAAC;UAEpB,MAAM0E,SAAS,GAAG,IAAAC,iBAAW,EAACP,GAAG,CAAC,GAAGA,GAAG,CAACM,SAAS,GAAGE,SAAS;UAE9D,OAAO;YACLJ,OAAO,EAAE5H,UAAU,CAACyC,SAAS,CAAC,+BAA+B,CAAC;YAC9DwF,MAAM,EAAE,kCAAkC;YAC1CC,OAAO,EAAEJ,SAAS,GACd;cACEA;YACF,CAAC,GACDE,SAAS;YACbnI,MAAM,EAAE;cACNsI,OAAO,EAAE,MAAAA,CAAA,KAAY;gBACnB,IAAI,CAACnF,qBAAqB,CAACyE,cAAc,CAAC;gBAC1C,KAAK,MAAM7G,CAAC,IAAI6G,cAAc,EAAE;kBAC9B,IAAI,CAACN,gBAAgB,CAACvG,CAAC,EAAEnB,MAAM,CAAC;gBAClC;gBACAqB,MAAM,CAACO,IAAI,CAAC,0BAA0B,EAAE;kBACtChB,OAAO,EAAEoH;gBACX,CAAC,CAAC;gBAEF,OAAMtC,UAAU,oBAAVA,UAAU,CAAG,CAAC;cACtB;YACF;UACF,CAAC;QACH;MACF,CAAC,CAAC;MAEJ,IAAI,CAAC3D,SAAS,CAACuE,GAAG,CAACsB,cAAc,CAAC,EAAE;QAClC7F,SAAS,CAACiF,GAAG,CAACY,cAAc,EAAEnD,GAAG,CAAC;MACpC;MAEA,OAAOA,GAAG;IACZ,CAAC;IAED,MAAM9B,QAAQ,GAAGkF,aAAa,CAAC,CAAC;IAEhClF,QAAQ,CAACgG,QAAQ,CAAC;MAChBpD,MAAM,EAAEA,CAAA,KAAMA,MAAM,oBAANA,MAAM,CAAGoC,KAAK,CAAC;MAC7BP,mBAAmB,EAAEb,eAAe,CAACa;IACvC,CAAC,CAAC;EACJ;EAEA,MAAMxD,IAAIA,CAAI+D,KAAoB,EAAE3H,MAAwB,EAAE;IAC5D,MAAM;MAAEO,UAAU;MAAED;IAAM,CAAC,GAAG,IAAI;IAClC,MAAM;MAAE+E,OAAO;MAAEC;IAAO,CAAC,GAAG/E,UAAU;IACtC,MAAM;MAAEK;IAAQ,CAAC,GAAGN,KAAK;IAEzB,MAAMiG,eAAe,GAAG,IAAIC,0CAAe,CAAC;MAC1CX,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCC,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BnD,OAAO;MACPmF,UAAU,EAAE,MAAM;MAClBC,YAAY,EAAE,IAAIhE,GAAG,CAAC,CAAC;MACvBiE,aAAa,EAAE,IAAIjE,GAAG,CAAC,CAAC;MACxBkE,aAAa,EAAEZ,MAAM,CAACa,KAAK;MAC3BE,QAAQ,EAAEA,CAACnB,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACM,GAAG,CAACjB,OAAO,CAACH,IAAI,CAAC,CAAC;MACrEtB,IAAI,EAAE+D,KAAK;MACXiB,kBAAkB,EAAE5I,MAAM,CAAC4I;IAC7B,CAAC,CAAC;IAEF,IAAI,CAACrF,qBAAqB,CAACgD,eAAe,CAAC;IAE3CA,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED,IAAI,CAACiB,gBAAgB,CAACnB,eAAe,EAAEvG,MAAM,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE6I,SAASA,CAAI3D,IAAO,EAAElF,MAA8B,EAAE;IACpD,OAAO,IAAI,CAACqH,UAAU,CAAC,CAACnC,IAAI,CAAC,EAAElF,MAAM,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;AACA;;EAME;AACF;AACA;AACA;AACA;AACA;;EAGE8I,SAASA,CACPC,SAAiD,EACjD/I,MAA0B,EAC1B;IACA,MAAM;MAAE2C,QAAQ;MAAEpC,UAAU;MAAEiC,SAAS;MAAEE;IAAU,CAAC,GAAG,IAAI;IAC3D,MAAM;MACJ6C,MAAM;MACNC,iBAAiB;MACjB+B,YAAY;MACZ9B,MAAM;MACNC,UAAU;MACVC;IACF,CAAC,GAAG3F,MAAM;IACV,MAAM;MACJqF,OAAO;MACPC,MAAM,EAAE;QAAE0D,WAAW;QAAE5D,KAAK;QAAEe;MAAM;IACtC,CAAC,GAAG5F,UAAU;IAEd,MAAM0I,aAAa,GAAGzG,SAAS,CAACwG,WAAW,CAAC;IAE5C,MAAME,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC;IAE5B,MAAM;MAAE9I,KAAK;MAAE0F;IAAW,CAAC,GACzB,OAAOgD,SAAS,KAAK,UAAU,GAC3B;MAAEhD,UAAU,EAAE,WAAoB;MAAE1F,KAAK,EAAE0I;IAAU,CAAC,GACtD;MACEhD,UAAU,EAAE,gBAAyB;MACrC1F,KAAK,EAAG6E,IAAO,KAAM;QAAE,GAAGA,IAAI;QAAE,GAAG6D;MAAU,CAAC;IAChD,CAAC;IAEP,MAAMxC,eAAe,GAAG,IAAIC,0CAAe,CAAC;MAC1CX,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCjF,OAAO,EAAE,IAAI,CAACN,KAAK,CAACM,OAAO;MAC3BmF,UAAU;MACVwB,YAAY;MACZzB,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BiC,YAAY,EAAE,IAAIhE,GAAG,CACnBoD,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAE;QAAE,GAAGA,IAAI;QAAE,GAAG7E,KAAK,CAAC6E,IAAI;MAAE,CAAC,CAAC,CAClE,CAAC;MACDe,aAAa,EAAE,IAAIjE,GAAG,CAACoD,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC;MAClEgB,aAAa,EAAEC,KAAK;MACpBE,QAAQ,EAAGnB,IAAI,IACb+D,aAAa,CAAC/D,IAAI,CAAC,KAClBxC,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACwC,IAAI,CAAC,IAAIgE,SAAS,CAAC;MACrD7I;IACF,CAAC,CAAC;IAEF,IAAI,CAACkD,qBAAqB,CAACgD,eAAe,CAAC;IAE3CA,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED9D,QAAQ,CAAC+D,OAAO,CAAC,CAACH,eAAe,CAAC,EAAE;MAClC,GAAGvG,MAAM;MACTuF,MAAM;MACN2B,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACzD,QAAQ,CAAC8C,eAAe,CAAC;MAChC,CAAC;MACDY,iBAAiB,EAAE3B,iBAAiB;MACpC4B,mBAAmB,EAAEb,eAAe,CAACa,mBAAmB;MACxD1B,UAAU,EAAE,MAAAA,CAAA,KAAY;QACtB,IAAI,CAACnC,qBAAqB,CAACgD,eAAe,CAAC;QAC3C,OAAMb,UAAU,oBAAVA,UAAU,CAAG,CAAC;MACtB,CAAC;MACDC,OAAO;MACPF;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE2D,UAAUA,CAAIhE,KAAU,EAAEpF,MAA8B,EAAE;IACxD,MAAM;MAAE2C,QAAQ;MAAEpC;IAAW,CAAC,GAAG,IAAI;IACrC,MAAM;MACJ8E,OAAO;MACPC,MAAM,EAAE;QAAEa;MAAM;IAClB,CAAC,GAAG5F,UAAU;IACd,MAAM;MAAEgF,MAAM;MAAEC,iBAAiB;MAAEC,MAAM;MAAEC,UAAU;MAAEC;IAAQ,CAAC,GAAG3F,MAAM;IAEzE,MAAMgG,YAAY,GAAG,IAAIhE,GAAG,CAACoD,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC;IAExE,MAAMqB,eAAe,GAAG,IAAIC,0CAAe,CAAC;MAC1CX,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCjF,OAAO,EAAE,IAAI,CAACN,KAAK,CAACM,OAAO;MAC3BmF,UAAU,EAAE,YAAY;MACxBC,YAAY;MACZF,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BkC,aAAa,EAAED,YAAY;MAC3BE,aAAa,EAAEC,KAAK;MACpBE,QAAQ,EAAEA,CAACnB,IAAI,EAAE;QAAEc;MAAa,CAAC,KAAKA,YAAY,CAACM,GAAG,CAACjB,OAAO,CAACH,IAAI,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,CAAC3B,qBAAqB,CAACgD,eAAe,CAAC;IAE3CA,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED9D,QAAQ,CAAC+D,OAAO,CAAC,CAACH,eAAe,CAAC,EAAE;MAClC,GAAGvG,MAAM;MACTuF,MAAM,EAAE,IAAAnF,YAAM,EAAEuG,OAAO,IACrBpB,MAAM,CACJnB,KAAK,CAACC,IAAI,CACRsC,OAAO,CACJhC,MAAM,CAAC,CAAC;QAAEoB;MAAW,CAAC,KAAKA,UAAU,KAAK,YAAY,CAAC,CACvDc,MAAM,CAAC,CAAC5C,GAAG,EAAE;QAAE6C;MAAoB,CAAC,KAAK;QACxC,KAAK,MAAM,CAACC,GAAG,EAAE7B,IAAI,CAAC,IAAI4B,mBAAmB,EAAE;UAC7C7C,GAAG,CAAC+C,GAAG,CAACD,GAAG,EAAE7B,IAAI,CAAC;QACpB;QACA,OAAOjB,GAAG;MACZ,CAAC,EAAE,IAAIjC,GAAG,CAAY,CAAC,CAAC,CACvBsC,MAAM,CAAC,CACZ,CACF,CACF,CAAC;MACD4C,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACzD,QAAQ,CAAC8C,eAAe,CAAC;MAChC,CAAC;MACDY,iBAAiB,EAAE3B,iBAAiB;MACpC4B,mBAAmB,EAAEb,eAAe,CAACa,mBAAmB;MACxD1B,UAAU,EAAE,MAAAA,CAAA,KAAY;QACtB,IAAI,CAACnC,qBAAqB,CAACgD,eAAe,CAAC;QAC3C,OAAMb,UAAU,oBAAVA,UAAU,CAAG,CAAC;MACtB,CAAC;MACDC,OAAO;MACPF;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE4D,SAASA,CAAInE,IAAO,EAAElF,MAA8B,EAAE;IACpD,OAAO,IAAI,CAACoJ,UAAU,CAAC,CAAClE,IAAI,CAAC,EAAElF,MAAM,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;EACEsJ,SAASA,CAAItJ,MAA0B,EAAE;IACvC,MAAM;MAAE2C,QAAQ;MAAEpC,UAAU;MAAEiC,SAAS;MAAEE;IAAU,CAAC,GAAG,IAAI;IAC3D,MAAM;MAAE6C,MAAM;MAAEC,iBAAiB;MAAEC,MAAM;MAAEC,UAAU;MAAEC;IAAQ,CAAC,GAAG3F,MAAM;IACzE,MAAM;MACJqF,OAAO;MACPC,MAAM,EAAE;QAAE0D,WAAW;QAAE5D,KAAK;QAAEe;MAAM;IACtC,CAAC,GAAG5F,UAAU;IAEd,MAAM0I,aAAa,GAAGzG,SAAS,CAACwG,WAAW,CAAC;IAE5C,MAAME,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC;IAE5B,MAAMnD,YAAY,GAAG,IAAIhE,GAAG,CAACoD,KAAK,CAACnB,GAAG,CAAEiB,IAAI,IAAK,CAACG,OAAO,CAACH,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC;IAExE,MAAMqB,eAAe,GAAG,IAAIC,0CAAe,CAAC;MAC1C5F,OAAO,EAAE,IAAI,CAACN,KAAK,CAACM,OAAO;MAC3BiF,UAAU,EAAEtF,UAAU,CAACsF,UAAU;MACjCE,UAAU,EAAE,WAAW;MACvBC,YAAY;MACZF,UAAU,EAAE,IAAI,CAAC/B,WAAW;MAC5BkC,aAAa,EAAED,YAAY;MAC3BE,aAAa,EAAEC,KAAK;MACpBE,QAAQ,EAAGnB,IAAI,IACb+D,aAAa,CAAC/D,IAAI,CAAC,KAClBxC,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACwC,IAAI,CAAC,IAAIgE,SAAS;IACtD,CAAC,CAAC;IAEF3C,eAAe,CAAClF,MAAM,CAACQ,EAAE,CACvB,iBAAiB,EACjB,IAAI,CAAC4E,gCACP,CAAC;IAED,IAAI,CAAClD,qBAAqB,CAACgD,eAAe,CAAC;IAE3C5D,QAAQ,CAAC+D,OAAO,CAAC,CAACH,eAAe,CAAC,EAAE;MAClC,GAAGvG,MAAM;MACTuF,MAAM;MACN2B,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACzD,QAAQ,CAAC8C,eAAe,CAAC;MAChC,CAAC;MACDY,iBAAiB,EAAE3B,iBAAiB;MACpC4B,mBAAmB,EAAEb,eAAe,CAACa,mBAAmB;MACxD1B,UAAU,EAAE,MAAAA,CAAA,KAAY;QACtB,IAAI,CAACnC,qBAAqB,CAACgD,eAAe,CAAC;QAC3C,OAAMb,UAAU,oBAAVA,UAAU,CAAG,CAAC;MACtB,CAAC;MACDC,OAAO;MACPF;IACF,CAAC,CAAC;EACJ;EAEA8D,cAAcA,CAAChJ,UAAiC,EAAE;IAChD,IAAI,CAACC,WAAW,CAAC0C,IAAI,CAAC3C,UAAU,CAAC;IACjC,IAAI4C,4DAA6B,CAAC;MAChC5C,UAAU;MACV6C,UAAU,EAAE,IAAI;MAChBX,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBD,SAAS,EAAE,IAAI,CAACA;IAClB,CAAC,CAAC;IAEF,OAAO,MAAM;MACX,MAAMgH,CAAC,GAAG,IAAI,CAAChJ,WAAW,CAACiJ,OAAO,CAAClJ,UAAU,CAAC;MAC9C,IAAIiJ,CAAC,KAAK,CAAC,CAAC,EAAE;QACZ,IAAI,CAAChJ,WAAW,CAACkJ,MAAM,CAACF,CAAC,EAAE,CAAC,CAAC;MAC/B;IACF,CAAC;EACH;EAEAG,IAAIA,CAAA,EAAG;IACL,MAAM;MAAEpJ,UAAU;MAAEc;IAAO,CAAC,GAAG,IAAI;;IAEnC;IACA;IACA,IAAI,IAAI,CAACf,KAAK,CAACsJ,qBAAqB,EAAE;MACpC,IAAI,CAACtJ,KAAK,CAACM,OAAO,CAAC+C,KAAK,CAAC,CAAC;MAC1B,IAAI,CAACrD,KAAK,CAACM,OAAO,CAACsC,IAAI,CAAC,GAAG,IAAI,CAAC5C,KAAK,CAACsJ,qBAAqB,CAAC;IAC9D;IAEA,MAAMC,WAAW,GAAI7J,MAA4B,IAAK;MACpDqB,MAAM,CAACO,IAAI,CAAC,SAAS,EAAE5B,MAAM,CAAC;IAChC,CAAC;IACD,MAAM8J,uBAAuB,GAAGA,CAAA,KAAMzI,MAAM,CAACO,IAAI,CAAC,qBAAqB,CAAC;IAExErB,UAAU,CAACwJ,OAAO,CAAClI,EAAE,CAAC,SAAS,EAAEgI,WAAW,CAAC;IAC7CtJ,UAAU,CAACwJ,OAAO,CAAClI,EAAE,CAAC,qBAAqB,EAAEiI,uBAAuB,CAAC;IAErE,MAAME,SAAS,GAAG,CAChB,IAAAC,cAAQ,EACN,MAAM;MACJ,MAAMC,2BAA2B,GAAG,CAAC,MAAM;QACzC,MAAM;UACJ5E,MAAM,EAAE;YAAE6E,MAAM;YAAEC;UAAW;QAC/B,CAAC,GAAG7J,UAAU;QACd6J,UAAU,CAACC,cAAc,CAAC,CAAC;QAC3B,MAAMC,WAAW,GACfH,MAAM,CAACG,WAAW,CAACH,MAAM,CAACG,WAAW,CAACxJ,MAAM,GAAG,CAAC,CAAC;QACnD,MAAMyJ,SAAS,GAAGJ,MAAM,CAACI,SAAS,CAACJ,MAAM,CAACI,SAAS,CAACzJ,MAAM,GAAG,CAAC,CAAC;QAE/D,IAAIwJ,WAAW,IAAI,IAAI,IAAIC,SAAS,IAAI,IAAI,EAAE;UAC5C,OAAO,KAAK;QACd;QACA;QACA,OAAOD,WAAW,CAACxJ,MAAM,GAAGyJ,SAAS,CAACzJ,MAAM;MAC9C,CAAC,EAAE,CAAC;MAEJ,MAAM0J,6BAA6B,GAAG,CAAC,MAAM;QAC3C,MAAM;UACJlF,MAAM,EAAE;YAAEmF,OAAO;YAAEN;UAAO;QAC5B,CAAC,GAAG5J,UAAU;QACd,MAAM+J,WAAW,GAAGH,MAAM,CAACG,WAAW,CAACI,OAAO,CAAEC,IAAI,IAAKA,IAAI,CAAC;QAC9D,OAAOF,OAAO,IAAIH,WAAW,CAACxJ,MAAM,GAAG,CAAC;MAC1C,CAAC,EAAE,CAAC;MAEJ,OAAOP,UAAU,CAACwJ,OAAO,CAACa,SAAS,CAAC,4BAA4B,CAAC,CAC9D9J,MAAM,GACLoJ,2BAA2B,GAC3BM,6BAA6B;IACnC,CAAC,EACAK,YAAY,IAAK;MAChB,IAAI,CAACA,YAAY,EAAE;QACjB;MACF;MAEA,IACEtK,UAAU,CAACwJ,OAAO,CAACa,SAAS,CAAC,4BAA4B,CAAC,CAAC9J,MAAM,EACjE;QACA,IACEgK,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,IAC9BC,MAAM,CAASC,4CAA4C,EAC5D;UACA3K,UAAU,CAACwJ,OAAO,CAACnI,IAAI,CAAC,4BAA4B,CAAC;QACvD;MACF,CAAC,MAAM;QACLrB,UAAU,CAAC4K,qBAAqB,CAAC,CAAC;MACpC;IACF,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACX5K,UAAU,CAACwJ,OAAO,CAACxI,GAAG,CAAC,SAAS,EAAEsI,WAAW,CAAC;MAC9CtJ,UAAU,CAACwJ,OAAO,CAACxI,GAAG,CAAC,qBAAqB,EAAEuI,uBAAuB,CAAC;MACtEE,SAAS,CAACjJ,OAAO,CAAEqK,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;MAC3C,IAAI,CAAC9K,KAAK,CAACsJ,qBAAqB,GAAG,IAAI,CAACtJ,KAAK,CAACM,OAAO,CAACyK,MAAM,CAAC,CAAC;MAC9DhK,MAAM,CAACO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;EACH;EAEA+B,KAAKA,CAAA,EAAG;IACN,MAAM;MAAE/C;IAAQ,CAAC,GAAG,IAAI,CAACN,KAAK;IAC9B,MAAMgL,SAAS,GAAG1K,OAAO,CAAC+C,KAAK,CAAC,CAAC;IACjC,KAAK,MAAMtD,KAAK,IAAIiL,SAAS,EAAE;MAC7B,IAAI,CAACjL,KAAK,CAACqB,OAAO,EAAE;QAClBd,OAAO,CAACsC,IAAI,CAAC7C,KAAK,CAAC;MACrB;IACF;EACF;AACF;AAACkL,OAAA,CAAAzL,2BAAA,GAAAA,2BAAA","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","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\n createOne(item: T, params: CreateManyParams<T>) {\n return this.createMany([item], params);\n }\n\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 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":[]}
|
|
@@ -10,6 +10,7 @@ var _mobx = require("mobx");
|
|
|
10
10
|
var _util = require("../util");
|
|
11
11
|
var _DataExtensionField = require("./DataExtension/DataExtensionField");
|
|
12
12
|
var _ConditionalModalState = require("./ConditionalModalState");
|
|
13
|
+
var _DeleteFieldModalState = require("./DeleteFieldModalState");
|
|
13
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
15
|
const MAX_CUSTOM_FIELDS = exports.MAX_CUSTOM_FIELDS = 50;
|
|
15
16
|
|
|
@@ -41,17 +42,27 @@ class DataExtensionState {
|
|
|
41
42
|
(0, _defineProperty2.default)(this, "_fieldOperationsService", void 0);
|
|
42
43
|
(0, _defineProperty2.default)(this, "_fieldOperationsServicePromise", void 0);
|
|
43
44
|
(0, _defineProperty2.default)(this, "deleteConfirmModal", new _ConditionalModalState.ConditionalModalState());
|
|
45
|
+
(0, _defineProperty2.default)(this, "deleteFieldModal", void 0);
|
|
44
46
|
(0, _defineProperty2.default)(this, "_extensionPoint", void 0);
|
|
45
47
|
this.container = params.container;
|
|
46
48
|
this.disableUserDefinedWriting = params.disableUserDefinedWriting;
|
|
47
49
|
this.filterable = params.filterable;
|
|
48
|
-
this.enableArchive = params.enableArchive;
|
|
50
|
+
this.enableArchive = params.enableArchive ?? true;
|
|
49
51
|
this.closeSidePanel = params.closeSidePanel;
|
|
50
52
|
this.fqdn = params.fqdn;
|
|
51
53
|
this._extensionPoint = params.extensionPoint;
|
|
52
54
|
this.dataExtensionService = new _services.DataExtensionSchemaService(params.container);
|
|
53
55
|
this.containsPii = params.containsPii;
|
|
54
56
|
this.defaultPermissions = params.defaultPermissions;
|
|
57
|
+
|
|
58
|
+
// Initialize deleteFieldModal with proper reportBi
|
|
59
|
+
this.deleteFieldModal = new _DeleteFieldModalState.DeleteFieldModalState({
|
|
60
|
+
dataExtension: this,
|
|
61
|
+
reportBi: params.container.createBILogger({
|
|
62
|
+
componentType: 'DataExtension',
|
|
63
|
+
...params.fqdn
|
|
64
|
+
})
|
|
65
|
+
});
|
|
55
66
|
(0, _mobx.makeObservable)(this, {
|
|
56
67
|
allUserCustomFields: _mobx.computed,
|
|
57
68
|
allAppsCustomFields: _mobx.computed,
|
|
@@ -73,6 +84,7 @@ class DataExtensionState {
|
|
|
73
84
|
containsPii: _mobx.observable,
|
|
74
85
|
defaultPermissions: _mobx.observable,
|
|
75
86
|
isArchivedPanelOpen: _mobx.observable,
|
|
87
|
+
deleteFieldModal: _mobx.observable.ref,
|
|
76
88
|
openArchivedPanel: _mobx.action,
|
|
77
89
|
closeArchivedPanel: _mobx.action,
|
|
78
90
|
openDeleteConfirmModal: _mobx.action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_services","require","_TaskState","_mobx","_util","_DataExtensionField","_ConditionalModalState","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","TaskState","ConditionalModalState","container","disableUserDefinedWriting","filterable","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","archivedItems","shouldDisplayArchive","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","openDeleteConfirmModal","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","getFieldOperationsService","_fieldOperationsService","_fieldOperationsServicePromise","Promise","resolve","then","module","self","DataExtensionFieldOperationsService","extractFieldValuesFromSchema","bind","upsertSchema","archiveField","id","origin","reportBi","service","restoreField","deleteField","fieldId","_customField$xWixPi","customField","toCustomField","type","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","schema","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","_userSchema$jsonSchem","_properties$key","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction","deleteConfirmModal","open"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport type { DataExtensionFieldOperationsService } from '../services/DataExtensionFieldOperationsService';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\nimport { ConditionalModalState } from './ConditionalModalState';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n /**\n * When set to true, will enable the \"Archived Fields\" button in the custom columns panel.\n */\n enableArchive?: boolean;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\n/**\n * Manages data extension schemas and custom fields for a collection\n */\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n readonly enableArchive?: boolean;\n isArchivedPanelOpen: boolean = false;\n\n // Lazy-loaded service for field operations (archive/restore/delete)\n private _fieldOperationsService?: DataExtensionFieldOperationsService;\n private _fieldOperationsServicePromise?: Promise<DataExtensionFieldOperationsService>;\n\n readonly deleteConfirmModal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>();\n\n _extensionPoint;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.enableArchive = params.enableArchive;\n this.closeSidePanel = params.closeSidePanel;\n this.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n archivedItems: computed,\n shouldDisplayArchive: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n isArchivedPanelOpen: observable,\n openArchivedPanel: action,\n closeArchivedPanel: action,\n openDeleteConfirmModal: action,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n getArchiveSuccessToastMessage(fieldName?: string): string {\n return this.enableArchive && fieldName\n ? this.container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : this.container.translate('cairo.customFields.archive.success.toast');\n }\n\n getArchiveSuccessToastAction() {\n return this.enableArchive\n ? {\n text: this.container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => this.openArchivedPanel?.(),\n }\n : undefined;\n }\n\n /**\n * Lazily loads the field operations service to reduce bundle size.\n * Only loads when archive/restore/delete operations are needed.\n */\n private async getFieldOperationsService(): Promise<DataExtensionFieldOperationsService> {\n if (this._fieldOperationsService) {\n return this._fieldOperationsService;\n }\n\n // Reuse the same promise if already loading\n if (this._fieldOperationsServicePromise) {\n return this._fieldOperationsServicePromise;\n }\n\n this._fieldOperationsServicePromise = import(\n '../services/DataExtensionFieldOperationsService'\n ).then((module) => {\n const self = this;\n this._fieldOperationsService =\n new module.DataExtensionFieldOperationsService({\n container: this.container,\n dataExtensionService: this.dataExtensionService,\n get userSchema() {\n return self.userSchema;\n },\n fqdnString: this.fqdnString,\n enableArchive: this.enableArchive,\n extractFieldValuesFromSchema:\n this.extractFieldValuesFromSchema.bind(this),\n upsertSchema: this._upsertSchema.bind(this),\n openArchivedPanel: this.openArchivedPanel.bind(this),\n });\n return this._fieldOperationsService;\n });\n\n return this._fieldOperationsServicePromise;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.archiveField({ id, origin, reportBi });\n }\n\n async restoreField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.restoreField({ id, origin, reportBi });\n }\n\n async deleteField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.deleteField({ id, origin, reportBi });\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii']?.enabled;\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title || key,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n permissions: schema['x-wix-permissions'],\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getSchemaAndFieldsByNamespace(namespace: string) {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n\n const schema = _dataExtensionSchemas.find((s) => s.namespace === namespace);\n\n if (!schema) {\n return {};\n }\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: namespace === userFieldsNamespace ? 'user' : 'app',\n namespace,\n },\n );\n\n return {\n schema,\n fields,\n };\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get archivedItems() {\n const userSchema = this.userSchema;\n if (!userSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const properties = userSchema.jsonSchema.properties;\n return Object.keys(properties)\n .filter((key) => properties[key]['x-wix-archived'])\n .map((key) => ({\n id: key,\n label: properties[key]?.title || key,\n ...properties[key],\n }));\n }\n\n get shouldDisplayArchive() {\n return this.enableArchive && this.archivedItems.length > 0;\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n _upsertSchema(newSchema: DataExtensionSchema) {\n const { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.map((schema) =>\n schema.namespace === newSchema.namespace ? newSchema : schema,\n );\n }\n }\n\n get userSchema() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.find(\n (s) => s.namespace === userFieldsNamespace,\n );\n }\n\n get _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\n );\n }\n\n get appSchemas() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.filter(\n (s) => s.namespace !== userFieldsNamespace,\n );\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n this._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\n });\n }\n }\n\n openArchivedPanel() {\n if (this.enableArchive) {\n this.isArchivedPanelOpen = true;\n }\n }\n\n closeArchivedPanel() {\n this.isArchivedPanelOpen = false;\n }\n\n openDeleteConfirmModal({ id, origin }: { id: string; origin: string }) {\n this.deleteConfirmModal.open({ id, origin });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_services","require","_TaskState","_mobx","_util","_DataExtensionField","_ConditionalModalState","_DeleteFieldModalState","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","TaskState","ConditionalModalState","container","disableUserDefinedWriting","filterable","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","deleteFieldModal","DeleteFieldModalState","dataExtension","reportBi","createBILogger","componentType","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","archivedItems","shouldDisplayArchive","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","openDeleteConfirmModal","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","getFieldOperationsService","_fieldOperationsService","_fieldOperationsServicePromise","Promise","resolve","then","module","self","DataExtensionFieldOperationsService","extractFieldValuesFromSchema","bind","upsertSchema","archiveField","id","origin","service","restoreField","deleteField","fieldId","_customField$xWixPi","customField","toCustomField","type","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","schema","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","_userSchema$jsonSchem","_properties$key","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction","deleteConfirmModal","open"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport type { DataExtensionFieldOperationsService } from '../services/DataExtensionFieldOperationsService';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DeleteFieldModalState } from './DeleteFieldModalState';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n /**\n * When set to true, will enable the \"Archived Fields\" button in the custom columns panel.\n */\n enableArchive?: boolean;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\n/**\n * Manages data extension schemas and custom fields for a collection\n */\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n readonly enableArchive?: boolean;\n isArchivedPanelOpen: boolean = false;\n\n // Lazy-loaded service for field operations (archive/restore/delete)\n private _fieldOperationsService?: DataExtensionFieldOperationsService;\n private _fieldOperationsServicePromise?: Promise<DataExtensionFieldOperationsService>;\n\n readonly deleteConfirmModal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>();\n\n deleteFieldModal?: DeleteFieldModalState;\n\n _extensionPoint;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.enableArchive = params.enableArchive ?? true;\n this.closeSidePanel = params.closeSidePanel;\n this.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n // Initialize deleteFieldModal with proper reportBi\n this.deleteFieldModal = new DeleteFieldModalState({\n dataExtension: this,\n reportBi: params.container.createBILogger({\n componentType: 'DataExtension',\n ...params.fqdn,\n }),\n });\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n archivedItems: computed,\n shouldDisplayArchive: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n isArchivedPanelOpen: observable,\n deleteFieldModal: observable.ref,\n openArchivedPanel: action,\n closeArchivedPanel: action,\n openDeleteConfirmModal: action,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n getArchiveSuccessToastMessage(fieldName?: string): string {\n return this.enableArchive && fieldName\n ? this.container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : this.container.translate('cairo.customFields.archive.success.toast');\n }\n\n getArchiveSuccessToastAction() {\n return this.enableArchive\n ? {\n text: this.container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => this.openArchivedPanel?.(),\n }\n : undefined;\n }\n\n /**\n * Lazily loads the field operations service to reduce bundle size.\n * Only loads when archive/restore/delete operations are needed.\n */\n private async getFieldOperationsService(): Promise<DataExtensionFieldOperationsService> {\n if (this._fieldOperationsService) {\n return this._fieldOperationsService;\n }\n\n // Reuse the same promise if already loading\n if (this._fieldOperationsServicePromise) {\n return this._fieldOperationsServicePromise;\n }\n\n this._fieldOperationsServicePromise = import(\n '../services/DataExtensionFieldOperationsService'\n ).then((module) => {\n const self = this;\n this._fieldOperationsService =\n new module.DataExtensionFieldOperationsService({\n container: this.container,\n dataExtensionService: this.dataExtensionService,\n get userSchema() {\n return self.userSchema;\n },\n fqdnString: this.fqdnString,\n enableArchive: this.enableArchive,\n extractFieldValuesFromSchema:\n this.extractFieldValuesFromSchema.bind(this),\n upsertSchema: this._upsertSchema.bind(this),\n openArchivedPanel: this.openArchivedPanel.bind(this),\n });\n return this._fieldOperationsService;\n });\n\n return this._fieldOperationsServicePromise;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.archiveField({ id, origin, reportBi });\n }\n\n async restoreField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.restoreField({ id, origin, reportBi });\n }\n\n async deleteField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.deleteField({ id, origin, reportBi });\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii']?.enabled;\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title || key,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n permissions: schema['x-wix-permissions'],\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getSchemaAndFieldsByNamespace(namespace: string) {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n\n const schema = _dataExtensionSchemas.find((s) => s.namespace === namespace);\n\n if (!schema) {\n return {};\n }\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: namespace === userFieldsNamespace ? 'user' : 'app',\n namespace,\n },\n );\n\n return {\n schema,\n fields,\n };\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get archivedItems() {\n const userSchema = this.userSchema;\n if (!userSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const properties = userSchema.jsonSchema.properties;\n return Object.keys(properties)\n .filter((key) => properties[key]['x-wix-archived'])\n .map((key) => ({\n id: key,\n label: properties[key]?.title || key,\n ...properties[key],\n }));\n }\n\n get shouldDisplayArchive() {\n return this.enableArchive && this.archivedItems.length > 0;\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n _upsertSchema(newSchema: DataExtensionSchema) {\n const { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.map((schema) =>\n schema.namespace === newSchema.namespace ? newSchema : schema,\n );\n }\n }\n\n get userSchema() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.find(\n (s) => s.namespace === userFieldsNamespace,\n );\n }\n\n get _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\n );\n }\n\n get appSchemas() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.filter(\n (s) => s.namespace !== userFieldsNamespace,\n );\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n this._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\n });\n }\n }\n\n openArchivedPanel() {\n if (this.enableArchive) {\n this.isArchivedPanelOpen = true;\n }\n }\n\n closeArchivedPanel() {\n this.isArchivedPanelOpen = false;\n }\n\n openDeleteConfirmModal({ id, origin }: { id: string; origin: string }) {\n this.deleteConfirmModal.open({ id, origin });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,12 @@ class DataExtensionStateBIReporter {
|
|
|
15
15
|
modalName: 'Archive custom field'
|
|
16
16
|
}));
|
|
17
17
|
});
|
|
18
|
+
(0, _defineProperty2.default)(this, "reportDeleteFieldModalCtaClicked", ctaName => {
|
|
19
|
+
this.reportBi((0, _util.withoutDefaults)(_v.cairoModalCtaClicked)({
|
|
20
|
+
ctaName,
|
|
21
|
+
modalName: 'Delete custom field'
|
|
22
|
+
}));
|
|
23
|
+
});
|
|
18
24
|
(0, _defineProperty2.default)(this, "reportArchiveFieldFailed", ({
|
|
19
25
|
origin,
|
|
20
26
|
formValues
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_util","require","_v","DataExtensionStateBIReporter","constructor","params","_defineProperty2","default","ctaName","reportBi","withoutDefaults","cairoModalCtaClicked","modalName","origin","formValues","cairoDataExtensionUnsuccessfulUpdateInServer","actionName","errorType","permissions","getBiPermissions","fieldType","type","fieldName","name","key","cairoTryAgainClicked","loaction","readApps","readUsers","writeApps","writeUsers","apps","users","push","JSON","stringify","length","join","exports"],"sources":["../../../src/state/DataExtensionStateBIReporter.ts"],"sourcesContent":["import { ReportBI } from '../services';\nimport { withoutDefaults } from '../util';\nimport {\n cairoDataExtensionUnsuccessfulUpdateInServer,\n cairoModalCtaClicked,\n cairoTryAgainClicked,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { CustomFieldForm } from './CustomFieldModalState';\n\nexport interface DataExtensionStateBIReporterParams {\n reportBi: ReportBI;\n}\n\nexport class DataExtensionStateBIReporter {\n readonly reportBi: ReportBI;\n\n constructor(params: Readonly<DataExtensionStateBIReporterParams>) {\n const { reportBi } = params;\n\n this.reportBi = reportBi;\n }\n\n reportArchiveFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Archive custom field',\n }),\n );\n };\n\n getBiPermissions(formValues: CustomFieldForm) {\n const { readApps, readUsers, writeApps, writeUsers } = formValues;\n const apps = [];\n const users = [];\n\n if (readApps) {\n apps.push('Read');\n }\n\n if (writeApps) {\n apps.push('Write');\n }\n\n if (readUsers) {\n users.push('Read');\n }\n\n if (writeUsers) {\n users.push('Write');\n }\n\n return JSON.stringify({\n 'Installed apps': apps.length !== 0 ? apps.join(' and ') : null,\n 'Site visitors': users.length !== 0 ? users.join(' and ') : null,\n });\n }\n\n reportArchiveFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Archive',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportArchiveTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Archive custom field',\n loaction: 'toast',\n }),\n );\n };\n\n reportRestoreFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Restore',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportRestoreTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Restore custom field',\n loaction: 'toast',\n }),\n );\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,EAAA,GAAAD,OAAA;AAWO,MAAME,4BAA4B,CAAC;EAGxCC,WAAWA,CAACC,MAAoD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6CAM7BC,OAAe,IAAK;MACvD,IAAI,CAACC,QAAQ,CACX,IAAAC,qBAAe,EAACC,uBAAoB,CAAC,CAAC;QACpCH,OAAO;QACPI,SAAS,EAAE;MACb,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,oCA6B0B,CAAC;MAC1BM,MAAM;MACNC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACA,UAAU,EAAE;QACf;MACF;MAEA,IAAI,CAACL,QAAQ,CACX,IAAAC,qBAAe,EAACK,+CAA4C,CAAC,CAAC;QAC5DC,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,iBAAiB;QAC5BJ,MAAM;QACNK,WAAW,EAAE,IAAI,CAACC,gBAAgB,CAACL,UAAU,CAAC;QAC9CM,SAAS,EAAEN,UAAU,CAACO,IAAI;QAC1BC,SAAS,EAAER,UAAU,CAACS,IAAI;QAC1BC,GAAG,EAAEV,UAAU,CAACU;MAClB,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,iCAEuB,MAAM;MAC5B,IAAI,CAACE,QAAQ,CACX,IAAAC,qBAAe,EAACe,uBAAoB,CAAC,CAAC;QACpCT,UAAU,EAAE,sBAAsB;QAClCU,QAAQ,EAAE;MACZ,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAApB,gBAAA,CAAAC,OAAA,oCAE0B,CAAC;MAC1BM,MAAM;MACNC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACA,UAAU,EAAE;QACf;MACF;MAEA,IAAI,CAACL,QAAQ,CACX,IAAAC,qBAAe,EAACK,+CAA4C,CAAC,CAAC;QAC5DC,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,iBAAiB;QAC5BJ,MAAM;QACNK,WAAW,EAAE,IAAI,CAACC,gBAAgB,CAACL,UAAU,CAAC;QAC9CM,SAAS,EAAEN,UAAU,CAACO,IAAI;QAC1BC,SAAS,EAAER,UAAU,CAACS,IAAI;QAC1BC,GAAG,EAAEV,UAAU,CAACU;MAClB,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,iCAEuB,MAAM;MAC5B,IAAI,CAACE,QAAQ,CACX,IAAAC,qBAAe,EAACe,uBAAoB,CAAC,CAAC;QACpCT,UAAU,EAAE,sBAAsB;QAClCU,QAAQ,EAAE;MACZ,CAAC,CACH,CAAC;IACH,CAAC;
|
|
1
|
+
{"version":3,"names":["_util","require","_v","DataExtensionStateBIReporter","constructor","params","_defineProperty2","default","ctaName","reportBi","withoutDefaults","cairoModalCtaClicked","modalName","origin","formValues","cairoDataExtensionUnsuccessfulUpdateInServer","actionName","errorType","permissions","getBiPermissions","fieldType","type","fieldName","name","key","cairoTryAgainClicked","loaction","readApps","readUsers","writeApps","writeUsers","apps","users","push","JSON","stringify","length","join","exports"],"sources":["../../../src/state/DataExtensionStateBIReporter.ts"],"sourcesContent":["import { ReportBI } from '../services';\nimport { withoutDefaults } from '../util';\nimport {\n cairoDataExtensionUnsuccessfulUpdateInServer,\n cairoModalCtaClicked,\n cairoTryAgainClicked,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { CustomFieldForm } from './CustomFieldModalState';\n\nexport interface DataExtensionStateBIReporterParams {\n reportBi: ReportBI;\n}\n\nexport class DataExtensionStateBIReporter {\n readonly reportBi: ReportBI;\n\n constructor(params: Readonly<DataExtensionStateBIReporterParams>) {\n const { reportBi } = params;\n\n this.reportBi = reportBi;\n }\n\n reportArchiveFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Archive custom field',\n }),\n );\n };\n\n reportDeleteFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Delete custom field',\n }),\n );\n };\n\n getBiPermissions(formValues: CustomFieldForm) {\n const { readApps, readUsers, writeApps, writeUsers } = formValues;\n const apps = [];\n const users = [];\n\n if (readApps) {\n apps.push('Read');\n }\n\n if (writeApps) {\n apps.push('Write');\n }\n\n if (readUsers) {\n users.push('Read');\n }\n\n if (writeUsers) {\n users.push('Write');\n }\n\n return JSON.stringify({\n 'Installed apps': apps.length !== 0 ? apps.join(' and ') : null,\n 'Site visitors': users.length !== 0 ? users.join(' and ') : null,\n });\n }\n\n reportArchiveFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Archive',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportArchiveTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Archive custom field',\n loaction: 'toast',\n }),\n );\n };\n\n reportRestoreFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Restore',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportRestoreTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Restore custom field',\n loaction: 'toast',\n }),\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.DeleteFieldModalState = void 0;
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _mobx = require("mobx");
|
|
8
|
+
var _ConditionalModalState = require("./ConditionalModalState");
|
|
9
|
+
var _DataExtensionStateBIReporter = require("./DataExtensionStateBIReporter");
|
|
10
|
+
class DeleteFieldModalState {
|
|
11
|
+
constructor(params) {
|
|
12
|
+
(0, _defineProperty2.default)(this, "biReporter", void 0);
|
|
13
|
+
(0, _defineProperty2.default)(this, "dataExtension", void 0);
|
|
14
|
+
(0, _defineProperty2.default)(this, "modal", void 0);
|
|
15
|
+
this.biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
|
|
16
|
+
reportBi: params.reportBi
|
|
17
|
+
});
|
|
18
|
+
this.modal = new _ConditionalModalState.ConditionalModalState({
|
|
19
|
+
onConfirm: async () => {
|
|
20
|
+
if (!this.modal.value) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.biReporter.reportDeleteFieldModalCtaClicked('Delete');
|
|
24
|
+
await this.dataExtension.deleteField({
|
|
25
|
+
...this.modal.value,
|
|
26
|
+
reportBi: this.biReporter.reportBi
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Close archived panel if no items left
|
|
30
|
+
const remainingItems = this.dataExtension.archivedItems;
|
|
31
|
+
if (remainingItems.length === 0) {
|
|
32
|
+
this.dataExtension.closeArchivedPanel();
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
onClose: () => {
|
|
36
|
+
this.biReporter.reportDeleteFieldModalCtaClicked('Cancel');
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
this.dataExtension = params.dataExtension;
|
|
40
|
+
(0, _mobx.makeAutoObservable)(this);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DeleteFieldModalState = DeleteFieldModalState;
|
|
44
|
+
//# sourceMappingURL=DeleteFieldModalState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_mobx","require","_ConditionalModalState","_DataExtensionStateBIReporter","DeleteFieldModalState","constructor","params","_defineProperty2","default","biReporter","DataExtensionStateBIReporter","reportBi","modal","ConditionalModalState","onConfirm","value","reportDeleteFieldModalCtaClicked","dataExtension","deleteField","remainingItems","archivedItems","length","closeArchivedPanel","onClose","makeAutoObservable","exports"],"sources":["../../../src/state/DeleteFieldModalState.ts"],"sourcesContent":["import { makeAutoObservable } from 'mobx';\nimport { ReportBI } from '../services';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { DataExtensionState } from './DataExtensionState';\n\nexport interface DeleteFieldModalStateParams {\n dataExtension: DataExtensionState;\n readonly reportBi: ReportBI;\n}\n\nexport class DeleteFieldModalState {\n readonly biReporter;\n readonly dataExtension;\n readonly modal;\n\n constructor(params: DeleteFieldModalStateParams) {\n this.biReporter = new DataExtensionStateBIReporter({\n reportBi: params.reportBi,\n });\n this.modal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>({\n onConfirm: async () => {\n if (!this.modal.value) {\n return;\n }\n\n this.biReporter.reportDeleteFieldModalCtaClicked('Delete');\n await this.dataExtension.deleteField({\n ...this.modal.value,\n reportBi: this.biReporter.reportBi,\n });\n\n // Close archived panel if no items left\n const remainingItems = this.dataExtension.archivedItems;\n if (remainingItems.length === 0) {\n this.dataExtension.closeArchivedPanel();\n }\n },\n onClose: () => {\n this.biReporter.reportDeleteFieldModalCtaClicked('Cancel');\n },\n });\n this.dataExtension = params.dataExtension;\n makeAutoObservable(this);\n }\n}\n\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AAQO,MAAMG,qBAAqB,CAAC;EAKjCC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAC/C,IAAI,CAACC,UAAU,GAAG,IAAIC,0DAA4B,CAAC;MACjDC,QAAQ,EAAEL,MAAM,CAACK;IACnB,CAAC,CAAC;IACF,IAAI,CAACC,KAAK,GAAG,IAAIC,4CAAqB,CAGnC;MACDC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,IAAI,CAAC,IAAI,CAACF,KAAK,CAACG,KAAK,EAAE;UACrB;QACF;QAEA,IAAI,CAACN,UAAU,CAACO,gCAAgC,CAAC,QAAQ,CAAC;QAC1D,MAAM,IAAI,CAACC,aAAa,CAACC,WAAW,CAAC;UACnC,GAAG,IAAI,CAACN,KAAK,CAACG,KAAK;UACnBJ,QAAQ,EAAE,IAAI,CAACF,UAAU,CAACE;QAC5B,CAAC,CAAC;;QAEF;QACA,MAAMQ,cAAc,GAAG,IAAI,CAACF,aAAa,CAACG,aAAa;QACvD,IAAID,cAAc,CAACE,MAAM,KAAK,CAAC,EAAE;UAC/B,IAAI,CAACJ,aAAa,CAACK,kBAAkB,CAAC,CAAC;QACzC;MACF,CAAC;MACDC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACd,UAAU,CAACO,gCAAgC,CAAC,QAAQ,CAAC;MAC5D;IACF,CAAC,CAAC;IACF,IAAI,CAACC,aAAa,GAAGX,MAAM,CAACW,aAAa;IACzC,IAAAO,wBAAkB,EAAC,IAAI,CAAC;EAC1B;AACF;AAACC,OAAA,CAAArB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|