@wix/bex-core 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +4 -4
  2. package/dist/cjs/assets/locale/messages_da.json +1 -1
  3. package/dist/cjs/assets/locale/messages_de.json +1 -1
  4. package/dist/cjs/assets/locale/messages_en.json +1 -1
  5. package/dist/cjs/assets/locale/messages_es.json +1 -1
  6. package/dist/cjs/assets/locale/messages_fr.json +1 -1
  7. package/dist/cjs/assets/locale/messages_id.json +1 -1
  8. package/dist/cjs/assets/locale/messages_it.json +7 -7
  9. package/dist/cjs/assets/locale/messages_ja.json +3 -3
  10. package/dist/cjs/assets/locale/messages_ko.json +1 -1
  11. package/dist/cjs/assets/locale/messages_nl.json +3 -3
  12. package/dist/cjs/assets/locale/messages_no.json +1 -1
  13. package/dist/cjs/assets/locale/messages_pl.json +1 -1
  14. package/dist/cjs/assets/locale/messages_pt.json +3 -3
  15. package/dist/cjs/assets/locale/messages_sv.json +1 -1
  16. package/dist/cjs/assets/locale/messages_th.json +1 -1
  17. package/dist/cjs/assets/locale/messages_tr.json +4 -4
  18. package/dist/cjs/assets/locale/messages_uk.json +1 -1
  19. package/dist/cjs/assets/locale/messages_vi.json +5 -5
  20. package/dist/cjs/assets/locale/messages_visuale2e.json +3 -1
  21. package/dist/cjs/assets/locale/messages_zh.json +2 -2
  22. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  23. package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
  24. package/dist/cjs/hooks/createCollection.js +1 -2
  25. package/dist/cjs/hooks/createCollection.js.map +1 -1
  26. package/dist/cjs/hooks/createCollectionConfig.js +4 -4
  27. package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
  28. package/dist/cjs/hooks/useAmbassadorCollection.js +8 -8
  29. package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
  30. package/dist/cjs/hooks/useOptimisticActions.js +1 -1
  31. package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
  32. package/dist/cjs/model/cairoEssentials.js.map +1 -1
  33. package/dist/cjs/model/commonTypes.js.map +1 -1
  34. package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
  35. package/dist/cjs/model/filter.js.map +1 -1
  36. package/dist/cjs/providers/CairoContainerOverridesContext.js +1 -6
  37. package/dist/cjs/providers/CairoContainerOverridesContext.js.map +1 -1
  38. package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js +1 -6
  39. package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
  40. package/dist/cjs/providers/CairoInitialPropsProvider.js +3 -3
  41. package/dist/cjs/providers/CairoInitialPropsProvider.js.map +1 -1
  42. package/dist/cjs/providers/CairoProvider/CairoProvider.js +2 -2
  43. package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
  44. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +0 -4
  45. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  46. package/dist/cjs/state/BulkSelectState.js +13 -11
  47. package/dist/cjs/state/BulkSelectState.js.map +1 -1
  48. package/dist/cjs/state/CairoContainer.js +2 -13
  49. package/dist/cjs/state/CairoContainer.js.map +1 -1
  50. package/dist/cjs/state/CollectionOptimisticActions.js +11 -93
  51. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  52. package/dist/cjs/state/CollectionOptimisticExecutor.js +2 -2
  53. package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
  54. package/dist/cjs/state/CollectionState.js +0 -20
  55. package/dist/cjs/state/CollectionState.js.map +1 -1
  56. package/dist/cjs/state/CustomFilterState/CustomFilterState.js +0 -4
  57. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  58. package/dist/cjs/state/ExportState.js +7 -7
  59. package/dist/cjs/state/ExportState.js.map +1 -1
  60. package/dist/cjs/state/RangeFilterState/RangeFilterState.js +0 -4
  61. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  62. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  63. package/dist/cjs/state/SortState.js +4 -4
  64. package/dist/cjs/state/SortState.js.map +1 -1
  65. package/dist/cjs/state/StringFilterState/StringFilterState.js +0 -4
  66. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  67. package/dist/cjs/state/buildCairoContainer.js +4 -10
  68. package/dist/cjs/state/buildCairoContainer.js.map +1 -1
  69. package/dist/cjs/state/index.js +0 -7
  70. package/dist/cjs/state/index.js.map +1 -1
  71. package/dist/cjs/testkit/CairoContainer.driver.js +3 -3
  72. package/dist/cjs/testkit/CairoContainer.driver.js.map +1 -1
  73. package/dist/cjs/testkit/ProductsCollectionState.driver.js +1 -1
  74. package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
  75. package/dist/cjs/util/assertKey.js +21 -1
  76. package/dist/cjs/util/assertKey.js.map +1 -1
  77. package/dist/esm/assets/locale/messages_cs.json +4 -4
  78. package/dist/esm/assets/locale/messages_da.json +1 -1
  79. package/dist/esm/assets/locale/messages_de.json +1 -1
  80. package/dist/esm/assets/locale/messages_en.json +1 -1
  81. package/dist/esm/assets/locale/messages_es.json +1 -1
  82. package/dist/esm/assets/locale/messages_fr.json +1 -1
  83. package/dist/esm/assets/locale/messages_id.json +1 -1
  84. package/dist/esm/assets/locale/messages_it.json +7 -7
  85. package/dist/esm/assets/locale/messages_ja.json +3 -3
  86. package/dist/esm/assets/locale/messages_ko.json +1 -1
  87. package/dist/esm/assets/locale/messages_nl.json +3 -3
  88. package/dist/esm/assets/locale/messages_no.json +1 -1
  89. package/dist/esm/assets/locale/messages_pl.json +1 -1
  90. package/dist/esm/assets/locale/messages_pt.json +3 -3
  91. package/dist/esm/assets/locale/messages_sv.json +1 -1
  92. package/dist/esm/assets/locale/messages_th.json +1 -1
  93. package/dist/esm/assets/locale/messages_tr.json +4 -4
  94. package/dist/esm/assets/locale/messages_uk.json +1 -1
  95. package/dist/esm/assets/locale/messages_vi.json +5 -5
  96. package/dist/esm/assets/locale/messages_visuale2e.json +3 -1
  97. package/dist/esm/assets/locale/messages_zh.json +2 -2
  98. package/dist/esm/hooks/createCollection.js +2 -2
  99. package/dist/esm/hooks/createCollection.js.map +1 -1
  100. package/dist/esm/hooks/createCollectionConfig.js +7 -6
  101. package/dist/esm/hooks/createCollectionConfig.js.map +1 -1
  102. package/dist/esm/hooks/useAmbassadorCollection.js +9 -6
  103. package/dist/esm/hooks/useAmbassadorCollection.js.map +1 -1
  104. package/dist/esm/hooks/useOptimisticActions.js +5 -2
  105. package/dist/esm/hooks/useOptimisticActions.js.map +1 -1
  106. package/dist/esm/providers/CairoContainerOverridesContext.js +0 -5
  107. package/dist/esm/providers/CairoContainerOverridesContext.js.map +1 -1
  108. package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js +0 -5
  109. package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
  110. package/dist/esm/providers/CairoInitialPropsProvider.js +1 -1
  111. package/dist/esm/providers/CairoInitialPropsProvider.js.map +1 -1
  112. package/dist/esm/providers/CairoProvider/CairoProvider.js +4 -4
  113. package/dist/esm/providers/CairoProvider/CairoProvider.js.map +1 -1
  114. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +5 -7
  115. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  116. package/dist/esm/state/BulkSelectState.js +9 -9
  117. package/dist/esm/state/BulkSelectState.js.map +1 -1
  118. package/dist/esm/state/CairoContainer.js +1 -7
  119. package/dist/esm/state/CairoContainer.js.map +1 -1
  120. package/dist/esm/state/CollectionOptimisticActions.js +10 -58
  121. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  122. package/dist/esm/state/CollectionOptimisticExecutor.js +2 -2
  123. package/dist/esm/state/CollectionOptimisticExecutor.js.map +1 -1
  124. package/dist/esm/state/CollectionState.js +5 -19
  125. package/dist/esm/state/CollectionState.js.map +1 -1
  126. package/dist/esm/state/CustomFilterState/CustomFilterState.js +4 -6
  127. package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
  128. package/dist/esm/state/ExportState.js +7 -7
  129. package/dist/esm/state/ExportState.js.map +1 -1
  130. package/dist/esm/state/RangeFilterState/RangeFilterState.js +8 -10
  131. package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
  132. package/dist/esm/state/SortState.js +4 -4
  133. package/dist/esm/state/SortState.js.map +1 -1
  134. package/dist/esm/state/StringFilterState/StringFilterState.js +5 -7
  135. package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
  136. package/dist/esm/state/buildCairoContainer.js +5 -4
  137. package/dist/esm/state/buildCairoContainer.js.map +1 -1
  138. package/dist/esm/state/index.js +0 -1
  139. package/dist/esm/state/index.js.map +1 -1
  140. package/dist/esm/testkit/CairoContainer.driver.js +1 -1
  141. package/dist/esm/testkit/CairoContainer.driver.js.map +1 -1
  142. package/dist/esm/testkit/ProductsCollectionState.driver.js +2 -2
  143. package/dist/esm/testkit/ProductsCollectionState.driver.js.map +1 -1
  144. package/dist/esm/util/assertKey.js +18 -1
  145. package/dist/esm/util/assertKey.js.map +1 -1
  146. package/dist/types/hooks/collectionConfig.d.ts +3 -7
  147. package/dist/types/hooks/collectionConfig.d.ts.map +1 -1
  148. package/dist/types/hooks/collectionConfigPartials.d.ts +6 -2
  149. package/dist/types/hooks/collectionConfigPartials.d.ts.map +1 -1
  150. package/dist/types/hooks/createCollection.d.ts.map +1 -1
  151. package/dist/types/hooks/createCollectionConfig.d.ts.map +1 -1
  152. package/dist/types/hooks/useAmbassadorCollection.d.ts +2 -2
  153. package/dist/types/hooks/useAmbassadorCollection.d.ts.map +1 -1
  154. package/dist/types/hooks/useOptimisticActions.d.ts.map +1 -1
  155. package/dist/types/model/cairoEssentials.d.ts +1 -14
  156. package/dist/types/model/cairoEssentials.d.ts.map +1 -1
  157. package/dist/types/model/commonTypes.d.ts +1 -1
  158. package/dist/types/model/commonTypes.d.ts.map +1 -1
  159. package/dist/types/model/computedQuery/computedQuery.d.ts +2 -2
  160. package/dist/types/model/computedQuery/computedQuery.d.ts.map +1 -1
  161. package/dist/types/model/filter.d.ts +0 -5
  162. package/dist/types/model/filter.d.ts.map +1 -1
  163. package/dist/types/providers/CairoContainerOverridesContext.d.ts +0 -5
  164. package/dist/types/providers/CairoContainerOverridesContext.d.ts.map +1 -1
  165. package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts +0 -5
  166. package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts.map +1 -1
  167. package/dist/types/providers/CairoInitialPropsProvider.d.ts +1 -1
  168. package/dist/types/providers/CairoInitialPropsProvider.d.ts.map +1 -1
  169. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +0 -1
  170. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
  171. package/dist/types/state/BulkSelectState.d.ts +1 -1
  172. package/dist/types/state/BulkSelectState.d.ts.map +1 -1
  173. package/dist/types/state/CairoContainer.d.ts +3 -19
  174. package/dist/types/state/CairoContainer.d.ts.map +1 -1
  175. package/dist/types/state/CollectionBIReporter.d.ts +1 -1
  176. package/dist/types/state/CollectionOptimisticActions.d.ts +3 -31
  177. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  178. package/dist/types/state/CollectionState.d.ts +2 -32
  179. package/dist/types/state/CollectionState.d.ts.map +1 -1
  180. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +0 -1
  181. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
  182. package/dist/types/state/ExportState.d.ts +1 -1
  183. package/dist/types/state/ExportState.d.ts.map +1 -1
  184. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +0 -1
  185. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
  186. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +1 -1
  187. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -1
  188. package/dist/types/state/SortState.d.ts +5 -5
  189. package/dist/types/state/SortState.d.ts.map +1 -1
  190. package/dist/types/state/StringFilterState/StringFilterState.d.ts +0 -5
  191. package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
  192. package/dist/types/state/buildCairoContainer.d.ts +1 -1
  193. package/dist/types/state/buildCairoContainer.d.ts.map +1 -1
  194. package/dist/types/state/index.d.ts +0 -1
  195. package/dist/types/state/index.d.ts.map +1 -1
  196. package/dist/types/testkit/CairoContainer.driver.d.ts +3 -3
  197. package/dist/types/testkit/CairoContainer.driver.d.ts.map +1 -1
  198. package/dist/types/testkit/ProductsCollectionState.driver.d.ts +3 -3
  199. package/dist/types/testkit/ProductsCollectionState.driver.d.ts.map +1 -1
  200. package/dist/types/util/assertKey.d.ts +7 -1
  201. package/dist/types/util/assertKey.d.ts.map +1 -1
  202. package/package.json +3 -3
  203. package/dist/cjs/state/FiltersPanelModalCompatBridge.js +0 -33
  204. package/dist/cjs/state/FiltersPanelModalCompatBridge.js.map +0 -1
  205. package/dist/esm/state/FiltersPanelModalCompatBridge.js +0 -21
  206. package/dist/esm/state/FiltersPanelModalCompatBridge.js.map +0 -1
  207. package/dist/types/state/FiltersPanelModalCompatBridge.d.ts +0 -17
  208. package/dist/types/state/FiltersPanelModalCompatBridge.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_services","require","_model","_mobx","_TaskState","_OnlineState","_createComponentSettings","_ConditionalModalState","_events","_useExperimentsCompat","_uuid","_BeforeUnloadCompatState","CairoContainer","constructor","params","_params$initialProps","_defineProperty2","default","TaskState","defaultParams","_this$biLoggerFactory","environment","cairoSessionId","biLoggerFactory","call","updateDefaults","artifactId","componentName","cairoVersion","uiLibVersion","csid","logger","bi","createBI","reportProps","report","createEssentials","lodash","patchesCache","events","EventEmitter","_messagesEnImport","messagesEnImport","messagesEnImportGlobal","_fetchTranslations","fetchTranslations","onNavigationModal","ConditionalModalState","wixPatternsEnvironment","user","createComponentSettings","errorMonitor","httpClient","onlineManager","focusManager","history","useTranslation","useExperiments","createUseExperimentsCompat","experiments","showToast","navigateTo","onNavigation","getHostContainer","window","queryCache","appendModalsToBody","onSidePanelOpen","closeSidePanel","onBeforeUnload","i18n","fedopsLogger","internalFedops","internalErrorMonitor","internalExperiments","useSuspense","disableAutoInit","asyncMessagesLoader","locale","messages","initialProps","dsn","process","env","NODE_ENV","fedops","appName","scopes","STORYBOOK_VISUAL_E2E","options","fallbackLng","uuid","internalMonitor","WixPatternsMonitor","translate","args","initTask","status","t","Trans","onlineState","OnlineState","reportBi","createBILogger","makeObservable","init","action","bound","initialFetch","dateFormatters","computed","isLoading","isSuccess","promise","run","Promise","all","ready","catch","e","console","error","medium","Intl","DateTimeFormat","language","dateStyle","mediumTime","timeStyle","time","disposers","BeforeUnloadCompatState","forEach","d","exports","WixPatternsContainer"],"sources":["../../../src/state/CairoContainer.ts"],"sourcesContent":["import type { Essentials } from '@wix/fe-essentials/core';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n WixPatternsMonitor,\n Environment,\n ErrorMonitor,\n fetchTranslations,\n FocusManager,\n History,\n messagesEnImportGlobal,\n ModalLayoutProps,\n OnlineManager,\n PartialLodash,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { QueryCache } from 'react-query/core';\nimport {\n CairoBILoggerFactory,\n wixPatternsEnvironment,\n WixPatternsEssentials,\n WixPatternsInitialProps,\n CloseSidePanel,\n GetContentContainerY,\n GetHostContainer,\n OnNavigation,\n OnSidePanelOpen,\n ShowToast,\n} from '../model';\nimport { action, computed, IObservableArray, makeObservable } from 'mobx';\nimport { TaskState } from './TaskState';\nimport { OnlineState } from './OnlineState';\nimport { createComponentSettings } from '../services/createComponentSettings';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { TransitionState } from './TransitionState';\nimport { ReactElement } from 'react';\nimport { createUseExperimentsCompat } from './useExperimentsCompat';\nimport { v4 as uuid } from 'uuid';\nimport { BeforeUnloadCompatState } from './BeforeUnloadCompatState';\n\ntype WixPatternsContainerEvents = TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n}>;\n\n/**\n * @deprecated\n * use `WixPatternsContainerParams`\n */\nexport interface CairoContainerParams {\n readonly initialProps?: WixPatternsInitialProps;\n readonly createEssentials: WixPatternsEssentials['createEssentials'];\n readonly messagesEnImport?: () => Promise<{}>;\n readonly fetchTranslations?: (p: {\n readonly errorMonitor: ErrorMonitor;\n }) => (locale: string) => Promise<{}>;\n readonly createComponentSettings?: WixPatternsEssentials['createComponentSettings'];\n readonly errorMonitor: ErrorMonitor;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineManager: OnlineManager;\n readonly focusManager: FocusManager;\n readonly history: History;\n readonly window: PartialWindow;\n readonly useTranslation: typeof useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments: WixPatternsEssentials['useExperiments'];\n readonly experiments: WixPatternsEssentials['experiments'];\n readonly environment: WixPatternsEssentials['environment'];\n readonly user: WixPatternsEssentials['user'];\n readonly showToast?: ShowToast;\n readonly navigateTo?: WixPatternsEssentials['navigateTo'];\n readonly onNavigation?: OnNavigation;\n readonly getHostContainer?: GetHostContainer;\n readonly queryCache: QueryCache;\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<any>>>;\n /**\n * @deprecated\n */\n readonly getContentContainerY?: GetContentContainerY;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly lodash: PartialLodash;\n readonly events?: WixPatternsContainerEvents;\n readonly sidePanel?: TransitionState<string>;\n readonly onNavigationModal?: ConditionalModalState<ModalLayoutProps>;\n readonly sidePanelComponents?: Map<string, ReactElement>;\n readonly appendModalsToBody?: boolean;\n readonly onBeforeUnload?: WixPatternsEssentials['onBeforeUnload'];\n}\n\nexport interface WixPatternsContainerParams extends CairoContainerParams {}\n\n/**\n * @deprecated\n * use `WixPatternsContainer`\n */\nexport class CairoContainer {\n readonly createEssentials;\n readonly errorMonitor: WixPatternsContainerParams['errorMonitor'];\n readonly internalMonitor: WixPatternsMonitor;\n readonly internalExperiments;\n readonly experiments;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly onlineManager;\n readonly focusManager;\n readonly history: WixPatternsContainerParams['history'];\n readonly window: WixPatternsContainerParams['window'];\n readonly useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments;\n readonly showToast?;\n readonly navigateTo?;\n readonly onNavigation;\n readonly onBeforeUnload;\n readonly getHostContainer;\n readonly environment: Environment;\n readonly appendModalsToBody?: boolean;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly translate: Translate;\n readonly lodash;\n readonly i18n: Essentials['i18n'];\n readonly reportBi: ReportBI;\n readonly _messagesEnImport;\n readonly _fetchTranslations;\n\n readonly queryCache: QueryCache;\n readonly patchesCache;\n\n readonly initTask = new TaskState<void>();\n readonly onlineState: OnlineState;\n\n readonly onNavigationModal;\n\n readonly events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n\n readonly user;\n\n readonly cairoSessionId: string;\n // Why it might be undefined when creating essentials?\n private readonly biLoggerFactory?: () => CairoBILoggerFactory;\n\n readonly createComponentSettings;\n\n constructor(params: Readonly<WixPatternsContainerParams>) {\n this.createEssentials = params.createEssentials;\n this.lodash = params.lodash;\n this.patchesCache = params.patchesCache;\n this.events =\n params.events ?? (new EventEmitter() as WixPatternsContainerEvents);\n this._messagesEnImport = params.messagesEnImport ?? messagesEnImportGlobal;\n this._fetchTranslations = params.fetchTranslations ?? fetchTranslations;\n\n this.onNavigationModal =\n params.onNavigationModal ?? new ConditionalModalState();\n\n this.environment = wixPatternsEnvironment(params.environment);\n this.user = params.user;\n\n this.createComponentSettings =\n params.createComponentSettings ?? createComponentSettings;\n\n this.errorMonitor = params.errorMonitor;\n this.httpClient = params.httpClient;\n this.onlineManager = params.onlineManager;\n this.focusManager = params.focusManager;\n this.history = params.history;\n this.useTranslation = params.useTranslation;\n this.useExperiments = createUseExperimentsCompat(params.useExperiments);\n this.experiments = params.experiments;\n this.showToast = params.showToast;\n this.navigateTo = params.navigateTo;\n this.onNavigation = params.onNavigation;\n this.getHostContainer = params.getHostContainer;\n this.window = params.window;\n this.queryCache = params.queryCache;\n this.appendModalsToBody = params.appendModalsToBody;\n this.onSidePanelOpen = params.onSidePanelOpen;\n this.closeSidePanel = params.closeSidePanel;\n this.onBeforeUnload = params.onBeforeUnload;\n\n const {\n i18n,\n biLoggerFactory,\n fedopsLogger: internalFedops,\n errorMonitor: internalErrorMonitor,\n experiments: internalExperiments,\n } = this.createEssentials({\n i18n: {\n useSuspense: false,\n disableAutoInit: true,\n asyncMessagesLoader: async (locale) => {\n if (locale === 'en') {\n return this._messagesEnImport();\n }\n return this._fetchTranslations(this)(locale);\n },\n messages: params.initialProps?.messages,\n },\n errorMonitor: {\n dsn:\n process.env.NODE_ENV === 'production'\n ? 'https://9b9586a905eb429cbda9ea49d5d721f6@sentry-next.wixpress.com/8780'\n : '',\n /*\n TODO: not used in sentry-next API, need to be merged from reportError API with tags & extraData\n For Example: errorMonitor.captureException(error, { tags, contexts: { runtime: extraData }})\n beforeSend: (event, hint) => {\n this.internalMonitor.reportErrorThrownOncePerFlow();\n\n if (!event.tags) {\n event.tags = {};\n }\n\n if (!event.extra) {\n event.extra = {};\n }\n\n if (hint && hint.originalException) {\n event.extra.exception = hint.originalException;\n\n if (hint.originalException instanceof Error) {\n event.fingerprint = [\n `${hint.originalException.name}:${hint.originalException.message}`,\n ];\n }\n }\n\n event.tags.componentName = this.environment.componentName;\n event.tags.componentId = this.environment.componentId;\n event.tags.artifactId = this.environment.artifactId;\n event.tags.cairoVersion = this.environment.uiLibVersion;\n\n return event;\n },\n */\n },\n fedops: {\n appName: 'cairo',\n },\n experiments: {\n scopes: ['cairo'],\n },\n });\n\n if (\n typeof process !== 'undefined' &&\n process.env.STORYBOOK_VISUAL_E2E === 'true'\n ) {\n i18n.options.fallbackLng = [];\n }\n\n this.cairoSessionId = uuid();\n this.biLoggerFactory = biLoggerFactory;\n this.i18n = i18n;\n this.internalMonitor = new WixPatternsMonitor({\n errorMonitor: params.errorMonitor,\n internalErrorMonitor,\n internalFedops,\n environment: this.environment,\n csid: this.cairoSessionId,\n });\n this.internalExperiments = internalExperiments;\n\n this.translate = (...args) => {\n void this.initTask.status; // status is observable so reading it here starts mobx reactivity\n return this.i18n.t(...args);\n };\n\n this.Trans = params.Trans;\n\n this.onlineState = new OnlineState({\n onlineManager: this.onlineManager,\n focusManager: this.focusManager,\n translate: this.translate,\n showToast: this.showToast,\n });\n\n this.reportBi = this.createBILogger({});\n\n makeObservable(this, {\n init: action.bound,\n initialFetch: action.bound,\n dateFormatters: computed,\n });\n }\n\n _createComponentSettings(options: { namespace: string }) {\n return this.createComponentSettings(this)(options);\n }\n\n createBI = <P>(defaultParams: P) => {\n const { environment, cairoSessionId } = this;\n return this.biLoggerFactory?.()\n .updateDefaults({\n artifactId: environment.artifactId,\n componentName: environment.componentName,\n cairoVersion: environment.uiLibVersion,\n csid: cairoSessionId,\n ...defaultParams,\n })\n .logger();\n };\n\n createBILogger = <P>(defaultParams: P): ReportBI => {\n const bi = this.createBI(defaultParams);\n return (reportProps: ReportProps) => bi?.report(reportProps);\n };\n\n async initialFetch() {\n const { initTask, i18n, internalExperiments, experiments } = this;\n if (initTask.status.isLoading || initTask.status.isSuccess) {\n return initTask.status.promise;\n }\n\n await initTask.run(async () => {\n await Promise.all([\n i18n.init(),\n internalExperiments?.ready().catch((e) => {\n console.error(e);\n }),\n experiments.ready().catch((e) => {\n console.error(e);\n }),\n this._messagesEnImport(), // not all translation files contain all the keys, so en is required otherwise show error state\n ]);\n });\n\n return initTask.status.promise;\n }\n\n get dateFormatters() {\n return {\n medium: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n }),\n mediumTime: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }),\n time: new Intl.DateTimeFormat(this.environment.language, {\n timeStyle: 'short',\n }),\n };\n }\n\n init() {\n const { onlineState } = this;\n\n this.initialFetch().catch((e) => {\n console.error(e);\n });\n\n const disposers = [\n onlineState.init(),\n new BeforeUnloadCompatState(this).init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n}\n\nexport class WixPatternsContainer extends CairoContainer {}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_services","require","_model","_mobx","_TaskState","_OnlineState","_createComponentSettings","_ConditionalModalState","_events","_useExperimentsCompat","_uuid","_BeforeUnloadCompatState","WixPatternsContainer","constructor","params","_params$initialProps","_defineProperty2","default","TaskState","defaultParams","_this$biLoggerFactory","environment","cairoSessionId","biLoggerFactory","call","updateDefaults","artifactId","componentName","cairoVersion","uiLibVersion","csid","logger","bi","createBI","reportProps","report","createEssentials","lodash","patchesCache","events","EventEmitter","_messagesEnImport","messagesEnImport","messagesEnImportGlobal","_fetchTranslations","fetchTranslations","onNavigationModal","ConditionalModalState","wixPatternsEnvironment","user","createComponentSettings","errorMonitor","httpClient","onlineManager","focusManager","history","useTranslation","useExperiments","createUseExperimentsCompat","experiments","showToast","navigateTo","onNavigation","getHostContainer","window","queryCache","appendModalsToBody","onSidePanelOpen","closeSidePanel","onBeforeUnload","i18n","fedopsLogger","internalFedops","internalErrorMonitor","internalExperiments","useSuspense","disableAutoInit","asyncMessagesLoader","locale","messages","initialProps","dsn","process","env","NODE_ENV","fedops","appName","scopes","STORYBOOK_VISUAL_E2E","options","fallbackLng","uuid","internalMonitor","WixPatternsMonitor","translate","args","initTask","status","t","Trans","onlineState","OnlineState","reportBi","createBILogger","makeObservable","init","action","bound","initialFetch","dateFormatters","computed","isLoading","isSuccess","promise","run","Promise","all","ready","catch","e","console","error","medium","Intl","DateTimeFormat","language","dateStyle","mediumTime","timeStyle","time","disposers","BeforeUnloadCompatState","forEach","d","exports"],"sources":["../../../src/state/CairoContainer.ts"],"sourcesContent":["import type { Essentials } from '@wix/fe-essentials/core';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n WixPatternsMonitor,\n Environment,\n ErrorMonitor,\n fetchTranslations,\n FocusManager,\n History,\n messagesEnImportGlobal,\n ModalLayoutProps,\n OnlineManager,\n PartialLodash,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { QueryCache } from 'react-query/core';\nimport {\n CairoBILoggerFactory,\n wixPatternsEnvironment,\n WixPatternsEssentials,\n WixPatternsInitialProps,\n CloseSidePanel,\n GetHostContainer,\n OnNavigation,\n OnSidePanelOpen,\n ShowToast,\n} from '../model';\nimport { action, computed, IObservableArray, makeObservable } from 'mobx';\nimport { TaskState } from './TaskState';\nimport { OnlineState } from './OnlineState';\nimport { createComponentSettings } from '../services/createComponentSettings';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { TransitionState } from './TransitionState';\nimport { ReactElement } from 'react';\nimport { createUseExperimentsCompat } from './useExperimentsCompat';\nimport { v4 as uuid } from 'uuid';\nimport { BeforeUnloadCompatState } from './BeforeUnloadCompatState';\n\ntype WixPatternsContainerEvents = TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n}>;\n\nexport interface WixPatternsContainerParams {\n readonly initialProps?: WixPatternsInitialProps;\n readonly createEssentials: WixPatternsEssentials['createEssentials'];\n readonly messagesEnImport?: () => Promise<{}>;\n readonly fetchTranslations?: (p: {\n readonly errorMonitor: ErrorMonitor;\n }) => (locale: string) => Promise<{}>;\n readonly createComponentSettings?: WixPatternsEssentials['createComponentSettings'];\n readonly errorMonitor: ErrorMonitor;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineManager: OnlineManager;\n readonly focusManager: FocusManager;\n readonly history: History;\n readonly window: PartialWindow;\n readonly useTranslation: typeof useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments: WixPatternsEssentials['useExperiments'];\n readonly experiments: WixPatternsEssentials['experiments'];\n readonly environment: WixPatternsEssentials['environment'];\n readonly user: WixPatternsEssentials['user'];\n readonly showToast?: ShowToast;\n readonly navigateTo?: WixPatternsEssentials['navigateTo'];\n readonly onNavigation?: OnNavigation;\n readonly getHostContainer?: GetHostContainer;\n readonly queryCache: QueryCache;\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<any>>>;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly lodash: PartialLodash;\n readonly events?: WixPatternsContainerEvents;\n readonly sidePanel?: TransitionState<string>;\n readonly onNavigationModal?: ConditionalModalState<ModalLayoutProps>;\n readonly sidePanelComponents?: Map<string, ReactElement>;\n readonly appendModalsToBody?: boolean;\n readonly onBeforeUnload?: WixPatternsEssentials['onBeforeUnload'];\n}\n\nexport class WixPatternsContainer {\n readonly createEssentials;\n readonly errorMonitor: WixPatternsContainerParams['errorMonitor'];\n readonly internalMonitor: WixPatternsMonitor;\n readonly internalExperiments;\n readonly experiments;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly onlineManager;\n readonly focusManager;\n readonly history: WixPatternsContainerParams['history'];\n readonly window: WixPatternsContainerParams['window'];\n readonly useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments;\n readonly showToast?;\n readonly navigateTo?;\n readonly onNavigation;\n readonly onBeforeUnload;\n readonly getHostContainer;\n readonly environment: Environment;\n readonly appendModalsToBody?: boolean;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly translate: Translate;\n readonly lodash;\n readonly i18n: Essentials['i18n'];\n readonly reportBi: ReportBI;\n readonly _messagesEnImport;\n readonly _fetchTranslations;\n\n readonly queryCache: QueryCache;\n readonly patchesCache;\n\n readonly initTask = new TaskState<void>();\n readonly onlineState: OnlineState;\n\n readonly onNavigationModal;\n\n readonly events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n\n readonly user;\n\n readonly cairoSessionId: string;\n // Why it might be undefined when creating essentials?\n private readonly biLoggerFactory?: () => CairoBILoggerFactory;\n\n readonly createComponentSettings;\n\n constructor(params: Readonly<WixPatternsContainerParams>) {\n this.createEssentials = params.createEssentials;\n this.lodash = params.lodash;\n this.patchesCache = params.patchesCache;\n this.events =\n params.events ?? (new EventEmitter() as WixPatternsContainerEvents);\n this._messagesEnImport = params.messagesEnImport ?? messagesEnImportGlobal;\n this._fetchTranslations = params.fetchTranslations ?? fetchTranslations;\n\n this.onNavigationModal =\n params.onNavigationModal ?? new ConditionalModalState();\n\n this.environment = wixPatternsEnvironment(params.environment);\n this.user = params.user;\n\n this.createComponentSettings =\n params.createComponentSettings ?? createComponentSettings;\n\n this.errorMonitor = params.errorMonitor;\n this.httpClient = params.httpClient;\n this.onlineManager = params.onlineManager;\n this.focusManager = params.focusManager;\n this.history = params.history;\n this.useTranslation = params.useTranslation;\n this.useExperiments = createUseExperimentsCompat(params.useExperiments);\n this.experiments = params.experiments;\n this.showToast = params.showToast;\n this.navigateTo = params.navigateTo;\n this.onNavigation = params.onNavigation;\n this.getHostContainer = params.getHostContainer;\n this.window = params.window;\n this.queryCache = params.queryCache;\n this.appendModalsToBody = params.appendModalsToBody;\n this.onSidePanelOpen = params.onSidePanelOpen;\n this.closeSidePanel = params.closeSidePanel;\n this.onBeforeUnload = params.onBeforeUnload;\n\n const {\n i18n,\n biLoggerFactory,\n fedopsLogger: internalFedops,\n errorMonitor: internalErrorMonitor,\n experiments: internalExperiments,\n } = this.createEssentials({\n i18n: {\n useSuspense: false,\n disableAutoInit: true,\n asyncMessagesLoader: async (locale) => {\n if (locale === 'en') {\n return this._messagesEnImport();\n }\n return this._fetchTranslations(this)(locale);\n },\n messages: params.initialProps?.messages,\n },\n errorMonitor: {\n dsn:\n process.env.NODE_ENV === 'production'\n ? 'https://9b9586a905eb429cbda9ea49d5d721f6@sentry-next.wixpress.com/8780'\n : '',\n /*\n TODO: not used in sentry-next API, need to be merged from reportError API with tags & extraData\n For Example: errorMonitor.captureException(error, { tags, contexts: { runtime: extraData }})\n beforeSend: (event, hint) => {\n this.internalMonitor.reportErrorThrownOncePerFlow();\n\n if (!event.tags) {\n event.tags = {};\n }\n\n if (!event.extra) {\n event.extra = {};\n }\n\n if (hint && hint.originalException) {\n event.extra.exception = hint.originalException;\n\n if (hint.originalException instanceof Error) {\n event.fingerprint = [\n `${hint.originalException.name}:${hint.originalException.message}`,\n ];\n }\n }\n\n event.tags.componentName = this.environment.componentName;\n event.tags.componentId = this.environment.componentId;\n event.tags.artifactId = this.environment.artifactId;\n event.tags.cairoVersion = this.environment.uiLibVersion;\n\n return event;\n },\n */\n },\n fedops: {\n appName: 'cairo',\n },\n experiments: {\n scopes: ['cairo'],\n },\n });\n\n if (\n typeof process !== 'undefined' &&\n process.env.STORYBOOK_VISUAL_E2E === 'true'\n ) {\n i18n.options.fallbackLng = [];\n }\n\n this.cairoSessionId = uuid();\n this.biLoggerFactory = biLoggerFactory;\n this.i18n = i18n;\n this.internalMonitor = new WixPatternsMonitor({\n errorMonitor: params.errorMonitor,\n internalErrorMonitor,\n internalFedops,\n environment: this.environment,\n csid: this.cairoSessionId,\n });\n this.internalExperiments = internalExperiments;\n\n this.translate = (...args) => {\n void this.initTask.status; // status is observable so reading it here starts mobx reactivity\n return this.i18n.t(...args);\n };\n\n this.Trans = params.Trans;\n\n this.onlineState = new OnlineState({\n onlineManager: this.onlineManager,\n focusManager: this.focusManager,\n translate: this.translate,\n showToast: this.showToast,\n });\n\n this.reportBi = this.createBILogger({});\n\n makeObservable(this, {\n init: action.bound,\n initialFetch: action.bound,\n dateFormatters: computed,\n });\n }\n\n _createComponentSettings(options: { namespace: string }) {\n return this.createComponentSettings(this)(options);\n }\n\n createBI = <P>(defaultParams: P) => {\n const { environment, cairoSessionId } = this;\n return this.biLoggerFactory?.()\n .updateDefaults({\n artifactId: environment.artifactId,\n componentName: environment.componentName,\n cairoVersion: environment.uiLibVersion,\n csid: cairoSessionId,\n ...defaultParams,\n })\n .logger();\n };\n\n createBILogger = <P>(defaultParams: P): ReportBI => {\n const bi = this.createBI(defaultParams);\n return (reportProps: ReportProps) => bi?.report(reportProps);\n };\n\n async initialFetch() {\n const { initTask, i18n, internalExperiments, experiments } = this;\n if (initTask.status.isLoading || initTask.status.isSuccess) {\n return initTask.status.promise;\n }\n\n await initTask.run(async () => {\n await Promise.all([\n i18n.init(),\n internalExperiments?.ready().catch((e) => {\n console.error(e);\n }),\n experiments.ready().catch((e) => {\n console.error(e);\n }),\n this._messagesEnImport(), // not all translation files contain all the keys, so en is required otherwise show error state\n ]);\n });\n\n return initTask.status.promise;\n }\n\n get dateFormatters() {\n return {\n medium: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n }),\n mediumTime: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }),\n time: new Intl.DateTimeFormat(this.environment.language, {\n timeStyle: 'short',\n }),\n };\n }\n\n init() {\n const { onlineState } = this;\n\n this.initialFetch().catch((e) => {\n console.error(e);\n });\n\n const disposers = [\n onlineState.init(),\n new BeforeUnloadCompatState(this).init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n}\n"],"mappings":"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"}
@@ -152,81 +152,6 @@ class CollectionOptimisticActions {
152
152
  events.emit('reprocess');
153
153
  }
154
154
 
155
- /**
156
- * @deprecated Use createOne instead
157
- * Adds a single item to the collection.
158
- * @param item - The item to add.
159
- * @param params - Additional parameters for the operation.
160
- */
161
- addOne(item, params = {}) {
162
- return this.addMany([item], params);
163
- }
164
-
165
- /**
166
- * @deprecated Use createMany instead
167
- * Adds multiple items to the collection.
168
- * @param items - The items to add.
169
- * @param params - Additional parameters for the operation.
170
- */
171
- addMany(items, params = {}) {
172
- const {
173
- collection,
174
- executor
175
- } = this;
176
- const {
177
- itemKey,
178
- result
179
- } = collection;
180
- const {
181
- submit,
182
- serverEventuallyUpdated,
183
- onUndo,
184
- onTryAgain,
185
- onError
186
- } = params;
187
- const optimisticPatch = new _CollectionOptimisticPatch.OptimisticPatch({
188
- queryCache: collection.queryCache,
189
- queryNames: this._queryNames,
190
- patches: this.state.patches,
191
- actionType: 'createMany',
192
- patchedItems: new Map(items.map(item => [itemKey(item), item])),
193
- originalItems: new Map(),
194
- originalTotal: result.total,
195
- patch: (item, {
196
- patchedItems
197
- }) => patchedItems.get(itemKey(item)),
198
- selector: (item, {
199
- patchedItems
200
- }) => patchedItems.has(itemKey(item))
201
- });
202
- this.pushPatchAndReprocess(optimisticPatch);
203
- optimisticPatch.events.on('scheduleRemoval', this._clearPatchOnNextResultOrUnmount);
204
- return executor.execute([optimisticPatch], {
205
- ...params,
206
- submit: (0, _mobx.action)(actions => submit == null ? void 0 : submit(Array.from(actions.filter(({
207
- actionType
208
- }) => actionType === 'createMany').reduce((map, {
209
- patchedItemsEntries
210
- }) => {
211
- for (const [key, item] of patchedItemsEntries) {
212
- map.set(key, item);
213
- }
214
- return map;
215
- }, new Map()).values()))),
216
- onRollback: () => {
217
- this.rollback(optimisticPatch);
218
- },
219
- eventuallyUpdated: serverEventuallyUpdated,
220
- onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
221
- onTryAgain: async () => {
222
- this.pushPatchAndReprocess(optimisticPatch);
223
- await (onTryAgain == null ? void 0 : onTryAgain());
224
- },
225
- onError,
226
- onUndo
227
- });
228
- }
229
-
230
155
  /**
231
156
  * Creates a single item in the collection.
232
157
  * @param item - The item to create.
@@ -254,7 +179,7 @@ class CollectionOptimisticActions {
254
179
  } = collection;
255
180
  const {
256
181
  submit,
257
- serverEventuallyUpdated,
182
+ updateServerAfter,
258
183
  onUndo,
259
184
  onTryAgain,
260
185
  onError
@@ -301,7 +226,7 @@ class CollectionOptimisticActions {
301
226
  onRollback: () => {
302
227
  this.rollback(optimisticPatch);
303
228
  },
304
- eventuallyUpdated: serverEventuallyUpdated,
229
+ eventuallyUpdated: updateServerAfter,
305
230
  onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
306
231
  onTryAgain: async () => {
307
232
  this.pushPatchAndReprocess(optimisticPatch);
@@ -329,7 +254,7 @@ class CollectionOptimisticActions {
329
254
  } = collection;
330
255
  const {
331
256
  submit,
332
- serverEventuallyUpdated,
257
+ updateServerAfter,
333
258
  keepPosition,
334
259
  onUndo,
335
260
  onTryAgain,
@@ -373,7 +298,7 @@ class CollectionOptimisticActions {
373
298
  onRollback: () => {
374
299
  this.rollback(optimisticPatch);
375
300
  },
376
- eventuallyUpdated: serverEventuallyUpdated,
301
+ eventuallyUpdated: updateServerAfter,
377
302
  onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
378
303
  onTryAgain: async () => {
379
304
  this.pushPatchAndReprocess(optimisticPatch);
@@ -505,16 +430,9 @@ class CollectionOptimisticActions {
505
430
  return this.updateMany([item], params);
506
431
  }
507
432
 
508
- /**
509
- * @deprecated `updateAll(fn)` API is not recommended as it's not possible to calculate "optimistic total", prefer updateAll(patchObject) API.
510
- * Updates all items in the collection based on a function or a patch object.
511
- * @param patchOrFn - A function or a patch object to apply to each item.
512
- * @param params - Additional parameters for the operation.
513
- */
514
-
515
433
  /**
516
434
  * Updates all items in the collection based on a patch object.
517
- * @param patchOrFn - A function or a patch object to apply to each item.
435
+ * @param patch - A patch object to apply to each item.
518
436
  * @param params - Additional parameters for the operation.
519
437
  * @external
520
438
  */
@@ -528,7 +446,7 @@ class CollectionOptimisticActions {
528
446
  } = this;
529
447
  const {
530
448
  submit,
531
- serverEventuallyUpdated,
449
+ updateServerAfter,
532
450
  keepPosition,
533
451
  onUndo,
534
452
  onTryAgain,
@@ -580,7 +498,7 @@ class CollectionOptimisticActions {
580
498
  onRollback: () => {
581
499
  this.rollback(optimisticPatch);
582
500
  },
583
- eventuallyUpdated: serverEventuallyUpdated,
501
+ eventuallyUpdated: updateServerAfter,
584
502
  onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
585
503
  onTryAgain: async () => {
586
504
  this.pushPatchAndReprocess(optimisticPatch);
@@ -610,7 +528,7 @@ class CollectionOptimisticActions {
610
528
  } = collection;
611
529
  const {
612
530
  submit,
613
- serverEventuallyUpdated,
531
+ updateServerAfter,
614
532
  onUndo,
615
533
  onTryAgain,
616
534
  onError
@@ -645,7 +563,7 @@ class CollectionOptimisticActions {
645
563
  onRollback: () => {
646
564
  this.rollback(optimisticPatch);
647
565
  },
648
- eventuallyUpdated: serverEventuallyUpdated,
566
+ eventuallyUpdated: updateServerAfter,
649
567
  onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
650
568
  onTryAgain: async () => {
651
569
  this.pushPatchAndReprocess(optimisticPatch);
@@ -680,7 +598,7 @@ class CollectionOptimisticActions {
680
598
  } = this;
681
599
  const {
682
600
  submit,
683
- serverEventuallyUpdated,
601
+ updateServerAfter,
684
602
  onUndo,
685
603
  onTryAgain,
686
604
  onError
@@ -714,7 +632,7 @@ class CollectionOptimisticActions {
714
632
  onRollback: () => {
715
633
  this.rollback(optimisticPatch);
716
634
  },
717
- eventuallyUpdated: serverEventuallyUpdated,
635
+ eventuallyUpdated: updateServerAfter,
718
636
  onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,
719
637
  onTryAgain: async () => {
720
638
  this.pushPatchAndReprocess(optimisticPatch);
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","Map","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","sequences","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","addOne","item","addMany","items","itemKey","result","submit","serverEventuallyUpdated","onUndo","onTryAgain","onError","optimisticPatch","OptimisticPatch","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","_clearPatchOnNextResultOrUnmount","execute","actions","reduce","patchedItemsEntries","key","set","onRollback","eventuallyUpdated","onEventuallyUpdated","createOne","createMany","optimisticPatchParams","submitResult","updatedOptimisticPatch","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","query","filtersKeyHash","event","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","processor","dispose","init","i","indexOf","splice","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n serverEventuallyUpdated?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface AddManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the addition operation.\n * @param items - The items to add.\n */\n submit?: (items: T[]) => Promise<R>;\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences = new Map<string, CollectionOptimisticSequenceExecutor>();\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.collections = params.collections ?? [];\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * @deprecated Use createOne instead\n * Adds a single item to the collection.\n * @param item - The item to add.\n * @param params - Additional parameters for the operation.\n */\n addOne<R>(item: T, params: AddManyParams<T, R> = {}) {\n return this.addMany([item], params);\n }\n\n /**\n * @deprecated Use createMany instead\n * Adds multiple items to the collection.\n * @param items - The items to add.\n * @param params - Additional parameters for the operation.\n */\n addMany<R>(items: T[], params: AddManyParams<T, R> = {}) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, serverEventuallyUpdated, onUndo, onTryAgain, onError } =\n params;\n\n const optimisticPatch = new OptimisticPatch({\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 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 === '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 onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: serverEventuallyUpdated,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, serverEventuallyUpdated, onUndo, onTryAgain, onError } =\n params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: serverEventuallyUpdated,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n serverEventuallyUpdated,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: serverEventuallyUpdated,\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 { query } = collection;\n const { patches } = state;\n\n const { filtersKeyHash } = query;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result, query } = collection;\n const { patches } = state;\n\n const { filtersKeyHash } = query;\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: {\n ...event,\n filtersKeyHash,\n },\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 * @deprecated `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API.\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 patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patchOrFn: 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 serverEventuallyUpdated,\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: serverEventuallyUpdated,\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, serverEventuallyUpdated, onUndo, onTryAgain, onError } =\n 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: serverEventuallyUpdated,\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, serverEventuallyUpdated, onUndo, onTryAgain, 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 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: serverEventuallyUpdated,\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 const processor = new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n const dispose = processor.init();\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n dispose();\n };\n }\n\n init() {\n const { collection, processors, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ...processors.map((p) => p.init()),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","Map","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","sequences","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","query","filtersKeyHash","event","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","processor","dispose","init","i","indexOf","splice","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences = new Map<string, CollectionOptimisticSequenceExecutor>();\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.collections = params.collections ?? [];\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { query } = collection;\n const { patches } = state;\n\n const { filtersKeyHash } = query;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result, query } = collection;\n const { patches } = state;\n\n const { filtersKeyHash } = query;\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: {\n ...event,\n filtersKeyHash,\n },\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 * 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 const processor = new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n const dispose = processor.init();\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n dispose();\n };\n }\n\n init() {\n const { collection, processors, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ...processors.map((p) => p.init()),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -121,8 +121,8 @@ class CollectionOptimisticExecutor {
121
121
  }
122
122
  }
123
123
  const submitPromise = await submit(actions);
124
- const serverEventuallyUpdatedPromise = typeof eventuallyUpdated === 'number' ? await Promise.all([submitPromise, new Promise(resolve => setTimeout(resolve, eventuallyUpdated))]).then(() => submitPromise) : submitPromise;
125
- const result = await serverEventuallyUpdatedPromise;
124
+ const updateServerAfterPromise = typeof eventuallyUpdated === 'number' ? await Promise.all([submitPromise, new Promise(resolve => setTimeout(resolve, eventuallyUpdated))]).then(() => submitPromise) : submitPromise;
125
+ const result = await updateServerAfterPromise;
126
126
  await (onEventuallyUpdated == null ? void 0 : onEventuallyUpdated());
127
127
  return {
128
128
  result,