@wix/bex-core 2.23.0 → 2.26.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 (76) hide show
  1. package/dist/cjs/InMemoryBackend/InMemoryBackend.js.map +1 -1
  2. package/dist/cjs/assets/locale/messages_cs.json +2 -2
  3. package/dist/cjs/assets/locale/messages_da.json +5 -5
  4. package/dist/cjs/assets/locale/messages_de.json +2 -2
  5. package/dist/cjs/assets/locale/messages_es.json +5 -5
  6. package/dist/cjs/assets/locale/messages_fr.json +2 -2
  7. package/dist/cjs/assets/locale/messages_id.json +2 -2
  8. package/dist/cjs/assets/locale/messages_it.json +2 -2
  9. package/dist/cjs/assets/locale/messages_ja.json +2 -2
  10. package/dist/cjs/assets/locale/messages_ko.json +2 -2
  11. package/dist/cjs/assets/locale/messages_nl.json +2 -2
  12. package/dist/cjs/assets/locale/messages_no.json +2 -2
  13. package/dist/cjs/assets/locale/messages_pl.json +2 -2
  14. package/dist/cjs/assets/locale/messages_pt.json +2 -2
  15. package/dist/cjs/assets/locale/messages_ru.json +2 -2
  16. package/dist/cjs/assets/locale/messages_sv.json +2 -2
  17. package/dist/cjs/assets/locale/messages_th.json +2 -2
  18. package/dist/cjs/assets/locale/messages_tr.json +2 -2
  19. package/dist/cjs/assets/locale/messages_uk.json +3 -3
  20. package/dist/cjs/assets/locale/messages_vi.json +2 -2
  21. package/dist/cjs/assets/locale/messages_visuale2e.json +7 -1
  22. package/dist/cjs/assets/locale/messages_zh.json +5 -5
  23. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  24. package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
  25. package/dist/cjs/model/wixPatternsEssentials.js.map +1 -1
  26. package/dist/cjs/state/CollectionOptimisticActions.js +2 -5
  27. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  28. package/dist/cjs/state/CollectionOptimisticProcessor.js +2 -6
  29. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  30. package/dist/cjs/state/CollectionState.js.map +1 -1
  31. package/dist/cjs/state/WixPatternsContainer.js +2 -0
  32. package/dist/cjs/state/WixPatternsContainer.js.map +1 -1
  33. package/dist/cjs/state/buildWixPatternsContainer.js +2 -0
  34. package/dist/cjs/state/buildWixPatternsContainer.js.map +1 -1
  35. package/dist/esm/assets/locale/messages_cs.json +2 -2
  36. package/dist/esm/assets/locale/messages_da.json +5 -5
  37. package/dist/esm/assets/locale/messages_de.json +2 -2
  38. package/dist/esm/assets/locale/messages_es.json +5 -5
  39. package/dist/esm/assets/locale/messages_fr.json +2 -2
  40. package/dist/esm/assets/locale/messages_id.json +2 -2
  41. package/dist/esm/assets/locale/messages_it.json +2 -2
  42. package/dist/esm/assets/locale/messages_ja.json +2 -2
  43. package/dist/esm/assets/locale/messages_ko.json +2 -2
  44. package/dist/esm/assets/locale/messages_nl.json +2 -2
  45. package/dist/esm/assets/locale/messages_no.json +2 -2
  46. package/dist/esm/assets/locale/messages_pl.json +2 -2
  47. package/dist/esm/assets/locale/messages_pt.json +2 -2
  48. package/dist/esm/assets/locale/messages_ru.json +2 -2
  49. package/dist/esm/assets/locale/messages_sv.json +2 -2
  50. package/dist/esm/assets/locale/messages_th.json +2 -2
  51. package/dist/esm/assets/locale/messages_tr.json +2 -2
  52. package/dist/esm/assets/locale/messages_uk.json +3 -3
  53. package/dist/esm/assets/locale/messages_vi.json +2 -2
  54. package/dist/esm/assets/locale/messages_visuale2e.json +7 -1
  55. package/dist/esm/assets/locale/messages_zh.json +5 -5
  56. package/dist/esm/state/CollectionOptimisticActions.js +2 -5
  57. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  58. package/dist/esm/state/CollectionOptimisticProcessor.js +2 -6
  59. package/dist/esm/state/CollectionOptimisticProcessor.js.map +1 -1
  60. package/dist/esm/state/WixPatternsContainer.js +1 -0
  61. package/dist/esm/state/WixPatternsContainer.js.map +1 -1
  62. package/dist/esm/state/buildWixPatternsContainer.js +2 -1
  63. package/dist/esm/state/buildWixPatternsContainer.js.map +1 -1
  64. package/dist/types/InMemoryBackend/InMemoryBackend.d.ts +3 -3
  65. package/dist/types/hooks/collectionConfig.d.ts +3 -3
  66. package/dist/types/model/dataResultRaw/dataResultRaw.d.ts +3 -3
  67. package/dist/types/model/wixPatternsEssentials.d.ts +2 -0
  68. package/dist/types/model/wixPatternsEssentials.d.ts.map +1 -1
  69. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  70. package/dist/types/state/CollectionOptimisticProcessor.d.ts +1 -1
  71. package/dist/types/state/CollectionOptimisticProcessor.d.ts.map +1 -1
  72. package/dist/types/state/CollectionState.d.ts +1 -1
  73. package/dist/types/state/WixPatternsContainer.d.ts +2 -0
  74. package/dist/types/state/WixPatternsContainer.d.ts.map +1 -1
  75. package/dist/types/state/buildWixPatternsContainer.d.ts.map +1 -1
  76. package/package.json +4 -4
@@ -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","originQuery","result","status","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","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","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","getItem","key","keyedItem","get","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\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 | null;\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}\n\nexport interface CollectionStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Invalidates all cache records for this collection.<br>\n * Optional parameters:<br>\n * `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n invalidate(params?: {\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): void;\n\n /**\n * Invalidates cache and refreshes all previously fetched pages, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `beforeUpdateResult` - A callback function that will be called before updating the result.<br>\n * - `filters` - Invalidates only a specific part of the cache, for example: `refreshAllPages({ filters: { status: ['active'] } })`.\n * @external\n */\n refreshAllPages(params?: {\n beforeUpdateResult?: () => unknown;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Invalidates cache and refreshes current page, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `noInvalidate` - Refreshes current page without invalidating cache.\n * @external\n */\n refreshCurrentPage(params?: { noInvalidate?: boolean }): Promise<void>;\n\n /**\n * Clears all data from the collection and goes back to the first page and refreshes the first page data, while showing a loading indication.<br>\n * Optional parameters:<br>\n * - `force` - Invalidates the cache and resets react-query observer.\n * - `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n clearResultAndMoveToStart(params?: {\n force?: boolean;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Triggers retry when collection fails to load\n * @external\n */\n retryErrorState(): void;\n\n /**\n * [BulkSelectState](./?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](./?path=/story/common-models--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n\n /**\n * Status of the query. Contains boolean flags of `isIdle`, `isError`, `isLoading`, `isFetching`, `isSuccess`.\n * The difference between `isLoading` and `isFetching` is that `isLoading` is true during the initial query, `isFetching` is true during the next queries.\n * @external\n */\n status: QueryResultStatus<DataResultKeyed<T>, unknown>;\n\n /**\n * The total number of items, as was returned from the last query.\n * @external\n */\n total: number;\n\n /**\n * All the keyed items of the collection\n * @external\n */\n keyedItems: KeyedItem<T>[];\n\n /**\n * Get an item object according to its key\n * @external\n * @param key The key of the wanted item\n * @returns The wanted item\n */\n getItem(key: string): T | undefined | null;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\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 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?;\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 get status() {\n return this.result.status;\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 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 getItem(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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","ignoreList":[]}
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","status","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","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","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","getItem","key","keyedItem","get","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\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 | null;\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}\n\nexport interface CollectionStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Invalidates all cache records for this collection.<br>\n * Optional parameters:<br>\n * `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n invalidate(params?: {\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): void;\n\n /**\n * Invalidates cache and refreshes all previously fetched pages, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `beforeUpdateResult` - A callback function that will be called before updating the result.<br>\n * - `filters` - Invalidates only a specific part of the cache, for example: `refreshAllPages({ filters: { status: ['active'] } })`.\n * @external\n */\n refreshAllPages(params?: {\n beforeUpdateResult?: () => unknown;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Invalidates cache and refreshes current page, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `noInvalidate` - Refreshes current page without invalidating cache.\n * @external\n */\n refreshCurrentPage(params?: { noInvalidate?: boolean }): Promise<void>;\n\n /**\n * Clears all data from the collection and goes back to the first page and refreshes the first page data, while showing a loading indication.<br>\n * Optional parameters:<br>\n * - `force` - Invalidates the cache and resets react-query observer.\n * - `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n clearResultAndMoveToStart(params?: {\n force?: boolean;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Triggers retry when collection fails to load\n * @external\n */\n retryErrorState(): void;\n\n /**\n * [BulkSelectState](./?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](./?path=/story/common-types--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n\n /**\n * Status of the query. Contains boolean flags of `isIdle`, `isError`, `isLoading`, `isFetching`, `isSuccess`.\n * The difference between `isLoading` and `isFetching` is that `isLoading` is true during the initial query, `isFetching` is true during the next queries.\n * @external\n */\n status: QueryResultStatus<DataResultKeyed<T>, unknown>;\n\n /**\n * The total number of items, as was returned from the last query.\n * @external\n */\n total: number;\n\n /**\n * All the keyed items of the collection\n * @external\n */\n keyedItems: KeyedItem<T>[];\n\n /**\n * Get an item object according to its key\n * @external\n * @param key The key of the wanted item\n * @returns The wanted item\n */\n getItem(key: string): T | undefined | null;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\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 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?;\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 get status() {\n return this.result.status;\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 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 getItem(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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","ignoreList":[]}
@@ -33,6 +33,7 @@ class WixPatternsContainer {
33
33
  (0, _defineProperty2.default)(this, "useExperiments", void 0);
34
34
  (0, _defineProperty2.default)(this, "showToast", void 0);
35
35
  (0, _defineProperty2.default)(this, "navigateTo", void 0);
36
+ (0, _defineProperty2.default)(this, "useAssistantEffect", void 0);
36
37
  (0, _defineProperty2.default)(this, "onNavigation", void 0);
37
38
  (0, _defineProperty2.default)(this, "onBeforeUnload", void 0);
38
39
  (0, _defineProperty2.default)(this, "getHostContainer", void 0);
@@ -96,6 +97,7 @@ class WixPatternsContainer {
96
97
  this.experiments = params.experiments;
97
98
  this.showToast = params.showToast;
98
99
  this.navigateTo = params.navigateTo;
100
+ this.useAssistantEffect = params.useAssistantEffect;
99
101
  this.onNavigation = params.onNavigation;
100
102
  this.getHostContainer = params.getHostContainer;
101
103
  this.window = params.window;
@@ -1 +1 @@
1
- {"version":3,"names":["_services","require","_model","_mobx","_TaskState","_OnlineState","_createComponentSettings","_ConditionalModalState","_events","_useExperimentsCompat","_uuid","_BeforeUnloadCompatState","WixPatternsContainer","constructor","params","_params$initialProps","_defineProperty2","default","TaskState","defaultParams","reportProps","environment","cairoSessionId","biLogger","report","artifactId","componentName","cairoVersion","uiLibVersion","csid","createEssentials","lodash","patchesCache","events","EventEmitter","_messagesEnImport","messagesEnImport","messagesEnImportGlobal","_fetchTranslations","fetchTranslations","onNavigationModal","ConditionalModalState","wixPatternsEnvironment","user","createComponentSettings","errorMonitor","httpClient","onlineManager","focusManager","history","useTranslation","useExperiments","createUseExperimentsCompat","experiments","showToast","navigateTo","onNavigation","getHostContainer","window","queryCache","appendModalsToBody","onSidePanelOpen","closeSidePanel","onBeforeUnload","i18n","biLoggerFactory","fedopsLogger","internalFedops","internalErrorMonitor","internalExperiments","useSuspense","disableAutoInit","asyncMessagesLoader","locale","messages","initialProps","dsn","process","env","NODE_ENV","fedops","appName","scopes","STORYBOOK_VISUAL_E2E","options","fallbackLng","uuid","logger","internalMonitor","WixPatternsMonitor","translate","args","initTask","status","t","Trans","onlineState","OnlineState","reportBi","createBILogger","makeObservable","init","action","bound","initialFetch","dateFormatters","computed","isLoading","isSuccess","promise","run","Promise","all","ready","catch","e","console","error","medium","Intl","DateTimeFormat","language","dateStyle","mediumTime","timeStyle","time","disposers","BeforeUnloadCompatState","forEach","d","exports"],"sources":["../../../src/state/WixPatternsContainer.ts"],"sourcesContent":["import type { Essentials } from '@wix/fe-essentials/core';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n WixPatternsMonitor,\n Environment,\n ErrorMonitor,\n fetchTranslations,\n FocusManager,\n History,\n messagesEnImportGlobal,\n ModalLayoutProps,\n OnlineManager,\n PartialLodash,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { QueryCache } from 'react-query/core';\nimport {\n wixPatternsEnvironment,\n WixPatternsEssentials,\n WixPatternsInitialProps,\n CloseSidePanel,\n GetHostContainer,\n OnNavigation,\n OnSidePanelOpen,\n ShowToast,\n} from '../model';\nimport { action, computed, IObservableArray, makeObservable } from 'mobx';\nimport { TaskState } from './TaskState';\nimport { OnlineState } from './OnlineState';\nimport { createComponentSettings } from '../services/createComponentSettings';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { TransitionState } from './TransitionState';\nimport { ReactElement } from 'react';\nimport { createUseExperimentsCompat } from './useExperimentsCompat';\nimport { v4 as uuid } from 'uuid';\nimport { BeforeUnloadCompatState } from './BeforeUnloadCompatState';\n\ntype WixPatternsContainerEvents = TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n}>;\n\nexport interface WixPatternsContainerParams {\n readonly initialProps?: WixPatternsInitialProps;\n readonly createEssentials: WixPatternsEssentials['createEssentials'];\n readonly biLogger?: WixPatternsEssentials['biLogger'];\n readonly messagesEnImport?: () => Promise<{}>;\n readonly fetchTranslations?: (p: {\n readonly errorMonitor: ErrorMonitor;\n }) => (locale: string) => Promise<{}>;\n readonly createComponentSettings?: WixPatternsEssentials['createComponentSettings'];\n readonly errorMonitor: ErrorMonitor;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineManager: OnlineManager;\n readonly focusManager: FocusManager;\n readonly history: History;\n readonly window: PartialWindow;\n readonly useTranslation: typeof useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments: WixPatternsEssentials['useExperiments'];\n readonly experiments: WixPatternsEssentials['experiments'];\n readonly environment: WixPatternsEssentials['environment'];\n readonly user: WixPatternsEssentials['user'];\n readonly showToast?: ShowToast;\n readonly navigateTo?: WixPatternsEssentials['navigateTo'];\n readonly onNavigation?: OnNavigation;\n readonly getHostContainer?: GetHostContainer;\n readonly queryCache: QueryCache;\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<any>>>;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly lodash: PartialLodash;\n readonly events?: WixPatternsContainerEvents;\n readonly sidePanel?: TransitionState<string>;\n readonly onNavigationModal?: ConditionalModalState<ModalLayoutProps>;\n readonly sidePanelComponents?: Map<string, ReactElement>;\n readonly appendModalsToBody?: boolean;\n readonly onBeforeUnload?: WixPatternsEssentials['onBeforeUnload'];\n}\n\nexport class WixPatternsContainer {\n readonly createEssentials;\n readonly errorMonitor: WixPatternsContainerParams['errorMonitor'];\n readonly internalMonitor: WixPatternsMonitor;\n readonly internalExperiments;\n readonly experiments;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly onlineManager;\n readonly focusManager;\n readonly history: WixPatternsContainerParams['history'];\n readonly window: WixPatternsContainerParams['window'];\n readonly useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments;\n readonly showToast?;\n readonly navigateTo?;\n readonly onNavigation;\n readonly onBeforeUnload;\n readonly getHostContainer;\n readonly environment: Environment;\n readonly appendModalsToBody?: boolean;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly translate: Translate;\n readonly lodash;\n readonly i18n: Essentials['i18n'];\n readonly reportBi: ReportBI;\n readonly _messagesEnImport;\n readonly _fetchTranslations;\n\n readonly queryCache: QueryCache;\n readonly patchesCache;\n\n readonly initTask = new TaskState<void>();\n readonly onlineState: OnlineState;\n\n readonly onNavigationModal;\n\n readonly events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n\n readonly user;\n\n readonly cairoSessionId: string;\n\n readonly biLogger;\n\n readonly createComponentSettings;\n\n constructor(params: Readonly<WixPatternsContainerParams>) {\n this.createEssentials = params.createEssentials;\n this.lodash = params.lodash;\n this.patchesCache = params.patchesCache;\n this.events =\n params.events ?? (new EventEmitter() as WixPatternsContainerEvents);\n this._messagesEnImport = params.messagesEnImport ?? messagesEnImportGlobal;\n this._fetchTranslations = params.fetchTranslations ?? fetchTranslations;\n\n this.onNavigationModal =\n params.onNavigationModal ?? new ConditionalModalState();\n\n this.environment = wixPatternsEnvironment(params.environment);\n this.user = params.user;\n\n this.createComponentSettings =\n params.createComponentSettings ?? createComponentSettings;\n\n this.errorMonitor = params.errorMonitor;\n this.httpClient = params.httpClient;\n this.onlineManager = params.onlineManager;\n this.focusManager = params.focusManager;\n this.history = params.history;\n this.useTranslation = params.useTranslation;\n this.useExperiments = createUseExperimentsCompat(params.useExperiments);\n this.experiments = params.experiments;\n this.showToast = params.showToast;\n this.navigateTo = params.navigateTo;\n this.onNavigation = params.onNavigation;\n this.getHostContainer = params.getHostContainer;\n this.window = params.window;\n this.queryCache = params.queryCache;\n this.appendModalsToBody = params.appendModalsToBody;\n this.onSidePanelOpen = params.onSidePanelOpen;\n this.closeSidePanel = params.closeSidePanel;\n this.onBeforeUnload = params.onBeforeUnload;\n\n const {\n i18n,\n biLoggerFactory,\n fedopsLogger: internalFedops,\n errorMonitor: internalErrorMonitor,\n experiments: internalExperiments,\n } = this.createEssentials({\n i18n: {\n useSuspense: false,\n disableAutoInit: true,\n asyncMessagesLoader: async (locale) => {\n if (locale === 'en') {\n return this._messagesEnImport();\n }\n return this._fetchTranslations(this)(locale);\n },\n messages: params.initialProps?.messages,\n },\n errorMonitor: {\n dsn:\n process.env.NODE_ENV === 'production'\n ? 'https://9b9586a905eb429cbda9ea49d5d721f6@sentry-next.wixpress.com/8780'\n : '',\n /*\n TODO: not used in sentry-next API, need to be merged from reportError API with tags & extraData\n For Example: errorMonitor.captureException(error, { tags, contexts: { runtime: extraData }})\n beforeSend: (event, hint) => {\n this.internalMonitor.reportErrorThrownOncePerFlow();\n\n if (!event.tags) {\n event.tags = {};\n }\n\n if (!event.extra) {\n event.extra = {};\n }\n\n if (hint && hint.originalException) {\n event.extra.exception = hint.originalException;\n\n if (hint.originalException instanceof Error) {\n event.fingerprint = [\n `${hint.originalException.name}:${hint.originalException.message}`,\n ];\n }\n }\n\n event.tags.componentName = this.environment.componentName;\n event.tags.componentId = this.environment.componentId;\n event.tags.artifactId = this.environment.artifactId;\n event.tags.cairoVersion = this.environment.uiLibVersion;\n\n return event;\n },\n */\n },\n fedops: {\n appName: 'cairo',\n },\n experiments: {\n scopes: ['cairo'],\n },\n });\n\n if (\n typeof process !== 'undefined' &&\n process.env.STORYBOOK_VISUAL_E2E === 'true'\n ) {\n i18n.options.fallbackLng = [];\n }\n\n this.cairoSessionId = uuid();\n this.biLogger = params.biLogger ?? biLoggerFactory?.().logger();\n this.i18n = i18n;\n this.internalMonitor = new WixPatternsMonitor({\n errorMonitor: params.errorMonitor,\n internalErrorMonitor,\n internalFedops,\n environment: this.environment,\n csid: this.cairoSessionId,\n });\n this.internalExperiments = internalExperiments;\n\n this.translate = (...args) => {\n void this.initTask.status; // status is observable so reading it here starts mobx reactivity\n return this.i18n.t(...args);\n };\n\n this.Trans = params.Trans;\n\n this.onlineState = new OnlineState({\n onlineManager: this.onlineManager,\n focusManager: this.focusManager,\n translate: this.translate,\n showToast: this.showToast,\n });\n\n this.reportBi = this.createBILogger({});\n\n makeObservable(this, {\n init: action.bound,\n initialFetch: action.bound,\n dateFormatters: computed,\n });\n }\n\n _createComponentSettings(options: { namespace: string }) {\n return this.createComponentSettings(this)(options);\n }\n\n createBILogger = <P>(defaultParams: P): ReportBI => {\n return (reportProps: ReportProps) => {\n const { environment, cairoSessionId, biLogger } = this;\n\n return biLogger?.report({\n ...reportProps,\n params: {\n artifactId: environment.artifactId,\n componentName: environment.componentName,\n cairoVersion: environment.uiLibVersion,\n csid: cairoSessionId,\n ...defaultParams,\n ...reportProps.params,\n },\n });\n };\n };\n\n async initialFetch() {\n const { initTask, i18n, internalExperiments, experiments } = this;\n if (initTask.status.isLoading || initTask.status.isSuccess) {\n return initTask.status.promise;\n }\n\n await initTask.run(async () => {\n await Promise.all([\n i18n.init(),\n internalExperiments?.ready().catch((e) => {\n console.error(e);\n }),\n experiments.ready().catch((e) => {\n console.error(e);\n }),\n this._messagesEnImport(), // not all translation files contain all the keys, so en is required otherwise show error state\n ]);\n });\n\n return initTask.status.promise;\n }\n\n get dateFormatters() {\n return {\n medium: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n }),\n mediumTime: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }),\n time: new Intl.DateTimeFormat(this.environment.language, {\n timeStyle: 'short',\n }),\n };\n }\n\n init() {\n const { onlineState } = this;\n\n this.initialFetch().catch((e) => {\n console.error(e);\n });\n\n const disposers = [\n onlineState.init(),\n new BeforeUnloadCompatState(this).init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_services","require","_model","_mobx","_TaskState","_OnlineState","_createComponentSettings","_ConditionalModalState","_events","_useExperimentsCompat","_uuid","_BeforeUnloadCompatState","WixPatternsContainer","constructor","params","_params$initialProps","_defineProperty2","default","TaskState","defaultParams","reportProps","environment","cairoSessionId","biLogger","report","artifactId","componentName","cairoVersion","uiLibVersion","csid","createEssentials","lodash","patchesCache","events","EventEmitter","_messagesEnImport","messagesEnImport","messagesEnImportGlobal","_fetchTranslations","fetchTranslations","onNavigationModal","ConditionalModalState","wixPatternsEnvironment","user","createComponentSettings","errorMonitor","httpClient","onlineManager","focusManager","history","useTranslation","useExperiments","createUseExperimentsCompat","experiments","showToast","navigateTo","useAssistantEffect","onNavigation","getHostContainer","window","queryCache","appendModalsToBody","onSidePanelOpen","closeSidePanel","onBeforeUnload","i18n","biLoggerFactory","fedopsLogger","internalFedops","internalErrorMonitor","internalExperiments","useSuspense","disableAutoInit","asyncMessagesLoader","locale","messages","initialProps","dsn","process","env","NODE_ENV","fedops","appName","scopes","STORYBOOK_VISUAL_E2E","options","fallbackLng","uuid","logger","internalMonitor","WixPatternsMonitor","translate","args","initTask","status","t","Trans","onlineState","OnlineState","reportBi","createBILogger","makeObservable","init","action","bound","initialFetch","dateFormatters","computed","isLoading","isSuccess","promise","run","Promise","all","ready","catch","e","console","error","medium","Intl","DateTimeFormat","language","dateStyle","mediumTime","timeStyle","time","disposers","BeforeUnloadCompatState","forEach","d","exports"],"sources":["../../../src/state/WixPatternsContainer.ts"],"sourcesContent":["import type { Essentials } from '@wix/fe-essentials/core';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ReportProps } from '@wix/fe-essentials/bi';\nimport {\n WixPatternsMonitor,\n Environment,\n ErrorMonitor,\n fetchTranslations,\n FocusManager,\n History,\n messagesEnImportGlobal,\n ModalLayoutProps,\n OnlineManager,\n PartialLodash,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { QueryCache } from 'react-query/core';\nimport {\n wixPatternsEnvironment,\n WixPatternsEssentials,\n WixPatternsInitialProps,\n CloseSidePanel,\n GetHostContainer,\n OnNavigation,\n OnSidePanelOpen,\n ShowToast,\n} from '../model';\nimport { action, computed, IObservableArray, makeObservable } from 'mobx';\nimport { TaskState } from './TaskState';\nimport { OnlineState } from './OnlineState';\nimport { createComponentSettings } from '../services/createComponentSettings';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { TransitionState } from './TransitionState';\nimport { ReactElement } from 'react';\nimport { createUseExperimentsCompat } from './useExperimentsCompat';\nimport { v4 as uuid } from 'uuid';\nimport { BeforeUnloadCompatState } from './BeforeUnloadCompatState';\n\ntype WixPatternsContainerEvents = TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n}>;\n\nexport interface WixPatternsContainerParams {\n readonly initialProps?: WixPatternsInitialProps;\n readonly createEssentials: WixPatternsEssentials['createEssentials'];\n readonly biLogger?: WixPatternsEssentials['biLogger'];\n readonly messagesEnImport?: () => Promise<{}>;\n readonly fetchTranslations?: (p: {\n readonly errorMonitor: ErrorMonitor;\n }) => (locale: string) => Promise<{}>;\n readonly createComponentSettings?: WixPatternsEssentials['createComponentSettings'];\n readonly errorMonitor: ErrorMonitor;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineManager: OnlineManager;\n readonly focusManager: FocusManager;\n readonly history: History;\n readonly window: PartialWindow;\n readonly useTranslation: typeof useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments: WixPatternsEssentials['useExperiments'];\n readonly experiments: WixPatternsEssentials['experiments'];\n readonly environment: WixPatternsEssentials['environment'];\n readonly user: WixPatternsEssentials['user'];\n readonly showToast?: ShowToast;\n readonly navigateTo?: WixPatternsEssentials['navigateTo'];\n readonly useAssistantEffect?: WixPatternsEssentials['useAssistantEffect'];\n readonly onNavigation?: OnNavigation;\n readonly getHostContainer?: GetHostContainer;\n readonly queryCache: QueryCache;\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<any>>>;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly lodash: PartialLodash;\n readonly events?: WixPatternsContainerEvents;\n readonly sidePanel?: TransitionState<string>;\n readonly onNavigationModal?: ConditionalModalState<ModalLayoutProps>;\n readonly sidePanelComponents?: Map<string, ReactElement>;\n readonly appendModalsToBody?: boolean;\n readonly onBeforeUnload?: WixPatternsEssentials['onBeforeUnload'];\n}\n\nexport class WixPatternsContainer {\n readonly createEssentials;\n readonly errorMonitor: WixPatternsContainerParams['errorMonitor'];\n readonly internalMonitor: WixPatternsMonitor;\n readonly internalExperiments;\n readonly experiments;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly onlineManager;\n readonly focusManager;\n readonly history: WixPatternsContainerParams['history'];\n readonly window: WixPatternsContainerParams['window'];\n readonly useTranslation;\n readonly Trans: typeof Trans;\n readonly useExperiments;\n readonly showToast?;\n readonly navigateTo?;\n readonly useAssistantEffect?;\n readonly onNavigation;\n readonly onBeforeUnload;\n readonly getHostContainer;\n readonly environment: Environment;\n readonly appendModalsToBody?: boolean;\n readonly onSidePanelOpen?: OnSidePanelOpen;\n readonly closeSidePanel?: CloseSidePanel;\n readonly translate: Translate;\n readonly lodash;\n readonly i18n: Essentials['i18n'];\n readonly reportBi: ReportBI;\n readonly _messagesEnImport;\n readonly _fetchTranslations;\n\n readonly queryCache: QueryCache;\n readonly patchesCache;\n\n readonly initTask = new TaskState<void>();\n readonly onlineState: OnlineState;\n\n readonly onNavigationModal;\n\n readonly events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n\n readonly user;\n\n readonly cairoSessionId: string;\n\n readonly biLogger;\n\n readonly createComponentSettings;\n\n constructor(params: Readonly<WixPatternsContainerParams>) {\n this.createEssentials = params.createEssentials;\n this.lodash = params.lodash;\n this.patchesCache = params.patchesCache;\n this.events =\n params.events ?? (new EventEmitter() as WixPatternsContainerEvents);\n this._messagesEnImport = params.messagesEnImport ?? messagesEnImportGlobal;\n this._fetchTranslations = params.fetchTranslations ?? fetchTranslations;\n\n this.onNavigationModal =\n params.onNavigationModal ?? new ConditionalModalState();\n\n this.environment = wixPatternsEnvironment(params.environment);\n this.user = params.user;\n\n this.createComponentSettings =\n params.createComponentSettings ?? createComponentSettings;\n\n this.errorMonitor = params.errorMonitor;\n this.httpClient = params.httpClient;\n this.onlineManager = params.onlineManager;\n this.focusManager = params.focusManager;\n this.history = params.history;\n this.useTranslation = params.useTranslation;\n this.useExperiments = createUseExperimentsCompat(params.useExperiments);\n this.experiments = params.experiments;\n this.showToast = params.showToast;\n this.navigateTo = params.navigateTo;\n this.useAssistantEffect = params.useAssistantEffect;\n this.onNavigation = params.onNavigation;\n this.getHostContainer = params.getHostContainer;\n this.window = params.window;\n this.queryCache = params.queryCache;\n this.appendModalsToBody = params.appendModalsToBody;\n this.onSidePanelOpen = params.onSidePanelOpen;\n this.closeSidePanel = params.closeSidePanel;\n this.onBeforeUnload = params.onBeforeUnload;\n\n const {\n i18n,\n biLoggerFactory,\n fedopsLogger: internalFedops,\n errorMonitor: internalErrorMonitor,\n experiments: internalExperiments,\n } = this.createEssentials({\n i18n: {\n useSuspense: false,\n disableAutoInit: true,\n asyncMessagesLoader: async (locale) => {\n if (locale === 'en') {\n return this._messagesEnImport();\n }\n return this._fetchTranslations(this)(locale);\n },\n messages: params.initialProps?.messages,\n },\n errorMonitor: {\n dsn:\n process.env.NODE_ENV === 'production'\n ? 'https://9b9586a905eb429cbda9ea49d5d721f6@sentry-next.wixpress.com/8780'\n : '',\n /*\n TODO: not used in sentry-next API, need to be merged from reportError API with tags & extraData\n For Example: errorMonitor.captureException(error, { tags, contexts: { runtime: extraData }})\n beforeSend: (event, hint) => {\n this.internalMonitor.reportErrorThrownOncePerFlow();\n\n if (!event.tags) {\n event.tags = {};\n }\n\n if (!event.extra) {\n event.extra = {};\n }\n\n if (hint && hint.originalException) {\n event.extra.exception = hint.originalException;\n\n if (hint.originalException instanceof Error) {\n event.fingerprint = [\n `${hint.originalException.name}:${hint.originalException.message}`,\n ];\n }\n }\n\n event.tags.componentName = this.environment.componentName;\n event.tags.componentId = this.environment.componentId;\n event.tags.artifactId = this.environment.artifactId;\n event.tags.cairoVersion = this.environment.uiLibVersion;\n\n return event;\n },\n */\n },\n fedops: {\n appName: 'cairo',\n },\n experiments: {\n scopes: ['cairo'],\n },\n });\n\n if (\n typeof process !== 'undefined' &&\n process.env.STORYBOOK_VISUAL_E2E === 'true'\n ) {\n i18n.options.fallbackLng = [];\n }\n\n this.cairoSessionId = uuid();\n this.biLogger = params.biLogger ?? biLoggerFactory?.().logger();\n this.i18n = i18n;\n this.internalMonitor = new WixPatternsMonitor({\n errorMonitor: params.errorMonitor,\n internalErrorMonitor,\n internalFedops,\n environment: this.environment,\n csid: this.cairoSessionId,\n });\n this.internalExperiments = internalExperiments;\n\n this.translate = (...args) => {\n void this.initTask.status; // status is observable so reading it here starts mobx reactivity\n return this.i18n.t(...args);\n };\n\n this.Trans = params.Trans;\n\n this.onlineState = new OnlineState({\n onlineManager: this.onlineManager,\n focusManager: this.focusManager,\n translate: this.translate,\n showToast: this.showToast,\n });\n\n this.reportBi = this.createBILogger({});\n\n makeObservable(this, {\n init: action.bound,\n initialFetch: action.bound,\n dateFormatters: computed,\n });\n }\n\n _createComponentSettings(options: { namespace: string }) {\n return this.createComponentSettings(this)(options);\n }\n\n createBILogger = <P>(defaultParams: P): ReportBI => {\n return (reportProps: ReportProps) => {\n const { environment, cairoSessionId, biLogger } = this;\n\n return biLogger?.report({\n ...reportProps,\n params: {\n artifactId: environment.artifactId,\n componentName: environment.componentName,\n cairoVersion: environment.uiLibVersion,\n csid: cairoSessionId,\n ...defaultParams,\n ...reportProps.params,\n },\n });\n };\n };\n\n async initialFetch() {\n const { initTask, i18n, internalExperiments, experiments } = this;\n if (initTask.status.isLoading || initTask.status.isSuccess) {\n return initTask.status.promise;\n }\n\n await initTask.run(async () => {\n await Promise.all([\n i18n.init(),\n internalExperiments?.ready().catch((e) => {\n console.error(e);\n }),\n experiments.ready().catch((e) => {\n console.error(e);\n }),\n this._messagesEnImport(), // not all translation files contain all the keys, so en is required otherwise show error state\n ]);\n });\n\n return initTask.status.promise;\n }\n\n get dateFormatters() {\n return {\n medium: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n }),\n mediumTime: new Intl.DateTimeFormat(this.environment.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }),\n time: new Intl.DateTimeFormat(this.environment.language, {\n timeStyle: 'short',\n }),\n };\n }\n\n init() {\n const { onlineState } = this;\n\n this.initialFetch().catch((e) => {\n console.error(e);\n });\n\n const disposers = [\n onlineState.init(),\n new BeforeUnloadCompatState(this).init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,7 @@ function buildWixPatternsContainer(wixPatternsEssentials, {
44
44
  queryCache = defaultQueryCache,
45
45
  onlineManager = _core.onlineManager,
46
46
  navigateTo,
47
+ useAssistantEffect,
47
48
  onBeforeUnload,
48
49
  biLogger
49
50
  } = wixPatternsEssentials;
@@ -65,6 +66,7 @@ function buildWixPatternsContainer(wixPatternsEssentials, {
65
66
  user,
66
67
  showToast,
67
68
  navigateTo,
69
+ useAssistantEffect,
68
70
  onNavigation,
69
71
  onBeforeUnload,
70
72
  getHostContainer,
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_mobx","_WixPatternsContainer","_history","_PartialWindowMock","_debounce","_interopRequireDefault","_throttle","_partialLodashMock","_jest","configure","isolateGlobalState","computedRequiresReaction","process","env","NODE_ENV","disableErrorBoundaries","DISABLE_ERROR_BOUNDARIES","defaultQueryCache","QueryCache","patchesCache","Map","buildWixPatternsContainer","wixPatternsEssentials","containerOverrides","initialProps","localCache","errorMonitor","httpClient","createEssentials","createComponentSettings","useTranslation","Trans","useExperiments","environment","showToast","experiments","onNavigation","getHostContainer","onSidePanelOpen","closeSidePanel","history","user","queryCache","onlineManager","defaultOnlineManager","navigateTo","onBeforeUnload","biLogger","WixPatternsContainer","focusManager","createMemoryHistory","createBrowserHistory","window","PartialWindowMock","matchMedia","args","location","download","uri","saveAs","link","document","createElement","href","body","appendChild","click","removeChild","close","lodash","isTestEnvironment","isJestExists","jest","isMockFunction","setTimeout","partialLodashMock","debounce","throttle"],"sources":["../../../src/state/buildWixPatternsContainer.ts"],"sourcesContent":["import {\n focusManager,\n onlineManager as defaultOnlineManager,\n QueryCache,\n} from 'react-query/core';\nimport { configure } from 'mobx';\nimport { WixPatternsEssentials, WixPatternsInitialProps } from '../model';\nimport {\n WixPatternsContainer,\n WixPatternsContainerParams,\n} from './WixPatternsContainer';\nimport { createBrowserHistory } from 'history';\nimport { PartialWindowMock } from '../mocks/PartialWindowMock';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport { partialLodashMock } from '../mocks/partialLodashMock';\nimport { isJestExists, isTestEnvironment } from '../test-utils/jest';\n\nconfigure({\n isolateGlobalState: true,\n computedRequiresReaction: process.env.NODE_ENV === 'development',\n disableErrorBoundaries:\n process.env.NODE_ENV !== 'production' &&\n typeof process !== 'undefined' &&\n process.env.DISABLE_ERROR_BOUNDARIES === 'true',\n});\n\nconst defaultQueryCache = new QueryCache();\nconst patchesCache: WixPatternsContainerParams['patchesCache'] = new Map();\n\nexport function buildWixPatternsContainer(\n wixPatternsEssentials: WixPatternsEssentials,\n {\n containerOverrides,\n initialProps,\n localCache,\n }: {\n containerOverrides?: Partial<WixPatternsContainerParams>;\n initialProps?: WixPatternsInitialProps;\n localCache?: boolean;\n } = {},\n) {\n const {\n errorMonitor,\n httpClient,\n createEssentials,\n createComponentSettings,\n useTranslation,\n Trans,\n useExperiments,\n environment,\n showToast,\n experiments,\n onNavigation,\n getHostContainer,\n onSidePanelOpen,\n closeSidePanel,\n history,\n user,\n queryCache = defaultQueryCache,\n onlineManager = defaultOnlineManager,\n navigateTo,\n onBeforeUnload,\n biLogger,\n } = wixPatternsEssentials;\n\n return new WixPatternsContainer({\n initialProps,\n errorMonitor,\n httpClient,\n onlineManager,\n focusManager,\n createEssentials,\n createComponentSettings,\n history:\n process.env.NODE_ENV === 'test'\n ? require('history').createMemoryHistory()\n : history ?? createBrowserHistory(),\n experiments,\n biLogger,\n useTranslation,\n Trans,\n useExperiments,\n environment,\n user,\n showToast,\n navigateTo,\n onNavigation,\n onBeforeUnload,\n getHostContainer,\n onSidePanelOpen,\n closeSidePanel,\n queryCache:\n process.env.NODE_ENV === 'test' || localCache\n ? new QueryCache()\n : queryCache,\n patchesCache: process.env.NODE_ENV === 'test' ? new Map() : patchesCache,\n window:\n process.env.NODE_ENV === 'test'\n ? new PartialWindowMock()\n : {\n matchMedia: (...args) => window.matchMedia(...args),\n location: window.location,\n download: (uri, saveAs) => {\n const link = document.createElement('a');\n link.href = uri;\n if (saveAs) {\n link.download = saveAs;\n }\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n },\n close: window.close,\n },\n lodash:\n isTestEnvironment() && isJestExists() && jest.isMockFunction(setTimeout)\n ? partialLodashMock()\n : { debounce, throttle },\n ...containerOverrides,\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_mobx","_WixPatternsContainer","_history","_PartialWindowMock","_debounce","_interopRequireDefault","_throttle","_partialLodashMock","_jest","configure","isolateGlobalState","computedRequiresReaction","process","env","NODE_ENV","disableErrorBoundaries","DISABLE_ERROR_BOUNDARIES","defaultQueryCache","QueryCache","patchesCache","Map","buildWixPatternsContainer","wixPatternsEssentials","containerOverrides","initialProps","localCache","errorMonitor","httpClient","createEssentials","createComponentSettings","useTranslation","Trans","useExperiments","environment","showToast","experiments","onNavigation","getHostContainer","onSidePanelOpen","closeSidePanel","history","user","queryCache","onlineManager","defaultOnlineManager","navigateTo","useAssistantEffect","onBeforeUnload","biLogger","WixPatternsContainer","focusManager","createMemoryHistory","createBrowserHistory","window","PartialWindowMock","matchMedia","args","location","download","uri","saveAs","link","document","createElement","href","body","appendChild","click","removeChild","close","lodash","isTestEnvironment","isJestExists","jest","isMockFunction","setTimeout","partialLodashMock","debounce","throttle"],"sources":["../../../src/state/buildWixPatternsContainer.ts"],"sourcesContent":["import {\n focusManager,\n onlineManager as defaultOnlineManager,\n QueryCache,\n} from 'react-query/core';\nimport { configure } from 'mobx';\nimport { WixPatternsEssentials, WixPatternsInitialProps } from '../model';\nimport {\n WixPatternsContainer,\n WixPatternsContainerParams,\n} from './WixPatternsContainer';\nimport { createBrowserHistory } from 'history';\nimport { PartialWindowMock } from '../mocks/PartialWindowMock';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport { partialLodashMock } from '../mocks/partialLodashMock';\nimport { isJestExists, isTestEnvironment } from '../test-utils/jest';\n\nconfigure({\n isolateGlobalState: true,\n computedRequiresReaction: process.env.NODE_ENV === 'development',\n disableErrorBoundaries:\n process.env.NODE_ENV !== 'production' &&\n typeof process !== 'undefined' &&\n process.env.DISABLE_ERROR_BOUNDARIES === 'true',\n});\n\nconst defaultQueryCache = new QueryCache();\nconst patchesCache: WixPatternsContainerParams['patchesCache'] = new Map();\n\nexport function buildWixPatternsContainer(\n wixPatternsEssentials: WixPatternsEssentials,\n {\n containerOverrides,\n initialProps,\n localCache,\n }: {\n containerOverrides?: Partial<WixPatternsContainerParams>;\n initialProps?: WixPatternsInitialProps;\n localCache?: boolean;\n } = {},\n) {\n const {\n errorMonitor,\n httpClient,\n createEssentials,\n createComponentSettings,\n useTranslation,\n Trans,\n useExperiments,\n environment,\n showToast,\n experiments,\n onNavigation,\n getHostContainer,\n onSidePanelOpen,\n closeSidePanel,\n history,\n user,\n queryCache = defaultQueryCache,\n onlineManager = defaultOnlineManager,\n navigateTo,\n useAssistantEffect,\n onBeforeUnload,\n biLogger,\n } = wixPatternsEssentials;\n\n return new WixPatternsContainer({\n initialProps,\n errorMonitor,\n httpClient,\n onlineManager,\n focusManager,\n createEssentials,\n createComponentSettings,\n history:\n process.env.NODE_ENV === 'test'\n ? require('history').createMemoryHistory()\n : history ?? createBrowserHistory(),\n experiments,\n biLogger,\n useTranslation,\n Trans,\n useExperiments,\n environment,\n user,\n showToast,\n navigateTo,\n useAssistantEffect,\n onNavigation,\n onBeforeUnload,\n getHostContainer,\n onSidePanelOpen,\n closeSidePanel,\n queryCache:\n process.env.NODE_ENV === 'test' || localCache\n ? new QueryCache()\n : queryCache,\n patchesCache: process.env.NODE_ENV === 'test' ? new Map() : patchesCache,\n window:\n process.env.NODE_ENV === 'test'\n ? new PartialWindowMock()\n : {\n matchMedia: (...args) => window.matchMedia(...args),\n location: window.location,\n download: (uri, saveAs) => {\n const link = document.createElement('a');\n link.href = uri;\n if (saveAs) {\n link.download = saveAs;\n }\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n },\n close: window.close,\n },\n lodash:\n isTestEnvironment() && isJestExists() && jest.isMockFunction(setTimeout)\n ? partialLodashMock()\n : { debounce, throttle },\n ...containerOverrides,\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -49,7 +49,7 @@
49
49
  "cairo.customFields.fieldType.dropdownList.addOption.CTA": "Přidat možnost",
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Zpět",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Odstranit",
52
- "cairo.updatedView.collectionPage.toast.cta": "Obnovit",
52
+ "cairo.updatedView.collectionPage.toast.cta": "Obnovit stránku",
53
53
  "cairo.customFields.fieldType.dropdownList.placeholder": "Např. Itálie",
54
54
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Zpět",
55
55
  "cairo.dragAndDrop.discardChanges.CTA": "Zahodit",
@@ -347,7 +347,7 @@
347
347
  "cairo.manageView.saveNewView.CTA": "Uložit jako nové zobrazení",
348
348
  "cair.appliedFilters.Apply.CTA": "Použít",
349
349
  "cairo.export.noPermissionsCTA": "Zobrazit role a oprávnění",
350
- "cairo.updatedView.collectionPage.toast.desc": "Změny byly uloženy. Pro použití filtrů stránku obnovte.",
350
+ "cairo.updatedView.collectionPage.toast.desc": "Obnovte stránku, aby se posledních změny zobrazily.",
351
351
  "cairo.search.nothingMatches.text": "Zkuste nové hledání.",
352
352
  "cairo.viewDropdown.category.predefinedViews": "Přednastavená zobrazení",
353
353
  "cairo.customFields.fieldType.dropdownList.inputTitle": "Možnosti",