@wix/bex-core 1.423.0 → 1.425.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 (85) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +2 -1
  2. package/dist/cjs/assets/locale/messages_da.json +1 -0
  3. package/dist/cjs/assets/locale/messages_de.json +2 -1
  4. package/dist/cjs/assets/locale/messages_en.json +2 -1
  5. package/dist/cjs/assets/locale/messages_es.json +2 -1
  6. package/dist/cjs/assets/locale/messages_fr.json +3 -2
  7. package/dist/cjs/assets/locale/messages_hi.json +1 -0
  8. package/dist/cjs/assets/locale/messages_id.json +1 -0
  9. package/dist/cjs/assets/locale/messages_it.json +4 -3
  10. package/dist/cjs/assets/locale/messages_ja.json +1 -0
  11. package/dist/cjs/assets/locale/messages_ko.json +1 -0
  12. package/dist/cjs/assets/locale/messages_nl.json +1 -0
  13. package/dist/cjs/assets/locale/messages_no.json +1 -0
  14. package/dist/cjs/assets/locale/messages_pl.json +1 -0
  15. package/dist/cjs/assets/locale/messages_pt.json +1 -0
  16. package/dist/cjs/assets/locale/messages_ru.json +1 -0
  17. package/dist/cjs/assets/locale/messages_sv.json +1 -0
  18. package/dist/cjs/assets/locale/messages_th.json +1 -0
  19. package/dist/cjs/assets/locale/messages_tr.json +1 -0
  20. package/dist/cjs/assets/locale/messages_uk.json +1 -0
  21. package/dist/cjs/assets/locale/messages_vi.json +1 -0
  22. package/dist/cjs/assets/locale/messages_zh.json +4 -3
  23. package/dist/cjs/model/toast.js.map +1 -1
  24. package/dist/cjs/services/translations.js.map +1 -1
  25. package/dist/cjs/state/CollectionState.js +15 -0
  26. package/dist/cjs/state/CollectionState.js.map +1 -1
  27. package/dist/cjs/state/PickerState.js +25 -0
  28. package/dist/cjs/state/PickerState.js.map +1 -1
  29. package/dist/cjs/state/QueryResultState.js +1 -0
  30. package/dist/cjs/state/QueryResultState.js.map +1 -1
  31. package/dist/cjs/state/TaskState.js +3 -2
  32. package/dist/cjs/state/TaskState.js.map +1 -1
  33. package/dist/cjs/state/index.js +7 -0
  34. package/dist/cjs/state/index.js.map +1 -1
  35. package/dist/cjs/state/onItemsCreated.js +45 -0
  36. package/dist/cjs/state/onItemsCreated.js.map +1 -0
  37. package/dist/esm/assets/locale/messages_cs.json +2 -1
  38. package/dist/esm/assets/locale/messages_da.json +1 -0
  39. package/dist/esm/assets/locale/messages_de.json +2 -1
  40. package/dist/esm/assets/locale/messages_en.json +2 -1
  41. package/dist/esm/assets/locale/messages_es.json +2 -1
  42. package/dist/esm/assets/locale/messages_fr.json +3 -2
  43. package/dist/esm/assets/locale/messages_hi.json +1 -0
  44. package/dist/esm/assets/locale/messages_id.json +1 -0
  45. package/dist/esm/assets/locale/messages_it.json +4 -3
  46. package/dist/esm/assets/locale/messages_ja.json +1 -0
  47. package/dist/esm/assets/locale/messages_ko.json +1 -0
  48. package/dist/esm/assets/locale/messages_nl.json +1 -0
  49. package/dist/esm/assets/locale/messages_no.json +1 -0
  50. package/dist/esm/assets/locale/messages_pl.json +1 -0
  51. package/dist/esm/assets/locale/messages_pt.json +1 -0
  52. package/dist/esm/assets/locale/messages_ru.json +1 -0
  53. package/dist/esm/assets/locale/messages_sv.json +1 -0
  54. package/dist/esm/assets/locale/messages_th.json +1 -0
  55. package/dist/esm/assets/locale/messages_tr.json +1 -0
  56. package/dist/esm/assets/locale/messages_uk.json +1 -0
  57. package/dist/esm/assets/locale/messages_vi.json +1 -0
  58. package/dist/esm/assets/locale/messages_zh.json +4 -3
  59. package/dist/esm/state/CollectionState.js +15 -0
  60. package/dist/esm/state/CollectionState.js.map +1 -1
  61. package/dist/esm/state/PickerState.js +17 -1
  62. package/dist/esm/state/PickerState.js.map +1 -1
  63. package/dist/esm/state/QueryResultState.js +1 -0
  64. package/dist/esm/state/QueryResultState.js.map +1 -1
  65. package/dist/esm/state/TaskState.js +3 -2
  66. package/dist/esm/state/TaskState.js.map +1 -1
  67. package/dist/esm/state/index.js +1 -0
  68. package/dist/esm/state/index.js.map +1 -1
  69. package/dist/esm/state/onItemsCreated.js +27 -0
  70. package/dist/esm/state/onItemsCreated.js.map +1 -0
  71. package/dist/types/model/toast.d.ts +1 -1
  72. package/dist/types/model/toast.d.ts.map +1 -1
  73. package/dist/types/services/translations.d.ts +1 -1
  74. package/dist/types/services/translations.d.ts.map +1 -1
  75. package/dist/types/state/CollectionState.d.ts +5 -0
  76. package/dist/types/state/CollectionState.d.ts.map +1 -1
  77. package/dist/types/state/PickerState.d.ts +1 -0
  78. package/dist/types/state/PickerState.d.ts.map +1 -1
  79. package/dist/types/state/QueryResultState.d.ts.map +1 -1
  80. package/dist/types/state/TaskState.d.ts.map +1 -1
  81. package/dist/types/state/index.d.ts +1 -0
  82. package/dist/types/state/index.d.ts.map +1 -1
  83. package/dist/types/state/onItemsCreated.d.ts +10 -0
  84. package/dist/types/state/onItemsCreated.d.ts.map +1 -0
  85. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","result","onNewPageAdded","onNewPageStart","emitter","status","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","originQuery","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","filtersPanelModal","open","close","isOpen","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","itemKey","itemName","translate","initDependencies","remove","QueryState","limit","history","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","collection","scrollToTop","_this$scrollableConte","scrollTo","top","left","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","origin","changeSort","multiple","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","push","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","get","key","keyedItem","item","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\ninterface FiltersPanelModalDeprecatedAPI {\n _events: TypedEmitter<{\n open: () => unknown;\n close: () => unknown;\n isOpen: () => boolean;\n }>;\n open(): void;\n close(): void;\n isOpen: boolean;\n}\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchErrorMessage: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly filtersPanelModal?: FiltersPanelModalDeprecatedAPI;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap> {\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly bulkSelect: BulkSelectState<T>;\n /**\n * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n readonly filtersPanelModal;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n this.filtersPanelModal = params.filtersPanelModal ?? {\n _events: new EventEmitter() as FiltersPanelModalDeprecatedAPI['_events'],\n open() {},\n close() {},\n isOpen: false,\n };\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n });\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this._resetReactQuery();\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n this._resetReactQuery();\n }\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n get(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","onNewPageAdded","onNewPageStart","emitter","status","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","filtersPanelModal","open","close","isOpen","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","itemKey","itemName","translate","initDependencies","remove","QueryState","limit","history","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","collection","scrollToTop","_this$scrollableConte","scrollTo","top","left","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","origin","changeSort","multiple","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","push","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","get","key","keyedItem","item","getKeyedItem","getKeyedItemByIndex","index","keyedItems","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\ninterface FiltersPanelModalDeprecatedAPI {\n _events: TypedEmitter<{\n open: () => unknown;\n close: () => unknown;\n isOpen: () => boolean;\n }>;\n open(): void;\n close(): void;\n isOpen: boolean;\n}\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchErrorMessage: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly filtersPanelModal?: FiltersPanelModalDeprecatedAPI;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap> {\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly bulkSelect: BulkSelectState<T>;\n /**\n * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n readonly filtersPanelModal;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n this.filtersPanelModal = params.filtersPanelModal ?? {\n _events: new EventEmitter() as FiltersPanelModalDeprecatedAPI['_events'],\n open() {},\n close() {},\n isOpen: false,\n };\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n });\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this._resetReactQuery();\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get total() {\n return this.result.total;\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n this._resetReactQuery();\n }\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n get(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.result.get(key);\n }\n\n getKeyedItemByIndex(index: number): KeyedItem<T> | null {\n return this.result.keyedItems[index];\n }\n\n get keyedItems() {\n return this.result.keyedItems;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":"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"}
@@ -12,6 +12,7 @@ var _v = require("@wix/bex-utils/@wix/bi-logger-cairo-os/v2");
12
12
  var _util = require("../util");
13
13
  var _snapshot = require("./snapshot");
14
14
  var _MultiCollectionSupport = require("./MultiCollectionSupport");
15
+ var _onItemsCreated = require("./onItemsCreated");
15
16
  const DEFAULT_FLOATING_NOTIFICATION_HEIGHT = 54;
16
17
  const withoutDefaults = (0, _util.withoutIrrelevant)();
17
18
  class PickerState {
@@ -84,6 +85,30 @@ class PickerState {
84
85
  ctaName
85
86
  }));
86
87
  });
88
+ (0, _defineProperty2.default)(this, "onCreateNew", (0, _mobx.action)(async items => {
89
+ if (items) {
90
+ await (0, _onItemsCreated.onItemsCreated)(this.collection, {
91
+ items,
92
+ reportBi: reportProps => {
93
+ this.reportBi({
94
+ ...reportProps,
95
+ params: {
96
+ ...this._commonDynamicBiParams(),
97
+ ...reportProps.params
98
+ }
99
+ });
100
+ }
101
+ });
102
+ } else {
103
+ (0, _mobx.runInAction)(() => {
104
+ this.reportBi((0, _v.newItemCreationEnd)({
105
+ ...this._commonDynamicBiParams(),
106
+ numSelectedItems: this.collection.bulkSelect.select.selectedCount,
107
+ resultType: 'dismissed'
108
+ }));
109
+ });
110
+ }
111
+ }));
87
112
  this.getMaxItems = params.getMaxItems;
88
113
  this.collection = params.collection;
89
114
  this.reportBi = params.reportBi;
@@ -1 +1 @@
1
- {"version":3,"names":["_CollectionState","require","_mapValues","_interopRequireDefault","_mobx","_TaskState","_v","_util","_snapshot","_MultiCollectionSupport","DEFAULT_FLOATING_NOTIFICATION_HEIGHT","withoutDefaults","withoutIrrelevant","PickerState","constructor","params","_defineProperty2","default","TaskState","reportBi","startTime","performance","now","totalNewItems","loadMore","_commonDynamicBiParams","loadingTime","Math","round","loadedItems","collection","result","pickerModalUsability","action","searchTerm","query","search","value","cairoSearchResults","searchResultsCnt","total","ctaName","currentLevel","numLevels","cairoCtaClicked","ctaIndex","numCtas","location","moreActionsIndex","getMaxItems","multi","MultiCollectionSupport","collections","shouldFilterNotAffectTotalCount","isScrollTop","minContentHeight","events","loadStartTime","filteredListSize","Snapshot","expression","Object","values","customFilters","map","f","effect","queryName","fetchData","history","queryCache","errorMonitor","onlineState","showToast","translate","itemKey","itemName","paginationMode","selectionConsistencyMode","lodash","noFilters","CollectionState","fetchErrorMessage","id","limit","pagination","onError","filters","mapValues","filter","clearedFilter","clone","reset","strictFiltersOnly","filterName","makeObservable","setFloatingNotificationHeight","someHidden","computed","toggle","updateIsScrollTop","onPrimaryButtonClick","observable","ref","clearResultAndMoveToStart","force","Promise","all","strictFiltersOnlyTotal","noFiltersTotal","newValue","listSize","maxItems","init","initTask","onReady","onInitialFetchError","emitter","on","onNewPage","onSearchStart","disposers","runOnce","status","promise","forceUpdate","runInAction","loadEnd","url","window","href","initialItems","size","asComputed","e","captureException","err","isOnline","off","disposer","onCloseButtonClick","componentDismissed","origin","onBackButtonClick","_onButtonClick","onContinueButtonClick","onSecondaryButtonOnClick","bulkSelect","selectedCount","pickerPickModalCtaButtonClickOrImmediateCta","isImmediate","itemsCnt","keyedItem","options","_bulkSelect$getCollec","onItemSelectClick","select","selectedCountOrTotal","numItemsBefore","selectedValues","prevSelected","clear","cairoItemSelectionToggled","isSelectAll","isFromSearch","isEmpty","searchQuery","itemIndex","index","hasAdditionalStep","itemId","key","clickType","isChecked","numItemsAfter","item","previousIndex","getCollectionItem","floatingNotificationHeight","exports"],"sources":["../../../src/state/PickerState.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport {\n CollectionEvents,\n ComputedQuery,\n ComputedResult,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport mapValues from 'lodash/mapValues';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { TaskState } from './TaskState';\nimport { ReportBI } from '../services';\nimport {\n cairoCtaClicked,\n cairoItemSelectionToggled,\n cairoSearchResults,\n componentDismissed,\n loadEnd,\n loadMore,\n pickerModalUsability,\n pickerPickModalCtaButtonClickOrImmediateCta,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutIrrelevant } from '../util';\nimport { Snapshot } from './snapshot';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\n\nconst DEFAULT_FLOATING_NOTIFICATION_HEIGHT = 54;\n\nexport type OnPickerReady<F extends FiltersMap> = (params: {\n query: ComputedQuery<F>;\n result: ComputedResult;\n noFiltersTotal: ComputedResult['total'];\n}) => unknown;\n\nexport interface PickerEvents<T, F extends FiltersMap>\n extends CollectionEvents<F> {\n readonly onReady?: OnPickerReady<F>;\n readonly onInitialFetchError?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => unknown;\n readonly onItemSelectClick?: (params: {\n item: T;\n index: number;\n previousIndex: number | null;\n }) => unknown;\n}\n\nexport interface PickerStateParams<T, F extends FiltersMap> {\n getMaxItems: () => number | undefined;\n collection: CollectionState<T, F>;\n minContentHeight?: string | number;\n events?: PickerEvents<T, F>;\n shouldFilterNotAffectTotalCount?: (filterName: keyof F) => boolean;\n loadStartTime?: number;\n reportBi: ReportBI;\n}\n\nconst withoutDefaults = withoutIrrelevant<\n 'currentTab' | 'currentFilters' | 'currentSortOrder' | 'currentView'\n>();\n\nexport class PickerState<T, F extends FiltersMap = FiltersMap> {\n readonly collection: PickerStateParams<T, F>['collection'];\n readonly multi;\n readonly strictFiltersOnly: PickerStateParams<T, F>['collection'];\n\n readonly noFilters: PickerStateParams<T, F>['collection'];\n readonly shouldFilterNotAffectTotalCount: (filterName: keyof F) => boolean;\n readonly events: PickerEvents<T, F>;\n\n readonly initTask = new TaskState();\n readonly reportBi;\n readonly loadStartTime;\n\n isScrollTop: boolean;\n\n minContentHeight: string | number;\n floatingNotificationHeight = 0;\n\n readonly getMaxItems;\n\n readonly filteredListSize;\n\n constructor(params: Readonly<PickerStateParams<T, F>>) {\n this.getMaxItems = params.getMaxItems;\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n\n this.multi = new MultiCollectionSupport({\n collections: [this.collection],\n });\n\n this.shouldFilterNotAffectTotalCount =\n params.shouldFilterNotAffectTotalCount ?? (() => false);\n this.isScrollTop = true;\n this.minContentHeight = params.minContentHeight ?? 300;\n\n this.events = params.events ?? {};\n\n this.loadStartTime = params.loadStartTime ?? performance.now();\n\n this.filteredListSize = new Snapshot({\n expression: () =>\n Object.values(this.collection.query.customFilters).map((f) => f?.value),\n effect: () => this.collection.result.total,\n });\n\n const {\n queryName,\n fetchData,\n query,\n history,\n queryCache,\n errorMonitor,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n events,\n lodash,\n } = this.collection;\n\n this.noFilters = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(this.collection.query.customFilters, (filter) => {\n if (filter) {\n const clearedFilter = filter.clone();\n clearedFilter.reset(); // reset strict filter\n return clearedFilter;\n }\n\n return filter;\n }) as F,\n });\n\n this.strictFiltersOnly = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(\n this.collection.query.customFilters,\n (filter, filterName) => {\n // reset all filters that should not affect total count\n if (\n filter != null &&\n this.shouldFilterNotAffectTotalCount(filterName)\n ) {\n const clearedFilter = filter.clone();\n clearedFilter.reset();\n return clearedFilter;\n }\n\n return filter;\n },\n ) as F,\n });\n\n makeObservable(this, {\n setFloatingNotificationHeight: action,\n someHidden: computed,\n toggle: action,\n updateIsScrollTop: action,\n onPrimaryButtonClick: action,\n isScrollTop: observable.ref,\n });\n }\n\n async clearResultAndMoveToStart({ force }: { force?: boolean } = {}) {\n await Promise.all([\n this.collection.clearResultAndMoveToStart({ force }),\n this.strictFiltersOnly.clearResultAndMoveToStart({ force }),\n this.noFilters.clearResultAndMoveToStart({ force }),\n ]);\n }\n\n get someHidden() {\n const {\n strictFiltersOnly: {\n result: { total: strictFiltersOnlyTotal },\n },\n noFilters: {\n result: { total: noFiltersTotal },\n },\n } = this;\n return noFiltersTotal > strictFiltersOnlyTotal;\n }\n\n updateIsScrollTop(newValue: boolean) {\n this.isScrollTop = newValue;\n }\n\n _commonDynamicBiParams(): {\n filteredListSize?: number;\n listSize?: number;\n maxItems?: number;\n } {\n const { noFilters, collection, filteredListSize } = this;\n\n return {\n ...collection._commonDynamicBiParams(),\n listSize: noFilters.result.total,\n filteredListSize: filteredListSize.value,\n maxItems: this.getMaxItems(),\n };\n }\n\n onNewPage = () => {\n const { reportBi } = this;\n\n const startTime = performance.now();\n\n return ({ totalNewItems }: { totalNewItems: number }) => {\n reportBi(\n withoutDefaults(loadMore)({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n loadedItems: totalNewItems,\n }),\n );\n };\n };\n\n onSearchStart = () => {\n const { collection, reportBi } = this;\n\n const { result } = collection;\n\n const startTime = performance.now();\n reportBi(\n pickerModalUsability({\n ...this._commonDynamicBiParams(),\n action: 'search',\n searchTerm: collection.query.search.value,\n }),\n );\n\n return () => {\n reportBi(\n cairoSearchResults({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n searchResultsCnt: result.total,\n searchTerm: collection.query.search.value,\n }),\n );\n };\n };\n\n init() {\n const {\n collection,\n strictFiltersOnly,\n noFilters,\n initTask,\n events: { onReady, onInitialFetchError },\n reportBi,\n filteredListSize,\n } = this;\n\n collection.emitter.on('newPageStart', this.onNewPage);\n collection.emitter.on('searchStart', this.onSearchStart);\n\n const disposers = [\n collection.init(),\n filteredListSize.init(),\n strictFiltersOnly.init(),\n noFilters.init(),\n ];\n\n initTask.runOnce(async () => {\n const { result, query } = collection;\n\n try {\n await Promise.all([\n collection.initTask.status.promise,\n strictFiltersOnly.initTask.status.promise,\n noFilters.initTask.status.promise,\n ]);\n\n filteredListSize.forceUpdate();\n\n runInAction(() => {\n try {\n reportBi(\n withoutDefaults(loadEnd)({\n ...this._commonDynamicBiParams(),\n url: window.location.href,\n loadingTime: Math.round(performance.now() - this.loadStartTime),\n initialItems: result.size,\n }),\n );\n onReady?.({\n query: query.asComputed,\n result: result.asComputed,\n noFiltersTotal: noFilters.result.total,\n });\n } catch (e) {\n collection.errorMonitor.captureException(e);\n }\n });\n } catch (err) {\n await onInitialFetchError?.({\n err,\n isOnline: collection.onlineState.isOnline,\n });\n throw err;\n }\n });\n\n return () => {\n collection.emitter.off('newPageStart', this.onNewPage);\n collection.emitter.off('searchStart', this.onSearchStart);\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onCloseButtonClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'X button',\n }),\n );\n }\n\n onBackButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'back', numLevels: 2, currentLevel: 2 });\n }\n\n onContinueButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'continue-next', numLevels: 2, currentLevel: 1 });\n }\n\n onSecondaryButtonOnClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'Cancel button',\n }),\n );\n }\n\n onPrimaryButtonClick({\n currentLevel,\n numLevels,\n }: {\n currentLevel: number;\n numLevels: number;\n }) {\n const {\n collection: { bulkSelect },\n _onButtonClick,\n reportBi,\n } = this;\n\n const { selectedCount } = bulkSelect;\n\n _onButtonClick({ ctaName: 'continue', currentLevel, numLevels });\n\n reportBi(\n pickerPickModalCtaButtonClickOrImmediateCta({\n ...this._commonDynamicBiParams(),\n isImmediate: false,\n itemsCnt: selectedCount,\n }),\n );\n }\n\n _onButtonClick = ({\n ctaName,\n currentLevel,\n numLevels,\n }: {\n ctaName: string;\n currentLevel: number;\n numLevels: number;\n }) => {\n this.reportBi(\n cairoCtaClicked({\n ...this._commonDynamicBiParams(),\n ctaIndex: 1,\n numCtas: 1,\n currentLevel,\n numLevels,\n location: 'picker',\n moreActionsIndex: 0,\n ctaName,\n }),\n );\n };\n\n toggle(\n keyedItem: KeyedItem<T>,\n options: { clear?: boolean; hasAdditionalStep?: boolean } = {},\n ) {\n const {\n collection,\n events: { onItemSelectClick },\n reportBi,\n } = this;\n const {\n bulkSelect,\n query: { search },\n } = collection;\n const { select, selectedCountOrTotal: numItemsBefore } = bulkSelect;\n\n const {\n selectedValues: [prevSelected],\n } = select;\n\n if (options.clear) {\n bulkSelect.select.clear();\n }\n\n bulkSelect.toggle(keyedItem);\n reportBi(\n cairoItemSelectionToggled({\n ...this._commonDynamicBiParams(),\n isSelectAll: false,\n isFromSearch: !search.isEmpty,\n searchQuery: search.value,\n itemIndex: keyedItem.index,\n numLevels: options.hasAdditionalStep ? 2 : 1,\n itemId: keyedItem.key,\n clickType: bulkSelect.isChecked(keyedItem.key)\n ? 'Selection'\n : 'Deselection',\n numItemsBefore,\n numItemsAfter: bulkSelect.selectedCountOrTotal,\n }),\n );\n onItemSelectClick?.({\n item: keyedItem.item,\n index: keyedItem.index,\n previousIndex:\n prevSelected != null\n ? (bulkSelect.getCollectionItem(prevSelected.key)?.index as\n | number\n | null)\n : null,\n });\n }\n\n setFloatingNotificationHeight(\n floatingNotificationHeight: number = DEFAULT_FLOATING_NOTIFICATION_HEIGHT,\n ) {\n this.floatingNotificationHeight = floatingNotificationHeight;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_CollectionState","require","_mapValues","_interopRequireDefault","_mobx","_TaskState","_v","_util","_snapshot","_MultiCollectionSupport","_onItemsCreated","DEFAULT_FLOATING_NOTIFICATION_HEIGHT","withoutDefaults","withoutIrrelevant","PickerState","constructor","params","_defineProperty2","default","TaskState","reportBi","startTime","performance","now","totalNewItems","loadMore","_commonDynamicBiParams","loadingTime","Math","round","loadedItems","collection","result","pickerModalUsability","action","searchTerm","query","search","value","cairoSearchResults","searchResultsCnt","total","ctaName","currentLevel","numLevels","cairoCtaClicked","ctaIndex","numCtas","location","moreActionsIndex","items","onItemsCreated","reportProps","runInAction","newItemCreationEnd","numSelectedItems","bulkSelect","select","selectedCount","resultType","getMaxItems","multi","MultiCollectionSupport","collections","shouldFilterNotAffectTotalCount","isScrollTop","minContentHeight","events","loadStartTime","filteredListSize","Snapshot","expression","Object","values","customFilters","map","f","effect","queryName","fetchData","history","queryCache","errorMonitor","onlineState","showToast","translate","itemKey","itemName","paginationMode","selectionConsistencyMode","lodash","noFilters","CollectionState","fetchErrorMessage","id","limit","pagination","onError","filters","mapValues","filter","clearedFilter","clone","reset","strictFiltersOnly","filterName","makeObservable","setFloatingNotificationHeight","someHidden","computed","toggle","updateIsScrollTop","onPrimaryButtonClick","observable","ref","clearResultAndMoveToStart","force","Promise","all","strictFiltersOnlyTotal","noFiltersTotal","newValue","listSize","maxItems","init","initTask","onReady","onInitialFetchError","emitter","on","onNewPage","onSearchStart","disposers","runOnce","status","promise","forceUpdate","loadEnd","url","window","href","initialItems","size","asComputed","e","captureException","err","isOnline","off","disposer","onCloseButtonClick","componentDismissed","origin","onBackButtonClick","_onButtonClick","onContinueButtonClick","onSecondaryButtonOnClick","pickerPickModalCtaButtonClickOrImmediateCta","isImmediate","itemsCnt","keyedItem","options","_bulkSelect$getCollec","onItemSelectClick","selectedCountOrTotal","numItemsBefore","selectedValues","prevSelected","clear","cairoItemSelectionToggled","isSelectAll","isFromSearch","isEmpty","searchQuery","itemIndex","index","hasAdditionalStep","itemId","key","clickType","isChecked","numItemsAfter","item","previousIndex","getCollectionItem","floatingNotificationHeight","exports"],"sources":["../../../src/state/PickerState.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport {\n CollectionEvents,\n ComputedQuery,\n ComputedResult,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport mapValues from 'lodash/mapValues';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { TaskState } from './TaskState';\nimport { ReportBI } from '../services';\nimport {\n cairoCtaClicked,\n cairoItemSelectionToggled,\n cairoSearchResults,\n componentDismissed,\n loadEnd,\n loadMore,\n newItemCreationEnd,\n pickerModalUsability,\n pickerPickModalCtaButtonClickOrImmediateCta,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { withoutIrrelevant } from '../util';\nimport { Snapshot } from './snapshot';\nimport { MultiCollectionSupport } from './MultiCollectionSupport';\nimport { onItemsCreated } from './onItemsCreated';\n\nconst DEFAULT_FLOATING_NOTIFICATION_HEIGHT = 54;\n\nexport type OnPickerReady<F extends FiltersMap> = (params: {\n query: ComputedQuery<F>;\n result: ComputedResult;\n noFiltersTotal: ComputedResult['total'];\n}) => unknown;\n\nexport interface PickerEvents<T, F extends FiltersMap>\n extends CollectionEvents<F> {\n readonly onReady?: OnPickerReady<F>;\n readonly onInitialFetchError?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => unknown;\n readonly onItemSelectClick?: (params: {\n item: T;\n index: number;\n previousIndex: number | null;\n }) => unknown;\n}\n\nexport interface PickerStateParams<T, F extends FiltersMap> {\n getMaxItems: () => number | undefined;\n collection: CollectionState<T, F>;\n minContentHeight?: string | number;\n events?: PickerEvents<T, F>;\n shouldFilterNotAffectTotalCount?: (filterName: keyof F) => boolean;\n loadStartTime?: number;\n reportBi: ReportBI;\n}\n\nconst withoutDefaults = withoutIrrelevant<\n 'currentTab' | 'currentFilters' | 'currentSortOrder' | 'currentView'\n>();\n\nexport class PickerState<T, F extends FiltersMap = FiltersMap> {\n readonly collection: PickerStateParams<T, F>['collection'];\n readonly multi;\n readonly strictFiltersOnly: PickerStateParams<T, F>['collection'];\n\n readonly noFilters: PickerStateParams<T, F>['collection'];\n readonly shouldFilterNotAffectTotalCount: (filterName: keyof F) => boolean;\n readonly events: PickerEvents<T, F>;\n\n readonly initTask = new TaskState();\n readonly reportBi;\n readonly loadStartTime;\n\n isScrollTop: boolean;\n\n minContentHeight: string | number;\n floatingNotificationHeight = 0;\n\n readonly getMaxItems;\n\n readonly filteredListSize;\n\n constructor(params: Readonly<PickerStateParams<T, F>>) {\n this.getMaxItems = params.getMaxItems;\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n\n this.multi = new MultiCollectionSupport({\n collections: [this.collection],\n });\n\n this.shouldFilterNotAffectTotalCount =\n params.shouldFilterNotAffectTotalCount ?? (() => false);\n this.isScrollTop = true;\n this.minContentHeight = params.minContentHeight ?? 300;\n\n this.events = params.events ?? {};\n\n this.loadStartTime = params.loadStartTime ?? performance.now();\n\n this.filteredListSize = new Snapshot({\n expression: () =>\n Object.values(this.collection.query.customFilters).map((f) => f?.value),\n effect: () => this.collection.result.total,\n });\n\n const {\n queryName,\n fetchData,\n query,\n history,\n queryCache,\n errorMonitor,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n events,\n lodash,\n } = this.collection;\n\n this.noFilters = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(this.collection.query.customFilters, (filter) => {\n if (filter) {\n const clearedFilter = filter.clone();\n clearedFilter.reset(); // reset strict filter\n return clearedFilter;\n }\n\n return filter;\n }) as F,\n });\n\n this.strictFiltersOnly = new CollectionState({\n queryName,\n fetchData,\n history,\n queryCache,\n errorMonitor,\n lodash,\n onlineState,\n showToast,\n translate,\n itemKey,\n itemName,\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n limit: query.pagination.limit,\n selectionConsistencyMode,\n events: {\n onError: events.onError,\n },\n filters: mapValues(\n this.collection.query.customFilters,\n (filter, filterName) => {\n // reset all filters that should not affect total count\n if (\n filter != null &&\n this.shouldFilterNotAffectTotalCount(filterName)\n ) {\n const clearedFilter = filter.clone();\n clearedFilter.reset();\n return clearedFilter;\n }\n\n return filter;\n },\n ) as F,\n });\n\n makeObservable(this, {\n setFloatingNotificationHeight: action,\n someHidden: computed,\n toggle: action,\n updateIsScrollTop: action,\n onPrimaryButtonClick: action,\n isScrollTop: observable.ref,\n });\n }\n\n async clearResultAndMoveToStart({ force }: { force?: boolean } = {}) {\n await Promise.all([\n this.collection.clearResultAndMoveToStart({ force }),\n this.strictFiltersOnly.clearResultAndMoveToStart({ force }),\n this.noFilters.clearResultAndMoveToStart({ force }),\n ]);\n }\n\n get someHidden() {\n const {\n strictFiltersOnly: {\n result: { total: strictFiltersOnlyTotal },\n },\n noFilters: {\n result: { total: noFiltersTotal },\n },\n } = this;\n return noFiltersTotal > strictFiltersOnlyTotal;\n }\n\n updateIsScrollTop(newValue: boolean) {\n this.isScrollTop = newValue;\n }\n\n _commonDynamicBiParams(): {\n filteredListSize?: number;\n listSize?: number;\n maxItems?: number;\n } {\n const { noFilters, collection, filteredListSize } = this;\n\n return {\n ...collection._commonDynamicBiParams(),\n listSize: noFilters.result.total,\n filteredListSize: filteredListSize.value,\n maxItems: this.getMaxItems(),\n };\n }\n\n onNewPage = () => {\n const { reportBi } = this;\n\n const startTime = performance.now();\n\n return ({ totalNewItems }: { totalNewItems: number }) => {\n reportBi(\n withoutDefaults(loadMore)({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n loadedItems: totalNewItems,\n }),\n );\n };\n };\n\n onSearchStart = () => {\n const { collection, reportBi } = this;\n\n const { result } = collection;\n\n const startTime = performance.now();\n reportBi(\n pickerModalUsability({\n ...this._commonDynamicBiParams(),\n action: 'search',\n searchTerm: collection.query.search.value,\n }),\n );\n\n return () => {\n reportBi(\n cairoSearchResults({\n ...this._commonDynamicBiParams(),\n loadingTime: Math.round(performance.now() - startTime),\n searchResultsCnt: result.total,\n searchTerm: collection.query.search.value,\n }),\n );\n };\n };\n\n init() {\n const {\n collection,\n strictFiltersOnly,\n noFilters,\n initTask,\n events: { onReady, onInitialFetchError },\n reportBi,\n filteredListSize,\n } = this;\n\n collection.emitter.on('newPageStart', this.onNewPage);\n collection.emitter.on('searchStart', this.onSearchStart);\n\n const disposers = [\n collection.init(),\n filteredListSize.init(),\n strictFiltersOnly.init(),\n noFilters.init(),\n ];\n\n initTask.runOnce(async () => {\n const { result, query } = collection;\n\n try {\n await Promise.all([\n collection.initTask.status.promise,\n strictFiltersOnly.initTask.status.promise,\n noFilters.initTask.status.promise,\n ]);\n\n filteredListSize.forceUpdate();\n\n runInAction(() => {\n try {\n reportBi(\n withoutDefaults(loadEnd)({\n ...this._commonDynamicBiParams(),\n url: window.location.href,\n loadingTime: Math.round(performance.now() - this.loadStartTime),\n initialItems: result.size,\n }),\n );\n onReady?.({\n query: query.asComputed,\n result: result.asComputed,\n noFiltersTotal: noFilters.result.total,\n });\n } catch (e) {\n collection.errorMonitor.captureException(e);\n }\n });\n } catch (err) {\n await onInitialFetchError?.({\n err,\n isOnline: collection.onlineState.isOnline,\n });\n throw err;\n }\n });\n\n return () => {\n collection.emitter.off('newPageStart', this.onNewPage);\n collection.emitter.off('searchStart', this.onSearchStart);\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onCloseButtonClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'X button',\n }),\n );\n }\n\n onBackButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'back', numLevels: 2, currentLevel: 2 });\n }\n\n onContinueButtonClick() {\n const { _onButtonClick } = this;\n\n _onButtonClick({ ctaName: 'continue-next', numLevels: 2, currentLevel: 1 });\n }\n\n onSecondaryButtonOnClick() {\n const { reportBi } = this;\n\n reportBi(\n withoutDefaults(componentDismissed)({\n origin: 'Cancel button',\n }),\n );\n }\n\n onPrimaryButtonClick({\n currentLevel,\n numLevels,\n }: {\n currentLevel: number;\n numLevels: number;\n }) {\n const {\n collection: { bulkSelect },\n _onButtonClick,\n reportBi,\n } = this;\n\n const { selectedCount } = bulkSelect;\n\n _onButtonClick({ ctaName: 'continue', currentLevel, numLevels });\n\n reportBi(\n pickerPickModalCtaButtonClickOrImmediateCta({\n ...this._commonDynamicBiParams(),\n isImmediate: false,\n itemsCnt: selectedCount,\n }),\n );\n }\n\n _onButtonClick = ({\n ctaName,\n currentLevel,\n numLevels,\n }: {\n ctaName: string;\n currentLevel: number;\n numLevels: number;\n }) => {\n this.reportBi(\n cairoCtaClicked({\n ...this._commonDynamicBiParams(),\n ctaIndex: 1,\n numCtas: 1,\n currentLevel,\n numLevels,\n location: 'picker',\n moreActionsIndex: 0,\n ctaName,\n }),\n );\n };\n\n toggle(\n keyedItem: KeyedItem<T>,\n options: { clear?: boolean; hasAdditionalStep?: boolean } = {},\n ) {\n const {\n collection,\n events: { onItemSelectClick },\n reportBi,\n } = this;\n const {\n bulkSelect,\n query: { search },\n } = collection;\n const { select, selectedCountOrTotal: numItemsBefore } = bulkSelect;\n\n const {\n selectedValues: [prevSelected],\n } = select;\n\n if (options.clear) {\n bulkSelect.select.clear();\n }\n\n bulkSelect.toggle(keyedItem);\n reportBi(\n cairoItemSelectionToggled({\n ...this._commonDynamicBiParams(),\n isSelectAll: false,\n isFromSearch: !search.isEmpty,\n searchQuery: search.value,\n itemIndex: keyedItem.index,\n numLevels: options.hasAdditionalStep ? 2 : 1,\n itemId: keyedItem.key,\n clickType: bulkSelect.isChecked(keyedItem.key)\n ? 'Selection'\n : 'Deselection',\n numItemsBefore,\n numItemsAfter: bulkSelect.selectedCountOrTotal,\n }),\n );\n onItemSelectClick?.({\n item: keyedItem.item,\n index: keyedItem.index,\n previousIndex:\n prevSelected != null\n ? (bulkSelect.getCollectionItem(prevSelected.key)?.index as\n | number\n | null)\n : null,\n });\n }\n\n setFloatingNotificationHeight(\n floatingNotificationHeight: number = DEFAULT_FLOATING_NOTIFICATION_HEIGHT,\n ) {\n this.floatingNotificationHeight = floatingNotificationHeight;\n }\n\n onCreateNew = action(async (items?: T[]) => {\n if (items) {\n await onItemsCreated(this.collection, {\n items,\n reportBi: (reportProps) => {\n this.reportBi({\n ...reportProps,\n params: {\n ...this._commonDynamicBiParams(),\n ...reportProps.params,\n },\n });\n },\n });\n } else {\n runInAction(() => {\n this.reportBi(\n newItemCreationEnd({\n ...this._commonDynamicBiParams(),\n numSelectedItems: this.collection.bulkSelect.select.selectedCount,\n resultType: 'dismissed',\n }),\n );\n });\n }\n });\n}\n"],"mappings":"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"}
@@ -134,6 +134,7 @@ class QueryResultState {
134
134
  return this.status.isFetching;
135
135
  }
136
136
  get(key) {
137
+ this._pagesAtom.reportObserved();
137
138
  return this._keyedItemsMap.get(key);
138
139
  }
139
140
  has(key) {