@wix/bex-core 1.440.0 → 1.442.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 (231) 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_cs.json +1 -1
  4. package/dist/cjs/assets/locale/messages_en.json +1 -1
  5. package/dist/cjs/assets/locale/messages_es.json +1 -1
  6. package/dist/cjs/assets/locale/messages_fr.json +1 -1
  7. package/dist/cjs/assets/locale/messages_nl.json +1 -1
  8. package/dist/cjs/assets/locale/messages_uk.json +1 -1
  9. package/dist/cjs/assets/locale/messages_visuale2e.json +3 -1
  10. package/dist/cjs/exports/InMemoryBackend.js.map +1 -1
  11. package/dist/cjs/exports/bi/index.js.map +1 -1
  12. package/dist/cjs/exports/events.js.map +1 -1
  13. package/dist/cjs/exports/history.js.map +1 -1
  14. package/dist/cjs/exports/mobx.js.map +1 -1
  15. package/dist/cjs/exports/react.js.map +1 -1
  16. package/dist/cjs/exports/testkit/client.js.map +1 -1
  17. package/dist/cjs/exports/testkit/internal.js.map +1 -1
  18. package/dist/cjs/exports/testkit/testkit.js.map +1 -1
  19. package/dist/cjs/exports/util.js.map +1 -1
  20. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  21. package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
  22. package/dist/cjs/hooks/createCollection.js.map +1 -1
  23. package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
  24. package/dist/cjs/hooks/index.js.map +1 -1
  25. package/dist/cjs/hooks/paginationModeConfig.js.map +1 -1
  26. package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
  27. package/dist/cjs/hooks/useCollection/index.js.map +1 -1
  28. package/dist/cjs/hooks/useCollection/useCollection.js.map +1 -1
  29. package/dist/cjs/hooks/useCollectionPageState.js.map +1 -1
  30. package/dist/cjs/hooks/useEmptyStateTexts.js.map +1 -1
  31. package/dist/cjs/hooks/useExport.js.map +1 -1
  32. package/dist/cjs/hooks/useExportConfig.js.map +1 -1
  33. package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
  34. package/dist/cjs/hooks/usePicker.js.map +1 -1
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/mocks/PartialWindowMock.js.map +1 -1
  37. package/dist/cjs/mocks/partialLodashMock.js.map +1 -1
  38. package/dist/cjs/model/actionMove.js.map +1 -1
  39. package/dist/cjs/model/arrayField.js.map +1 -1
  40. package/dist/cjs/model/cairoEnvironment.js.map +1 -1
  41. package/dist/cjs/model/cairoEssentials.js.map +1 -1
  42. package/dist/cjs/model/cairoInitialProps.js.map +1 -1
  43. package/dist/cjs/model/collectionEvents.js.map +1 -1
  44. package/dist/cjs/model/commonTypes.js.map +1 -1
  45. package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
  46. package/dist/cjs/model/computedQuery/index.js.map +1 -1
  47. package/dist/cjs/model/computedResult.js.map +1 -1
  48. package/dist/cjs/model/dataCapsule.js.map +1 -1
  49. package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
  50. package/dist/cjs/model/dataResultRaw/index.js.map +1 -1
  51. package/dist/cjs/model/fetchDataFn.js.map +1 -1
  52. package/dist/cjs/model/filter.js.map +1 -1
  53. package/dist/cjs/model/fqdn.js.map +1 -1
  54. package/dist/cjs/model/httpClient.js.map +1 -1
  55. package/dist/cjs/model/index.js.map +1 -1
  56. package/dist/cjs/model/keyedItem.js.map +1 -1
  57. package/dist/cjs/model/queryOptions.js.map +1 -1
  58. package/dist/cjs/model/queryResult.js.map +1 -1
  59. package/dist/cjs/model/queryResultStatus.js.map +1 -1
  60. package/dist/cjs/model/queryStatus.js.map +1 -1
  61. package/dist/cjs/model/taskStatus.js.map +1 -1
  62. package/dist/cjs/model/toast.js.map +1 -1
  63. package/dist/cjs/providers/CairoContainerOverridesContext.js.map +1 -1
  64. package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
  65. package/dist/cjs/providers/CairoContainerProvider/index.js.map +1 -1
  66. package/dist/cjs/providers/CairoInitialPropsProvider.js.map +1 -1
  67. package/dist/cjs/providers/CairoProvider/CairoProvider.js +1 -1
  68. package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
  69. package/dist/cjs/providers/CairoProvider/index.js.map +1 -1
  70. package/dist/cjs/providers/CollectionContext.js.map +1 -1
  71. package/dist/cjs/providers/CollectionPageContext.js.map +1 -1
  72. package/dist/cjs/providers/FormWidgetContext.js.map +1 -1
  73. package/dist/cjs/providers/PageContext.js.map +1 -1
  74. package/dist/cjs/providers/createContext.js.map +1 -1
  75. package/dist/cjs/providers/index.js.map +1 -1
  76. package/dist/cjs/services/AccountPreferencesMergeStrategy.js.map +1 -1
  77. package/dist/cjs/services/AccountPreferencesStrategy.js.map +1 -1
  78. package/dist/cjs/services/AppSettingsCapsule.js.map +1 -1
  79. package/dist/cjs/services/CairoError.js.map +1 -1
  80. package/dist/cjs/services/CairoErrorCode.js.map +1 -1
  81. package/dist/cjs/services/DataCapsuleMergeStrategy.js.map +1 -1
  82. package/dist/cjs/services/ModalLayoutProps.js.map +1 -1
  83. package/dist/cjs/services/MonitorLogger.js.map +1 -1
  84. package/dist/cjs/services/cairoMonitor.js.map +1 -1
  85. package/dist/cjs/services/cairoTranslations.js.map +1 -1
  86. package/dist/cjs/services/createAccountComponentSettings.js.map +1 -1
  87. package/dist/cjs/services/createAppSettingsCapsule.js.map +1 -1
  88. package/dist/cjs/services/createComponentSettings.js.map +1 -1
  89. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  90. package/dist/cjs/services/environment.js.map +1 -1
  91. package/dist/cjs/services/experiments.js.map +1 -1
  92. package/dist/cjs/services/fetchTranslations.js.map +1 -1
  93. package/dist/cjs/services/fetchTranslationsPreBundled.js.map +1 -1
  94. package/dist/cjs/services/focusManager.js.map +1 -1
  95. package/dist/cjs/services/getErrorMonitorCompat.js.map +1 -1
  96. package/dist/cjs/services/history.js.map +1 -1
  97. package/dist/cjs/services/index.js.map +1 -1
  98. package/dist/cjs/services/mapGuidComponentIdToNonGuid.js.map +1 -1
  99. package/dist/cjs/services/navigationManager.js.map +1 -1
  100. package/dist/cjs/services/onlineManager.js.map +1 -1
  101. package/dist/cjs/services/partialLodash.js.map +1 -1
  102. package/dist/cjs/services/partialWindow.js.map +1 -1
  103. package/dist/cjs/services/replaceSearchParamsWith.js.map +1 -1
  104. package/dist/cjs/services/reportBi.js.map +1 -1
  105. package/dist/cjs/services/translations.js.map +1 -1
  106. package/dist/cjs/services/translationsImportsMap.js +1 -1
  107. package/dist/cjs/services/translationsImportsMap.js.map +1 -1
  108. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  109. package/dist/cjs/state/ArrayFilterState/index.js.map +1 -1
  110. package/dist/cjs/state/BeforeUnloadCompatState.js.map +1 -1
  111. package/dist/cjs/state/BulkActionModalState.js.map +1 -1
  112. package/dist/cjs/state/BulkSelectState.js.map +1 -1
  113. package/dist/cjs/state/CairoContainer.js.map +1 -1
  114. package/dist/cjs/state/CollectionBIReporter.js.map +1 -1
  115. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  116. package/dist/cjs/state/CollectionOptimisticActionsState.js.map +1 -1
  117. package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
  118. package/dist/cjs/state/CollectionOptimisticHelpers.js.map +1 -1
  119. package/dist/cjs/state/CollectionOptimisticPatch.js.map +1 -1
  120. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  121. package/dist/cjs/state/CollectionOptimisticSequenceExecutor.js.map +1 -1
  122. package/dist/cjs/state/CollectionPageState.js.map +1 -1
  123. package/dist/cjs/state/CollectionState.js.map +1 -1
  124. package/dist/cjs/state/ConditionalModalState.js.map +1 -1
  125. package/dist/cjs/state/CustomFieldModalBiReporter.js.map +1 -1
  126. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  127. package/dist/cjs/state/CustomFieldsViewWidgetState.js.map +1 -1
  128. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  129. package/dist/cjs/state/CustomFilterState/index.js.map +1 -1
  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/FiltersPanelModalCompatBridge.js.map +1 -1
  137. package/dist/cjs/state/FormPageState.js.map +1 -1
  138. package/dist/cjs/state/ModalState.js.map +1 -1
  139. package/dist/cjs/state/MultiCollectionSupport.js.map +1 -1
  140. package/dist/cjs/state/OnlineState.js.map +1 -1
  141. package/dist/cjs/state/PageState.js.map +1 -1
  142. package/dist/cjs/state/Pagination.js.map +1 -1
  143. package/dist/cjs/state/PaginationMode.js.map +1 -1
  144. package/dist/cjs/state/PaginationModeCursor.js.map +1 -1
  145. package/dist/cjs/state/PaginationModeOffset.js.map +1 -1
  146. package/dist/cjs/state/PickerState.js.map +1 -1
  147. package/dist/cjs/state/PromiseState.js.map +1 -1
  148. package/dist/cjs/state/PromisesSequence.js.map +1 -1
  149. package/dist/cjs/state/PromisesState.js.map +1 -1
  150. package/dist/cjs/state/QueryHistoryState.js.map +1 -1
  151. package/dist/cjs/state/QueryPendingState.js.map +1 -1
  152. package/dist/cjs/state/QueryPendingStateBIReporter.js.map +1 -1
  153. package/dist/cjs/state/QueryResultSimulation.js.map +1 -1
  154. package/dist/cjs/state/QueryResultSimulationDefault.js.map +1 -1
  155. package/dist/cjs/state/QueryResultState.js.map +1 -1
  156. package/dist/cjs/state/QueryState.js.map +1 -1
  157. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  158. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  159. package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
  160. package/dist/cjs/state/RefObject.js.map +1 -1
  161. package/dist/cjs/state/ReturnFocus.js.map +1 -1
  162. package/dist/cjs/state/SelectMapState.js.map +1 -1
  163. package/dist/cjs/state/SelectState.js.map +1 -1
  164. package/dist/cjs/state/SelectionStatus.js.map +1 -1
  165. package/dist/cjs/state/SelectionStatusCairoPreset.js.map +1 -1
  166. package/dist/cjs/state/SidePanelState.js.map +1 -1
  167. package/dist/cjs/state/SortState.js.map +1 -1
  168. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  169. package/dist/cjs/state/StringFilterState/index.js.map +1 -1
  170. package/dist/cjs/state/TaskState.js.map +1 -1
  171. package/dist/cjs/state/TextOverflowState.js.map +1 -1
  172. package/dist/cjs/state/ToggleState.js.map +1 -1
  173. package/dist/cjs/state/TransitionState.js.map +1 -1
  174. package/dist/cjs/state/ValueBox.js.map +1 -1
  175. package/dist/cjs/state/buildCairoContainer.js.map +1 -1
  176. package/dist/cjs/state/getJobItemsAbsoluteCounter.js.map +1 -1
  177. package/dist/cjs/state/index.js.map +1 -1
  178. package/dist/cjs/state/mutationObserverCompat.js.map +1 -1
  179. package/dist/cjs/state/onItemsCreated.js.map +1 -1
  180. package/dist/cjs/state/optimistic-simulation/filterPageByPatches.js.map +1 -1
  181. package/dist/cjs/state/optimistic-simulation/index.js.map +1 -1
  182. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  183. package/dist/cjs/state/optimistic-simulation/orderByMoves.js.map +1 -1
  184. package/dist/cjs/state/optimistic-simulation/orderByOrders.js.map +1 -1
  185. package/dist/cjs/state/optimistic-simulation/prepareItemsToMergeIntoPage.js.map +1 -1
  186. package/dist/cjs/state/optimistic-simulation/transformItemByUpdateAllPatches.js.map +1 -1
  187. package/dist/cjs/state/optimistic-simulation/trimAddedItemsFromPagePredicate.js.map +1 -1
  188. package/dist/cjs/state/resizeObserverCompat.js.map +1 -1
  189. package/dist/cjs/state/snapshot.js.map +1 -1
  190. package/dist/cjs/state/useExperimentsCompat.js.map +1 -1
  191. package/dist/cjs/state/warmUpPickerStandalone.js.map +1 -1
  192. package/dist/cjs/test-utils/flush.js.map +1 -1
  193. package/dist/cjs/test-utils/index.js.map +1 -1
  194. package/dist/cjs/test-utils/jest.js.map +1 -1
  195. package/dist/cjs/testkit/CairoContainer.driver.js.map +1 -1
  196. package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
  197. package/dist/cjs/testkit/appSettingsMocks.js.map +1 -1
  198. package/dist/cjs/testkit/client.js.map +1 -1
  199. package/dist/cjs/testkit/country.js.map +1 -1
  200. package/dist/cjs/testkit/createCountriesBackend.js.map +1 -1
  201. package/dist/cjs/testkit/createFoldersBackend.js.map +1 -1
  202. package/dist/cjs/testkit/createProductsBackend.js.map +1 -1
  203. package/dist/cjs/testkit/exportServiceMocks.js.map +1 -1
  204. package/dist/cjs/testkit/folder.js.map +1 -1
  205. package/dist/cjs/testkit/folderFilters.js.map +1 -1
  206. package/dist/cjs/testkit/index.js.map +1 -1
  207. package/dist/cjs/testkit/internal.js.map +1 -1
  208. package/dist/cjs/testkit/matchMediaMock.js.map +1 -1
  209. package/dist/cjs/testkit/nestifyItems.js.map +1 -1
  210. package/dist/cjs/testkit/product.js.map +1 -1
  211. package/dist/cjs/testkit/productFilters.js.map +1 -1
  212. package/dist/cjs/util/OfflineError.js.map +1 -1
  213. package/dist/cjs/util/addEventListener.js.map +1 -1
  214. package/dist/cjs/util/assertKey.js.map +1 -1
  215. package/dist/cjs/util/index.js.map +1 -1
  216. package/dist/cjs/util/isHttpError.js.map +1 -1
  217. package/dist/cjs/util/parseFqdn.js.map +1 -1
  218. package/dist/cjs/util/shouldRedirectToLogin.js.map +1 -1
  219. package/dist/cjs/util/showToastCompat.js.map +1 -1
  220. package/dist/cjs/util/slugify.js.map +1 -1
  221. package/dist/cjs/util/syncWithSharedQuery.js.map +1 -1
  222. package/dist/cjs/util/typedEmitter.js.map +1 -1
  223. package/dist/cjs/util/withoutDefaults.js.map +1 -1
  224. package/dist/esm/assets/locale/messages_cs.json +1 -1
  225. package/dist/esm/assets/locale/messages_en.json +1 -1
  226. package/dist/esm/assets/locale/messages_es.json +1 -1
  227. package/dist/esm/assets/locale/messages_fr.json +1 -1
  228. package/dist/esm/assets/locale/messages_nl.json +1 -1
  229. package/dist/esm/assets/locale/messages_uk.json +1 -1
  230. package/dist/esm/assets/locale/messages_visuale2e.json +3 -1
  231. package/package.json +3 -3
@@ -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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AAeO,MAAMI,gBAAgB,CAE7B;EASE,IAAIC,KAAKA,CAAA,EAAG;IACV,IAAI,CAACC,UAAU,CAACC,cAAc,CAAC,CAAC;IAChC,OAAO,IAAI,CAACC,MAAM,CAACC,SAAS;EAC9B;EAUAC,WAAWA,CAACC,MAAoC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAnB5B,IAAAC,gBAAU,EAAC,wBAAwB,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,kBACvC;MAAEJ,SAAS,EAAE,EAAE;MAAEM,WAAW,EAAE;IAAG,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,mBACnC;MAAEJ,SAAS,EAAE,CAAC;MAAEM,WAAW,EAAE;IAAE,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,yBACzB,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BACuB,IAAIG,GAAG,CAAC,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,qBAOnC,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAC0B;MACvD,GAAGI,kBAAW,CAACC,IAAI;MACnBC,KAAK,EAAE,IAAI;MACXC,UAAU,EAAE;IACd,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBAwCqB,IAAAQ,YAAM,EAAEhB,KAAe,IAAK;MAChD,IAAI,CAACG,MAAM,GAAGH,KAAK;MACnB,IAAI,CAACC,UAAU,CAACgB,aAAa,CAAC,CAAC;IACjC,CAAC,CAAC;IAvCA,IAAI,CAACC,OAAO,GAAGZ,MAAM,CAACY,OAAO;IAC7B,IAAI,CAACC,WAAW,GAAGb,MAAM,CAACa,WAAW;IAErC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,KAAK,EAAE,IAAAC,cAAQ,EAAC;QACdC,SAAS,EAAE;MACb,CAAC,CAAC;MACFC,UAAU,EAAE,IAAAF,cAAQ,EAAC;QACnBC,SAAS,EAAE;MACb,CAAC,CAAC;MACFvB,KAAK,EAAEsB,cAAQ;MACfG,IAAI,EAAEH,cAAQ;MACdI,SAAS,EAAEJ,cAAQ;MACnBK,UAAU,EAAEL,cAAQ;MACpBP,UAAU,EAAEO,cAAQ;MACpBM,qBAAqB,EAAEN,cAAQ;MAC/BO,UAAU,EAAEP,cAAQ;MACpBQ,KAAK,EAAER,cAAQ;MAEfS,iBAAiB,EAAET,cAAQ;MAC3BU,OAAO,EAAEC,gBAAU,CAACC,GAAG;MACvBC,aAAa,EAAEF,gBAAU,CAACC,GAAG;MAC7BE,SAAS,EAAEpB,YAAM;MACjBqB,SAAS,EAAEJ,gBAAU,CAACC,GAAG;MACzBI,MAAM,EAAEL,gBAAU,CAACC,GAAG;MACtBf,WAAW,EAAEc,gBAAU,CAACC,GAAG;MAC3BK,WAAW,EAAEvB,YAAM;MACnBwB,KAAK,EAAExB;IACT,CAAC,CAAC;EACJ;EAEA,IAAIyB,WAAWA,CAAA,EAAG;IAChB,MAAM;MAAEH;IAAO,CAAC,GAAG,IAAI;IACvB,OAAOA,MAAM,CAACI,OAAO,GAAGJ,MAAM,GAAG,IAAI;EACvC;EAOA,IAAId,UAAUA,CAAA,EAAmB;IAC/B,IAAI,CAACvB,UAAU,CAACC,cAAc,CAAC,CAAC;IAChC,MAAM;MAAEF,KAAK;MAAEkB;IAAQ,CAAC,GAAG,IAAI;IAC/B,IAAIyB,YAAY,GAAG,CAAC;IACpB,OAAO,IAAAC,gBAAO,EAAC5C,KAAK,EAAE,CAAC6C,IAAI,EAAEC,SAAS,KAAK;MACzC,OAAOD,IAAI,CAACE,GAAG,CAAC,CAACC,IAAI,EAAEC,eAAe,KAAK;QACzC,MAAMC,GAAG,GAAGhC,OAAO,CAAC8B,IAAI,CAAC;QACzB,OAAO;UACLE,GAAG;UACHC,EAAE,EAAED,GAAG;UACPF,IAAI;UACJI,KAAK,EAAET,YAAY,EAAE;UACrBG,SAAS;UACTG;QACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,IAAIvB,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACF,UAAU,CAACuB,GAAG,CAAC,CAAC;MAAEG;IAAI,CAAC,KAAKA,GAAG,CAAC;EAC9C;EAEA,IAAItB,qBAAqBA,CAAA,EAAG;IAC1B,MAAM;MAAEU,MAAM;MAAEd;IAAW,CAAC,GAAG,IAAI;IACnC,OAAOc,MAAM,CAACe,SAAS,IAAI,CAACf,MAAM,CAACvB,UAAU,IAAI,CAACS,UAAU,CAAC8B,MAAM;EACrE;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,MAAM;MAAE/B;IAAW,CAAC,GAAG,IAAI;IAC3B,OAAOA,UAAU,CAAC8B,MAAM,KAAK,CAAC;EAChC;EAEA,IAAIjC,KAAKA,CAAA,EAAQ;IACf,IAAI,CAACpB,UAAU,CAACC,cAAc,CAAC,CAAC;IAChC,MAAM;MAAEF;IAAM,CAAC,GAAG,IAAI;IACtB,OAAO,IAAA4C,gBAAO,EAAC5C,KAAK,CAAC;EACvB;EAEA,IAAI8B,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACE,OAAO,CAAC5B,SAAS;EAC/B;EAEA,IAAIoD,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACrB,aAAa;EAC3B;EAEA,IAAIR,UAAUA,CAAA,EAAG;IACf,MAAM;MAAEW,MAAM;MAAEjB,KAAK;MAAES;IAAM,CAAC,GAAG,IAAI;IACrC,OAAO,CAACQ,MAAM,CAACmB,SAAS,IAAI3B,KAAK,IAAIT,KAAK,CAACiC,MAAM;EACnD;EAEA,IAAIvC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACuB,MAAM,CAACvB,UAAU;EAC/B;EAEA2C,GAAGA,CAACR,GAAW,EAAE;IACf,IAAI,CAACjD,UAAU,CAACC,cAAc,CAAC,CAAC;IAChC,OAAO,IAAI,CAACyD,cAAc,CAACD,GAAG,CAACR,GAAG,CAAC;EACrC;EAEAU,GAAGA,CAACV,GAAW,EAAE;IACf,OAAO,IAAI,CAACS,cAAc,CAACC,GAAG,CAACV,GAAG,CAAC;EACrC;EAEQW,gBAAgBA,CAACC,OAAsC,EAAE;IAC/D,OAAO,MAAM;MACX,MAAM;QAAE5C,OAAO;QAAEyC,cAAc;QAAE3D;MAAM,CAAC,GAAG,IAAI;MAC/C,KAAK,MAAM;QAAE+D,OAAO;QAAEC;MAAS,CAAC,IAAIF,OAAO,EAAE;QAC3C,MAAMZ,GAAG,GAAGhC,OAAO,CAAC6C,OAAO,CAAC;QAC5B,MAAME,SAAS,GAAGN,cAAc,CAACD,GAAG,CAACR,GAAG,CAAC;QACzC;QACA,IAAIe,SAAS,IAAI,IAAI,EAAE;UACrB,MAAM;YAAEnB,SAAS;YAAEG;UAAgB,CAAC,GAAGgB,SAAS;UAChD,MAAMpB,IAAI,GAAG7C,KAAK,CAAC8C,SAAS,CAAC;UAC7B,IAAID,IAAI,CAACI,eAAe,CAAC,KAAKc,OAAO,EAAE;YACrC,IAAI,CAACxB,WAAW,CAAC,CAACyB,QAAQ,CAAC,CAAC;YAC5B,OAAO,IAAI;UACb;QACF;MACF;MAEA,OAAO,KAAK;IACd,CAAC;EACH;EAEAzB,WAAWA,CAAC2B,QAAa,EAAE;IACzB,MAAM;MAAEhD,OAAO;MAAEyC,cAAc;MAAE3D,KAAK;MAAEC;IAAW,CAAC,GAAG,IAAI;IAC3D,MAAM6D,OAAsC,GAAG,EAAE;IACjD,KAAK,MAAMC,OAAO,IAAIG,QAAQ,EAAE;MAC9B,MAAMhB,GAAG,GAAGhC,OAAO,CAAC6C,OAAO,CAAC;MAC5B,MAAME,SAAS,GAAGN,cAAc,CAACD,GAAG,CAACR,GAAG,CAAC;MACzC,IAAIe,SAAS,IAAI,IAAI,EAAE;QACrB,MAAM;UAAEnB,SAAS;UAAEG;QAAgB,CAAC,GAAGgB,SAAS;QAChD,MAAMpB,IAAI,GAAG7C,KAAK,CAAC8C,SAAS,CAAC;QAC7B;QACA;QACA;QACA,MAAMkB,QAAQ,GAAGnB,IAAI,CAACI,eAAe,CAAC;QACtCJ,IAAI,CAACI,eAAe,CAAC,GAAGc,OAAO;QAE/BD,OAAO,CAACK,IAAI,CAAC;UAAEH,QAAQ;UAAED;QAAQ,CAAC,CAAC;MACrC;IACF;IAEA,IAAID,OAAO,CAACR,MAAM,EAAE;MAClBrD,UAAU,CAACgB,aAAa,CAAC,CAAC;MAE1B,OAAO;QACLmD,QAAQ,EAAE,IAAI,CAACP,gBAAgB,CAACC,OAAO;MACzC,CAAC;IACH;IAEA,OAAOO,SAAS;EAClB;EAEQC,iBAAiBA,CAAA,EAAG;IAC1B,MAAM;MAAE9C,UAAU;MAAEmC;IAAe,CAAC,GAAG,IAAI;IAC3CA,cAAc,CAACY,KAAK,CAAC,CAAC;IACtB,KAAK,MAAMN,SAAS,IAAIzC,UAAU,EAAE;MAClCmC,cAAc,CAACa,GAAG,CAACP,SAAS,CAACf,GAAG,EAAEe,SAAS,CAAC;IAC9C;EACF;EAEAM,KAAKA,CAAA,EAAG;IACN,IAAI,CAACE,WAAW,CAAC;MAAErE,SAAS,EAAE,EAAE;MAAEM,WAAW,EAAE;IAAG,CAAC,CAAC;IACpD,IAAI,CAACiD,cAAc,CAACY,KAAK,CAAC,CAAC;EAC7B;EAEAG,QAAQA,CAACC,SAAmB,EAAE;IAC5B,MAAM;MAAExE;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAACsE,WAAW,CAAC;MACf/D,WAAW,EAAE,CAAC,GAAGP,MAAM,CAACO,WAAW,EAAE,GAAGiE,SAAS,CAACjE,WAAW,CAAC;MAC9DN,SAAS,EAAE,CAAC,GAAGD,MAAM,CAACC,SAAS,EAAE,GAAGuE,SAAS,CAACvE,SAAS;IACzD,CAAC,CAAC;IACF,IAAI,CAACkE,iBAAiB,CAAC,CAAC;EAC1B;EAEAlC,SAASA,CAACwC,MAAc,EAAE;IACxB,IAAI,CAAC5C,OAAO,GAAG4C,MAAM;EACvB;EAEAC,eAAeA,CAACrB,YAAqB,EAAE;IACrC,IAAI,CAACrB,aAAa,GAAGqB,YAAY;EACnC;EAEAsB,QAAQA,CAAC9E,KAAe,EAAE;IACxB,IAAI,CAACyE,WAAW,CAACzE,KAAK,CAAC;IACvB,IAAI,CAACsE,iBAAiB,CAAC,CAAC;EAC1B;EAEA9B,KAAKA,CAACuC,KAAc,EAAEC,GAAY,EAAE;IAClC,MAAM;MAAE7E;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAACsE,WAAW,CAAC;MACf/D,WAAW,EAAEP,MAAM,CAACO,WAAW,CAAC8B,KAAK,CAACuC,KAAK,EAAEC,GAAG,CAAC;MACjD5E,SAAS,EAAED,MAAM,CAACC,SAAS,CAACoC,KAAK,CAACuC,KAAK,EAAEC,GAAG;IAC9C,CAAC,CAAC;EACJ;EAEA,IAAIjD,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJZ,WAAW,EAAE;QAAE8D;MAA8B,CAAC;MAC9C5C,SAAS;MACTP,KAAK;MACLL;IACF,CAAC,GAAG,IAAI;IACR;IACA,OAAOY,SAAS,IAAI,IAAI,GACpBA,SAAS,GAAG,CAAC,GACb4C,6BAA6B,IAAInD,KAAK,GAAG,CAAC,IAAIL,IAAI,GAAG,CAAC;EAC5D;EAEA,IAAII,UAAUA,CAAA,EAAG;IACf,MAAM;MAAEC,KAAK;MAAEO;IAAU,CAAC,GAAG,IAAI;IACjC,OAAO;MACLP,KAAK;MACLO,SAAS,EAAEA,SAAS,IAAI;IAC1B,CAAC;EACH;EAEA,IAAIZ,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACJ,KAAK,CAACiC,MAAM;EAC1B;AACF;AAAC4B,OAAA,CAAAnF,gBAAA,GAAAA,gBAAA"}
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":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","entityName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return (\n !this._value.from &&\n !this._value.to &&\n this.isEmptyPreset(this._value.preset)\n );\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n entityName,\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n entityName,\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","entityName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return (\n !this._value.from &&\n !this._value.to &&\n this.isEmptyPreset(this._value.preset)\n );\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n entityName,\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n entityName,\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","DefaultDateRangePreset","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","join","renderPresetToolbarTag","container","translate","t","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { FilterItem } from '../../model';\nimport { RangeItem } from './RangeFilterState';\nimport { Translate, TranslationsKeys } from '../../services';\n\nexport const DateRangePreset: Record<DateRangePresetOptions, string> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n TODAY: 'TODAY',\n TOMORROW: 'TOMORROW',\n NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',\n NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',\n NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',\n CUSTOM: 'CUSTOM',\n};\n\nexport const DefaultDateRangePreset: Record<\n 'NONE' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS' | 'MONTH' | 'CUSTOM',\n string\n> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n CUSTOM: 'CUSTOM',\n};\n\nconst getDateRangeLabel = (\n item: RangeItem<Date>,\n {\n dateFormatters,\n }: {\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n },\n) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((date) => dateFormatters.mediumTime.format(date))\n .join(' - ');\n};\n\nexport const renderPresetToolbarTag =\n (container: {\n translate: Translate;\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n }) =>\n <V>(filter: FilterItem<V>) => {\n const { translate: t, dateFormatters } = container;\n const { preset } = filter as FilterItem<RangeItem<Date>>;\n if (!preset || !presetToDaysAmount[preset]) {\n return {\n children: getDateRangeLabel(filter as RangeItem<Date>, {\n dateFormatters,\n }),\n };\n }\n return { children: t(MAP_DATE_PRESET_TO_KEY[preset]) };\n };\n\nexport const shouldRenderPresetTag = (preset?: string) =>\n preset &&\n Object.values(DateRangePreset).includes(preset) &&\n preset !== DateRangePreset.NONE &&\n preset !== DateRangePreset.CUSTOM;\n\nexport const presetToDaysAmount: {\n [key: string]: {\n months?: number;\n days?: number;\n years?: number;\n };\n} = {\n [DateRangePreset.SEVEN_DAYS]: {\n days: -7,\n },\n [DateRangePreset.FOURTEEN_DAYS]: {\n days: -14,\n },\n [DateRangePreset.MONTH]: {\n months: -1,\n },\n [DateRangePreset.TODAY]: {\n days: 0,\n },\n [DateRangePreset.TOMORROW]: {\n days: 1,\n },\n [DateRangePreset.NEXT_THREE_DAYS]: {\n days: 3,\n },\n [DateRangePreset.NEXT_SEVEN_DAYS]: {\n days: 7,\n },\n [DateRangePreset.NEXT_THIRTY_DAYS]: {\n days: 30,\n },\n};\n\nexport const getDatesFromPreset = (preset?: string): RangeItem<Date> => {\n const today = new Date();\n const presetDiff = preset ? presetToDaysAmount[preset] : undefined;\n if (!presetDiff) {\n return { from: null, to: null };\n }\n const fromDate = new Date(today.getTime());\n const { days, months, years } = presetDiff;\n if (days) {\n fromDate.setDate(today.getDate() + days);\n\n // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\n }\n if (months) {\n fromDate.setMonth(today.getMonth() + months);\n }\n if (years) {\n fromDate.setFullYear(today.getFullYear() + years);\n }\n\n if (fromDate.getTime() > today.getTime()) {\n today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\n return { from: fromDate, to: today, preset };\n};\n\nexport const MAP_DATE_PRESET_TO_KEY: { [key: string]: TranslationsKeys } = {\n [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',\n [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',\n [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',\n [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',\n [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',\n [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',\n [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',\n [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',\n [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',\n [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days',\n};\n\nexport type DateRangeFilterMode = 'ONLY_PREDEFINED' | 'ONLY_CUSTOM' | 'COMBINE';\nexport type DateRangePredefinedPresetOptions =\n | 'SEVEN_DAYS'\n | 'FOURTEEN_DAYS'\n | 'MONTH'\n | 'TODAY'\n | 'TOMORROW'\n | 'NEXT_THREE_DAYS'\n | 'NEXT_SEVEN_DAYS'\n | 'NEXT_THIRTY_DAYS';\nexport type DateRangePresetOptions =\n | DateRangePredefinedPresetOptions\n | 'NONE'\n | 'CUSTOM';\nexport type DateRangeFilterPresetsOverrideOptions =\n DateRangePredefinedPresetOptions[];\n"],"mappings":";;;;AAIO,MAAMA,eAAuD,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACrEE,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,YAAY;EACxBC,aAAa,EAAE,eAAe;EAC9BC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,iBAAiB;EAClCC,eAAe,EAAE,iBAAiB;EAClCC,gBAAgB,EAAE,kBAAkB;EACpCC,MAAM,EAAE;AACV,CAAC;AAEM,MAAMC,sBAGZ,GAAAX,OAAA,CAAAW,sBAAA,GAAG;EACFV,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,YAAY;EACxBC,aAAa,EAAE,eAAe;EAC9BC,KAAK,EAAE,OAAO;EACdM,MAAM,EAAE;AACV,CAAC;AAED,MAAME,iBAAiB,GAAGA,CACxBC,IAAqB,EACrB;EACEC;AAMF,CAAC,KACE;EACH,OAAO,CAACD,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACG,EAAE,CAAC,CACxBC,MAAM,CAACC,OAAmD,CAAC,CAC3DC,GAAG,CAAEC,IAAI,IAAKN,cAAc,CAACO,UAAU,CAACC,MAAM,CAACF,IAAI,CAAC,CAAC,CACrDG,IAAI,CAAC,KAAK,CAAC;AAChB,CAAC;AAEM,MAAMC,sBAAsB,GAChCC,SAMA,IACGR,MAAqB,IAAK;EAC5B,MAAM;IAAES,SAAS,EAAEC,CAAC;IAAEb;EAAe,CAAC,GAAGW,SAAS;EAClD,MAAM;IAAEG;EAAO,CAAC,GAAGX,MAAqC;EACxD,IAAI,CAACW,MAAM,IAAI,CAACC,kBAAkB,CAACD,MAAM,CAAC,EAAE;IAC1C,OAAO;MACLE,QAAQ,EAAElB,iBAAiB,CAACK,MAAM,EAAqB;QACrDH;MACF,CAAC;IACH,CAAC;EACH;EACA,OAAO;IAAEgB,QAAQ,EAAEH,CAAC,CAACI,sBAAsB,CAACH,MAAM,CAAC;EAAE,CAAC;AACxD,CAAC;AAAC5B,OAAA,CAAAwB,sBAAA,GAAAA,sBAAA;AAEG,MAAMQ,qBAAqB,GAAIJ,MAAe,IACnDA,MAAM,IACNK,MAAM,CAACC,MAAM,CAACnC,eAAe,CAAC,CAACoC,QAAQ,CAACP,MAAM,CAAC,IAC/CA,MAAM,KAAK7B,eAAe,CAACE,IAAI,IAC/B2B,MAAM,KAAK7B,eAAe,CAACW,MAAM;AAACV,OAAA,CAAAgC,qBAAA,GAAAA,qBAAA;AAE7B,MAAMH,kBAMZ,GAAA7B,OAAA,CAAA6B,kBAAA,GAAG;EACF,CAAC9B,eAAe,CAACG,UAAU,GAAG;IAC5BkC,IAAI,EAAE,CAAC;EACT,CAAC;EACD,CAACrC,eAAe,CAACI,aAAa,GAAG;IAC/BiC,IAAI,EAAE,CAAC;EACT,CAAC;EACD,CAACrC,eAAe,CAACK,KAAK,GAAG;IACvBiC,MAAM,EAAE,CAAC;EACX,CAAC;EACD,CAACtC,eAAe,CAACM,KAAK,GAAG;IACvB+B,IAAI,EAAE;EACR,CAAC;EACD,CAACrC,eAAe,CAACO,QAAQ,GAAG;IAC1B8B,IAAI,EAAE;EACR,CAAC;EACD,CAACrC,eAAe,CAACQ,eAAe,GAAG;IACjC6B,IAAI,EAAE;EACR,CAAC;EACD,CAACrC,eAAe,CAACS,eAAe,GAAG;IACjC4B,IAAI,EAAE;EACR,CAAC;EACD,CAACrC,eAAe,CAACU,gBAAgB,GAAG;IAClC2B,IAAI,EAAE;EACR;AACF,CAAC;AAEM,MAAME,kBAAkB,GAAIV,MAAe,IAAsB;EACtE,MAAMW,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC;EACxB,MAAMC,UAAU,GAAGb,MAAM,GAAGC,kBAAkB,CAACD,MAAM,CAAC,GAAGc,SAAS;EAClE,IAAI,CAACD,UAAU,EAAE;IACf,OAAO;MAAE1B,IAAI,EAAE,IAAI;MAAEC,EAAE,EAAE;IAAK,CAAC;EACjC;EACA,MAAM2B,QAAQ,GAAG,IAAIH,IAAI,CAACD,KAAK,CAACK,OAAO,CAAC,CAAC,CAAC;EAC1C,MAAM;IAAER,IAAI;IAAEC,MAAM;IAAEQ;EAAM,CAAC,GAAGJ,UAAU;EAC1C,IAAIL,IAAI,EAAE;IACRO,QAAQ,CAACG,OAAO,CAACP,KAAK,CAACQ,OAAO,CAAC,CAAC,GAAGX,IAAI,CAAC;;IAExC;IACA,IAAIR,MAAM,KAAK7B,eAAe,CAACO,QAAQ,EAAE;MACvCiC,KAAK,CAACO,OAAO,CAACP,KAAK,CAACQ,OAAO,CAAC,CAAC,GAAGX,IAAI,CAAC;IACvC;EACF;EACA,IAAIC,MAAM,EAAE;IACVM,QAAQ,CAACK,QAAQ,CAACT,KAAK,CAACU,QAAQ,CAAC,CAAC,GAAGZ,MAAM,CAAC;EAC9C;EACA,IAAIQ,KAAK,EAAE;IACTF,QAAQ,CAACO,WAAW,CAACX,KAAK,CAACY,WAAW,CAAC,CAAC,GAAGN,KAAK,CAAC;EACnD;EAEA,IAAIF,QAAQ,CAACC,OAAO,CAAC,CAAC,GAAGL,KAAK,CAACK,OAAO,CAAC,CAAC,EAAE;IACxCL,KAAK,CAACa,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1BT,QAAQ,CAACS,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAClC,OAAO;MAAErC,IAAI,EAAEwB,KAAK;MAAEvB,EAAE,EAAE2B,QAAQ;MAAEf;IAAO,CAAC;EAC9C;EAEAe,QAAQ,CAACS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7Bb,KAAK,CAACa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;EAC/B,OAAO;IAAErC,IAAI,EAAE4B,QAAQ;IAAE3B,EAAE,EAAEuB,KAAK;IAAEX;EAAO,CAAC;AAC9C,CAAC;AAAC5B,OAAA,CAAAsC,kBAAA,GAAAA,kBAAA;AAEK,MAAMP,sBAA2D,GAAA/B,OAAA,CAAA+B,sBAAA,GAAG;EACzE,CAAChC,eAAe,CAACE,IAAI,GAAG,8BAA8B;EACtD,CAACF,eAAe,CAACG,UAAU,GAAG,+BAA+B;EAC7D,CAACH,eAAe,CAACI,aAAa,GAAG,gCAAgC;EACjE,CAACJ,eAAe,CAACK,KAAK,GAAG,mCAAmC;EAC5D,CAACL,eAAe,CAACW,MAAM,GAAG,gCAAgC;EAC1D,CAACX,eAAe,CAACM,KAAK,GAAG,+BAA+B;EACxD,CAACN,eAAe,CAACO,QAAQ,GAAG,kCAAkC;EAC9D,CAACP,eAAe,CAACQ,eAAe,GAAG,mCAAmC;EACtE,CAACR,eAAe,CAACS,eAAe,GAAG,mCAAmC;EACtE,CAACT,eAAe,CAACU,gBAAgB,GAAG;AACtC,CAAC"}
1
+ {"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","DefaultDateRangePreset","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","join","renderPresetToolbarTag","container","translate","t","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { FilterItem } from '../../model';\nimport { RangeItem } from './RangeFilterState';\nimport { Translate, TranslationsKeys } from '../../services';\n\nexport const DateRangePreset: Record<DateRangePresetOptions, string> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n TODAY: 'TODAY',\n TOMORROW: 'TOMORROW',\n NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',\n NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',\n NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',\n CUSTOM: 'CUSTOM',\n};\n\nexport const DefaultDateRangePreset: Record<\n 'NONE' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS' | 'MONTH' | 'CUSTOM',\n string\n> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n CUSTOM: 'CUSTOM',\n};\n\nconst getDateRangeLabel = (\n item: RangeItem<Date>,\n {\n dateFormatters,\n }: {\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n },\n) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((date) => dateFormatters.mediumTime.format(date))\n .join(' - ');\n};\n\nexport const renderPresetToolbarTag =\n (container: {\n translate: Translate;\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n }) =>\n <V>(filter: FilterItem<V>) => {\n const { translate: t, dateFormatters } = container;\n const { preset } = filter as FilterItem<RangeItem<Date>>;\n if (!preset || !presetToDaysAmount[preset]) {\n return {\n children: getDateRangeLabel(filter as RangeItem<Date>, {\n dateFormatters,\n }),\n };\n }\n return { children: t(MAP_DATE_PRESET_TO_KEY[preset]) };\n };\n\nexport const shouldRenderPresetTag = (preset?: string) =>\n preset &&\n Object.values(DateRangePreset).includes(preset) &&\n preset !== DateRangePreset.NONE &&\n preset !== DateRangePreset.CUSTOM;\n\nexport const presetToDaysAmount: {\n [key: string]: {\n months?: number;\n days?: number;\n years?: number;\n };\n} = {\n [DateRangePreset.SEVEN_DAYS]: {\n days: -7,\n },\n [DateRangePreset.FOURTEEN_DAYS]: {\n days: -14,\n },\n [DateRangePreset.MONTH]: {\n months: -1,\n },\n [DateRangePreset.TODAY]: {\n days: 0,\n },\n [DateRangePreset.TOMORROW]: {\n days: 1,\n },\n [DateRangePreset.NEXT_THREE_DAYS]: {\n days: 3,\n },\n [DateRangePreset.NEXT_SEVEN_DAYS]: {\n days: 7,\n },\n [DateRangePreset.NEXT_THIRTY_DAYS]: {\n days: 30,\n },\n};\n\nexport const getDatesFromPreset = (preset?: string): RangeItem<Date> => {\n const today = new Date();\n const presetDiff = preset ? presetToDaysAmount[preset] : undefined;\n if (!presetDiff) {\n return { from: null, to: null };\n }\n const fromDate = new Date(today.getTime());\n const { days, months, years } = presetDiff;\n if (days) {\n fromDate.setDate(today.getDate() + days);\n\n // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\n }\n if (months) {\n fromDate.setMonth(today.getMonth() + months);\n }\n if (years) {\n fromDate.setFullYear(today.getFullYear() + years);\n }\n\n if (fromDate.getTime() > today.getTime()) {\n today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\n return { from: fromDate, to: today, preset };\n};\n\nexport const MAP_DATE_PRESET_TO_KEY: { [key: string]: TranslationsKeys } = {\n [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',\n [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',\n [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',\n [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',\n [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',\n [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',\n [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',\n [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',\n [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',\n [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days',\n};\n\nexport type DateRangeFilterMode = 'ONLY_PREDEFINED' | 'ONLY_CUSTOM' | 'COMBINE';\nexport type DateRangePredefinedPresetOptions =\n | 'SEVEN_DAYS'\n | 'FOURTEEN_DAYS'\n | 'MONTH'\n | 'TODAY'\n | 'TOMORROW'\n | 'NEXT_THREE_DAYS'\n | 'NEXT_SEVEN_DAYS'\n | 'NEXT_THIRTY_DAYS';\nexport type DateRangePresetOptions =\n | DateRangePredefinedPresetOptions\n | 'NONE'\n | 'CUSTOM';\nexport type DateRangeFilterPresetsOverrideOptions =\n DateRangePredefinedPresetOptions[];\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_RangeFilterState","require","Object","keys","forEach","key","exports","_dateRangeUtils"],"sources":["../../../../src/state/RangeFilterState/index.ts"],"sourcesContent":["export * from './RangeFilterState';\nexport * from './dateRangeUtils';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,eAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,eAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,eAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,eAAA,CAAAF,GAAA;AAAA"}
1
+ {"version":3,"names":["_RangeFilterState","require","Object","keys","forEach","key","exports","_dateRangeUtils"],"sources":["../../../../src/state/RangeFilterState/index.ts"],"sourcesContent":["export * from './RangeFilterState';\nexport * from './dateRangeUtils';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,eAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,eAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,eAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,eAAA,CAAAF,GAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/state/RefObject.ts"],"sourcesContent":["export interface RefObject<T> {\n current: T | null | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/state/RefObject.ts"],"sourcesContent":["export interface RefObject<T> {\n current: T | null | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_events","ReturnFocus","constructor","_defineProperty2","default","EventEmitter","makeObservable","onClose","action","onOpen","_this$modalElement","prevFocusedElement","document","activeElement","modalElement","focus","toFocus","HTMLElement","e","console","error","init","events","emit","exports"],"sources":["../../../src/state/ReturnFocus.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class ReturnFocus {\n prevFocusedElement?: Element | null = null;\n modalElement?: HTMLDivElement | null = null;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n unmount: () => unknown;\n }>;\n\n constructor() {\n makeObservable(this, {\n onClose: action,\n onOpen: action,\n });\n }\n\n onOpen() {\n this.prevFocusedElement = document.activeElement;\n this.modalElement?.focus();\n }\n\n onClose() {\n const toFocus = this.prevFocusedElement;\n if (toFocus instanceof HTMLElement) {\n try {\n toFocus.focus();\n } catch (e) {\n console.error(e);\n }\n this.prevFocusedElement = null;\n }\n }\n\n init() {\n return () => {\n this.events.emit('unmount');\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,WAAW,CAAC;EAQvBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,8BAPwB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBACH,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAEzB,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,OAAO,EAAEC,YAAM;MACfC,MAAM,EAAED;IACV,CAAC,CAAC;EACJ;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,kBAAA;IACP,IAAI,CAACC,kBAAkB,GAAGC,QAAQ,CAACC,aAAa;IAChD,CAAAH,kBAAA,OAAI,CAACI,YAAY,aAAjBJ,kBAAA,CAAmBK,KAAK,CAAC,CAAC;EAC5B;EAEAR,OAAOA,CAAA,EAAG;IACR,MAAMS,OAAO,GAAG,IAAI,CAACL,kBAAkB;IACvC,IAAIK,OAAO,YAAYC,WAAW,EAAE;MAClC,IAAI;QACFD,OAAO,CAACD,KAAK,CAAC,CAAC;MACjB,CAAC,CAAC,OAAOG,CAAC,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;MAClB;MACA,IAAI,CAACP,kBAAkB,GAAG,IAAI;IAChC;EACF;EAEAU,IAAIA,CAAA,EAAG;IACL,OAAO,MAAM;MACX,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;EACH;AACF;AAACC,OAAA,CAAAvB,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["_mobx","require","_events","ReturnFocus","constructor","_defineProperty2","default","EventEmitter","makeObservable","onClose","action","onOpen","_this$modalElement","prevFocusedElement","document","activeElement","modalElement","focus","toFocus","HTMLElement","e","console","error","init","events","emit","exports"],"sources":["../../../src/state/ReturnFocus.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class ReturnFocus {\n prevFocusedElement?: Element | null = null;\n modalElement?: HTMLDivElement | null = null;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n unmount: () => unknown;\n }>;\n\n constructor() {\n makeObservable(this, {\n onClose: action,\n onOpen: action,\n });\n }\n\n onOpen() {\n this.prevFocusedElement = document.activeElement;\n this.modalElement?.focus();\n }\n\n onClose() {\n const toFocus = this.prevFocusedElement;\n if (toFocus instanceof HTMLElement) {\n try {\n toFocus.focus();\n } catch (e) {\n console.error(e);\n }\n this.prevFocusedElement = null;\n }\n }\n\n init() {\n return () => {\n this.events.emit('unmount');\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,WAAW,CAAC;EAQvBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,8BAPwB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBACH,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAEzB,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,OAAO,EAAEC,YAAM;MACfC,MAAM,EAAED;IACV,CAAC,CAAC;EACJ;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,kBAAA;IACP,IAAI,CAACC,kBAAkB,GAAGC,QAAQ,CAACC,aAAa;IAChD,CAAAH,kBAAA,OAAI,CAACI,YAAY,aAAjBJ,kBAAA,CAAmBK,KAAK,CAAC,CAAC;EAC5B;EAEAR,OAAOA,CAAA,EAAG;IACR,MAAMS,OAAO,GAAG,IAAI,CAACL,kBAAkB;IACvC,IAAIK,OAAO,YAAYC,WAAW,EAAE;MAClC,IAAI;QACFD,OAAO,CAACD,KAAK,CAAC,CAAC;MACjB,CAAC,CAAC,OAAOG,CAAC,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;MAClB;MACA,IAAI,CAACP,kBAAkB,GAAG,IAAI;IAChC;EACF;EAEAU,IAAIA,CAAA,EAAG;IACL,OAAO,MAAM;MACX,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;EACH;AACF;AAACC,OAAA,CAAAvB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_events","SelectMapState","constructor","_defineProperty2","default","EventEmitter","map","observable","deep","set","key","value","events","listeners","some","listener","forceSet","get","values","entries","clear","exports"],"sources":["../../../src/state/SelectMapState.ts"],"sourcesContent":["import { observable, ObservableMap } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class SelectMapState<K, V> {\n private map: ObservableMap<K, V>;\n readonly events = new EventEmitter() as TypedEmitter<{\n isDisabled: (item: V) => boolean;\n }>;\n\n constructor() {\n this.map = observable.map<K, V>([], {\n deep: false,\n });\n }\n\n set(key: K, value: V) {\n if (\n this.events.listeners('isDisabled').some((listener) => listener(value))\n ) {\n return;\n }\n\n this.map.set(key, value);\n }\n\n forceSet(key: K, value: V) {\n this.map.set(key, value);\n }\n\n get(key: K) {\n return this.map.get(key);\n }\n\n values() {\n return this.map.values();\n }\n\n entries() {\n return this.map.entries();\n }\n\n clear() {\n return this.map.clear();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,cAAc,CAAO;EAMhCC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAJI,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAI,CAACC,GAAG,GAAGC,gBAAU,CAACD,GAAG,CAAO,EAAE,EAAE;MAClCE,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEAC,GAAGA,CAACC,GAAM,EAAEC,KAAQ,EAAE;IACpB,IACE,IAAI,CAACC,MAAM,CAACC,SAAS,CAAC,YAAY,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACJ,KAAK,CAAC,CAAC,EACvE;MACA;IACF;IAEA,IAAI,CAACL,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;EAC1B;EAEAK,QAAQA,CAACN,GAAM,EAAEC,KAAQ,EAAE;IACzB,IAAI,CAACL,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;EAC1B;EAEAM,GAAGA,CAACP,GAAM,EAAE;IACV,OAAO,IAAI,CAACJ,GAAG,CAACW,GAAG,CAACP,GAAG,CAAC;EAC1B;EAEAQ,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACZ,GAAG,CAACY,MAAM,CAAC,CAAC;EAC1B;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACb,GAAG,CAACa,OAAO,CAAC,CAAC;EAC3B;EAEAC,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACd,GAAG,CAACc,KAAK,CAAC,CAAC;EACzB;AACF;AAACC,OAAA,CAAApB,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["_mobx","require","_events","SelectMapState","constructor","_defineProperty2","default","EventEmitter","map","observable","deep","set","key","value","events","listeners","some","listener","forceSet","get","values","entries","clear","exports"],"sources":["../../../src/state/SelectMapState.ts"],"sourcesContent":["import { observable, ObservableMap } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class SelectMapState<K, V> {\n private map: ObservableMap<K, V>;\n readonly events = new EventEmitter() as TypedEmitter<{\n isDisabled: (item: V) => boolean;\n }>;\n\n constructor() {\n this.map = observable.map<K, V>([], {\n deep: false,\n });\n }\n\n set(key: K, value: V) {\n if (\n this.events.listeners('isDisabled').some((listener) => listener(value))\n ) {\n return;\n }\n\n this.map.set(key, value);\n }\n\n forceSet(key: K, value: V) {\n this.map.set(key, value);\n }\n\n get(key: K) {\n return this.map.get(key);\n }\n\n values() {\n return this.map.values();\n }\n\n entries() {\n return this.map.entries();\n }\n\n clear() {\n return this.map.clear();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,cAAc,CAAO;EAMhCC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAJI,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAI,CAACC,GAAG,GAAGC,gBAAU,CAACD,GAAG,CAAO,EAAE,EAAE;MAClCE,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEAC,GAAGA,CAACC,GAAM,EAAEC,KAAQ,EAAE;IACpB,IACE,IAAI,CAACC,MAAM,CAACC,SAAS,CAAC,YAAY,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACJ,KAAK,CAAC,CAAC,EACvE;MACA;IACF;IAEA,IAAI,CAACL,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;EAC1B;EAEAK,QAAQA,CAACN,GAAM,EAAEC,KAAQ,EAAE;IACzB,IAAI,CAACL,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;EAC1B;EAEAM,GAAGA,CAACP,GAAM,EAAE;IACV,OAAO,IAAI,CAACJ,GAAG,CAACW,GAAG,CAACP,GAAG,CAAC;EAC1B;EAEAQ,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACZ,GAAG,CAACY,MAAM,CAAC,CAAC;EAC1B;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACb,GAAG,CAACa,OAAO,CAAC,CAAC;EAC3B;EAEAC,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACd,GAAG,CAACc,KAAK,CAAC,CAAC;EACzB;AACF;AAACC,OAAA,CAAApB,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_SelectionStatusCairoPreset","_SelectMapState","SelectState","constructor","params","_defineProperty2","default","SelectMapState","defaultStatus","selectionStatusWixPatternsPreset","unchecked","makeObservable","observable","ref","selectedValues","computed","selectedKeys","isEmpty","isNotEmpty","isEmptyEnabledItems","isNotEmptyEnabledItems","selectedCount","toArray","selectedArray","set","action","delete","toggle","clear","syncValues","finalizeMany","setMany","filter","initSelected","keyGetter","startStatus","start","finalStatus","final","isChecked","key","_map$get","map","Boolean","get","status","value","entry","forceSet","deleteKey","length","Array","from","values","forceSetMany","entries","newEntry","startAll","predicate","selectedEnabledItems","selectionEntry","_map","events","listeners","every","listener","exports"],"sources":["../../../src/state/SelectState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport { SelectionStatus } from './SelectionStatus';\nimport { selectionStatusWixPatternsPreset } from './SelectionStatusCairoPreset';\nimport { SelectMapState } from './SelectMapState';\n\ntype KeyGetter<T> = (value: T) => string;\n\nexport interface SelectStateParams<T> {\n readonly keyGetter: KeyGetter<T>;\n readonly defaultStatus?: SelectionStatus;\n}\n\nexport interface SelectionEntry<T> {\n value: T;\n status: SelectionStatus;\n}\n\nexport class SelectState<T> {\n readonly keyGetter: KeyGetter<T>;\n\n defaultStatus;\n\n private readonly map = new SelectMapState<string, SelectionEntry<T>>();\n\n constructor(params: SelectStateParams<T>) {\n this.defaultStatus =\n params.defaultStatus ?? selectionStatusWixPatternsPreset.unchecked;\n\n makeObservable(this, {\n defaultStatus: observable.ref,\n selectedValues: computed,\n selectedKeys: computed,\n isEmpty: computed,\n isNotEmpty: computed,\n isEmptyEnabledItems: computed,\n isNotEmptyEnabledItems: computed,\n selectedCount: computed,\n toArray: computed,\n selectedArray: computed,\n set: action,\n delete: action,\n toggle: action,\n clear: action,\n syncValues: action,\n finalizeMany: action,\n setMany: action,\n filter: action,\n initSelected: action,\n });\n\n this.keyGetter = params.keyGetter;\n }\n\n get startStatus() {\n return this.defaultStatus.start();\n }\n\n get finalStatus() {\n return this.defaultStatus.final();\n }\n\n isChecked(key: string) {\n const { map } = this;\n return Boolean(map.get(key)?.status.isChecked);\n }\n\n toggle(value: T, { clear }: { clear?: boolean } = {}) {\n const { map, keyGetter, defaultStatus } = this;\n\n if (clear) {\n this.clear();\n }\n const key = keyGetter(value);\n\n const entry = map.get(key) ?? { value, status: defaultStatus };\n map.set(key, {\n ...entry,\n status: entry.status.toggle(),\n });\n }\n\n set(value: T) {\n const { keyGetter, map, finalStatus } = this;\n const key = keyGetter(value);\n map.set(key, { value, status: finalStatus });\n }\n\n forceSet(value: T) {\n const { keyGetter, map, finalStatus } = this;\n const key = keyGetter(value);\n map.forceSet(key, { value, status: finalStatus });\n }\n\n delete(value: T) {\n const { keyGetter, map, defaultStatus } = this;\n const key = keyGetter(value);\n map.set(key, {\n value,\n status: defaultStatus.start(),\n });\n }\n\n deleteKey(key: string) {\n const { map } = this;\n const entry = map.get(key);\n\n if (entry) {\n map.set(key, {\n ...entry,\n status: entry.status.start(),\n });\n }\n }\n\n get selectedCount() {\n return this.selectedArray.length;\n }\n\n get toArray() {\n return Array.from(this.map.values());\n }\n\n get selectedArray() {\n return this.toArray.filter(({ status }) => status.isChecked);\n }\n\n get selectedValues() {\n return this.selectedArray.map(({ value }) => value);\n }\n\n get selectedKeys() {\n const { keyGetter } = this;\n return this.selectedValues.map(keyGetter);\n }\n\n clear() {\n const { map } = this;\n map.clear();\n }\n\n forceSetMany(entries: SelectionEntry<T>[]) {\n const { map, keyGetter } = this;\n for (const entry of entries) {\n const key = keyGetter(entry.value);\n map.forceSet(key, entry);\n }\n }\n\n // backwards compatibility\n setMany(entries: SelectionEntry<T>[]) {\n return this.forceSetMany(entries);\n }\n\n syncValues(values: T[], status = this.defaultStatus) {\n const { map, keyGetter } = this;\n for (const value of values) {\n const key = keyGetter(value);\n const entry = map.get(key);\n const newEntry = entry ? { ...entry, value } : { value, status };\n map.forceSet(key, newEntry);\n }\n }\n\n initSelected(values: T[]) {\n const { map } = this;\n map.clear();\n this.forceSetMany(\n values.map((value) => ({\n value,\n status: this.finalStatus,\n })),\n );\n }\n\n finalizeMany(values: T[]) {\n const { map, keyGetter, finalStatus } = this;\n for (const value of values) {\n const key = keyGetter(value);\n map.set(key, { value, status: finalStatus });\n }\n }\n\n startAll() {\n const { map, startStatus } = this;\n const entries = Array.from(map.entries());\n for (const [key, entry] of entries) {\n map.set(key, {\n ...entry,\n status: startStatus,\n });\n }\n }\n\n filter(predicate: (value: T) => boolean) {\n const { map, selectedArray, keyGetter } = this;\n for (const { value, status } of selectedArray) {\n if (!predicate(value)) {\n map.set(keyGetter(value), {\n value,\n status: status.start(),\n });\n }\n }\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n\n get isEmpty() {\n const { selectedArray } = this;\n return !selectedArray.length;\n }\n\n get isNotEmptyEnabledItems() {\n return !this.isEmptyEnabledItems;\n }\n\n get isEmptyEnabledItems() {\n const { selectedArray } = this;\n\n const selectedEnabledItems = selectedArray.filter((selectionEntry) =>\n this._map.events\n .listeners('isDisabled')\n .every((listener) => !listener(selectionEntry)),\n );\n\n return !selectedEnabledItems.length;\n }\n\n get _map() {\n return this.map;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_mobx","require","_SelectionStatusCairoPreset","_SelectMapState","SelectState","constructor","params","_defineProperty2","default","SelectMapState","defaultStatus","selectionStatusWixPatternsPreset","unchecked","makeObservable","observable","ref","selectedValues","computed","selectedKeys","isEmpty","isNotEmpty","isEmptyEnabledItems","isNotEmptyEnabledItems","selectedCount","toArray","selectedArray","set","action","delete","toggle","clear","syncValues","finalizeMany","setMany","filter","initSelected","keyGetter","startStatus","start","finalStatus","final","isChecked","key","_map$get","map","Boolean","get","status","value","entry","forceSet","deleteKey","length","Array","from","values","forceSetMany","entries","newEntry","startAll","predicate","selectedEnabledItems","selectionEntry","_map","events","listeners","every","listener","exports"],"sources":["../../../src/state/SelectState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport { SelectionStatus } from './SelectionStatus';\nimport { selectionStatusWixPatternsPreset } from './SelectionStatusCairoPreset';\nimport { SelectMapState } from './SelectMapState';\n\ntype KeyGetter<T> = (value: T) => string;\n\nexport interface SelectStateParams<T> {\n readonly keyGetter: KeyGetter<T>;\n readonly defaultStatus?: SelectionStatus;\n}\n\nexport interface SelectionEntry<T> {\n value: T;\n status: SelectionStatus;\n}\n\nexport class SelectState<T> {\n readonly keyGetter: KeyGetter<T>;\n\n defaultStatus;\n\n private readonly map = new SelectMapState<string, SelectionEntry<T>>();\n\n constructor(params: SelectStateParams<T>) {\n this.defaultStatus =\n params.defaultStatus ?? selectionStatusWixPatternsPreset.unchecked;\n\n makeObservable(this, {\n defaultStatus: observable.ref,\n selectedValues: computed,\n selectedKeys: computed,\n isEmpty: computed,\n isNotEmpty: computed,\n isEmptyEnabledItems: computed,\n isNotEmptyEnabledItems: computed,\n selectedCount: computed,\n toArray: computed,\n selectedArray: computed,\n set: action,\n delete: action,\n toggle: action,\n clear: action,\n syncValues: action,\n finalizeMany: action,\n setMany: action,\n filter: action,\n initSelected: action,\n });\n\n this.keyGetter = params.keyGetter;\n }\n\n get startStatus() {\n return this.defaultStatus.start();\n }\n\n get finalStatus() {\n return this.defaultStatus.final();\n }\n\n isChecked(key: string) {\n const { map } = this;\n return Boolean(map.get(key)?.status.isChecked);\n }\n\n toggle(value: T, { clear }: { clear?: boolean } = {}) {\n const { map, keyGetter, defaultStatus } = this;\n\n if (clear) {\n this.clear();\n }\n const key = keyGetter(value);\n\n const entry = map.get(key) ?? { value, status: defaultStatus };\n map.set(key, {\n ...entry,\n status: entry.status.toggle(),\n });\n }\n\n set(value: T) {\n const { keyGetter, map, finalStatus } = this;\n const key = keyGetter(value);\n map.set(key, { value, status: finalStatus });\n }\n\n forceSet(value: T) {\n const { keyGetter, map, finalStatus } = this;\n const key = keyGetter(value);\n map.forceSet(key, { value, status: finalStatus });\n }\n\n delete(value: T) {\n const { keyGetter, map, defaultStatus } = this;\n const key = keyGetter(value);\n map.set(key, {\n value,\n status: defaultStatus.start(),\n });\n }\n\n deleteKey(key: string) {\n const { map } = this;\n const entry = map.get(key);\n\n if (entry) {\n map.set(key, {\n ...entry,\n status: entry.status.start(),\n });\n }\n }\n\n get selectedCount() {\n return this.selectedArray.length;\n }\n\n get toArray() {\n return Array.from(this.map.values());\n }\n\n get selectedArray() {\n return this.toArray.filter(({ status }) => status.isChecked);\n }\n\n get selectedValues() {\n return this.selectedArray.map(({ value }) => value);\n }\n\n get selectedKeys() {\n const { keyGetter } = this;\n return this.selectedValues.map(keyGetter);\n }\n\n clear() {\n const { map } = this;\n map.clear();\n }\n\n forceSetMany(entries: SelectionEntry<T>[]) {\n const { map, keyGetter } = this;\n for (const entry of entries) {\n const key = keyGetter(entry.value);\n map.forceSet(key, entry);\n }\n }\n\n // backwards compatibility\n setMany(entries: SelectionEntry<T>[]) {\n return this.forceSetMany(entries);\n }\n\n syncValues(values: T[], status = this.defaultStatus) {\n const { map, keyGetter } = this;\n for (const value of values) {\n const key = keyGetter(value);\n const entry = map.get(key);\n const newEntry = entry ? { ...entry, value } : { value, status };\n map.forceSet(key, newEntry);\n }\n }\n\n initSelected(values: T[]) {\n const { map } = this;\n map.clear();\n this.forceSetMany(\n values.map((value) => ({\n value,\n status: this.finalStatus,\n })),\n );\n }\n\n finalizeMany(values: T[]) {\n const { map, keyGetter, finalStatus } = this;\n for (const value of values) {\n const key = keyGetter(value);\n map.set(key, { value, status: finalStatus });\n }\n }\n\n startAll() {\n const { map, startStatus } = this;\n const entries = Array.from(map.entries());\n for (const [key, entry] of entries) {\n map.set(key, {\n ...entry,\n status: startStatus,\n });\n }\n }\n\n filter(predicate: (value: T) => boolean) {\n const { map, selectedArray, keyGetter } = this;\n for (const { value, status } of selectedArray) {\n if (!predicate(value)) {\n map.set(keyGetter(value), {\n value,\n status: status.start(),\n });\n }\n }\n }\n\n get isNotEmpty() {\n return !this.isEmpty;\n }\n\n get isEmpty() {\n const { selectedArray } = this;\n return !selectedArray.length;\n }\n\n get isNotEmptyEnabledItems() {\n return !this.isEmptyEnabledItems;\n }\n\n get isEmptyEnabledItems() {\n const { selectedArray } = this;\n\n const selectedEnabledItems = selectedArray.filter((selectionEntry) =>\n this._map.events\n .listeners('isDisabled')\n .every((listener) => !listener(selectionEntry)),\n );\n\n return !selectedEnabledItems.length;\n }\n\n get _map() {\n return this.map;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/state/SelectionStatus.ts"],"sourcesContent":["export interface SelectionStatus {\n id: string;\n toggle: () => SelectionStatus;\n start: () => SelectionStatus;\n final: () => SelectionStatus;\n isChecked: boolean;\n isIndeterminate: boolean;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/state/SelectionStatus.ts"],"sourcesContent":["export interface SelectionStatus {\n id: string;\n toggle: () => SelectionStatus;\n start: () => SelectionStatus;\n final: () => SelectionStatus;\n isChecked: boolean;\n isIndeterminate: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["SelectionStatusWixPatternsPreset","constructor","_defineProperty2","default","id","toggle","checked","start","unchecked","final","isChecked","isIndeterminate","indeterminate","indeterminateUnchecked","indeterminateChecked","selectionStatusWixPatternsPreset","exports"],"sources":["../../../src/state/SelectionStatusCairoPreset.ts"],"sourcesContent":["import { SelectionStatus } from './SelectionStatus';\n\nclass SelectionStatusWixPatternsPreset {\n readonly unchecked: SelectionStatus = {\n id: 'unchecked',\n toggle: () => this.checked,\n start: () => this.unchecked,\n final: () => this.checked,\n isChecked: false,\n isIndeterminate: false,\n };\n\n readonly checked: SelectionStatus = {\n id: 'checked',\n toggle: () => this.unchecked,\n start: () => this.unchecked,\n final: () => this.checked,\n isChecked: true,\n isIndeterminate: false,\n };\n\n readonly indeterminateUnchecked: SelectionStatus = {\n id: 'indeterminateUnchecked',\n toggle: () => this.indeterminate,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: false,\n isIndeterminate: false,\n };\n\n readonly indeterminate: SelectionStatus = {\n id: 'indeterminate',\n toggle: () => this.indeterminateChecked,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: true,\n isIndeterminate: true,\n };\n\n readonly indeterminateChecked: SelectionStatus = {\n id: 'indeterminateChecked',\n toggle: () => this.indeterminateUnchecked,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: true,\n isIndeterminate: false,\n };\n}\n\nexport const selectionStatusWixPatternsPreset =\n new SelectionStatusWixPatternsPreset();\n"],"mappings":";;;;;;AAEA,MAAMA,gCAAgC,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,qBACC;MACpCC,EAAE,EAAE,WAAW;MACfC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACC,OAAO;MAC1BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACC,SAAS;MAC3BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACH,OAAO;MACzBI,SAAS,EAAE,KAAK;MAChBC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,mBAEmC;MAClCC,EAAE,EAAE,SAAS;MACbC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACG,SAAS;MAC5BD,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACC,SAAS;MAC3BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACH,OAAO;MACzBI,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,kCAEkD;MACjDC,EAAE,EAAE,wBAAwB;MAC5BC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACO,aAAa;MAChCL,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,KAAK;MAChBC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,yBAEyC;MACxCC,EAAE,EAAE,eAAe;MACnBC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACS,oBAAoB;MACvCP,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,gCAEgD;MAC/CC,EAAE,EAAE,sBAAsB;MAC1BC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACQ,sBAAsB;MACzCN,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;EAAA;AACH;AAEO,MAAMI,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,GAC3C,IAAIf,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"names":["SelectionStatusWixPatternsPreset","constructor","_defineProperty2","default","id","toggle","checked","start","unchecked","final","isChecked","isIndeterminate","indeterminate","indeterminateUnchecked","indeterminateChecked","selectionStatusWixPatternsPreset","exports"],"sources":["../../../src/state/SelectionStatusCairoPreset.ts"],"sourcesContent":["import { SelectionStatus } from './SelectionStatus';\n\nclass SelectionStatusWixPatternsPreset {\n readonly unchecked: SelectionStatus = {\n id: 'unchecked',\n toggle: () => this.checked,\n start: () => this.unchecked,\n final: () => this.checked,\n isChecked: false,\n isIndeterminate: false,\n };\n\n readonly checked: SelectionStatus = {\n id: 'checked',\n toggle: () => this.unchecked,\n start: () => this.unchecked,\n final: () => this.checked,\n isChecked: true,\n isIndeterminate: false,\n };\n\n readonly indeterminateUnchecked: SelectionStatus = {\n id: 'indeterminateUnchecked',\n toggle: () => this.indeterminate,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: false,\n isIndeterminate: false,\n };\n\n readonly indeterminate: SelectionStatus = {\n id: 'indeterminate',\n toggle: () => this.indeterminateChecked,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: true,\n isIndeterminate: true,\n };\n\n readonly indeterminateChecked: SelectionStatus = {\n id: 'indeterminateChecked',\n toggle: () => this.indeterminateUnchecked,\n start: () => this.indeterminateUnchecked,\n final: () => this.indeterminateChecked,\n isChecked: true,\n isIndeterminate: false,\n };\n}\n\nexport const selectionStatusWixPatternsPreset =\n new SelectionStatusWixPatternsPreset();\n"],"mappings":";;;;;;AAEA,MAAMA,gCAAgC,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,qBACC;MACpCC,EAAE,EAAE,WAAW;MACfC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACC,OAAO;MAC1BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACC,SAAS;MAC3BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACH,OAAO;MACzBI,SAAS,EAAE,KAAK;MAChBC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,mBAEmC;MAClCC,EAAE,EAAE,SAAS;MACbC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACG,SAAS;MAC5BD,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACC,SAAS;MAC3BC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACH,OAAO;MACzBI,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,kCAEkD;MACjDC,EAAE,EAAE,wBAAwB;MAC5BC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACO,aAAa;MAChCL,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,KAAK;MAChBC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,yBAEyC;MACxCC,EAAE,EAAE,eAAe;MACnBC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACS,oBAAoB;MACvCP,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,gCAEgD;MAC/CC,EAAE,EAAE,sBAAsB;MAC1BC,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACQ,sBAAsB;MACzCN,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACM,sBAAsB;MACxCJ,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACK,oBAAoB;MACtCJ,SAAS,EAAE,IAAI;MACfC,eAAe,EAAE;IACnB,CAAC;EAAA;AACH;AAEO,MAAMI,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,GAC3C,IAAIf,gCAAgC,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_TransitionState","require","_ReturnFocus","SidePanelWidth","exports","SidePanelState","constructor","_defineProperty2","default","TransitionState","ReturnFocus","isOpen","transition","show","currentPanelId","data","close","clickClose","focus","onClose","_open","id","setSync","onOpen","init","disposers","forEach","d"],"sources":["../../../src/state/SidePanelState.ts"],"sourcesContent":["import { TransitionState } from './TransitionState';\nimport { ReturnFocus } from './ReturnFocus';\n\n// FIXME: Move to the class property once the state could be read in PageWrapper.\nexport const SidePanelWidth = 420;\n\nexport class SidePanelState {\n readonly transition = new TransitionState<string>();\n readonly focus = new ReturnFocus();\n\n get isOpen() {\n return this.transition.show;\n }\n\n get currentPanelId() {\n return this.transition.data;\n }\n\n close() {\n this.transition.clickClose();\n this.focus.onClose();\n }\n\n _open(id: string) {\n this.transition.setSync(id);\n this.focus.onOpen();\n }\n\n init() {\n const disposers = [this.focus.init()];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACO,MAAME,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,GAAG;AAE1B,MAAME,cAAc,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,sBACJ,IAAIC,gCAAe,CAAS,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,iBAClC,IAAIE,wBAAW,CAAC,CAAC;EAAA;EAElC,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,UAAU,CAACC,IAAI;EAC7B;EAEA,IAAIC,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACF,UAAU,CAACG,IAAI;EAC7B;EAEAC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACJ,UAAU,CAACK,UAAU,CAAC,CAAC;IAC5B,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,CAAC;EACtB;EAEAC,KAAKA,CAACC,EAAU,EAAE;IAChB,IAAI,CAACT,UAAU,CAACU,OAAO,CAACD,EAAE,CAAC;IAC3B,IAAI,CAACH,KAAK,CAACK,MAAM,CAAC,CAAC;EACrB;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMC,SAAS,GAAG,CAAC,IAAI,CAACP,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC;IAErC,OAAO,MAAM;MACXC,SAAS,CAACC,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;AACF;AAACvB,OAAA,CAAAC,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["_TransitionState","require","_ReturnFocus","SidePanelWidth","exports","SidePanelState","constructor","_defineProperty2","default","TransitionState","ReturnFocus","isOpen","transition","show","currentPanelId","data","close","clickClose","focus","onClose","_open","id","setSync","onOpen","init","disposers","forEach","d"],"sources":["../../../src/state/SidePanelState.ts"],"sourcesContent":["import { TransitionState } from './TransitionState';\nimport { ReturnFocus } from './ReturnFocus';\n\n// FIXME: Move to the class property once the state could be read in PageWrapper.\nexport const SidePanelWidth = 420;\n\nexport class SidePanelState {\n readonly transition = new TransitionState<string>();\n readonly focus = new ReturnFocus();\n\n get isOpen() {\n return this.transition.show;\n }\n\n get currentPanelId() {\n return this.transition.data;\n }\n\n close() {\n this.transition.clickClose();\n this.focus.onClose();\n }\n\n _open(id: string) {\n this.transition.setSync(id);\n this.focus.onOpen();\n }\n\n init() {\n const disposers = [this.focus.init()];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACO,MAAME,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,GAAG;AAE1B,MAAME,cAAc,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,sBACJ,IAAIC,gCAAe,CAAS,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,iBAClC,IAAIE,wBAAW,CAAC,CAAC;EAAA;EAElC,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,UAAU,CAACC,IAAI;EAC7B;EAEA,IAAIC,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACF,UAAU,CAACG,IAAI;EAC7B;EAEAC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACJ,UAAU,CAACK,UAAU,CAAC,CAAC;IAC5B,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,CAAC;EACtB;EAEAC,KAAKA,CAACC,EAAU,EAAE;IAChB,IAAI,CAACT,UAAU,CAACU,OAAO,CAACD,EAAE,CAAC;IAC3B,IAAI,CAACH,KAAK,CAACK,MAAM,CAAC,CAAC;EACrB;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMC,SAAS,GAAG,CAAC,IAAI,CAACP,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC;IAErC,OAAO,MAAM;MACXC,SAAS,CAACC,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;AACF;AAACvB,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","SortState","constructor","_params","_defineProperty2","default","observable","array","deep","EventEmitter","makeObservable","value","computed","setSort","action","changeSort","reset","emitChangeEvent","_value","clear","events","emit","_getNextSortDirection","col","existingSort","find","field","id","sortMode","direction","undefined","forceDirection","multiple","_setSortMultiple","_setSortSingular","push","sortIndex","findIndex","nextDirection","length","setSortQuery","query","replace","params","getIsSortDescending","sort","exports"],"sources":["../../../src/state/SortState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Sort, SortDirection } from '../model';\nimport { TypedEmitter } from '../util';\n\nexport interface SortStateParams {}\n\nexport interface Sortable {\n id: string;\n sortMode?: 'always';\n}\n\nexport class SortState {\n readonly _value = observable.array<Sort>([], { deep: true });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n change: (params?: { col?: Sortable }) => unknown;\n }>;\n\n constructor(_params: SortStateParams) {\n makeObservable(this, {\n value: computed,\n setSort: action,\n changeSort: action,\n reset: action,\n });\n }\n\n reset({ emitChangeEvent }: { emitChangeEvent?: boolean } = {}) {\n this._value.clear();\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n _getNextSortDirection(col: Sortable) {\n const existingSort = this._value.find(({ field }) => field === col.id);\n\n if (col.sortMode === 'always') {\n return existingSort?.direction === 'asc' ? 'desc' : 'asc';\n }\n\n // asc->desc->undefined->asc...\n return existingSort === undefined\n ? 'asc'\n : existingSort.direction === 'desc'\n ? undefined\n : 'desc';\n }\n\n setSort(\n col: Sortable,\n {\n forceDirection,\n emitChangeEvent,\n multiple,\n }: {\n forceDirection?: SortDirection;\n emitChangeEvent?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const direction = forceDirection ?? this._getNextSortDirection(col);\n\n if (multiple) {\n this._setSortMultiple(col, direction);\n } else {\n this._setSortSingular(col, direction);\n }\n\n if (emitChangeEvent) {\n this.events.emit('change', { col });\n }\n }\n\n _setSortSingular(col: Sortable, direction?: SortDirection) {\n this._value.clear();\n\n if (direction) {\n this._value.push({ field: col.id, direction });\n }\n }\n\n /**\n * Rules\n * Sort by a new column:\n * - Clear all previous sorts and add a new one\n * Sort by an existing column:\n * - If only 1 column is sorted, the next direction is calculated\n * with the SortMode in mind (if provided).\n * - If more than 1 column is sorted, only change the direction\n * asc -> desc, desc -> asc, ignoring the SortMode (if provided).\n */\n _setSortMultiple(col: Sortable, direction?: SortDirection) {\n const sortIndex = this._value.findIndex(({ field }) => field === col.id);\n\n if (sortIndex === -1) {\n this._setSortSingular(col, direction);\n } else {\n const nextDirection =\n this._value.length > 1\n ? this._value[sortIndex].direction === 'asc'\n ? 'desc'\n : 'asc'\n : direction;\n\n if (this._value.length === 1 && !direction) {\n this._value.clear();\n } else if (nextDirection) {\n this._value[sortIndex] = {\n field: col.id,\n direction: nextDirection,\n };\n }\n }\n }\n\n setSortQuery(\n query: Sort[],\n { emitChangeEvent }: { emitChangeEvent?: boolean } = {},\n ) {\n this._value.replace(query);\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n changeSort(col: Sortable, params: { multiple?: boolean } = {}) {\n this.setSort(col, {\n multiple: params.multiple,\n emitChangeEvent: true,\n });\n }\n\n get value() {\n return this._value;\n }\n\n getIsSortDescending(id: string) {\n const sort = this._value.find(({ field }) => field === id);\n if (sort) {\n return sort.direction === 'desc';\n }\n return undefined;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_mobx","SortState","constructor","_params","_defineProperty2","default","observable","array","deep","EventEmitter","makeObservable","value","computed","setSort","action","changeSort","reset","emitChangeEvent","_value","clear","events","emit","_getNextSortDirection","col","existingSort","find","field","id","sortMode","direction","undefined","forceDirection","multiple","_setSortMultiple","_setSortSingular","push","sortIndex","findIndex","nextDirection","length","setSortQuery","query","replace","params","getIsSortDescending","sort","exports"],"sources":["../../../src/state/SortState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Sort, SortDirection } from '../model';\nimport { TypedEmitter } from '../util';\n\nexport interface SortStateParams {}\n\nexport interface Sortable {\n id: string;\n sortMode?: 'always';\n}\n\nexport class SortState {\n readonly _value = observable.array<Sort>([], { deep: true });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n change: (params?: { col?: Sortable }) => unknown;\n }>;\n\n constructor(_params: SortStateParams) {\n makeObservable(this, {\n value: computed,\n setSort: action,\n changeSort: action,\n reset: action,\n });\n }\n\n reset({ emitChangeEvent }: { emitChangeEvent?: boolean } = {}) {\n this._value.clear();\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n _getNextSortDirection(col: Sortable) {\n const existingSort = this._value.find(({ field }) => field === col.id);\n\n if (col.sortMode === 'always') {\n return existingSort?.direction === 'asc' ? 'desc' : 'asc';\n }\n\n // asc->desc->undefined->asc...\n return existingSort === undefined\n ? 'asc'\n : existingSort.direction === 'desc'\n ? undefined\n : 'desc';\n }\n\n setSort(\n col: Sortable,\n {\n forceDirection,\n emitChangeEvent,\n multiple,\n }: {\n forceDirection?: SortDirection;\n emitChangeEvent?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const direction = forceDirection ?? this._getNextSortDirection(col);\n\n if (multiple) {\n this._setSortMultiple(col, direction);\n } else {\n this._setSortSingular(col, direction);\n }\n\n if (emitChangeEvent) {\n this.events.emit('change', { col });\n }\n }\n\n _setSortSingular(col: Sortable, direction?: SortDirection) {\n this._value.clear();\n\n if (direction) {\n this._value.push({ field: col.id, direction });\n }\n }\n\n /**\n * Rules\n * Sort by a new column:\n * - Clear all previous sorts and add a new one\n * Sort by an existing column:\n * - If only 1 column is sorted, the next direction is calculated\n * with the SortMode in mind (if provided).\n * - If more than 1 column is sorted, only change the direction\n * asc -> desc, desc -> asc, ignoring the SortMode (if provided).\n */\n _setSortMultiple(col: Sortable, direction?: SortDirection) {\n const sortIndex = this._value.findIndex(({ field }) => field === col.id);\n\n if (sortIndex === -1) {\n this._setSortSingular(col, direction);\n } else {\n const nextDirection =\n this._value.length > 1\n ? this._value[sortIndex].direction === 'asc'\n ? 'desc'\n : 'asc'\n : direction;\n\n if (this._value.length === 1 && !direction) {\n this._value.clear();\n } else if (nextDirection) {\n this._value[sortIndex] = {\n field: col.id,\n direction: nextDirection,\n };\n }\n }\n }\n\n setSortQuery(\n query: Sort[],\n { emitChangeEvent }: { emitChangeEvent?: boolean } = {},\n ) {\n this._value.replace(query);\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n changeSort(col: Sortable, params: { multiple?: boolean } = {}) {\n this.setSort(col, {\n multiple: params.multiple,\n emitChangeEvent: true,\n });\n }\n\n get value() {\n return this._value;\n }\n\n getIsSortDescending(id: string) {\n const sort = this._value.find(({ field }) => field === id);\n if (sort) {\n return sort.direction === 'desc';\n }\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","StringFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","itemKey","item","itemName","entityName","_value","initialValue","matches","value","toLowerCase","includes","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","clone","setValue","changeValue","scheduleRefresh","toArray","length","toQueryString","applyFromQueryString","str","encode","decode","raw","emitEvents","options","event","events","emit","refresh","remove","_","hasDiff","exports","stringFilter"],"sources":["../../../../src/state/StringFilterState/StringFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { ChangeValueOptions, Filter, FilterEvents } from '../../model';\n\nexport interface StringFilterStateParams {\n readonly name?: string;\n readonly persistent?: boolean;\n /**\n * The value to initialize the filter with (Optional)\n * @external\n */\n readonly initialValue?: string;\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue: string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component.\n */\n readonly entityName?: (pluralization: number) => string;\n readonly matches?: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n}\n\nexport class StringFilterState implements Filter<string> {\n name: string;\n persistent;\n defaultValue: string;\n readonly itemKey: (item: string) => string;\n readonly itemName: (item: string) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n\n _value: string;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: StringFilterStateParams) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this.itemKey = (item) => item;\n this.itemName = (item) => item;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) =>\n value == null || value === '' || typeof item === 'string'\n ? value.toLowerCase().includes(item.toLowerCase())\n : false);\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n clone: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return !this._value.length;\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this._value;\n }\n\n applyFromQueryString(str: string) {\n this.setValue(str);\n }\n\n encode(value: string) {\n return value;\n }\n\n decode(raw: unknown) {\n if (typeof raw === 'string') {\n return raw;\n }\n\n return '';\n }\n\n setValue(value: string, { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: string,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: string, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: string) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(_: string[], options: ChangeValueOptions = {}) {\n this.reset(options);\n }\n\n hasDiff(item: string) {\n return this.value !== item;\n }\n\n clone(params: Partial<StringFilterStateParams>): StringFilterState {\n const {\n entityName,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new StringFilterState({\n entityName,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringFilter = (params: Partial<StringFilterStateParams> = {}) =>\n new StringFilterState({\n defaultValue: '',\n ...params,\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_mobx","StringFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","itemKey","item","itemName","entityName","_value","initialValue","matches","value","toLowerCase","includes","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","clone","setValue","changeValue","scheduleRefresh","toArray","length","toQueryString","applyFromQueryString","str","encode","decode","raw","emitEvents","options","event","events","emit","refresh","remove","_","hasDiff","exports","stringFilter"],"sources":["../../../../src/state/StringFilterState/StringFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { ChangeValueOptions, Filter, FilterEvents } from '../../model';\n\nexport interface StringFilterStateParams {\n readonly name?: string;\n readonly persistent?: boolean;\n /**\n * The value to initialize the filter with (Optional)\n * @external\n */\n readonly initialValue?: string;\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue: string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component.\n */\n readonly entityName?: (pluralization: number) => string;\n readonly matches?: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n}\n\nexport class StringFilterState implements Filter<string> {\n name: string;\n persistent;\n defaultValue: string;\n readonly itemKey: (item: string) => string;\n readonly itemName: (item: string) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n\n _value: string;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: StringFilterStateParams) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this.itemKey = (item) => item;\n this.itemName = (item) => item;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) =>\n value == null || value === '' || typeof item === 'string'\n ? value.toLowerCase().includes(item.toLowerCase())\n : false);\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n clone: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return !this._value.length;\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this._value;\n }\n\n applyFromQueryString(str: string) {\n this.setValue(str);\n }\n\n encode(value: string) {\n return value;\n }\n\n decode(raw: unknown) {\n if (typeof raw === 'string') {\n return raw;\n }\n\n return '';\n }\n\n setValue(value: string, { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: string,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: string, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: string) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(_: string[], options: ChangeValueOptions = {}) {\n this.reset(options);\n }\n\n hasDiff(item: string) {\n return this.value !== item;\n }\n\n clone(params: Partial<StringFilterStateParams>): StringFilterState {\n const {\n entityName,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new StringFilterState({\n entityName,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringFilter = (params: Partial<StringFilterStateParams> = {}) =>\n new StringFilterState({\n defaultValue: '',\n ...params,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_StringFilterState","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/state/StringFilterState/index.ts"],"sourcesContent":["export * from './StringFilterState';\n"],"mappings":";;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,kBAAA,CAAAK,GAAA;AAAA"}
1
+ {"version":3,"names":["_StringFilterState","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/state/StringFilterState/index.ts"],"sourcesContent":["export * from './StringFilterState';\n"],"mappings":";;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,kBAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","TaskState","constructor","_defineProperty2","default","queryStatus","idle","makeObservable","status","observable","ref","run","action","runOnce","reset","fn","onError","_fn","_onError","isLoading","isSuccess","errorStatus","isError","undefined","promise","loading","data","runInAction","success","error","err","exports"],"sources":["../../../src/state/TaskState.ts"],"sourcesContent":["import { queryStatus, TaskStatus } from '../model';\nimport { action, makeObservable, observable, runInAction } from 'mobx';\n\ntype TaskFunc<T> = () => Promise<T>;\ntype TaskErrorFunc = (error: unknown) => unknown;\n\nexport class TaskState<T> {\n status: TaskStatus<T, unknown> = {\n ...queryStatus.idle,\n };\n\n _fn?: TaskFunc<T>;\n _onError?: TaskErrorFunc;\n\n constructor() {\n makeObservable(this, {\n status: observable.ref,\n run: action,\n runOnce: action,\n reset: action,\n });\n }\n\n runOnce(fn?: TaskFunc<T>, onError?: TaskErrorFunc) {\n if (fn) {\n this._fn = fn;\n }\n\n if (onError) {\n this._onError = onError;\n }\n\n if (!this._fn) {\n return;\n }\n\n const { status } = this;\n\n if (status.isLoading || status.isSuccess) {\n return;\n }\n\n return this.run(this._fn, this._onError);\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : undefined;\n }\n\n reset() {\n this.status = {\n ...queryStatus.idle,\n };\n }\n\n async run(fn: TaskFunc<T>, onError?: TaskErrorFunc) {\n const promise = fn();\n this.status = {\n ...queryStatus.loading,\n promise,\n };\n\n try {\n const data = await promise;\n runInAction(() => {\n if (promise === this.status.promise) {\n this.status = {\n ...queryStatus.success,\n error: null,\n data,\n };\n }\n });\n } catch (err) {\n onError?.(err);\n const error = err;\n runInAction(() => {\n if (promise === this.status.promise) {\n this.status = {\n ...queryStatus.error,\n error,\n };\n }\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKO,MAAME,SAAS,CAAI;EAQxBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,kBAPmB;MAC/B,GAAGC,kBAAW,CAACC;IACjB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAMC,IAAAG,oBAAc,EAAC,IAAI,EAAE;MACnBC,MAAM,EAAEC,gBAAU,CAACC,GAAG;MACtBC,GAAG,EAAEC,YAAM;MACXC,OAAO,EAAED,YAAM;MACfE,KAAK,EAAEF;IACT,CAAC,CAAC;EACJ;EAEAC,OAAOA,CAACE,EAAgB,EAAEC,OAAuB,EAAE;IACjD,IAAID,EAAE,EAAE;MACN,IAAI,CAACE,GAAG,GAAGF,EAAE;IACf;IAEA,IAAIC,OAAO,EAAE;MACX,IAAI,CAACE,QAAQ,GAAGF,OAAO;IACzB;IAEA,IAAI,CAAC,IAAI,CAACC,GAAG,EAAE;MACb;IACF;IAEA,MAAM;MAAET;IAAO,CAAC,GAAG,IAAI;IAEvB,IAAIA,MAAM,CAACW,SAAS,IAAIX,MAAM,CAACY,SAAS,EAAE;MACxC;IACF;IAEA,OAAO,IAAI,CAACT,GAAG,CAAC,IAAI,CAACM,GAAG,EAAE,IAAI,CAACC,QAAQ,CAAC;EAC1C;EAEA,IAAIG,WAAWA,CAAA,EAAG;IAChB,MAAM;MAAEb;IAAO,CAAC,GAAG,IAAI;IACvB,OAAOA,MAAM,CAACc,OAAO,GAAGd,MAAM,GAAGe,SAAS;EAC5C;EAEAT,KAAKA,CAAA,EAAG;IACN,IAAI,CAACN,MAAM,GAAG;MACZ,GAAGH,kBAAW,CAACC;IACjB,CAAC;EACH;EAEA,MAAMK,GAAGA,CAACI,EAAe,EAAEC,OAAuB,EAAE;IAClD,MAAMQ,OAAO,GAAGT,EAAE,CAAC,CAAC;IACpB,IAAI,CAACP,MAAM,GAAG;MACZ,GAAGH,kBAAW,CAACoB,OAAO;MACtBD;IACF,CAAC;IAED,IAAI;MACF,MAAME,IAAI,GAAG,MAAMF,OAAO;MAC1B,IAAAG,iBAAW,EAAC,MAAM;QAChB,IAAIH,OAAO,KAAK,IAAI,CAAChB,MAAM,CAACgB,OAAO,EAAE;UACnC,IAAI,CAAChB,MAAM,GAAG;YACZ,GAAGH,kBAAW,CAACuB,OAAO;YACtBC,KAAK,EAAE,IAAI;YACXH;UACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOI,GAAG,EAAE;MACZd,OAAO,YAAPA,OAAO,CAAGc,GAAG,CAAC;MACd,MAAMD,KAAK,GAAGC,GAAG;MACjB,IAAAH,iBAAW,EAAC,MAAM;QAChB,IAAIH,OAAO,KAAK,IAAI,CAAChB,MAAM,CAACgB,OAAO,EAAE;UACnC,IAAI,CAAChB,MAAM,GAAG;YACZ,GAAGH,kBAAW,CAACwB,KAAK;YACpBA;UACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ;EACF;AACF;AAACE,OAAA,CAAA9B,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_model","require","_mobx","TaskState","constructor","_defineProperty2","default","queryStatus","idle","makeObservable","status","observable","ref","run","action","runOnce","reset","fn","onError","_fn","_onError","isLoading","isSuccess","errorStatus","isError","undefined","promise","loading","data","runInAction","success","error","err","exports"],"sources":["../../../src/state/TaskState.ts"],"sourcesContent":["import { queryStatus, TaskStatus } from '../model';\nimport { action, makeObservable, observable, runInAction } from 'mobx';\n\ntype TaskFunc<T> = () => Promise<T>;\ntype TaskErrorFunc = (error: unknown) => unknown;\n\nexport class TaskState<T> {\n status: TaskStatus<T, unknown> = {\n ...queryStatus.idle,\n };\n\n _fn?: TaskFunc<T>;\n _onError?: TaskErrorFunc;\n\n constructor() {\n makeObservable(this, {\n status: observable.ref,\n run: action,\n runOnce: action,\n reset: action,\n });\n }\n\n runOnce(fn?: TaskFunc<T>, onError?: TaskErrorFunc) {\n if (fn) {\n this._fn = fn;\n }\n\n if (onError) {\n this._onError = onError;\n }\n\n if (!this._fn) {\n return;\n }\n\n const { status } = this;\n\n if (status.isLoading || status.isSuccess) {\n return;\n }\n\n return this.run(this._fn, this._onError);\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : undefined;\n }\n\n reset() {\n this.status = {\n ...queryStatus.idle,\n };\n }\n\n async run(fn: TaskFunc<T>, onError?: TaskErrorFunc) {\n const promise = fn();\n this.status = {\n ...queryStatus.loading,\n promise,\n };\n\n try {\n const data = await promise;\n runInAction(() => {\n if (promise === this.status.promise) {\n this.status = {\n ...queryStatus.success,\n error: null,\n data,\n };\n }\n });\n } catch (err) {\n onError?.(err);\n const error = err;\n runInAction(() => {\n if (promise === this.status.promise) {\n this.status = {\n ...queryStatus.error,\n error,\n };\n }\n });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKO,MAAME,SAAS,CAAI;EAQxBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,kBAPmB;MAC/B,GAAGC,kBAAW,CAACC;IACjB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAMC,IAAAG,oBAAc,EAAC,IAAI,EAAE;MACnBC,MAAM,EAAEC,gBAAU,CAACC,GAAG;MACtBC,GAAG,EAAEC,YAAM;MACXC,OAAO,EAAED,YAAM;MACfE,KAAK,EAAEF;IACT,CAAC,CAAC;EACJ;EAEAC,OAAOA,CAACE,EAAgB,EAAEC,OAAuB,EAAE;IACjD,IAAID,EAAE,EAAE;MACN,IAAI,CAACE,GAAG,GAAGF,EAAE;IACf;IAEA,IAAIC,OAAO,EAAE;MACX,IAAI,CAACE,QAAQ,GAAGF,OAAO;IACzB;IAEA,IAAI,CAAC,IAAI,CAACC,GAAG,EAAE;MACb;IACF;IAEA,MAAM;MAAET;IAAO,CAAC,GAAG,IAAI;IAEvB,IAAIA,MAAM,CAACW,SAAS,IAAIX,MAAM,CAACY,SAAS,EAAE;MACxC;IACF;IAEA,OAAO,IAAI,CAACT,GAAG,CAAC,IAAI,CAACM,GAAG,EAAE,IAAI,CAACC,QAAQ,CAAC;EAC1C;EAEA,IAAIG,WAAWA,CAAA,EAAG;IAChB,MAAM;MAAEb;IAAO,CAAC,GAAG,IAAI;IACvB,OAAOA,MAAM,CAACc,OAAO,GAAGd,MAAM,GAAGe,SAAS;EAC5C;EAEAT,KAAKA,CAAA,EAAG;IACN,IAAI,CAACN,MAAM,GAAG;MACZ,GAAGH,kBAAW,CAACC;IACjB,CAAC;EACH;EAEA,MAAMK,GAAGA,CAACI,EAAe,EAAEC,OAAuB,EAAE;IAClD,MAAMQ,OAAO,GAAGT,EAAE,CAAC,CAAC;IACpB,IAAI,CAACP,MAAM,GAAG;MACZ,GAAGH,kBAAW,CAACoB,OAAO;MACtBD;IACF,CAAC;IAED,IAAI;MACF,MAAME,IAAI,GAAG,MAAMF,OAAO;MAC1B,IAAAG,iBAAW,EAAC,MAAM;QAChB,IAAIH,OAAO,KAAK,IAAI,CAAChB,MAAM,CAACgB,OAAO,EAAE;UACnC,IAAI,CAAChB,MAAM,GAAG;YACZ,GAAGH,kBAAW,CAACuB,OAAO;YACtBC,KAAK,EAAE,IAAI;YACXH;UACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOI,GAAG,EAAE;MACZd,OAAO,YAAPA,OAAO,CAAGc,GAAG,CAAC;MACd,MAAMD,KAAK,GAAGC,GAAG;MACjB,IAAAH,iBAAW,EAAC,MAAM;QAChB,IAAIH,OAAO,KAAK,IAAI,CAAChB,MAAM,CAACgB,OAAO,EAAE;UACnC,IAAI,CAAChB,MAAM,GAAG;YACZ,GAAGH,kBAAW,CAACwB,KAAK;YACpBA;UACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ;EACF;AACF;AAACE,OAAA,CAAA9B,SAAA,GAAAA,SAAA","ignoreList":[]}