@wix/bex-core 2.7.0 → 2.8.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 (255) hide show
  1. package/dist/cjs/InMemoryBackend/InMemoryBackend.js.map +1 -1
  2. package/dist/cjs/InMemoryBackend/index.js.map +1 -1
  3. package/dist/cjs/assets/locale/messages_uk.json +2 -2
  4. package/dist/cjs/assets/locale/messages_visuale2e.json +3 -0
  5. package/dist/cjs/exports/InMemoryBackend.js.map +1 -1
  6. package/dist/cjs/exports/bi/index.js.map +1 -1
  7. package/dist/cjs/exports/events.js.map +1 -1
  8. package/dist/cjs/exports/history.js.map +1 -1
  9. package/dist/cjs/exports/mobx.js.map +1 -1
  10. package/dist/cjs/exports/react.js.map +1 -1
  11. package/dist/cjs/exports/testkit/client.js.map +1 -1
  12. package/dist/cjs/exports/testkit/internal.js.map +1 -1
  13. package/dist/cjs/exports/testkit/testkit.js.map +1 -1
  14. package/dist/cjs/exports/util.js.map +1 -1
  15. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  16. package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
  17. package/dist/cjs/hooks/createCollection.js.map +1 -1
  18. package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
  19. package/dist/cjs/hooks/index.js.map +1 -1
  20. package/dist/cjs/hooks/paginationModeConfig.js.map +1 -1
  21. package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
  22. package/dist/cjs/hooks/useCollection/index.js.map +1 -1
  23. package/dist/cjs/hooks/useCollection/useCollection.js.map +1 -1
  24. package/dist/cjs/hooks/useCollectionPageState.js.map +1 -1
  25. package/dist/cjs/hooks/useEmptyStateTexts.js.map +1 -1
  26. package/dist/cjs/hooks/useExport.js.map +1 -1
  27. package/dist/cjs/hooks/useExportConfig.js.map +1 -1
  28. package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
  29. package/dist/cjs/hooks/usePicker.js.map +1 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/mocks/PartialWindowMock.js.map +1 -1
  32. package/dist/cjs/mocks/partialLodashMock.js.map +1 -1
  33. package/dist/cjs/model/actionMove.js.map +1 -1
  34. package/dist/cjs/model/arrayField.js.map +1 -1
  35. package/dist/cjs/model/collectionEvents.js.map +1 -1
  36. package/dist/cjs/model/commonTypes.js.map +1 -1
  37. package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
  38. package/dist/cjs/model/computedQuery/index.js.map +1 -1
  39. package/dist/cjs/model/computedResult.js.map +1 -1
  40. package/dist/cjs/model/dataCapsule.js.map +1 -1
  41. package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
  42. package/dist/cjs/model/dataResultRaw/index.js.map +1 -1
  43. package/dist/cjs/model/fetchDataFn.js.map +1 -1
  44. package/dist/cjs/model/filter.js.map +1 -1
  45. package/dist/cjs/model/fqdn.js.map +1 -1
  46. package/dist/cjs/model/httpClient.js.map +1 -1
  47. package/dist/cjs/model/index.js.map +1 -1
  48. package/dist/cjs/model/keyedItem.js.map +1 -1
  49. package/dist/cjs/model/queryOptions.js.map +1 -1
  50. package/dist/cjs/model/queryResult.js.map +1 -1
  51. package/dist/cjs/model/queryResultStatus.js.map +1 -1
  52. package/dist/cjs/model/queryStatus.js.map +1 -1
  53. package/dist/cjs/model/taskStatus.js.map +1 -1
  54. package/dist/cjs/model/toast.js.map +1 -1
  55. package/dist/cjs/model/wixPatternsEnvironment.js.map +1 -1
  56. package/dist/cjs/model/wixPatternsEssentials.js.map +1 -1
  57. package/dist/cjs/model/wixPatternsInitialProps.js.map +1 -1
  58. package/dist/cjs/providers/CairoProvider/CairoProvider.js +1 -1
  59. package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
  60. package/dist/cjs/providers/CairoProvider/index.js.map +1 -1
  61. package/dist/cjs/providers/CollectionContext.js.map +1 -1
  62. package/dist/cjs/providers/CollectionPageContext.js.map +1 -1
  63. package/dist/cjs/providers/FormWidgetContext.js.map +1 -1
  64. package/dist/cjs/providers/PageContext.js.map +1 -1
  65. package/dist/cjs/providers/WixPatternsContainerOverridesContext.js.map +1 -1
  66. package/dist/cjs/providers/WixPatternsContainerProvider/WixPatternsContainerProvider.js.map +1 -1
  67. package/dist/cjs/providers/WixPatternsContainerProvider/index.js.map +1 -1
  68. package/dist/cjs/providers/WixPatternsInitialPropsProvider.js.map +1 -1
  69. package/dist/cjs/providers/createContext.js.map +1 -1
  70. package/dist/cjs/providers/index.js.map +1 -1
  71. package/dist/cjs/services/AccountPreferencesMergeStrategy.js.map +1 -1
  72. package/dist/cjs/services/AccountPreferencesStrategy.js.map +1 -1
  73. package/dist/cjs/services/AppSettingsCapsule.js.map +1 -1
  74. package/dist/cjs/services/DataCapsuleMergeStrategy.js.map +1 -1
  75. package/dist/cjs/services/ModalLayoutProps.js.map +1 -1
  76. package/dist/cjs/services/MonitorLogger.js.map +1 -1
  77. package/dist/cjs/services/WixPatternsError.js.map +1 -1
  78. package/dist/cjs/services/WixPatternsErrorCode.js.map +1 -1
  79. package/dist/cjs/services/cairoMonitor.js.map +1 -1
  80. package/dist/cjs/services/cairoTranslations.js.map +1 -1
  81. package/dist/cjs/services/createAccountComponentSettings.js.map +1 -1
  82. package/dist/cjs/services/createAppSettingsCapsule.js.map +1 -1
  83. package/dist/cjs/services/createComponentSettings.js.map +1 -1
  84. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  85. package/dist/cjs/services/environment.js.map +1 -1
  86. package/dist/cjs/services/experiments.js.map +1 -1
  87. package/dist/cjs/services/fetchTranslations.js.map +1 -1
  88. package/dist/cjs/services/fetchTranslationsPreBundled.js.map +1 -1
  89. package/dist/cjs/services/focusManager.js.map +1 -1
  90. package/dist/cjs/services/getErrorMonitorCompat.js.map +1 -1
  91. package/dist/cjs/services/history.js.map +1 -1
  92. package/dist/cjs/services/index.js.map +1 -1
  93. package/dist/cjs/services/mapGuidComponentIdToNonGuid.js.map +1 -1
  94. package/dist/cjs/services/navigationManager.js +17 -4
  95. package/dist/cjs/services/navigationManager.js.map +1 -1
  96. package/dist/cjs/services/onlineManager.js.map +1 -1
  97. package/dist/cjs/services/partialLodash.js.map +1 -1
  98. package/dist/cjs/services/partialWindow.js.map +1 -1
  99. package/dist/cjs/services/replaceSearchParamsWith.js.map +1 -1
  100. package/dist/cjs/services/reportBi.js.map +1 -1
  101. package/dist/cjs/services/translations.js.map +1 -1
  102. package/dist/cjs/services/translationsImportsMap.js +1 -1
  103. package/dist/cjs/services/translationsImportsMap.js.map +1 -1
  104. package/dist/cjs/state/AppsState.js +100 -0
  105. package/dist/cjs/state/AppsState.js.map +1 -0
  106. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  107. package/dist/cjs/state/ArrayFilterState/index.js.map +1 -1
  108. package/dist/cjs/state/BeforeUnloadCompatState.js.map +1 -1
  109. package/dist/cjs/state/BulkActionModalState.js.map +1 -1
  110. package/dist/cjs/state/BulkSelectState.js.map +1 -1
  111. package/dist/cjs/state/CollectionBIReporter.js.map +1 -1
  112. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  113. package/dist/cjs/state/CollectionOptimisticActionsState.js.map +1 -1
  114. package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
  115. package/dist/cjs/state/CollectionOptimisticHelpers.js.map +1 -1
  116. package/dist/cjs/state/CollectionOptimisticPatch.js.map +1 -1
  117. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  118. package/dist/cjs/state/CollectionOptimisticSequenceExecutor.js.map +1 -1
  119. package/dist/cjs/state/CollectionPageState.js.map +1 -1
  120. package/dist/cjs/state/CollectionState.js.map +1 -1
  121. package/dist/cjs/state/ConditionalModalState.js.map +1 -1
  122. package/dist/cjs/state/CustomFieldModalBiReporter.js.map +1 -1
  123. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  124. package/dist/cjs/state/CustomFieldsViewWidgetState.js +34 -1
  125. package/dist/cjs/state/CustomFieldsViewWidgetState.js.map +1 -1
  126. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  127. package/dist/cjs/state/CustomFilterState/index.js.map +1 -1
  128. package/dist/cjs/state/DataExtension/DataExtensionField.js.map +1 -1
  129. package/dist/cjs/state/DataExtensionState.js +16 -7
  130. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  131. package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
  132. package/dist/cjs/state/ExportJobState.js.map +1 -1
  133. package/dist/cjs/state/ExportState.js.map +1 -1
  134. package/dist/cjs/state/ExportStateBIReporter.js.map +1 -1
  135. package/dist/cjs/state/FedopsReporter.js.map +1 -1
  136. package/dist/cjs/state/FormPageState.js.map +1 -1
  137. package/dist/cjs/state/ModalState.js.map +1 -1
  138. package/dist/cjs/state/MultiCollectionSupport.js.map +1 -1
  139. package/dist/cjs/state/OnlineState.js.map +1 -1
  140. package/dist/cjs/state/PageState.js.map +1 -1
  141. package/dist/cjs/state/Pagination.js.map +1 -1
  142. package/dist/cjs/state/PaginationMode.js.map +1 -1
  143. package/dist/cjs/state/PaginationModeCursor.js.map +1 -1
  144. package/dist/cjs/state/PaginationModeOffset.js.map +1 -1
  145. package/dist/cjs/state/PickerState.js.map +1 -1
  146. package/dist/cjs/state/PromiseState.js.map +1 -1
  147. package/dist/cjs/state/PromisesSequence.js.map +1 -1
  148. package/dist/cjs/state/PromisesState.js.map +1 -1
  149. package/dist/cjs/state/QueryHistoryState.js.map +1 -1
  150. package/dist/cjs/state/QueryPendingState.js.map +1 -1
  151. package/dist/cjs/state/QueryPendingStateBIReporter.js.map +1 -1
  152. package/dist/cjs/state/QueryResultSimulation.js.map +1 -1
  153. package/dist/cjs/state/QueryResultSimulationDefault.js.map +1 -1
  154. package/dist/cjs/state/QueryResultState.js.map +1 -1
  155. package/dist/cjs/state/QueryState.js.map +1 -1
  156. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  157. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  158. package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
  159. package/dist/cjs/state/RefObject.js.map +1 -1
  160. package/dist/cjs/state/ReturnFocus.js.map +1 -1
  161. package/dist/cjs/state/SelectMapState.js.map +1 -1
  162. package/dist/cjs/state/SelectState.js.map +1 -1
  163. package/dist/cjs/state/SelectionStatus.js.map +1 -1
  164. package/dist/cjs/state/SelectionStatusWixPatternsPreset.js.map +1 -1
  165. package/dist/cjs/state/SidePanelState.js.map +1 -1
  166. package/dist/cjs/state/SortState.js.map +1 -1
  167. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  168. package/dist/cjs/state/StringFilterState/index.js.map +1 -1
  169. package/dist/cjs/state/TagsState/TagsAssignmentState.js.map +1 -1
  170. package/dist/cjs/state/TagsState/TagsBIReporter.js.map +1 -1
  171. package/dist/cjs/state/TagsState/TagsFormState.js.map +1 -1
  172. package/dist/cjs/state/TagsState/TagsManagementState.js.map +1 -1
  173. package/dist/cjs/state/TagsState/TagsSearchState.js.map +1 -1
  174. package/dist/cjs/state/TagsState/TagsWidgetState.js.map +1 -1
  175. package/dist/cjs/state/TagsState/index.js.map +1 -1
  176. package/dist/cjs/state/TagsState/tagsTypes.js.map +1 -1
  177. package/dist/cjs/state/TaskState.js.map +1 -1
  178. package/dist/cjs/state/TextOverflowState.js.map +1 -1
  179. package/dist/cjs/state/ToggleState.js.map +1 -1
  180. package/dist/cjs/state/TransitionState.js.map +1 -1
  181. package/dist/cjs/state/ValueBox.js.map +1 -1
  182. package/dist/cjs/state/WixPatternsContainer.js.map +1 -1
  183. package/dist/cjs/state/buildWixPatternsContainer.js.map +1 -1
  184. package/dist/cjs/state/getJobItemsAbsoluteCounter.js.map +1 -1
  185. package/dist/cjs/state/index.js.map +1 -1
  186. package/dist/cjs/state/mutationObserverCompat.js.map +1 -1
  187. package/dist/cjs/state/onItemsCreated.js.map +1 -1
  188. package/dist/cjs/state/optimistic-simulation/filterPageByPatches.js.map +1 -1
  189. package/dist/cjs/state/optimistic-simulation/index.js.map +1 -1
  190. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  191. package/dist/cjs/state/optimistic-simulation/orderByMoves.js.map +1 -1
  192. package/dist/cjs/state/optimistic-simulation/orderByOrders.js.map +1 -1
  193. package/dist/cjs/state/optimistic-simulation/prepareItemsToMergeIntoPage.js.map +1 -1
  194. package/dist/cjs/state/optimistic-simulation/transformItemByUpdateAllPatches.js.map +1 -1
  195. package/dist/cjs/state/optimistic-simulation/trimAddedItemsFromPagePredicate.js.map +1 -1
  196. package/dist/cjs/state/resizeObserverCompat.js.map +1 -1
  197. package/dist/cjs/state/snapshot.js.map +1 -1
  198. package/dist/cjs/state/useExperimentsCompat.js.map +1 -1
  199. package/dist/cjs/state/warmUpPickerStandalone.js.map +1 -1
  200. package/dist/cjs/test-utils/flush.js.map +1 -1
  201. package/dist/cjs/test-utils/index.js.map +1 -1
  202. package/dist/cjs/test-utils/jest.js.map +1 -1
  203. package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
  204. package/dist/cjs/testkit/WixPatternsContainer.driver.js +11 -10
  205. package/dist/cjs/testkit/WixPatternsContainer.driver.js.map +1 -1
  206. package/dist/cjs/testkit/appSettingsMocks.js.map +1 -1
  207. package/dist/cjs/testkit/client.js.map +1 -1
  208. package/dist/cjs/testkit/country.js.map +1 -1
  209. package/dist/cjs/testkit/createCountriesBackend.js.map +1 -1
  210. package/dist/cjs/testkit/createFoldersBackend.js.map +1 -1
  211. package/dist/cjs/testkit/createProductsBackend.js.map +1 -1
  212. package/dist/cjs/testkit/exportServiceMocks.js.map +1 -1
  213. package/dist/cjs/testkit/folder.js.map +1 -1
  214. package/dist/cjs/testkit/folderFilters.js.map +1 -1
  215. package/dist/cjs/testkit/index.js.map +1 -1
  216. package/dist/cjs/testkit/internal.js.map +1 -1
  217. package/dist/cjs/testkit/matchMediaMock.js.map +1 -1
  218. package/dist/cjs/testkit/nestifyItems.js.map +1 -1
  219. package/dist/cjs/testkit/product.js.map +1 -1
  220. package/dist/cjs/testkit/productFilters.js.map +1 -1
  221. package/dist/cjs/util/OfflineError.js.map +1 -1
  222. package/dist/cjs/util/addEventListener.js.map +1 -1
  223. package/dist/cjs/util/assertKey.js.map +1 -1
  224. package/dist/cjs/util/index.js.map +1 -1
  225. package/dist/cjs/util/isHttpError.js.map +1 -1
  226. package/dist/cjs/util/parseFqdn.js.map +1 -1
  227. package/dist/cjs/util/shouldRedirectToLogin.js.map +1 -1
  228. package/dist/cjs/util/showToastCompat.js.map +1 -1
  229. package/dist/cjs/util/slugify.js.map +1 -1
  230. package/dist/cjs/util/syncWithSharedQuery.js.map +1 -1
  231. package/dist/cjs/util/typedEmitter.js.map +1 -1
  232. package/dist/cjs/util/withoutDefaults.js.map +1 -1
  233. package/dist/esm/assets/locale/messages_uk.json +2 -2
  234. package/dist/esm/assets/locale/messages_visuale2e.json +3 -0
  235. package/dist/esm/services/navigationManager.js +15 -4
  236. package/dist/esm/services/navigationManager.js.map +1 -1
  237. package/dist/esm/state/AppsState.js +89 -0
  238. package/dist/esm/state/AppsState.js.map +1 -0
  239. package/dist/esm/state/CustomFieldsViewWidgetState.js +36 -1
  240. package/dist/esm/state/CustomFieldsViewWidgetState.js.map +1 -1
  241. package/dist/esm/state/DataExtensionState.js +18 -10
  242. package/dist/esm/state/DataExtensionState.js.map +1 -1
  243. package/dist/esm/testkit/WixPatternsContainer.driver.js +12 -11
  244. package/dist/esm/testkit/WixPatternsContainer.driver.js.map +1 -1
  245. package/dist/types/services/navigationManager.d.ts +12 -6
  246. package/dist/types/services/navigationManager.d.ts.map +1 -1
  247. package/dist/types/state/AppsState.d.ts +20 -0
  248. package/dist/types/state/AppsState.d.ts.map +1 -0
  249. package/dist/types/state/CustomFieldsViewWidgetState.d.ts +6 -0
  250. package/dist/types/state/CustomFieldsViewWidgetState.d.ts.map +1 -1
  251. package/dist/types/state/DataExtensionState.d.ts +7 -1
  252. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  253. package/dist/types/testkit/WixPatternsContainer.driver.d.ts +1 -1
  254. package/dist/types/testkit/WixPatternsContainer.driver.d.ts.map +1 -1
  255. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_CollectionState","require","_mapValues","_interopRequireDefault","_mobx","_TaskState","_v","_util","_snapshot","_MultiCollectionSupport","_onItemsCreated","DEFAULT_FLOATING_NOTIFICATION_HEIGHT","withoutDefaults","withoutIrrelevant","PickerState","constructor","params","_defineProperty2","default","TaskState","reportBi","startTime","performance","now","totalNewItems","loadMore","_commonDynamicBiParams","loadingTime","Math","round","loadedItems","collection","result","pickerModalUsability","action","searchTerm","query","search","value","cairoSearchResults","searchResultsCnt","total","ctaName","currentLevel","numLevels","cairoCtaClicked","ctaIndex","numCtas","location","moreActionsIndex","items","onItemsCreated","reportProps","runInAction","newItemCreationEnd","numSelectedItems","bulkSelect","select","selectedCount","resultType","getMaxItems","multi","MultiCollectionSupport","collections","shouldFilterNotAffectTotalCount","isScrollTop","minContentHeight","events","loadStartTime","filteredListSize","Snapshot","expression","Object","values","customFilters","map","f","effect","queryName","fetchData","history","queryCache","errorMonitor","onlineState","showToast","translate","itemKey","itemName","paginationMode","selectionConsistencyMode","lodash","noFilters","CollectionState","fetchErrorMessage","id","limit","pagination","onError","filters","mapValues","filter","clearedFilter","clone","reset","strictFiltersOnly","filterName","makeObservable","setFloatingNotificationHeight","someHidden","computed","toggle","updateIsScrollTop","onPrimaryButtonClick","observable","ref","clearResultAndMoveToStart","force","Promise","all","strictFiltersOnlyTotal","noFiltersTotal","newValue","listSize","maxItems","init","initTask","onReady","onInitialFetchError","emitter","on","onNewPage","onSearchStart","disposers","runOnce","status","promise","forceUpdate","loadEnd","url","window","href","initialItems","size","asComputed","e","captureException","err","isOnline","off","disposer","onCloseButtonClick","componentDismissed","origin","onBackButtonClick","_onButtonClick","onContinueButtonClick","onSecondaryButtonOnClick","pickerPickModalCtaButtonClickOrImmediateCta","isImmediate","itemsCnt","keyedItem","options","_bulkSelect$getCollec","onItemSelectClick","selectedCountOrTotal","numItemsBefore","selectedValues","prevSelected","clear","cairoItemSelectionToggled","isSelectAll","isFromSearch","isEmpty","searchQuery","itemIndex","index","hasAdditionalStep","itemId","key","clickType","isChecked","numItemsAfter","item","previousIndex","getCollectionItem","floatingNotificationHeight","exports"],"sources":["../../../src/state/PickerState.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport {\n CollectionEvents,\n ComputedQuery,\n ComputedResult,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport mapValues from 'lodash/mapValues';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { TaskState } from './TaskState';\nimport { ReportBI } from '../services';\nimport {\n cairoCtaClicked,\n cairoItemSelectionToggled,\n cairoSearchResults,\n componentDismissed,\n loadEnd,\n loadMore,\n newItemCreationEnd,\n pickerModalUsability,\n pickerPickModalCtaButtonClickOrImmediateCta,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutIrrelevant } from '../util';\nimport { Snapshot } from './snapshot';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\nimport { onItemsCreated } from './onItemsCreated';\n\nconst DEFAULT_FLOATING_NOTIFICATION_HEIGHT = 54;\n\nexport type OnPickerReady<F extends FiltersMap> = (params: {\n query: ComputedQuery<F>;\n result: ComputedResult;\n noFiltersTotal: ComputedResult['total'];\n}) => unknown;\n\nexport interface PickerEvents<T, F extends FiltersMap>\n extends CollectionEvents<F> {\n readonly onReady?: OnPickerReady<F>;\n readonly onInitialFetchError?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => unknown;\n readonly onItemSelectClick?: (params: {\n item: T;\n index: number;\n previousIndex: number | null;\n }) => unknown;\n}\n\nexport interface PickerStateParams<T, F extends FiltersMap> {\n getMaxItems: () => number | undefined;\n collection: CollectionState<T, F>;\n minContentHeight?: string | number;\n events?: PickerEvents<T, F>;\n shouldFilterNotAffectTotalCount?: (filterName: keyof F) => boolean;\n loadStartTime?: number;\n reportBi: ReportBI;\n}\n\nconst withoutDefaults = withoutIrrelevant<\n 'currentTab' | 'currentFilters' | 'currentSortOrder' | 'currentView'\n>();\n\nexport class PickerState<T, F extends FiltersMap = FiltersMap> {\n readonly collection: PickerStateParams<T, F>['collection'];\n readonly multi;\n readonly strictFiltersOnly: PickerStateParams<T, F>['collection'];\n\n readonly noFilters: PickerStateParams<T, F>['collection'];\n readonly shouldFilterNotAffectTotalCount: (filterName: keyof F) => boolean;\n readonly events: PickerEvents<T, F>;\n\n readonly initTask = new TaskState();\n readonly reportBi;\n readonly loadStartTime;\n\n isScrollTop: boolean;\n\n minContentHeight: string | number;\n floatingNotificationHeight = 0;\n\n readonly getMaxItems;\n\n readonly filteredListSize;\n\n constructor(params: Readonly<PickerStateParams<T, F>>) {\n this.getMaxItems = params.getMaxItems;\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n\n this.multi = new MultiCollectionSupport({\n collections: [this.collection],\n });\n\n this.shouldFilterNotAffectTotalCount =\n params.shouldFilterNotAffectTotalCount ?? (() => false);\n this.isScrollTop = true;\n this.minContentHeight = params.minContentHeight ?? 300;\n\n this.events = params.events ?? {};\n\n this.loadStartTime = params.loadStartTime ?? performance.now();\n\n this.filteredListSize = new Snapshot({\n expression: () =>\n Object.values(this.collection.query.customFilters).map((f) => f?.value),\n effect: () => this.collection.result.total,\n });\n\n const {\n queryName,\n fetchData,\n query,\n history,\n queryCache,\n errorMonitor,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n events,\n lodash,\n } = this.collection;\n\n this.noFilters = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(this.collection.query.customFilters, (filter) => {\n if (filter) {\n const clearedFilter = filter.clone();\n clearedFilter.reset(); // reset strict filter\n return clearedFilter;\n }\n\n return filter;\n }) as F,\n });\n\n this.strictFiltersOnly = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(\n this.collection.query.customFilters,\n (filter, filterName) => {\n // reset all filters that should not affect total count\n if (\n filter != null &&\n this.shouldFilterNotAffectTotalCount(filterName)\n ) {\n const clearedFilter = filter.clone();\n clearedFilter.reset();\n return clearedFilter;\n }\n\n return filter;\n },\n ) as F,\n });\n\n makeObservable(this, {\n setFloatingNotificationHeight: action,\n someHidden: computed,\n toggle: action,\n updateIsScrollTop: action,\n onPrimaryButtonClick: action,\n isScrollTop: observable.ref,\n });\n }\n\n async clearResultAndMoveToStart({ force }: { force?: boolean } = {}) {\n await Promise.all([\n this.collection.clearResultAndMoveToStart({ force }),\n this.strictFiltersOnly.clearResultAndMoveToStart({ force }),\n this.noFilters.clearResultAndMoveToStart({ force }),\n ]);\n }\n\n get someHidden() {\n const {\n strictFiltersOnly: {\n result: { total: strictFiltersOnlyTotal },\n },\n noFilters: {\n result: { total: noFiltersTotal },\n },\n } = this;\n return noFiltersTotal > strictFiltersOnlyTotal;\n }\n\n updateIsScrollTop(newValue: boolean) {\n this.isScrollTop = newValue;\n }\n\n _commonDynamicBiParams(): {\n filteredListSize?: number;\n listSize?: number;\n maxItems?: number;\n } {\n const { noFilters, collection, filteredListSize } = this;\n\n return {\n ...collection._commonDynamicBiParams(),\n listSize: noFilters.result.total,\n filteredListSize: filteredListSize.value,\n maxItems: this.getMaxItems(),\n };\n }\n\n onNewPage = () => {\n const { reportBi } = this;\n\n const startTime = performance.now();\n\n return ({ totalNewItems }: { totalNewItems: number }) => {\n reportBi(\n withoutDefaults(loadMore)({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n loadedItems: totalNewItems,\n }),\n );\n };\n };\n\n onSearchStart = () => {\n const { collection, reportBi } = this;\n\n const { result } = collection;\n\n const startTime = performance.now();\n reportBi(\n pickerModalUsability({\n ...this._commonDynamicBiParams(),\n action: 'search',\n searchTerm: collection.query.search.value,\n }),\n );\n\n return () => {\n reportBi(\n cairoSearchResults({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n searchResultsCnt: result.total,\n searchTerm: collection.query.search.value,\n }),\n );\n };\n };\n\n init() {\n const {\n collection,\n strictFiltersOnly,\n noFilters,\n initTask,\n events: { onReady, onInitialFetchError },\n reportBi,\n filteredListSize,\n } = this;\n\n collection.emitter.on('newPageStart', this.onNewPage);\n collection.emitter.on('searchStart', this.onSearchStart);\n\n const disposers = [\n collection.init(),\n filteredListSize.init(),\n strictFiltersOnly.init(),\n noFilters.init(),\n ];\n\n initTask.runOnce(async () => {\n const { result, query } = collection;\n\n try {\n await Promise.all([\n collection.initTask.status.promise,\n strictFiltersOnly.initTask.status.promise,\n noFilters.initTask.status.promise,\n ]);\n\n filteredListSize.forceUpdate();\n\n runInAction(() => {\n try {\n reportBi(\n withoutDefaults(loadEnd)({\n ...this._commonDynamicBiParams(),\n url: window.location.href,\n loadingTime: Math.round(performance.now() - this.loadStartTime),\n initialItems: result.size,\n }),\n );\n onReady?.({\n query: query.asComputed,\n result: result.asComputed,\n noFiltersTotal: noFilters.result.total,\n });\n } catch (e) {\n collection.errorMonitor.captureException(e);\n }\n });\n } catch (err) {\n await onInitialFetchError?.({\n err,\n isOnline: collection.onlineState.isOnline,\n });\n throw err;\n }\n });\n\n return () => {\n collection.emitter.off('newPageStart', this.onNewPage);\n collection.emitter.off('searchStart', this.onSearchStart);\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onCloseButtonClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'X button',\n }),\n );\n }\n\n onBackButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'back', numLevels: 2, currentLevel: 2 });\n }\n\n onContinueButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'continue-next', numLevels: 2, currentLevel: 1 });\n }\n\n onSecondaryButtonOnClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'Cancel button',\n }),\n );\n }\n\n onPrimaryButtonClick({\n currentLevel,\n numLevels,\n }: {\n currentLevel: number;\n numLevels: number;\n }) {\n const {\n collection: { bulkSelect },\n _onButtonClick,\n reportBi,\n } = this;\n\n const { selectedCount } = bulkSelect;\n\n _onButtonClick({ ctaName: 'continue', currentLevel, numLevels });\n\n reportBi(\n pickerPickModalCtaButtonClickOrImmediateCta({\n ...this._commonDynamicBiParams(),\n isImmediate: false,\n itemsCnt: selectedCount,\n }),\n );\n }\n\n _onButtonClick = ({\n ctaName,\n currentLevel,\n numLevels,\n }: {\n ctaName: string;\n currentLevel: number;\n numLevels: number;\n }) => {\n this.reportBi(\n cairoCtaClicked({\n ...this._commonDynamicBiParams(),\n ctaIndex: 1,\n numCtas: 1,\n currentLevel,\n numLevels,\n location: 'picker',\n moreActionsIndex: 0,\n ctaName,\n }),\n );\n };\n\n toggle(\n keyedItem: KeyedItem<T>,\n options: { clear?: boolean; hasAdditionalStep?: boolean } = {},\n ) {\n const {\n collection,\n events: { onItemSelectClick },\n reportBi,\n } = this;\n const {\n bulkSelect,\n query: { search },\n } = collection;\n const { select, selectedCountOrTotal: numItemsBefore } = bulkSelect;\n\n const {\n selectedValues: [prevSelected],\n } = select;\n\n if (options.clear) {\n bulkSelect.select.clear();\n }\n\n bulkSelect.toggle(keyedItem);\n reportBi(\n cairoItemSelectionToggled({\n ...this._commonDynamicBiParams(),\n isSelectAll: false,\n isFromSearch: !search.isEmpty,\n searchQuery: search.value,\n itemIndex: keyedItem.index,\n numLevels: options.hasAdditionalStep ? 2 : 1,\n itemId: keyedItem.key,\n clickType: bulkSelect.isChecked(keyedItem.key)\n ? 'Selection'\n : 'Deselection',\n numItemsBefore,\n numItemsAfter: bulkSelect.selectedCountOrTotal,\n }),\n );\n onItemSelectClick?.({\n item: keyedItem.item,\n index: keyedItem.index,\n previousIndex:\n prevSelected != null\n ? (bulkSelect.getCollectionItem(prevSelected.key)?.index as\n | number\n | null)\n : null,\n });\n }\n\n setFloatingNotificationHeight(\n floatingNotificationHeight: number = DEFAULT_FLOATING_NOTIFICATION_HEIGHT,\n ) {\n this.floatingNotificationHeight = floatingNotificationHeight;\n }\n\n onCreateNew = action(async (items?: T[]) => {\n if (items) {\n await onItemsCreated(this.collection, {\n items,\n reportBi: (reportProps) => {\n this.reportBi({\n ...reportProps,\n params: {\n ...this._commonDynamicBiParams(),\n ...reportProps.params,\n },\n });\n },\n });\n } else {\n runInAction(() => {\n this.reportBi(\n newItemCreationEnd({\n ...this._commonDynamicBiParams(),\n numSelectedItems: this.collection.bulkSelect.select.selectedCount,\n resultType: 'dismissed',\n }),\n );\n });\n }\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_CollectionState","require","_mapValues","_interopRequireDefault","_mobx","_TaskState","_v","_util","_snapshot","_MultiCollectionSupport","_onItemsCreated","DEFAULT_FLOATING_NOTIFICATION_HEIGHT","withoutDefaults","withoutIrrelevant","PickerState","constructor","params","_defineProperty2","default","TaskState","reportBi","startTime","performance","now","totalNewItems","loadMore","_commonDynamicBiParams","loadingTime","Math","round","loadedItems","collection","result","pickerModalUsability","action","searchTerm","query","search","value","cairoSearchResults","searchResultsCnt","total","ctaName","currentLevel","numLevels","cairoCtaClicked","ctaIndex","numCtas","location","moreActionsIndex","items","onItemsCreated","reportProps","runInAction","newItemCreationEnd","numSelectedItems","bulkSelect","select","selectedCount","resultType","getMaxItems","multi","MultiCollectionSupport","collections","shouldFilterNotAffectTotalCount","isScrollTop","minContentHeight","events","loadStartTime","filteredListSize","Snapshot","expression","Object","values","customFilters","map","f","effect","queryName","fetchData","history","queryCache","errorMonitor","onlineState","showToast","translate","itemKey","itemName","paginationMode","selectionConsistencyMode","lodash","noFilters","CollectionState","fetchErrorMessage","id","limit","pagination","onError","filters","mapValues","filter","clearedFilter","clone","reset","strictFiltersOnly","filterName","makeObservable","setFloatingNotificationHeight","someHidden","computed","toggle","updateIsScrollTop","onPrimaryButtonClick","observable","ref","clearResultAndMoveToStart","force","Promise","all","strictFiltersOnlyTotal","noFiltersTotal","newValue","listSize","maxItems","init","initTask","onReady","onInitialFetchError","emitter","on","onNewPage","onSearchStart","disposers","runOnce","status","promise","forceUpdate","loadEnd","url","window","href","initialItems","size","asComputed","e","captureException","err","isOnline","off","disposer","onCloseButtonClick","componentDismissed","origin","onBackButtonClick","_onButtonClick","onContinueButtonClick","onSecondaryButtonOnClick","pickerPickModalCtaButtonClickOrImmediateCta","isImmediate","itemsCnt","keyedItem","options","_bulkSelect$getCollec","onItemSelectClick","selectedCountOrTotal","numItemsBefore","selectedValues","prevSelected","clear","cairoItemSelectionToggled","isSelectAll","isFromSearch","isEmpty","searchQuery","itemIndex","index","hasAdditionalStep","itemId","key","clickType","isChecked","numItemsAfter","item","previousIndex","getCollectionItem","floatingNotificationHeight","exports"],"sources":["../../../src/state/PickerState.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport {\n CollectionEvents,\n ComputedQuery,\n ComputedResult,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport mapValues from 'lodash/mapValues';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { TaskState } from './TaskState';\nimport { ReportBI } from '../services';\nimport {\n cairoCtaClicked,\n cairoItemSelectionToggled,\n cairoSearchResults,\n componentDismissed,\n loadEnd,\n loadMore,\n newItemCreationEnd,\n pickerModalUsability,\n pickerPickModalCtaButtonClickOrImmediateCta,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutIrrelevant } from '../util';\nimport { Snapshot } from './snapshot';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\nimport { onItemsCreated } from './onItemsCreated';\n\nconst DEFAULT_FLOATING_NOTIFICATION_HEIGHT = 54;\n\nexport type OnPickerReady<F extends FiltersMap> = (params: {\n query: ComputedQuery<F>;\n result: ComputedResult;\n noFiltersTotal: ComputedResult['total'];\n}) => unknown;\n\nexport interface PickerEvents<T, F extends FiltersMap>\n extends CollectionEvents<F> {\n readonly onReady?: OnPickerReady<F>;\n readonly onInitialFetchError?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => unknown;\n readonly onItemSelectClick?: (params: {\n item: T;\n index: number;\n previousIndex: number | null;\n }) => unknown;\n}\n\nexport interface PickerStateParams<T, F extends FiltersMap> {\n getMaxItems: () => number | undefined;\n collection: CollectionState<T, F>;\n minContentHeight?: string | number;\n events?: PickerEvents<T, F>;\n shouldFilterNotAffectTotalCount?: (filterName: keyof F) => boolean;\n loadStartTime?: number;\n reportBi: ReportBI;\n}\n\nconst withoutDefaults = withoutIrrelevant<\n 'currentTab' | 'currentFilters' | 'currentSortOrder' | 'currentView'\n>();\n\nexport class PickerState<T, F extends FiltersMap = FiltersMap> {\n readonly collection: PickerStateParams<T, F>['collection'];\n readonly multi;\n readonly strictFiltersOnly: PickerStateParams<T, F>['collection'];\n\n readonly noFilters: PickerStateParams<T, F>['collection'];\n readonly shouldFilterNotAffectTotalCount: (filterName: keyof F) => boolean;\n readonly events: PickerEvents<T, F>;\n\n readonly initTask = new TaskState();\n readonly reportBi;\n readonly loadStartTime;\n\n isScrollTop: boolean;\n\n minContentHeight: string | number;\n floatingNotificationHeight = 0;\n\n readonly getMaxItems;\n\n readonly filteredListSize;\n\n constructor(params: Readonly<PickerStateParams<T, F>>) {\n this.getMaxItems = params.getMaxItems;\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n\n this.multi = new MultiCollectionSupport({\n collections: [this.collection],\n });\n\n this.shouldFilterNotAffectTotalCount =\n params.shouldFilterNotAffectTotalCount ?? (() => false);\n this.isScrollTop = true;\n this.minContentHeight = params.minContentHeight ?? 300;\n\n this.events = params.events ?? {};\n\n this.loadStartTime = params.loadStartTime ?? performance.now();\n\n this.filteredListSize = new Snapshot({\n expression: () =>\n Object.values(this.collection.query.customFilters).map((f) => f?.value),\n effect: () => this.collection.result.total,\n });\n\n const {\n queryName,\n fetchData,\n query,\n history,\n queryCache,\n errorMonitor,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n events,\n lodash,\n } = this.collection;\n\n this.noFilters = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(this.collection.query.customFilters, (filter) => {\n if (filter) {\n const clearedFilter = filter.clone();\n clearedFilter.reset(); // reset strict filter\n return clearedFilter;\n }\n\n return filter;\n }) as F,\n });\n\n this.strictFiltersOnly = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(\n this.collection.query.customFilters,\n (filter, filterName) => {\n // reset all filters that should not affect total count\n if (\n filter != null &&\n this.shouldFilterNotAffectTotalCount(filterName)\n ) {\n const clearedFilter = filter.clone();\n clearedFilter.reset();\n return clearedFilter;\n }\n\n return filter;\n },\n ) as F,\n });\n\n makeObservable(this, {\n setFloatingNotificationHeight: action,\n someHidden: computed,\n toggle: action,\n updateIsScrollTop: action,\n onPrimaryButtonClick: action,\n isScrollTop: observable.ref,\n });\n }\n\n async clearResultAndMoveToStart({ force }: { force?: boolean } = {}) {\n await Promise.all([\n this.collection.clearResultAndMoveToStart({ force }),\n this.strictFiltersOnly.clearResultAndMoveToStart({ force }),\n this.noFilters.clearResultAndMoveToStart({ force }),\n ]);\n }\n\n get someHidden() {\n const {\n strictFiltersOnly: {\n result: { total: strictFiltersOnlyTotal },\n },\n noFilters: {\n result: { total: noFiltersTotal },\n },\n } = this;\n return noFiltersTotal > strictFiltersOnlyTotal;\n }\n\n updateIsScrollTop(newValue: boolean) {\n this.isScrollTop = newValue;\n }\n\n _commonDynamicBiParams(): {\n filteredListSize?: number;\n listSize?: number;\n maxItems?: number;\n } {\n const { noFilters, collection, filteredListSize } = this;\n\n return {\n ...collection._commonDynamicBiParams(),\n listSize: noFilters.result.total,\n filteredListSize: filteredListSize.value,\n maxItems: this.getMaxItems(),\n };\n }\n\n onNewPage = () => {\n const { reportBi } = this;\n\n const startTime = performance.now();\n\n return ({ totalNewItems }: { totalNewItems: number }) => {\n reportBi(\n withoutDefaults(loadMore)({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n loadedItems: totalNewItems,\n }),\n );\n };\n };\n\n onSearchStart = () => {\n const { collection, reportBi } = this;\n\n const { result } = collection;\n\n const startTime = performance.now();\n reportBi(\n pickerModalUsability({\n ...this._commonDynamicBiParams(),\n action: 'search',\n searchTerm: collection.query.search.value,\n }),\n );\n\n return () => {\n reportBi(\n cairoSearchResults({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n searchResultsCnt: result.total,\n searchTerm: collection.query.search.value,\n }),\n );\n };\n };\n\n init() {\n const {\n collection,\n strictFiltersOnly,\n noFilters,\n initTask,\n events: { onReady, onInitialFetchError },\n reportBi,\n filteredListSize,\n } = this;\n\n collection.emitter.on('newPageStart', this.onNewPage);\n collection.emitter.on('searchStart', this.onSearchStart);\n\n const disposers = [\n collection.init(),\n filteredListSize.init(),\n strictFiltersOnly.init(),\n noFilters.init(),\n ];\n\n initTask.runOnce(async () => {\n const { result, query } = collection;\n\n try {\n await Promise.all([\n collection.initTask.status.promise,\n strictFiltersOnly.initTask.status.promise,\n noFilters.initTask.status.promise,\n ]);\n\n filteredListSize.forceUpdate();\n\n runInAction(() => {\n try {\n reportBi(\n withoutDefaults(loadEnd)({\n ...this._commonDynamicBiParams(),\n url: window.location.href,\n loadingTime: Math.round(performance.now() - this.loadStartTime),\n initialItems: result.size,\n }),\n );\n onReady?.({\n query: query.asComputed,\n result: result.asComputed,\n noFiltersTotal: noFilters.result.total,\n });\n } catch (e) {\n collection.errorMonitor.captureException(e);\n }\n });\n } catch (err) {\n await onInitialFetchError?.({\n err,\n isOnline: collection.onlineState.isOnline,\n });\n throw err;\n }\n });\n\n return () => {\n collection.emitter.off('newPageStart', this.onNewPage);\n collection.emitter.off('searchStart', this.onSearchStart);\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onCloseButtonClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'X button',\n }),\n );\n }\n\n onBackButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'back', numLevels: 2, currentLevel: 2 });\n }\n\n onContinueButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'continue-next', numLevels: 2, currentLevel: 1 });\n }\n\n onSecondaryButtonOnClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'Cancel button',\n }),\n );\n }\n\n onPrimaryButtonClick({\n currentLevel,\n numLevels,\n }: {\n currentLevel: number;\n numLevels: number;\n }) {\n const {\n collection: { bulkSelect },\n _onButtonClick,\n reportBi,\n } = this;\n\n const { selectedCount } = bulkSelect;\n\n _onButtonClick({ ctaName: 'continue', currentLevel, numLevels });\n\n reportBi(\n pickerPickModalCtaButtonClickOrImmediateCta({\n ...this._commonDynamicBiParams(),\n isImmediate: false,\n itemsCnt: selectedCount,\n }),\n );\n }\n\n _onButtonClick = ({\n ctaName,\n currentLevel,\n numLevels,\n }: {\n ctaName: string;\n currentLevel: number;\n numLevels: number;\n }) => {\n this.reportBi(\n cairoCtaClicked({\n ...this._commonDynamicBiParams(),\n ctaIndex: 1,\n numCtas: 1,\n currentLevel,\n numLevels,\n location: 'picker',\n moreActionsIndex: 0,\n ctaName,\n }),\n );\n };\n\n toggle(\n keyedItem: KeyedItem<T>,\n options: { clear?: boolean; hasAdditionalStep?: boolean } = {},\n ) {\n const {\n collection,\n events: { onItemSelectClick },\n reportBi,\n } = this;\n const {\n bulkSelect,\n query: { search },\n } = collection;\n const { select, selectedCountOrTotal: numItemsBefore } = bulkSelect;\n\n const {\n selectedValues: [prevSelected],\n } = select;\n\n if (options.clear) {\n bulkSelect.select.clear();\n }\n\n bulkSelect.toggle(keyedItem);\n reportBi(\n cairoItemSelectionToggled({\n ...this._commonDynamicBiParams(),\n isSelectAll: false,\n isFromSearch: !search.isEmpty,\n searchQuery: search.value,\n itemIndex: keyedItem.index,\n numLevels: options.hasAdditionalStep ? 2 : 1,\n itemId: keyedItem.key,\n clickType: bulkSelect.isChecked(keyedItem.key)\n ? 'Selection'\n : 'Deselection',\n numItemsBefore,\n numItemsAfter: bulkSelect.selectedCountOrTotal,\n }),\n );\n onItemSelectClick?.({\n item: keyedItem.item,\n index: keyedItem.index,\n previousIndex:\n prevSelected != null\n ? (bulkSelect.getCollectionItem(prevSelected.key)?.index as\n | number\n | null)\n : null,\n });\n }\n\n setFloatingNotificationHeight(\n floatingNotificationHeight: number = DEFAULT_FLOATING_NOTIFICATION_HEIGHT,\n ) {\n this.floatingNotificationHeight = floatingNotificationHeight;\n }\n\n onCreateNew = action(async (items?: T[]) => {\n if (items) {\n await onItemsCreated(this.collection, {\n items,\n reportBi: (reportProps) => {\n this.reportBi({\n ...reportProps,\n params: {\n ...this._commonDynamicBiParams(),\n ...reportProps.params,\n },\n });\n },\n });\n } else {\n runInAction(() => {\n this.reportBi(\n newItemCreationEnd({\n ...this._commonDynamicBiParams(),\n numSelectedItems: this.collection.bulkSelect.select.selectedCount,\n resultType: 'dismissed',\n }),\n );\n });\n }\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","_once","_interopRequireDefault","PromiseState","constructor","params","_defineProperty2","default","queryStatus","idle","error","isFetching","once","fetch","createPromise","makeObservable","status","observable","ref","action","loading","data","runInAction","success","exports"],"sources":["../../../src/state/PromiseState.ts"],"sourcesContent":["import { QueryResultStatus, queryStatus } from '../model';\nimport { action, makeObservable, observable, runInAction } from 'mobx';\nimport once from 'lodash/once';\n\nexport interface PromiseStateParams<T> {\n createPromise: () => Promise<T>;\n}\n\nexport class PromiseState<T> {\n private readonly createPromise: PromiseStateParams<T>['createPromise'];\n\n status: QueryResultStatus<T, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n\n constructor(params: Readonly<PromiseStateParams<T>>) {\n this.createPromise = params.createPromise;\n\n makeObservable(this, {\n status: observable.ref,\n fetch: action,\n });\n }\n\n fetchOnce = once(() => this.fetch());\n\n async fetch() {\n try {\n this.status = {\n ...queryStatus.loading,\n error: null,\n isFetching: true,\n };\n const data = await this.createPromise();\n runInAction(() => {\n this.status = {\n ...queryStatus.success,\n error: null,\n isFetching: false,\n data,\n };\n });\n } catch (error) {\n runInAction(() => {\n this.status = {\n ...queryStatus.error,\n error,\n isFetching: false,\n };\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AAMO,MAAMI,YAAY,CAAI;EAS3BC,WAAWA,CAACC,MAAuC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBANb;MACtC,GAAGC,kBAAW,CAACC,IAAI;MACnBC,KAAK,EAAE,IAAI;MACXC,UAAU,EAAE;IACd,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,qBAWW,IAAAK,aAAI,EAAC,MAAM,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IARlC,IAAI,CAACC,aAAa,GAAGT,MAAM,CAACS,aAAa;IAEzC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,MAAM,EAAEC,gBAAU,CAACC,GAAG;MACtBL,KAAK,EAAEM;IACT,CAAC,CAAC;EACJ;EAIA,MAAMN,KAAKA,CAAA,EAAG;IACZ,IAAI;MACF,IAAI,CAACG,MAAM,GAAG;QACZ,GAAGR,kBAAW,CAACY,OAAO;QACtBV,KAAK,EAAE,IAAI;QACXC,UAAU,EAAE;MACd,CAAC;MACD,MAAMU,IAAI,GAAG,MAAM,IAAI,CAACP,aAAa,CAAC,CAAC;MACvC,IAAAQ,iBAAW,EAAC,MAAM;QAChB,IAAI,CAACN,MAAM,GAAG;UACZ,GAAGR,kBAAW,CAACe,OAAO;UACtBb,KAAK,EAAE,IAAI;UACXC,UAAU,EAAE,KAAK;UACjBU;QACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd,IAAAY,iBAAW,EAAC,MAAM;QAChB,IAAI,CAACN,MAAM,GAAG;UACZ,GAAGR,kBAAW,CAACE,KAAK;UACpBA,KAAK;UACLC,UAAU,EAAE;QACd,CAAC;MACH,CAAC,CAAC;IACJ;EACF;AACF;AAACa,OAAA,CAAArB,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_model","require","_mobx","_once","_interopRequireDefault","PromiseState","constructor","params","_defineProperty2","default","queryStatus","idle","error","isFetching","once","fetch","createPromise","makeObservable","status","observable","ref","action","loading","data","runInAction","success","exports"],"sources":["../../../src/state/PromiseState.ts"],"sourcesContent":["import { QueryResultStatus, queryStatus } from '../model';\nimport { action, makeObservable, observable, runInAction } from 'mobx';\nimport once from 'lodash/once';\n\nexport interface PromiseStateParams<T> {\n createPromise: () => Promise<T>;\n}\n\nexport class PromiseState<T> {\n private readonly createPromise: PromiseStateParams<T>['createPromise'];\n\n status: QueryResultStatus<T, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n\n constructor(params: Readonly<PromiseStateParams<T>>) {\n this.createPromise = params.createPromise;\n\n makeObservable(this, {\n status: observable.ref,\n fetch: action,\n });\n }\n\n fetchOnce = once(() => this.fetch());\n\n async fetch() {\n try {\n this.status = {\n ...queryStatus.loading,\n error: null,\n isFetching: true,\n };\n const data = await this.createPromise();\n runInAction(() => {\n this.status = {\n ...queryStatus.success,\n error: null,\n isFetching: false,\n data,\n };\n });\n } catch (error) {\n runInAction(() => {\n this.status = {\n ...queryStatus.error,\n error,\n isFetching: false,\n };\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AAMO,MAAMI,YAAY,CAAI;EAS3BC,WAAWA,CAACC,MAAuC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBANb;MACtC,GAAGC,kBAAW,CAACC,IAAI;MACnBC,KAAK,EAAE,IAAI;MACXC,UAAU,EAAE;IACd,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,qBAWW,IAAAK,aAAI,EAAC,MAAM,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IARlC,IAAI,CAACC,aAAa,GAAGT,MAAM,CAACS,aAAa;IAEzC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,MAAM,EAAEC,gBAAU,CAACC,GAAG;MACtBL,KAAK,EAAEM;IACT,CAAC,CAAC;EACJ;EAIA,MAAMN,KAAKA,CAAA,EAAG;IACZ,IAAI;MACF,IAAI,CAACG,MAAM,GAAG;QACZ,GAAGR,kBAAW,CAACY,OAAO;QACtBV,KAAK,EAAE,IAAI;QACXC,UAAU,EAAE;MACd,CAAC;MACD,MAAMU,IAAI,GAAG,MAAM,IAAI,CAACP,aAAa,CAAC,CAAC;MACvC,IAAAQ,iBAAW,EAAC,MAAM;QAChB,IAAI,CAACN,MAAM,GAAG;UACZ,GAAGR,kBAAW,CAACe,OAAO;UACtBb,KAAK,EAAE,IAAI;UACXC,UAAU,EAAE,KAAK;UACjBU;QACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd,IAAAY,iBAAW,EAAC,MAAM;QAChB,IAAI,CAACN,MAAM,GAAG;UACZ,GAAGR,kBAAW,CAACE,KAAK;UACpBA,KAAK;UACLC,UAAU,EAAE;QACd,CAAC;MACH,CAAC,CAAC;IACJ;EACF;AACF;AAACa,OAAA,CAAArB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","PromisesSequence","constructor","_defineProperty2","default","EventEmitter","running","enqueue","fn","fns","events","state","push","Promise","resolve","once","emit","next","length","shift","e","unshift","clear","splice","exports"],"sources":["../../../src/state/PromisesSequence.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class PromisesSequence {\n readonly fns: (() => unknown)[] = [];\n\n readonly events = new EventEmitter() as TypedEmitter<{\n start: () => unknown;\n success: () => unknown;\n done: () => unknown;\n }>;\n\n readonly state = {\n running: false,\n };\n\n async enqueue<R>(fn: () => R) {\n const { fns, events, state } = this;\n fns.push(fn);\n\n if (state.running) {\n return new Promise<void>((resolve) => {\n events.once('success', resolve);\n });\n }\n\n events.emit('start');\n\n state.running = true;\n let next;\n try {\n while (fns.length) {\n next = fns.shift();\n await next?.();\n }\n events.emit('success');\n events.emit('done');\n state.running = false;\n } catch (e) {\n if (next) {\n fns.unshift(next);\n }\n events.emit('done');\n state.running = false;\n throw e;\n }\n }\n\n clear() {\n this.fns.splice(0);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,eACM,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAElB,IAAIC,oBAAY,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,iBAMnB;MACfE,OAAO,EAAE;IACX,CAAC;EAAA;EAED,MAAMC,OAAOA,CAAIC,EAAW,EAAE;IAC5B,MAAM;MAAEC,GAAG;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAI;IACnCF,GAAG,CAACG,IAAI,CAACJ,EAAE,CAAC;IAEZ,IAAIG,KAAK,CAACL,OAAO,EAAE;MACjB,OAAO,IAAIO,OAAO,CAAQC,OAAO,IAAK;QACpCJ,MAAM,CAACK,IAAI,CAAC,SAAS,EAAED,OAAO,CAAC;MACjC,CAAC,CAAC;IACJ;IAEAJ,MAAM,CAACM,IAAI,CAAC,OAAO,CAAC;IAEpBL,KAAK,CAACL,OAAO,GAAG,IAAI;IACpB,IAAIW,IAAI;IACR,IAAI;MACF,OAAOR,GAAG,CAACS,MAAM,EAAE;QACjBD,IAAI,GAAGR,GAAG,CAACU,KAAK,CAAC,CAAC;QAClB,OAAMF,IAAI,oBAAJA,IAAI,CAAG,CAAC;MAChB;MACAP,MAAM,CAACM,IAAI,CAAC,SAAS,CAAC;MACtBN,MAAM,CAACM,IAAI,CAAC,MAAM,CAAC;MACnBL,KAAK,CAACL,OAAO,GAAG,KAAK;IACvB,CAAC,CAAC,OAAOc,CAAC,EAAE;MACV,IAAIH,IAAI,EAAE;QACRR,GAAG,CAACY,OAAO,CAACJ,IAAI,CAAC;MACnB;MACAP,MAAM,CAACM,IAAI,CAAC,MAAM,CAAC;MACnBL,KAAK,CAACL,OAAO,GAAG,KAAK;MACrB,MAAMc,CAAC;IACT;EACF;EAEAE,KAAKA,CAAA,EAAG;IACN,IAAI,CAACb,GAAG,CAACc,MAAM,CAAC,CAAC,CAAC;EACpB;AACF;AAACC,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_events","require","PromisesSequence","constructor","_defineProperty2","default","EventEmitter","running","enqueue","fn","fns","events","state","push","Promise","resolve","once","emit","next","length","shift","e","unshift","clear","splice","exports"],"sources":["../../../src/state/PromisesSequence.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class PromisesSequence {\n readonly fns: (() => unknown)[] = [];\n\n readonly events = new EventEmitter() as TypedEmitter<{\n start: () => unknown;\n success: () => unknown;\n done: () => unknown;\n }>;\n\n readonly state = {\n running: false,\n };\n\n async enqueue<R>(fn: () => R) {\n const { fns, events, state } = this;\n fns.push(fn);\n\n if (state.running) {\n return new Promise<void>((resolve) => {\n events.once('success', resolve);\n });\n }\n\n events.emit('start');\n\n state.running = true;\n let next;\n try {\n while (fns.length) {\n next = fns.shift();\n await next?.();\n }\n events.emit('success');\n events.emit('done');\n state.running = false;\n } catch (e) {\n if (next) {\n fns.unshift(next);\n }\n events.emit('done');\n state.running = false;\n throw e;\n }\n }\n\n clear() {\n this.fns.splice(0);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAgB,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,eACM,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAElB,IAAIC,oBAAY,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,iBAMnB;MACfE,OAAO,EAAE;IACX,CAAC;EAAA;EAED,MAAMC,OAAOA,CAAIC,EAAW,EAAE;IAC5B,MAAM;MAAEC,GAAG;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAI;IACnCF,GAAG,CAACG,IAAI,CAACJ,EAAE,CAAC;IAEZ,IAAIG,KAAK,CAACL,OAAO,EAAE;MACjB,OAAO,IAAIO,OAAO,CAAQC,OAAO,IAAK;QACpCJ,MAAM,CAACK,IAAI,CAAC,SAAS,EAAED,OAAO,CAAC;MACjC,CAAC,CAAC;IACJ;IAEAJ,MAAM,CAACM,IAAI,CAAC,OAAO,CAAC;IAEpBL,KAAK,CAACL,OAAO,GAAG,IAAI;IACpB,IAAIW,IAAI;IACR,IAAI;MACF,OAAOR,GAAG,CAACS,MAAM,EAAE;QACjBD,IAAI,GAAGR,GAAG,CAACU,KAAK,CAAC,CAAC;QAClB,OAAMF,IAAI,oBAAJA,IAAI,CAAG,CAAC;MAChB;MACAP,MAAM,CAACM,IAAI,CAAC,SAAS,CAAC;MACtBN,MAAM,CAACM,IAAI,CAAC,MAAM,CAAC;MACnBL,KAAK,CAACL,OAAO,GAAG,KAAK;IACvB,CAAC,CAAC,OAAOc,CAAC,EAAE;MACV,IAAIH,IAAI,EAAE;QACRR,GAAG,CAACY,OAAO,CAACJ,IAAI,CAAC;MACnB;MACAP,MAAM,CAACM,IAAI,CAAC,MAAM,CAAC;MACnBL,KAAK,CAACL,OAAO,GAAG,KAAK;MACrB,MAAMc,CAAC;IACT;EACF;EAEAE,KAAKA,CAAA,EAAG;IACN,IAAI,CAACb,GAAG,CAACc,MAAM,CAAC,CAAC,CAAC;EACpB;AACF;AAACC,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_PromiseState","PromisesState","constructor","_defineProperty2","default","observable","array","deep","makeObservable","push","action","bound","addPromise","isLoadingPromises","computed","createPromise","PromiseState","promise","promises","fetch","runInAction","remove","some","status","isLoading","exports"],"sources":["../../../src/state/PromisesState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { PromiseState } from './PromiseState';\n\nexport class PromisesState {\n readonly promises = observable.array<PromiseState<unknown>>([], {\n deep: false,\n });\n\n constructor() {\n makeObservable(this, {\n push: action.bound,\n addPromise: action.bound,\n isLoadingPromises: computed,\n });\n }\n\n async addPromise<P>(createPromise: () => Promise<P>) {\n return this.push(\n new PromiseState({\n createPromise,\n }),\n );\n }\n\n async push<P>(promise: PromiseState<P>) {\n this.promises.push(promise);\n await promise.fetch();\n runInAction(() => {\n this.promises.remove(promise);\n });\n }\n\n get isLoadingPromises() {\n return this.promises.some((promise) => promise.status.isLoading);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA,IAAAC,aAAA,GAAAD,OAAA;AAEO,MAAME,aAAa,CAAC;EAKzBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,oBAJMC,gBAAU,CAACC,KAAK,CAAwB,EAAE,EAAE;MAC9DC,IAAI,EAAE;IACR,CAAC,CAAC;IAGA,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,IAAI,EAAEC,YAAM,CAACC,KAAK;MAClBC,UAAU,EAAEF,YAAM,CAACC,KAAK;MACxBE,iBAAiB,EAAEC;IACrB,CAAC,CAAC;EACJ;EAEA,MAAMF,UAAUA,CAAIG,aAA+B,EAAE;IACnD,OAAO,IAAI,CAACN,IAAI,CACd,IAAIO,0BAAY,CAAC;MACfD;IACF,CAAC,CACH,CAAC;EACH;EAEA,MAAMN,IAAIA,CAAIQ,OAAwB,EAAE;IACtC,IAAI,CAACC,QAAQ,CAACT,IAAI,CAACQ,OAAO,CAAC;IAC3B,MAAMA,OAAO,CAACE,KAAK,CAAC,CAAC;IACrB,IAAAC,iBAAW,EAAC,MAAM;MAChB,IAAI,CAACF,QAAQ,CAACG,MAAM,CAACJ,OAAO,CAAC;IAC/B,CAAC,CAAC;EACJ;EAEA,IAAIJ,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAACK,QAAQ,CAACI,IAAI,CAAEL,OAAO,IAAKA,OAAO,CAACM,MAAM,CAACC,SAAS,CAAC;EAClE;AACF;AAACC,OAAA,CAAAxB,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_mobx","require","_PromiseState","PromisesState","constructor","_defineProperty2","default","observable","array","deep","makeObservable","push","action","bound","addPromise","isLoadingPromises","computed","createPromise","PromiseState","promise","promises","fetch","runInAction","remove","some","status","isLoading","exports"],"sources":["../../../src/state/PromisesState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { PromiseState } from './PromiseState';\n\nexport class PromisesState {\n readonly promises = observable.array<PromiseState<unknown>>([], {\n deep: false,\n });\n\n constructor() {\n makeObservable(this, {\n push: action.bound,\n addPromise: action.bound,\n isLoadingPromises: computed,\n });\n }\n\n async addPromise<P>(createPromise: () => Promise<P>) {\n return this.push(\n new PromiseState({\n createPromise,\n }),\n );\n }\n\n async push<P>(promise: PromiseState<P>) {\n this.promises.push(promise);\n await promise.fetch();\n runInAction(() => {\n this.promises.remove(promise);\n });\n }\n\n get isLoadingPromises() {\n return this.promises.some((promise) => promise.status.isLoading);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA,IAAAC,aAAA,GAAAD,OAAA;AAEO,MAAME,aAAa,CAAC;EAKzBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,oBAJMC,gBAAU,CAACC,KAAK,CAAwB,EAAE,EAAE;MAC9DC,IAAI,EAAE;IACR,CAAC,CAAC;IAGA,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,IAAI,EAAEC,YAAM,CAACC,KAAK;MAClBC,UAAU,EAAEF,YAAM,CAACC,KAAK;MACxBE,iBAAiB,EAAEC;IACrB,CAAC,CAAC;EACJ;EAEA,MAAMF,UAAUA,CAAIG,aAA+B,EAAE;IACnD,OAAO,IAAI,CAACN,IAAI,CACd,IAAIO,0BAAY,CAAC;MACfD;IACF,CAAC,CACH,CAAC;EACH;EAEA,MAAMN,IAAIA,CAAIQ,OAAwB,EAAE;IACtC,IAAI,CAACC,QAAQ,CAACT,IAAI,CAACQ,OAAO,CAAC;IAC3B,MAAMA,OAAO,CAACE,KAAK,CAAC,CAAC;IACrB,IAAAC,iBAAW,EAAC,MAAM;MAChB,IAAI,CAACF,QAAQ,CAACG,MAAM,CAACJ,OAAO,CAAC;IAC/B,CAAC,CAAC;EACJ;EAEA,IAAIJ,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAACK,QAAQ,CAACI,IAAI,CAAEL,OAAO,IAAKA,OAAO,CAACM,MAAM,CAACC,SAAS,CAAC;EAClE;AACF;AAACC,OAAA,CAAAxB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_services","parseSortString","sortFromUrl","split","map","sortExpression","field","direction","decodeURIComponent","QueryHistoryState","constructor","params","_defineProperty2","default","query","history","makeObservable","init","action","persistAll","_preInitHistoryPersistence","searchParams","URLSearchParams","location","search","Object","values","filtersEntries","forEach","key","filter","valueFromUrl","get","_initializedFromHistory","applyFromQueryString","sortSearchParamName","sort","setSortQuery","emitChangeEvent","disposers","reaction","value","delay","d","_setFilterValueToSearchParams","isEmpty","set","toQueryString","delete","replaceSearchParamsWith","length","encodeURIComponent","join","exports"],"sources":["../../../src/state/QueryHistoryState.ts"],"sourcesContent":["import { action, makeObservable, reaction } from 'mobx';\nimport { Filter, FiltersMap } from '../model';\nimport { QueryState } from './QueryState';\nimport { replaceSearchParamsWith, History } from '../services';\n\nfunction parseSortString(sortFromUrl: string) {\n return sortFromUrl.split(',').map((sortExpression) => {\n const [field = '', direction = ''] = sortExpression.split(' ');\n\n return {\n field: decodeURIComponent(field),\n direction: direction === 'desc' ? ('desc' as const) : ('asc' as const),\n };\n });\n}\n\nexport interface QueryHistoryStateParams<F extends FiltersMap> {\n readonly query: QueryState<F>;\n readonly history: History;\n}\n\nexport class QueryHistoryState<F extends FiltersMap> {\n readonly query;\n readonly history;\n\n sortSearchParamName = 'sort';\n\n constructor(params: QueryHistoryStateParams<F>) {\n this.query = params.query;\n this.history = params.history;\n\n makeObservable(this, {\n init: action,\n persistAll: action,\n _preInitHistoryPersistence: action,\n });\n\n this._preInitHistoryPersistence();\n }\n\n _preInitHistoryPersistence() {\n const { query, history } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n Object.values(query.filtersEntries).forEach(([key, filter]) => {\n const valueFromUrl = searchParams.get(key);\n if (valueFromUrl != null) {\n query._initializedFromHistory = true;\n filter.applyFromQueryString(valueFromUrl);\n }\n });\n\n const sortFromUrl = searchParams.get(this.sortSearchParamName);\n\n if (sortFromUrl) {\n query._initializedFromHistory = true;\n query.sort.setSortQuery(parseSortString(sortFromUrl), {\n emitChangeEvent: true,\n });\n }\n }\n\n init() {\n const { history, query } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n const disposers = [\n ...Object.values(query.filtersEntries).map(([key, filter]) => {\n const valueFromUrl = searchParams.get(key);\n if (valueFromUrl != null) {\n filter.applyFromQueryString(valueFromUrl);\n }\n return reaction(\n () => filter.value,\n () => {\n this.persistAll();\n },\n {\n delay: 250,\n },\n );\n }),\n reaction(\n () =>\n query.sort.value.map(({ field, direction }) => ({\n field,\n direction,\n })),\n () => {\n this.persistAll();\n },\n {\n delay: 250,\n },\n ),\n ];\n\n this.persistAll();\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n _setFilterValueToSearchParams(\n searchParams: URLSearchParams,\n key: string,\n filter: Filter<unknown>,\n ) {\n if (!filter.isEmpty) {\n searchParams.set(key, filter.toQueryString);\n } else {\n searchParams.delete(key);\n }\n }\n\n persistAll() {\n const {\n history,\n sortSearchParamName,\n query: { filtersEntries, sort },\n } = this;\n\n replaceSearchParamsWith(history, (searchParams) => {\n for (const [key, filter] of filtersEntries) {\n this._setFilterValueToSearchParams(searchParams, key, filter);\n }\n\n if (sort.value.length) {\n searchParams.set(\n sortSearchParamName,\n sort.value\n .map(\n ({ field, direction }) =>\n `${encodeURIComponent(field)} ${direction}`,\n )\n .join(','),\n );\n } else {\n searchParams.delete(sortSearchParamName);\n }\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_mobx","require","_services","parseSortString","sortFromUrl","split","map","sortExpression","field","direction","decodeURIComponent","QueryHistoryState","constructor","params","_defineProperty2","default","query","history","makeObservable","init","action","persistAll","_preInitHistoryPersistence","searchParams","URLSearchParams","location","search","Object","values","filtersEntries","forEach","key","filter","valueFromUrl","get","_initializedFromHistory","applyFromQueryString","sortSearchParamName","sort","setSortQuery","emitChangeEvent","disposers","reaction","value","delay","d","_setFilterValueToSearchParams","isEmpty","set","toQueryString","delete","replaceSearchParamsWith","length","encodeURIComponent","join","exports"],"sources":["../../../src/state/QueryHistoryState.ts"],"sourcesContent":["import { action, makeObservable, reaction } from 'mobx';\nimport { Filter, FiltersMap } from '../model';\nimport { QueryState } from './QueryState';\nimport { replaceSearchParamsWith, History } from '../services';\n\nfunction parseSortString(sortFromUrl: string) {\n return sortFromUrl.split(',').map((sortExpression) => {\n const [field = '', direction = ''] = sortExpression.split(' ');\n\n return {\n field: decodeURIComponent(field),\n direction: direction === 'desc' ? ('desc' as const) : ('asc' as const),\n };\n });\n}\n\nexport interface QueryHistoryStateParams<F extends FiltersMap> {\n readonly query: QueryState<F>;\n readonly history: History;\n}\n\nexport class QueryHistoryState<F extends FiltersMap> {\n readonly query;\n readonly history;\n\n sortSearchParamName = 'sort';\n\n constructor(params: QueryHistoryStateParams<F>) {\n this.query = params.query;\n this.history = params.history;\n\n makeObservable(this, {\n init: action,\n persistAll: action,\n _preInitHistoryPersistence: action,\n });\n\n this._preInitHistoryPersistence();\n }\n\n _preInitHistoryPersistence() {\n const { query, history } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n Object.values(query.filtersEntries).forEach(([key, filter]) => {\n const valueFromUrl = searchParams.get(key);\n if (valueFromUrl != null) {\n query._initializedFromHistory = true;\n filter.applyFromQueryString(valueFromUrl);\n }\n });\n\n const sortFromUrl = searchParams.get(this.sortSearchParamName);\n\n if (sortFromUrl) {\n query._initializedFromHistory = true;\n query.sort.setSortQuery(parseSortString(sortFromUrl), {\n emitChangeEvent: true,\n });\n }\n }\n\n init() {\n const { history, query } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n const disposers = [\n ...Object.values(query.filtersEntries).map(([key, filter]) => {\n const valueFromUrl = searchParams.get(key);\n if (valueFromUrl != null) {\n filter.applyFromQueryString(valueFromUrl);\n }\n return reaction(\n () => filter.value,\n () => {\n this.persistAll();\n },\n {\n delay: 250,\n },\n );\n }),\n reaction(\n () =>\n query.sort.value.map(({ field, direction }) => ({\n field,\n direction,\n })),\n () => {\n this.persistAll();\n },\n {\n delay: 250,\n },\n ),\n ];\n\n this.persistAll();\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n _setFilterValueToSearchParams(\n searchParams: URLSearchParams,\n key: string,\n filter: Filter<unknown>,\n ) {\n if (!filter.isEmpty) {\n searchParams.set(key, filter.toQueryString);\n } else {\n searchParams.delete(key);\n }\n }\n\n persistAll() {\n const {\n history,\n sortSearchParamName,\n query: { filtersEntries, sort },\n } = this;\n\n replaceSearchParamsWith(history, (searchParams) => {\n for (const [key, filter] of filtersEntries) {\n this._setFilterValueToSearchParams(searchParams, key, filter);\n }\n\n if (sort.value.length) {\n searchParams.set(\n sortSearchParamName,\n sort.value\n .map(\n ({ field, direction }) =>\n `${encodeURIComponent(field)} ${direction}`,\n )\n .join(','),\n );\n } else {\n searchParams.delete(sortSearchParamName);\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_ConditionalModalState","_QueryPendingStateBIReporter","createPendingFilter","origin","pending","clone","QueryPendingState","multi","toolbar","toolbarFiltersState","constructor","params","_defineProperty2","default","ConditionalModalState","_this$toolbarFiltersS","panelFilters","includes","container","allFilters","collections","reduce","filters","query","search","queryFilters","Object","values","filter","map","bi","QueryPendingStateBIReporter","makeObservable","apply","action","revert","clearSelected","getApplicableFilter","hasChanged","computed","trackedFilters","trackedFiltersCount","shouldTrackFilter","size","onCloseFiltersPanelClick","discardChangesModal","open","result","modal","promise","discard","_this$trackedFilters$","find","forEach","setValue","value","collection","clearResultAndMoveToStart","some","hasDiff","clear","reset","init","disposers","reaction","fireImmediately","d","exports"],"sources":["../../../src/state/QueryPendingState.ts"],"sourcesContent":["import { Filter, FiltersMap } from '../model';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { Experiments, ReportBI } from '../services';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { QueryPendingStateBIReporter } from './QueryPendingStateBIReporter';\n\ninterface ToolbarFiltersState {\n readonly panelFilters: (Filter<any> | null | undefined)[];\n}\n\nexport interface QueryPendingStateParams {\n container: {\n experiments: Experiments;\n };\n toolbar: {\n multi: MultiCollectionSupport<{}>;\n toolbarFiltersState?: ToolbarFiltersState | null;\n reportBi: ReportBI;\n };\n}\n\nfunction createPendingFilter<T>(origin: Filter<T>) {\n return {\n origin,\n pending: origin.clone(),\n };\n}\n\nexport class QueryPendingState {\n readonly filters;\n readonly container;\n readonly toolbar;\n readonly discardChangesModal = new ConditionalModalState<null>();\n readonly bi;\n\n get multi() {\n return this.toolbar.multi;\n }\n\n get toolbarFiltersState() {\n return this.toolbar.toolbarFiltersState;\n }\n\n constructor(params: QueryPendingStateParams) {\n this.container = params.container;\n this.toolbar = params.toolbar;\n\n const allFilters = this.multi.collections.reduce((filters, { query }) => {\n const { search, ...queryFilters } = query.filters;\n return { ...filters, ...queryFilters };\n }, {} as FiltersMap);\n\n this.filters = Object.values(allFilters)\n .filter((filter): filter is Filter<any> => filter != null)\n .map(createPendingFilter);\n\n this.bi = new QueryPendingStateBIReporter(this);\n\n makeObservable(this, {\n apply: action,\n revert: action,\n clearSelected: action,\n getApplicableFilter: action,\n hasChanged: computed,\n trackedFilters: computed,\n trackedFiltersCount: computed,\n });\n }\n\n get trackedFilters() {\n return this.filters.filter(this.shouldTrackFilter());\n }\n\n get trackedFiltersCount() {\n return this.trackedFilters.reduce(\n (size, { pending }) => size + pending.size,\n 0,\n );\n }\n\n shouldTrackFilter = () => {\n const panelFilters = this.toolbarFiltersState?.panelFilters;\n\n return ({ origin }: { origin: Filter<any> }) =>\n origin != null && panelFilters?.includes(origin);\n };\n\n async onCloseFiltersPanelClick() {\n if (!this.hasChanged) {\n return;\n }\n\n this.discardChangesModal.open(null);\n const { result } = await this.discardChangesModal.modal.promise();\n if (result === 'confirmed') {\n this.bi.discard();\n this.revert();\n } else if (result === 'declined') {\n this.apply();\n }\n\n return result;\n }\n\n getApplicableFilter<A>(filter: A) {\n return (\n this.trackedFilters.find(({ origin }) => origin === (filter as unknown))\n ?.pending ?? filter\n );\n }\n\n revert() {\n this.trackedFilters.forEach(({ pending, origin }) => {\n pending.setValue(origin.value);\n });\n }\n\n apply() {\n this.bi.apply();\n this.trackedFilters.forEach(({ pending, origin }) => {\n origin.setValue(pending.value);\n });\n this.multi.collections.forEach((collection) => {\n collection.clearResultAndMoveToStart();\n });\n }\n\n get hasChanged() {\n return this.trackedFilters.some(({ pending, origin }) =>\n pending.hasDiff(origin.value),\n );\n }\n\n async clearSelected() {\n this.bi.clear();\n this.trackedFilters.forEach(({ pending }) => {\n pending.reset();\n });\n }\n\n init() {\n const disposers = [\n this.bi.init(),\n ...this.filters.map(({ pending, origin }) =>\n reaction(\n () => origin.value,\n (value) => {\n pending.setValue(value);\n },\n {\n fireImmediately: true,\n },\n ),\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_mobx","require","_ConditionalModalState","_QueryPendingStateBIReporter","createPendingFilter","origin","pending","clone","QueryPendingState","multi","toolbar","toolbarFiltersState","constructor","params","_defineProperty2","default","ConditionalModalState","_this$toolbarFiltersS","panelFilters","includes","container","allFilters","collections","reduce","filters","query","search","queryFilters","Object","values","filter","map","bi","QueryPendingStateBIReporter","makeObservable","apply","action","revert","clearSelected","getApplicableFilter","hasChanged","computed","trackedFilters","trackedFiltersCount","shouldTrackFilter","size","onCloseFiltersPanelClick","discardChangesModal","open","result","modal","promise","discard","_this$trackedFilters$","find","forEach","setValue","value","collection","clearResultAndMoveToStart","some","hasDiff","clear","reset","init","disposers","reaction","fireImmediately","d","exports"],"sources":["../../../src/state/QueryPendingState.ts"],"sourcesContent":["import { Filter, FiltersMap } from '../model';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { Experiments, ReportBI } from '../services';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { QueryPendingStateBIReporter } from './QueryPendingStateBIReporter';\n\ninterface ToolbarFiltersState {\n readonly panelFilters: (Filter<any> | null | undefined)[];\n}\n\nexport interface QueryPendingStateParams {\n container: {\n experiments: Experiments;\n };\n toolbar: {\n multi: MultiCollectionSupport<{}>;\n toolbarFiltersState?: ToolbarFiltersState | null;\n reportBi: ReportBI;\n };\n}\n\nfunction createPendingFilter<T>(origin: Filter<T>) {\n return {\n origin,\n pending: origin.clone(),\n };\n}\n\nexport class QueryPendingState {\n readonly filters;\n readonly container;\n readonly toolbar;\n readonly discardChangesModal = new ConditionalModalState<null>();\n readonly bi;\n\n get multi() {\n return this.toolbar.multi;\n }\n\n get toolbarFiltersState() {\n return this.toolbar.toolbarFiltersState;\n }\n\n constructor(params: QueryPendingStateParams) {\n this.container = params.container;\n this.toolbar = params.toolbar;\n\n const allFilters = this.multi.collections.reduce((filters, { query }) => {\n const { search, ...queryFilters } = query.filters;\n return { ...filters, ...queryFilters };\n }, {} as FiltersMap);\n\n this.filters = Object.values(allFilters)\n .filter((filter): filter is Filter<any> => filter != null)\n .map(createPendingFilter);\n\n this.bi = new QueryPendingStateBIReporter(this);\n\n makeObservable(this, {\n apply: action,\n revert: action,\n clearSelected: action,\n getApplicableFilter: action,\n hasChanged: computed,\n trackedFilters: computed,\n trackedFiltersCount: computed,\n });\n }\n\n get trackedFilters() {\n return this.filters.filter(this.shouldTrackFilter());\n }\n\n get trackedFiltersCount() {\n return this.trackedFilters.reduce(\n (size, { pending }) => size + pending.size,\n 0,\n );\n }\n\n shouldTrackFilter = () => {\n const panelFilters = this.toolbarFiltersState?.panelFilters;\n\n return ({ origin }: { origin: Filter<any> }) =>\n origin != null && panelFilters?.includes(origin);\n };\n\n async onCloseFiltersPanelClick() {\n if (!this.hasChanged) {\n return;\n }\n\n this.discardChangesModal.open(null);\n const { result } = await this.discardChangesModal.modal.promise();\n if (result === 'confirmed') {\n this.bi.discard();\n this.revert();\n } else if (result === 'declined') {\n this.apply();\n }\n\n return result;\n }\n\n getApplicableFilter<A>(filter: A) {\n return (\n this.trackedFilters.find(({ origin }) => origin === (filter as unknown))\n ?.pending ?? filter\n );\n }\n\n revert() {\n this.trackedFilters.forEach(({ pending, origin }) => {\n pending.setValue(origin.value);\n });\n }\n\n apply() {\n this.bi.apply();\n this.trackedFilters.forEach(({ pending, origin }) => {\n origin.setValue(pending.value);\n });\n this.multi.collections.forEach((collection) => {\n collection.clearResultAndMoveToStart();\n });\n }\n\n get hasChanged() {\n return this.trackedFilters.some(({ pending, origin }) =>\n pending.hasDiff(origin.value),\n );\n }\n\n async clearSelected() {\n this.bi.clear();\n this.trackedFilters.forEach(({ pending }) => {\n pending.reset();\n });\n }\n\n init() {\n const disposers = [\n this.bi.init(),\n ...this.filters.map(({ pending, origin }) =>\n reaction(\n () => origin.value,\n (value) => {\n pending.setValue(value);\n },\n {\n fireImmediately: true,\n },\n ),\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_v","require","_util","_mobx","QueryPendingStateBIReporter","constructor","state","_defineProperty2","default","init","disposers","trackedFilters","forEach","trackedFilter","push","reaction","pending","value","isClearing","origin","_reportWithDefaultParams","withoutDefaults","cairoChangesBeforeApply","fieldName","name","fieldValue","_getFilterBIValue","undefined","disposer","reportBi","toolbar","reportProps","params","feature","filter","isEmpty","toArray","map","itemKey","toString","currentStatus","filters","reduce","prev","cur","apply","cairoApplyButtonClicked","JSON","stringify","filteredListSize","multi","collections","result","total","listSize","available","numActiveFields","el","length","numOptionalFields","clear","isClearButton","Promise","resolve","setTimeout","discard","cairoDiscardChangesBeforeApply","exports"],"sources":["../../../src/state/QueryPendingStateBIReporter.ts"],"sourcesContent":["import { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n cairoApplyButtonClicked,\n cairoChangesBeforeApply,\n cairoDiscardChangesBeforeApply,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutDefaults } from '../util';\nimport { QueryPendingState } from './QueryPendingState';\nimport { reaction } from 'mobx';\nimport { Filter } from '../model';\n\nexport class QueryPendingStateBIReporter {\n readonly state;\n\n isClearing: boolean = false;\n\n constructor(state: QueryPendingState) {\n this.state = state;\n }\n\n init() {\n const disposers: (() => void)[] = [];\n this.state.trackedFilters.forEach((trackedFilter) => {\n disposers.push(\n reaction(\n () => trackedFilter.pending.value,\n () => {\n if (\n this.isClearing ||\n trackedFilter.pending.value === trackedFilter.origin.value\n ) {\n return;\n }\n\n this._reportWithDefaultParams(\n withoutDefaults(cairoChangesBeforeApply)({\n fieldName: trackedFilter.pending.name,\n fieldValue:\n this._getFilterBIValue(trackedFilter.pending) ?? undefined,\n }),\n );\n },\n ),\n );\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get reportBi() {\n return this.state.toolbar.reportBi;\n }\n\n _reportWithDefaultParams(reportProps: ReportProps) {\n this.reportBi({\n ...reportProps,\n params: {\n ...reportProps.params,\n feature: 'Filters',\n },\n });\n }\n\n _getFilterBIValue(filter: Filter<any>) {\n return filter.value != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey).toString()\n : null;\n }\n\n get currentStatus() {\n return this.state.filters.reduce((prev, cur) => {\n return [\n ...prev,\n {\n fieldName: cur.pending.name,\n fieldValue: this._getFilterBIValue(cur.pending),\n },\n ];\n }, [] as { fieldName: string; fieldValue: string | null }[]);\n }\n\n apply() {\n const currentStatus = this.currentStatus;\n this._reportWithDefaultParams(\n withoutDefaults(cairoApplyButtonClicked)({\n currentStatus: JSON.stringify(currentStatus),\n filteredListSize: this.state.multi.collections.reduce(\n (prev, cur) => prev + cur.result.total,\n 0,\n ),\n listSize:\n this.state.multi.collections.reduce(\n (prev, cur) => prev + (cur.result.available ?? 0),\n 0,\n ) || undefined,\n numActiveFields: currentStatus.filter((el) => el.fieldValue !== null)\n .length,\n numOptionalFields: currentStatus.length,\n }),\n );\n }\n\n async clear() {\n this.isClearing = true;\n this._reportWithDefaultParams(\n withoutDefaults(cairoChangesBeforeApply)({\n isClearButton: true,\n numActiveFields: this.currentStatus.filter(\n (el) => el.fieldValue !== null,\n ).length,\n }),\n );\n // Wait for the next tick in order not to send `cairoChangesBeforeApply` if value changed because of clear action\n await new Promise((resolve) => setTimeout(resolve, 0));\n this.isClearing = false;\n }\n\n discard() {\n const currentStatus = this.currentStatus;\n this._reportWithDefaultParams(\n withoutDefaults(cairoDiscardChangesBeforeApply)({\n currentStatus: JSON.stringify(currentStatus),\n numActiveFields: currentStatus.filter((el) => el.fieldValue !== null)\n .length,\n numOptionalFields: currentStatus.length,\n }),\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_v","require","_util","_mobx","QueryPendingStateBIReporter","constructor","state","_defineProperty2","default","init","disposers","trackedFilters","forEach","trackedFilter","push","reaction","pending","value","isClearing","origin","_reportWithDefaultParams","withoutDefaults","cairoChangesBeforeApply","fieldName","name","fieldValue","_getFilterBIValue","undefined","disposer","reportBi","toolbar","reportProps","params","feature","filter","isEmpty","toArray","map","itemKey","toString","currentStatus","filters","reduce","prev","cur","apply","cairoApplyButtonClicked","JSON","stringify","filteredListSize","multi","collections","result","total","listSize","available","numActiveFields","el","length","numOptionalFields","clear","isClearButton","Promise","resolve","setTimeout","discard","cairoDiscardChangesBeforeApply","exports"],"sources":["../../../src/state/QueryPendingStateBIReporter.ts"],"sourcesContent":["import { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n cairoApplyButtonClicked,\n cairoChangesBeforeApply,\n cairoDiscardChangesBeforeApply,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutDefaults } from '../util';\nimport { QueryPendingState } from './QueryPendingState';\nimport { reaction } from 'mobx';\nimport { Filter } from '../model';\n\nexport class QueryPendingStateBIReporter {\n readonly state;\n\n isClearing: boolean = false;\n\n constructor(state: QueryPendingState) {\n this.state = state;\n }\n\n init() {\n const disposers: (() => void)[] = [];\n this.state.trackedFilters.forEach((trackedFilter) => {\n disposers.push(\n reaction(\n () => trackedFilter.pending.value,\n () => {\n if (\n this.isClearing ||\n trackedFilter.pending.value === trackedFilter.origin.value\n ) {\n return;\n }\n\n this._reportWithDefaultParams(\n withoutDefaults(cairoChangesBeforeApply)({\n fieldName: trackedFilter.pending.name,\n fieldValue:\n this._getFilterBIValue(trackedFilter.pending) ?? undefined,\n }),\n );\n },\n ),\n );\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get reportBi() {\n return this.state.toolbar.reportBi;\n }\n\n _reportWithDefaultParams(reportProps: ReportProps) {\n this.reportBi({\n ...reportProps,\n params: {\n ...reportProps.params,\n feature: 'Filters',\n },\n });\n }\n\n _getFilterBIValue(filter: Filter<any>) {\n return filter.value != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey).toString()\n : null;\n }\n\n get currentStatus() {\n return this.state.filters.reduce((prev, cur) => {\n return [\n ...prev,\n {\n fieldName: cur.pending.name,\n fieldValue: this._getFilterBIValue(cur.pending),\n },\n ];\n }, [] as { fieldName: string; fieldValue: string | null }[]);\n }\n\n apply() {\n const currentStatus = this.currentStatus;\n this._reportWithDefaultParams(\n withoutDefaults(cairoApplyButtonClicked)({\n currentStatus: JSON.stringify(currentStatus),\n filteredListSize: this.state.multi.collections.reduce(\n (prev, cur) => prev + cur.result.total,\n 0,\n ),\n listSize:\n this.state.multi.collections.reduce(\n (prev, cur) => prev + (cur.result.available ?? 0),\n 0,\n ) || undefined,\n numActiveFields: currentStatus.filter((el) => el.fieldValue !== null)\n .length,\n numOptionalFields: currentStatus.length,\n }),\n );\n }\n\n async clear() {\n this.isClearing = true;\n this._reportWithDefaultParams(\n withoutDefaults(cairoChangesBeforeApply)({\n isClearButton: true,\n numActiveFields: this.currentStatus.filter(\n (el) => el.fieldValue !== null,\n ).length,\n }),\n );\n // Wait for the next tick in order not to send `cairoChangesBeforeApply` if value changed because of clear action\n await new Promise((resolve) => setTimeout(resolve, 0));\n this.isClearing = false;\n }\n\n discard() {\n const currentStatus = this.currentStatus;\n this._reportWithDefaultParams(\n withoutDefaults(cairoDiscardChangesBeforeApply)({\n currentStatus: JSON.stringify(currentStatus),\n numActiveFields: currentStatus.filter((el) => el.fieldValue !== null)\n .length,\n numOptionalFields: currentStatus.length,\n }),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/state/QueryResultSimulation.ts"],"sourcesContent":["import { ComputedQuery, FiltersMap } from '../model';\nimport { IterateeShorthand } from 'lodash';\n\ntype Iterator<T> = (value: T, index: number) => unknown;\n\nexport interface Order<T> {\n fieldName: Iterator<T> | IterateeShorthand<T>;\n order: 'asc' | 'desc';\n}\n\nexport interface QueryResultSimulation<T, F extends FiltersMap> {\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/state/QueryResultSimulation.ts"],"sourcesContent":["import { ComputedQuery, FiltersMap } from '../model';\nimport { IterateeShorthand } from 'lodash';\n\ntype Iterator<T> = (value: T, index: number) => unknown;\n\nexport interface Order<T> {\n fieldName: Iterator<T> | IterateeShorthand<T>;\n order: 'asc' | 'desc';\n}\n\nexport interface QueryResultSimulation<T, F extends FiltersMap> {\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getKey","item","maybeKeyOfT","QueryResultSimulationDefault","constructor","params","_defineProperty2","default","computedQuery","sort","collection","query","itemName","search","filters","filterName","value","Object","entries","filter","fieldValue","matches","toLowerCase","includes","exports"],"sources":["../../../src/state/QueryResultSimulationDefault.ts"],"sourcesContent":["import { ComputedQuery, FiltersMap } from '../model';\nimport { CollectionState } from './CollectionState';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\n\nfunction getKey<T>(\n item: T,\n maybeKeyOfT: string | keyof T,\n): T[keyof T] | undefined | null {\n return item[maybeKeyOfT as keyof T];\n}\n\nexport interface QueryResultSimulationDefaultParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n}\nexport class QueryResultSimulationDefault<T, F extends FiltersMap>\n implements QueryResultSimulation<T, F>\n{\n readonly collection: CollectionState<T, F>;\n\n constructor(params: QueryResultSimulationDefaultParams<T, F>) {\n this.collection = params.collection;\n }\n\n orderBy = (computedQuery: ComputedQuery<F>): Order<T>[] => {\n const { sort } = computedQuery;\n\n return [...(sort ?? [])];\n };\n\n predicate = (computedQuery: ComputedQuery<F>) => {\n const { collection } = this;\n const { query, itemName } = collection;\n const { search, filters } = computedQuery;\n\n return (item: T) => {\n for (const [filterName, value] of Object.entries(filters)) {\n const filter = query.filters[filterName];\n\n if (filter == null) {\n return false;\n }\n\n const fieldValue = getKey(item, filterName);\n if (\n value != null &&\n fieldValue != null &&\n !filter.matches(fieldValue, value)\n ) {\n return false;\n }\n }\n\n if (search && !itemName(item).toLowerCase().includes(search)) {\n return false;\n }\n\n return true;\n };\n };\n}\n"],"mappings":";;;;;;AAIA,SAASA,MAAMA,CACbC,IAAO,EACPC,WAA6B,EACE;EAC/B,OAAOD,IAAI,CAACC,WAAW,CAAY;AACrC;AAKO,MAAMC,4BAA4B,CAEzC;EAGEC,WAAWA,CAACC,MAAgD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBAInDC,aAA+B,IAAiB;MACzD,MAAM;QAAEC;MAAK,CAAC,GAAGD,aAAa;MAE9B,OAAO,CAAC,IAAIC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,qBAEYC,aAA+B,IAAK;MAC/C,MAAM;QAAEE;MAAW,CAAC,GAAG,IAAI;MAC3B,MAAM;QAAEC,KAAK;QAAEC;MAAS,CAAC,GAAGF,UAAU;MACtC,MAAM;QAAEG,MAAM;QAAEC;MAAQ,CAAC,GAAGN,aAAa;MAEzC,OAAQP,IAAO,IAAK;QAClB,KAAK,MAAM,CAACc,UAAU,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,OAAO,CAAC,EAAE;UACzD,MAAMK,MAAM,GAAGR,KAAK,CAACG,OAAO,CAACC,UAAU,CAAC;UAExC,IAAII,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,KAAK;UACd;UAEA,MAAMC,UAAU,GAAGpB,MAAM,CAACC,IAAI,EAAEc,UAAU,CAAC;UAC3C,IACEC,KAAK,IAAI,IAAI,IACbI,UAAU,IAAI,IAAI,IAClB,CAACD,MAAM,CAACE,OAAO,CAACD,UAAU,EAAEJ,KAAK,CAAC,EAClC;YACA,OAAO,KAAK;UACd;QACF;QAEA,IAAIH,MAAM,IAAI,CAACD,QAAQ,CAACX,IAAI,CAAC,CAACqB,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACV,MAAM,CAAC,EAAE;UAC5D,OAAO,KAAK;QACd;QAEA,OAAO,IAAI;MACb,CAAC;IACH,CAAC;IAtCC,IAAI,CAACH,UAAU,GAAGL,MAAM,CAACK,UAAU;EACrC;AAsCF;AAACc,OAAA,CAAArB,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["getKey","item","maybeKeyOfT","QueryResultSimulationDefault","constructor","params","_defineProperty2","default","computedQuery","sort","collection","query","itemName","search","filters","filterName","value","Object","entries","filter","fieldValue","matches","toLowerCase","includes","exports"],"sources":["../../../src/state/QueryResultSimulationDefault.ts"],"sourcesContent":["import { ComputedQuery, FiltersMap } from '../model';\nimport { CollectionState } from './CollectionState';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\n\nfunction getKey<T>(\n item: T,\n maybeKeyOfT: string | keyof T,\n): T[keyof T] | undefined | null {\n return item[maybeKeyOfT as keyof T];\n}\n\nexport interface QueryResultSimulationDefaultParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n}\nexport class QueryResultSimulationDefault<T, F extends FiltersMap>\n implements QueryResultSimulation<T, F>\n{\n readonly collection: CollectionState<T, F>;\n\n constructor(params: QueryResultSimulationDefaultParams<T, F>) {\n this.collection = params.collection;\n }\n\n orderBy = (computedQuery: ComputedQuery<F>): Order<T>[] => {\n const { sort } = computedQuery;\n\n return [...(sort ?? [])];\n };\n\n predicate = (computedQuery: ComputedQuery<F>) => {\n const { collection } = this;\n const { query, itemName } = collection;\n const { search, filters } = computedQuery;\n\n return (item: T) => {\n for (const [filterName, value] of Object.entries(filters)) {\n const filter = query.filters[filterName];\n\n if (filter == null) {\n return false;\n }\n\n const fieldValue = getKey(item, filterName);\n if (\n value != null &&\n fieldValue != null &&\n !filter.matches(fieldValue, value)\n ) {\n return false;\n }\n }\n\n if (search && !itemName(item).toLowerCase().includes(search)) {\n return false;\n }\n\n return true;\n };\n };\n}\n"],"mappings":";;;;;;AAIA,SAASA,MAAMA,CACbC,IAAO,EACPC,WAA6B,EACE;EAC/B,OAAOD,IAAI,CAACC,WAAW,CAAY;AACrC;AAKO,MAAMC,4BAA4B,CAEzC;EAGEC,WAAWA,CAACC,MAAgD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBAInDC,aAA+B,IAAiB;MACzD,MAAM;QAAEC;MAAK,CAAC,GAAGD,aAAa;MAE9B,OAAO,CAAC,IAAIC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,qBAEYC,aAA+B,IAAK;MAC/C,MAAM;QAAEE;MAAW,CAAC,GAAG,IAAI;MAC3B,MAAM;QAAEC,KAAK;QAAEC;MAAS,CAAC,GAAGF,UAAU;MACtC,MAAM;QAAEG,MAAM;QAAEC;MAAQ,CAAC,GAAGN,aAAa;MAEzC,OAAQP,IAAO,IAAK;QAClB,KAAK,MAAM,CAACc,UAAU,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,OAAO,CAAC,EAAE;UACzD,MAAMK,MAAM,GAAGR,KAAK,CAACG,OAAO,CAACC,UAAU,CAAC;UAExC,IAAII,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,KAAK;UACd;UAEA,MAAMC,UAAU,GAAGpB,MAAM,CAACC,IAAI,EAAEc,UAAU,CAAC;UAC3C,IACEC,KAAK,IAAI,IAAI,IACbI,UAAU,IAAI,IAAI,IAClB,CAACD,MAAM,CAACE,OAAO,CAACD,UAAU,EAAEJ,KAAK,CAAC,EAClC;YACA,OAAO,KAAK;UACd;QACF;QAEA,IAAIH,MAAM,IAAI,CAACD,QAAQ,CAACX,IAAI,CAAC,CAACqB,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACV,MAAM,CAAC,EAAE;UAC5D,OAAO,KAAK;QACd;QAEA,OAAO,IAAI;MACb,CAAC;IACH,CAAC;IAtCC,IAAI,CAACH,UAAU,GAAGL,MAAM,CAACK,UAAU;EACrC;AAsCF;AAACc,OAAA,CAAArB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","slice","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","push","rollback","undefined","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n slice: action,\n });\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this._totals.processed;\n }\n\n get supportTotal() {\n return this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _keyedItemsMap, pages, _pagesAtom } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = page[indexWithinPage];\n page[indexWithinPage] = newItem;\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","slice","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","push","rollback","undefined","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n slice: action,\n });\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this._totals.processed;\n }\n\n get supportTotal() {\n return this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _keyedItemsMap, pages, _pagesAtom } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = page[indexWithinPage];\n page[indexWithinPage] = newItem;\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_Pagination","_mapValues","_interopRequireDefault","_pickBy","_events","_StringFilterState","_SortState","_util","_core","_QueryHistoryState","QueryState","constructor","params","_defineProperty2","default","EventEmitter","observable","set","deep","filter","addEventListener","events","emit","refreshOnColumnsChange","pagination","Pagination","limit","history","sort","SortState","customFilters","mapValues","filters","name","_filters","search","StringFilterState","defaultValue","queryHistory","QueryHistoryState","query","makeObservable","changeLimit","action","reset","toComputed","addFilter","asComputed","computed","activeFilters","nonPersistentFilters","nonPersistentFiltersEntries","nonPersistentFiltersMap","activeFiltersEntries","activeFiltersCount","hasActiveFilters","hasNonPersistentActiveFilters","resetFilters","bound","resetPage","filtersKey","filtersKeyHash","fields","fieldsKey","fieldsKeyHash","hasNonPersistentCustomFilters","nonPersistentCustomFiltersCount","init","_this$queryHistory","disposers","Object","values","filtersEntries","flatMap","_","addFilterListeners","forEach","d","Array","from","_columns","_fields","join","isEmpty","toArray","map","itemKey","undefined","hashQueryKey","moveToPage","_toComputed","searchFilter","page","offset","cursor","value","rawFilters","nonPersistentFiltersKey","rawSearch","field","fieldName","direction","order","columns","filtersArray","e","persistent","entries","entry","nonPersistentCustomFilters","reduce","size","pickBy","hasActiveSort","length","key","options","resetCustomFilters","resetSorting","initialCursor","exports"],"sources":["../../../src/state/QueryState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n AllFilters,\n ChangeValueOptions,\n ComputedQuery,\n ComputedQueryFull,\n Filter,\n FiltersMap,\n} from '../model';\nimport { initialCursor, Pagination } from './Pagination';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { StringFilterState } from './StringFilterState';\nimport { SortState } from './SortState';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\nimport { QueryHistoryState } from './QueryHistoryState';\n\nexport interface QueryStateParams<F extends FiltersMap = FiltersMap> {\n history?: History;\n filters: F;\n search?: Filter<string>;\n limit?: number;\n refreshOnColumnsChange?: boolean;\n}\n\nexport type QueryStateEvents = {\n change: () => void;\n refresh: (opts?: { clearResult?: boolean }) => void;\n scheduleRefresh: (opts?: { clearResult?: boolean }) => void;\n persist: () => void;\n};\n\nexport class QueryState<F extends FiltersMap = FiltersMap> {\n readonly history?: History;\n readonly pagination: Pagination;\n readonly customFilters: F;\n sort: SortState;\n readonly _filters: AllFilters<F>;\n readonly events = new EventEmitter() as TypedEmitter<QueryStateEvents>;\n\n readonly queryHistory: QueryHistoryState<F> | null;\n readonly refreshOnColumnsChange;\n\n _columns = observable.set<string>([], { deep: false });\n _fields = observable.set<string>([], { deep: false });\n\n _initializedFromHistory?: boolean;\n\n constructor(params: QueryStateParams<F>) {\n this.refreshOnColumnsChange = params.refreshOnColumnsChange;\n this.pagination = new Pagination({ limit: params.limit });\n\n this.history = params.history;\n this.sort = new SortState({});\n\n this.customFilters = mapValues(params.filters, (filter, name) => {\n if (filter) {\n filter.name = name;\n }\n return filter;\n }) as F;\n\n this._filters = {\n ...this.customFilters,\n search:\n params.search ??\n new StringFilterState({\n name: 'search',\n defaultValue: '',\n }),\n };\n\n this.queryHistory = this.history\n ? new QueryHistoryState({\n query: this,\n history: this.history,\n })\n : null;\n\n makeObservable(this, {\n changeLimit: action,\n reset: action,\n toComputed: action,\n addFilter: action,\n asComputed: computed,\n activeFilters: computed,\n nonPersistentFilters: computed,\n nonPersistentFiltersEntries: computed,\n nonPersistentFiltersMap: computed,\n activeFiltersEntries: computed,\n activeFiltersCount: computed,\n hasActiveFilters: computed,\n hasNonPersistentActiveFilters: computed,\n resetFilters: action.bound,\n resetPage: action.bound,\n filtersKey: computed,\n filtersKeyHash: computed,\n fields: computed,\n fieldsKey: computed,\n fieldsKeyHash: computed,\n hasNonPersistentCustomFilters: computed,\n nonPersistentCustomFiltersCount: computed,\n });\n }\n\n init() {\n const disposers = [\n ...Object.values(this.filtersEntries).flatMap(([_, filter]) => {\n return this.addFilterListeners(filter);\n }),\n this.queryHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n get limit() {\n return this.pagination.limit;\n }\n\n get fields() {\n return [\n ...Array.from(this._columns.values()),\n ...Array.from(this._fields.values()),\n ];\n }\n\n get fieldsKey() {\n return this.fields.sort();\n }\n\n get fieldsKeyHash() {\n return this.fieldsKey.join('');\n }\n\n get filtersKey() {\n const { customFilters } = this;\n\n return mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n }\n\n get filtersKeyHash() {\n return hashQueryKey([this.filtersKey]);\n }\n\n changeLimit(limit: number) {\n this.pagination.changeLimit(limit);\n }\n\n public reset() {\n this.pagination.moveToPage(0);\n }\n\n private _toComputed(): ComputedQueryFull<F> {\n const {\n pagination,\n customFilters,\n nonPersistentFiltersMap,\n search: searchFilter,\n sort,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n fields,\n refreshOnColumnsChange,\n } = this;\n const { page, limit, offset, cursor } = pagination;\n\n const filters: ComputedQuery<F>['filters'] = mapValues(\n customFilters,\n (filter) =>\n filter != null ? (filter.isEmpty ? undefined : filter.value) : filter,\n );\n const rawFilters: ComputedQuery<F>['rawFilters'] = mapValues(\n customFilters,\n (filter) => (filter != null ? filter.value : filter),\n );\n\n const filtersKey = mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const nonPersistentFiltersKey = mapValues(\n nonPersistentFiltersMap,\n (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const rawSearch = searchFilter.value;\n const search = searchFilter.isEmpty ? undefined : rawSearch;\n\n return {\n page,\n limit,\n sort: sort.value.map(({ field: fieldName, direction: order }) => ({\n fieldName,\n order,\n })),\n offset,\n cursor: cursor == null || typeof cursor === 'string' ? cursor : null,\n rawFilters,\n filtersKey,\n nonPersistentFiltersKey,\n filters,\n rawSearch,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n columns: fields,\n fields: refreshOnColumnsChange\n ? fields\n : Array.from(this._fields.values()),\n };\n }\n\n toComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get asComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get filtersArray() {\n const { _filters } = this;\n return Object.values(_filters).filter(\n (e) => e != null,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFilters() {\n const { filtersArray } = this;\n return filtersArray.filter((filter) => !filter.persistent);\n }\n\n get filtersEntries() {\n const { _filters } = this;\n return Object.entries(_filters).filter(\n (entry): entry is [string, Filter<unknown>] => entry[1] != null,\n );\n }\n\n get nonPersistentFiltersEntries() {\n const { filtersEntries } = this;\n return filtersEntries.filter(([_, filter]) => !filter.persistent);\n }\n\n get nonPersistentCustomFiltersCount() {\n return Object.values(this.nonPersistentCustomFilters).reduce(\n (size, filter) => size + filter.size,\n 0,\n );\n }\n\n get hasNonPersistentCustomFilters() {\n return this.nonPersistentCustomFiltersCount > 0;\n }\n\n get nonPersistentCustomFilters() {\n const { customFilters } = this;\n return Object.values(customFilters).filter(\n (e) => e != null && !e?.persistent,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFiltersMap() {\n const { customFilters } = this;\n return pickBy(customFilters, (filter) => !filter?.persistent) as Partial<F>;\n }\n\n get activeFiltersEntries() {\n const { nonPersistentFiltersEntries } = this;\n return nonPersistentFiltersEntries.filter(([_, filter]) => !filter.isEmpty);\n }\n\n get activeFilters() {\n const { nonPersistentFilters } = this;\n return nonPersistentFilters.filter((filter) => !filter.isEmpty);\n }\n\n get activeFiltersCount() {\n return this.activeFilters.reduce((size, filter) => size + filter.size, 0);\n }\n\n get hasActiveFilters() {\n return (\n this.filtersArray.reduce((size, filter) => size + filter.size, 0) > 0\n );\n }\n\n get hasNonPersistentActiveFilters() {\n return this.activeFiltersCount > 0;\n }\n\n get hasActiveSort() {\n return this.sort.value.length > 0;\n }\n\n addFilter<K extends keyof AllFilters<F>>(key: K, filter: AllFilters<F>[K]) {\n if (filter === undefined) {\n return;\n }\n this._filters[key] = filter;\n this.customFilters[key] = filter;\n const disposers = this.addFilterListeners(filter);\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n resetFilters(options?: ChangeValueOptions) {\n const { nonPersistentFilters } = this;\n nonPersistentFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetCustomFilters(options?: ChangeValueOptions) {\n const { nonPersistentCustomFilters } = this;\n nonPersistentCustomFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetSorting(params: { emitChangeEvent?: boolean } = {}) {\n this.sort.reset(params);\n }\n\n resetPage() {\n const { pagination } = this;\n pagination.page = 1;\n pagination.cursor = initialCursor;\n }\n\n get search() {\n return this._filters.search;\n }\n\n get filters(): AllFilters<F> {\n return this._filters;\n }\n\n addFilterListeners = (filter: Filter<unknown>) => {\n return [\n addEventListener(filter.events, 'change', () =>\n this.events.emit('change'),\n ),\n addEventListener(filter.events, 'refresh', () =>\n this.events.emit('refresh'),\n ),\n addEventListener(filter.events, 'scheduleRefresh', () =>\n this.events.emit('scheduleRefresh'),\n ),\n ];\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_mobx","require","_Pagination","_mapValues","_interopRequireDefault","_pickBy","_events","_StringFilterState","_SortState","_util","_core","_QueryHistoryState","QueryState","constructor","params","_defineProperty2","default","EventEmitter","observable","set","deep","filter","addEventListener","events","emit","refreshOnColumnsChange","pagination","Pagination","limit","history","sort","SortState","customFilters","mapValues","filters","name","_filters","search","StringFilterState","defaultValue","queryHistory","QueryHistoryState","query","makeObservable","changeLimit","action","reset","toComputed","addFilter","asComputed","computed","activeFilters","nonPersistentFilters","nonPersistentFiltersEntries","nonPersistentFiltersMap","activeFiltersEntries","activeFiltersCount","hasActiveFilters","hasNonPersistentActiveFilters","resetFilters","bound","resetPage","filtersKey","filtersKeyHash","fields","fieldsKey","fieldsKeyHash","hasNonPersistentCustomFilters","nonPersistentCustomFiltersCount","init","_this$queryHistory","disposers","Object","values","filtersEntries","flatMap","_","addFilterListeners","forEach","d","Array","from","_columns","_fields","join","isEmpty","toArray","map","itemKey","undefined","hashQueryKey","moveToPage","_toComputed","searchFilter","page","offset","cursor","value","rawFilters","nonPersistentFiltersKey","rawSearch","field","fieldName","direction","order","columns","filtersArray","e","persistent","entries","entry","nonPersistentCustomFilters","reduce","size","pickBy","hasActiveSort","length","key","options","resetCustomFilters","resetSorting","initialCursor","exports"],"sources":["../../../src/state/QueryState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n AllFilters,\n ChangeValueOptions,\n ComputedQuery,\n ComputedQueryFull,\n Filter,\n FiltersMap,\n} from '../model';\nimport { initialCursor, Pagination } from './Pagination';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { StringFilterState } from './StringFilterState';\nimport { SortState } from './SortState';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\nimport { QueryHistoryState } from './QueryHistoryState';\n\nexport interface QueryStateParams<F extends FiltersMap = FiltersMap> {\n history?: History;\n filters: F;\n search?: Filter<string>;\n limit?: number;\n refreshOnColumnsChange?: boolean;\n}\n\nexport type QueryStateEvents = {\n change: () => void;\n refresh: (opts?: { clearResult?: boolean }) => void;\n scheduleRefresh: (opts?: { clearResult?: boolean }) => void;\n persist: () => void;\n};\n\nexport class QueryState<F extends FiltersMap = FiltersMap> {\n readonly history?: History;\n readonly pagination: Pagination;\n readonly customFilters: F;\n sort: SortState;\n readonly _filters: AllFilters<F>;\n readonly events = new EventEmitter() as TypedEmitter<QueryStateEvents>;\n\n readonly queryHistory: QueryHistoryState<F> | null;\n readonly refreshOnColumnsChange;\n\n _columns = observable.set<string>([], { deep: false });\n _fields = observable.set<string>([], { deep: false });\n\n _initializedFromHistory?: boolean;\n\n constructor(params: QueryStateParams<F>) {\n this.refreshOnColumnsChange = params.refreshOnColumnsChange;\n this.pagination = new Pagination({ limit: params.limit });\n\n this.history = params.history;\n this.sort = new SortState({});\n\n this.customFilters = mapValues(params.filters, (filter, name) => {\n if (filter) {\n filter.name = name;\n }\n return filter;\n }) as F;\n\n this._filters = {\n ...this.customFilters,\n search:\n params.search ??\n new StringFilterState({\n name: 'search',\n defaultValue: '',\n }),\n };\n\n this.queryHistory = this.history\n ? new QueryHistoryState({\n query: this,\n history: this.history,\n })\n : null;\n\n makeObservable(this, {\n changeLimit: action,\n reset: action,\n toComputed: action,\n addFilter: action,\n asComputed: computed,\n activeFilters: computed,\n nonPersistentFilters: computed,\n nonPersistentFiltersEntries: computed,\n nonPersistentFiltersMap: computed,\n activeFiltersEntries: computed,\n activeFiltersCount: computed,\n hasActiveFilters: computed,\n hasNonPersistentActiveFilters: computed,\n resetFilters: action.bound,\n resetPage: action.bound,\n filtersKey: computed,\n filtersKeyHash: computed,\n fields: computed,\n fieldsKey: computed,\n fieldsKeyHash: computed,\n hasNonPersistentCustomFilters: computed,\n nonPersistentCustomFiltersCount: computed,\n });\n }\n\n init() {\n const disposers = [\n ...Object.values(this.filtersEntries).flatMap(([_, filter]) => {\n return this.addFilterListeners(filter);\n }),\n this.queryHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n get limit() {\n return this.pagination.limit;\n }\n\n get fields() {\n return [\n ...Array.from(this._columns.values()),\n ...Array.from(this._fields.values()),\n ];\n }\n\n get fieldsKey() {\n return this.fields.sort();\n }\n\n get fieldsKeyHash() {\n return this.fieldsKey.join('');\n }\n\n get filtersKey() {\n const { customFilters } = this;\n\n return mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n }\n\n get filtersKeyHash() {\n return hashQueryKey([this.filtersKey]);\n }\n\n changeLimit(limit: number) {\n this.pagination.changeLimit(limit);\n }\n\n public reset() {\n this.pagination.moveToPage(0);\n }\n\n private _toComputed(): ComputedQueryFull<F> {\n const {\n pagination,\n customFilters,\n nonPersistentFiltersMap,\n search: searchFilter,\n sort,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n fields,\n refreshOnColumnsChange,\n } = this;\n const { page, limit, offset, cursor } = pagination;\n\n const filters: ComputedQuery<F>['filters'] = mapValues(\n customFilters,\n (filter) =>\n filter != null ? (filter.isEmpty ? undefined : filter.value) : filter,\n );\n const rawFilters: ComputedQuery<F>['rawFilters'] = mapValues(\n customFilters,\n (filter) => (filter != null ? filter.value : filter),\n );\n\n const filtersKey = mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const nonPersistentFiltersKey = mapValues(\n nonPersistentFiltersMap,\n (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const rawSearch = searchFilter.value;\n const search = searchFilter.isEmpty ? undefined : rawSearch;\n\n return {\n page,\n limit,\n sort: sort.value.map(({ field: fieldName, direction: order }) => ({\n fieldName,\n order,\n })),\n offset,\n cursor: cursor == null || typeof cursor === 'string' ? cursor : null,\n rawFilters,\n filtersKey,\n nonPersistentFiltersKey,\n filters,\n rawSearch,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n columns: fields,\n fields: refreshOnColumnsChange\n ? fields\n : Array.from(this._fields.values()),\n };\n }\n\n toComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get asComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get filtersArray() {\n const { _filters } = this;\n return Object.values(_filters).filter(\n (e) => e != null,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFilters() {\n const { filtersArray } = this;\n return filtersArray.filter((filter) => !filter.persistent);\n }\n\n get filtersEntries() {\n const { _filters } = this;\n return Object.entries(_filters).filter(\n (entry): entry is [string, Filter<unknown>] => entry[1] != null,\n );\n }\n\n get nonPersistentFiltersEntries() {\n const { filtersEntries } = this;\n return filtersEntries.filter(([_, filter]) => !filter.persistent);\n }\n\n get nonPersistentCustomFiltersCount() {\n return Object.values(this.nonPersistentCustomFilters).reduce(\n (size, filter) => size + filter.size,\n 0,\n );\n }\n\n get hasNonPersistentCustomFilters() {\n return this.nonPersistentCustomFiltersCount > 0;\n }\n\n get nonPersistentCustomFilters() {\n const { customFilters } = this;\n return Object.values(customFilters).filter(\n (e) => e != null && !e?.persistent,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFiltersMap() {\n const { customFilters } = this;\n return pickBy(customFilters, (filter) => !filter?.persistent) as Partial<F>;\n }\n\n get activeFiltersEntries() {\n const { nonPersistentFiltersEntries } = this;\n return nonPersistentFiltersEntries.filter(([_, filter]) => !filter.isEmpty);\n }\n\n get activeFilters() {\n const { nonPersistentFilters } = this;\n return nonPersistentFilters.filter((filter) => !filter.isEmpty);\n }\n\n get activeFiltersCount() {\n return this.activeFilters.reduce((size, filter) => size + filter.size, 0);\n }\n\n get hasActiveFilters() {\n return (\n this.filtersArray.reduce((size, filter) => size + filter.size, 0) > 0\n );\n }\n\n get hasNonPersistentActiveFilters() {\n return this.activeFiltersCount > 0;\n }\n\n get hasActiveSort() {\n return this.sort.value.length > 0;\n }\n\n addFilter<K extends keyof AllFilters<F>>(key: K, filter: AllFilters<F>[K]) {\n if (filter === undefined) {\n return;\n }\n this._filters[key] = filter;\n this.customFilters[key] = filter;\n const disposers = this.addFilterListeners(filter);\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n resetFilters(options?: ChangeValueOptions) {\n const { nonPersistentFilters } = this;\n nonPersistentFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetCustomFilters(options?: ChangeValueOptions) {\n const { nonPersistentCustomFilters } = this;\n nonPersistentCustomFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetSorting(params: { emitChangeEvent?: boolean } = {}) {\n this.sort.reset(params);\n }\n\n resetPage() {\n const { pagination } = this;\n pagination.page = 1;\n pagination.cursor = initialCursor;\n }\n\n get search() {\n return this._filters.search;\n }\n\n get filters(): AllFilters<F> {\n return this._filters;\n }\n\n addFilterListeners = (filter: Filter<unknown>) => {\n return [\n addEventListener(filter.events, 'change', () =>\n this.events.emit('change'),\n ),\n addEventListener(filter.events, 'refresh', () =>\n this.events.emit('refresh'),\n ),\n addEventListener(filter.events, 'scheduleRefresh', () =>\n this.events.emit('scheduleRefresh'),\n ),\n ];\n };\n}\n"],"mappings":"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","ignoreList":[]}