@wix/bex-core 2.253.0 → 2.255.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.
- package/dist/cjs/assets/locale/messages_cs.json +9 -9
- package/dist/cjs/assets/locale/messages_da.json +2 -2
- package/dist/cjs/assets/locale/messages_es.json +1 -1
- package/dist/cjs/assets/locale/messages_fr.json +2 -2
- package/dist/cjs/assets/locale/messages_nl.json +3 -3
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +6 -6
- package/dist/cjs/assets/locale/messages_sv.json +9 -9
- package/dist/cjs/assets/locale/messages_tr.json +2 -2
- package/dist/cjs/assets/locale/messages_uk.json +1 -1
- package/dist/cjs/state/CollectionState.js +2 -0
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/util/mobileDetection.js +1 -1
- package/dist/cjs/util/mobileDetection.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +9 -9
- package/dist/esm/assets/locale/messages_da.json +2 -2
- package/dist/esm/assets/locale/messages_es.json +1 -1
- package/dist/esm/assets/locale/messages_fr.json +2 -2
- package/dist/esm/assets/locale/messages_nl.json +3 -3
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +6 -6
- package/dist/esm/assets/locale/messages_sv.json +9 -9
- package/dist/esm/assets/locale/messages_tr.json +2 -2
- package/dist/esm/assets/locale/messages_uk.json +1 -1
- package/dist/esm/state/CollectionState.js +2 -0
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/util/mobileDetection.js +1 -1
- package/dist/esm/util/mobileDetection.js.map +1 -1
- package/dist/types/state/CollectionState.d.ts +9 -0
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","_FetchTotalState","MAX_RETRIES","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","rest","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","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","type","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","hooks","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","errorHandler","history","fetchErrorMessage","itemKey","itemName","translate","initDependencies","showToast","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","_this$errorHandler","reportRetryAttempt","QueryState","limit","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","fetchTotal","FetchTotalState","collection","fetchesHistory","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","scrollToTop","_this$scrollableConte","scrollTo","top","left","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","hasNext","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","_addToFetchesHistory","offset","push","itemsKeys","flatMap","p","item","queryPageInfo","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setHasNext","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","totalStatus","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","multiple","forceDirection","origin","changeSort","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","addItem","addItems","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","skipFilterListeners","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","getItem","key","keyedItem","get","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 PatternsErrorHandler,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n SortOrder,\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 { addEventListener, OfflineError, TypedEmitter } from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\nconst MAX_RETRIES = 3;\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 triggerReachBottomListener: () => unknown;\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 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\n/**\n * Hooks for extending or customizing the lifecycle of a collection state.\n *\n * Unlike regular events (which are fire-and-forget), hooks can return a value\n * that is consumed by the process they are part of. This allows business logic\n * to influence behavior at specific points in the flow.\n */\nexport interface CollectionStateHooks {\n beforeInitialFetch: (params: {\n isStale: boolean;\n }) => unknown | Promise<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 errorHandler: PatternsErrorHandler | undefined;\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 fetchTotal?: (query: ComputedQuery<F>) => Promise<number>;\n readonly fetchErrorMessage?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly hooks?: TypedEmitter<CollectionStateHooks>;\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 fetchesHistory: {\n itemsKeys: string[];\n queryPageInfo: {\n page: number;\n cursor: string | null | undefined;\n offset: number;\n };\n }[];\n readonly bulkSelect: BulkSelectState<T>;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n readonly errorHandler;\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 readonly hooks;\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 this.hooks =\n params.hooks ??\n (new EventEmitter() as TypedEmitter<CollectionStateHooks>);\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 this.errorMonitor = params.errorMonitor;\n this.errorHandler = params.errorHandler;\n this.onlineState = params.onlineState;\n this.history = params.history;\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 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 (failureCount < MAX_RETRIES) {\n this.errorHandler?.reportRetryAttempt?.(error);\n return true;\n }\n\n return false;\n },\n ...defaultQueryOptions,\n },\n );\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 fetchTotal: params.fetchTotal\n ? new FetchTotalState<T, F>({\n collection: this,\n queryCache: this.queryCache,\n fetchTotal: params.fetchTotal,\n })\n : undefined,\n });\n\n this._resetReactQuery();\n\n this.fetchesHistory = [];\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 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 ...rest\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n ...rest,\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 hasNext,\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 hasNext,\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\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 _addToFetchesHistory(newPages: DataResultKeyed<T>[]) {\n const { page, cursor, offset } = this.query.asComputed;\n\n this.fetchesHistory.push({\n itemsKeys: newPages\n .flatMap((p) => p.items)\n .map((item) => this.itemKey(item)),\n queryPageInfo: {\n page,\n cursor,\n offset,\n },\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, hasNext } = 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 this._addToFetchesHistory(newPages);\n\n result.setSupportTotal(lastPage.total != null);\n result.setHasNext(hasNext);\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 totalStatus() {\n return this.result.totalStatus;\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 }\n this._resetReactQuery();\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n {\n clearResult,\n multiple,\n forceDirection,\n }: {\n clearResult?: boolean;\n multiple?: boolean;\n forceDirection?: SortOrder;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, {\n multiple,\n forceDirection,\n });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort({\n clearResult,\n multiple,\n forceDirection,\n });\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 addItem(newItem: T) {\n return this.addItems([newItem]);\n }\n\n addItems(newItems: T[]) {\n const changeResult = this.result.addItems(newItems);\n this.invalidate();\n return changeResult.rollback;\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 hooks,\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 this._resetReactQuery();\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = hooks.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({\n skipInitialFetch,\n skipFilterListeners,\n }: { skipInitialFetch?: boolean; skipFilterListeners?: 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({ skipFilterListeners }),\n this._registerQueryEvents(),\n result.init(),\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","_FetchTotalState","MAX_RETRIES","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","rest","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","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","type","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","hooks","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","searchInputRef","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","errorHandler","history","fetchErrorMessage","itemKey","itemName","translate","initDependencies","showToast","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","_this$errorHandler","reportRetryAttempt","QueryState","limit","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","fetchTotal","FetchTotalState","collection","fetchesHistory","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","scrollToTop","_this$scrollableConte","scrollTo","top","left","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","hasNext","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","_addToFetchesHistory","offset","push","itemsKeys","flatMap","p","item","queryPageInfo","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setHasNext","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","totalStatus","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","multiple","forceDirection","origin","changeSort","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","addItem","addItems","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","skipFilterListeners","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","getItem","key","keyedItem","get","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 PatternsErrorHandler,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n SortOrder,\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 { addEventListener, OfflineError, TypedEmitter } from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\nconst MAX_RETRIES = 3;\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 triggerReachBottomListener: () => unknown;\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 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\n/**\n * Hooks for extending or customizing the lifecycle of a collection state.\n *\n * Unlike regular events (which are fire-and-forget), hooks can return a value\n * that is consumed by the process they are part of. This allows business logic\n * to influence behavior at specific points in the flow.\n */\nexport interface CollectionStateHooks {\n beforeInitialFetch: (params: {\n isStale: boolean;\n }) => unknown | Promise<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 errorHandler: PatternsErrorHandler | undefined;\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 fetchTotal?: (query: ComputedQuery<F>) => Promise<number>;\n readonly fetchErrorMessage?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly hooks?: TypedEmitter<CollectionStateHooks>;\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 * Reference to the search input element to allow programmatic focus\n */\n searchInputRef?: { focus: () => void } | null;\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 fetchesHistory: {\n itemsKeys: string[];\n queryPageInfo: {\n page: number;\n cursor: string | null | undefined;\n offset: number;\n };\n }[];\n readonly bulkSelect: BulkSelectState<T>;\n scrollableContent?: ScrollableContent | null = null;\n searchInputRef?: { focus: () => void } | null = null;\n readonly errorMonitor: ErrorMonitor;\n readonly errorHandler;\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 readonly hooks;\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 this.hooks =\n params.hooks ??\n (new EventEmitter() as TypedEmitter<CollectionStateHooks>);\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 searchInputRef: 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 this.errorMonitor = params.errorMonitor;\n this.errorHandler = params.errorHandler;\n this.onlineState = params.onlineState;\n this.history = params.history;\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 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 (failureCount < MAX_RETRIES) {\n this.errorHandler?.reportRetryAttempt?.(error);\n return true;\n }\n\n return false;\n },\n ...defaultQueryOptions,\n },\n );\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 fetchTotal: params.fetchTotal\n ? new FetchTotalState<T, F>({\n collection: this,\n queryCache: this.queryCache,\n fetchTotal: params.fetchTotal,\n })\n : undefined,\n });\n\n this._resetReactQuery();\n\n this.fetchesHistory = [];\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 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 ...rest\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n ...rest,\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 hasNext,\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 hasNext,\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\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 _addToFetchesHistory(newPages: DataResultKeyed<T>[]) {\n const { page, cursor, offset } = this.query.asComputed;\n\n this.fetchesHistory.push({\n itemsKeys: newPages\n .flatMap((p) => p.items)\n .map((item) => this.itemKey(item)),\n queryPageInfo: {\n page,\n cursor,\n offset,\n },\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, hasNext } = 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 this._addToFetchesHistory(newPages);\n\n result.setSupportTotal(lastPage.total != null);\n result.setHasNext(hasNext);\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 totalStatus() {\n return this.result.totalStatus;\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 }\n this._resetReactQuery();\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n {\n clearResult,\n multiple,\n forceDirection,\n }: {\n clearResult?: boolean;\n multiple?: boolean;\n forceDirection?: SortOrder;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, {\n multiple,\n forceDirection,\n });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort({\n clearResult,\n multiple,\n forceDirection,\n });\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 addItem(newItem: T) {\n return this.addItems([newItem]);\n }\n\n addItems(newItems: T[]) {\n const changeResult = this.result.addItems(newItems);\n this.invalidate();\n return changeResult.rollback;\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 hooks,\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 this._resetReactQuery();\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = hooks.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({\n skipInitialFetch,\n skipFilterListeners,\n }: { skipInitialFetch?: boolean; skipFilterListeners?: 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({ skipFilterListeners }),\n this._registerQueryEvents(),\n result.init(),\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":[]}
|
|
@@ -10,7 +10,7 @@ const MOBILE_USER_AGENT_REGEX = exports.MOBILE_USER_AGENT_REGEX = /mobi/i;
|
|
|
10
10
|
* @returns true if the device is detected as mobile, false otherwise
|
|
11
11
|
*/
|
|
12
12
|
const isMobileDevice = () => {
|
|
13
|
-
if (typeof navigator === 'undefined') {
|
|
13
|
+
if (typeof navigator === 'undefined' || navigator.userAgent == null) {
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
16
|
return MOBILE_USER_AGENT_REGEX.test(navigator.userAgent.toLowerCase());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MOBILE_USER_AGENT_REGEX","exports","isMobileDevice","navigator","
|
|
1
|
+
{"version":3,"names":["MOBILE_USER_AGENT_REGEX","exports","isMobileDevice","navigator","userAgent","test","toLowerCase"],"sources":["../../../src/util/mobileDetection.ts"],"sourcesContent":["export const MOBILE_USER_AGENT_REGEX = /mobi/i;\n\n/**\n * Detects if the current device is mobile based on user agent string.\n *\n * @returns true if the device is detected as mobile, false otherwise\n */\nexport const isMobileDevice = (): boolean => {\n if (typeof navigator === 'undefined' || navigator.userAgent == null) {\n return false;\n }\n\n return MOBILE_USER_AGENT_REGEX.test(navigator.userAgent.toLowerCase());\n};\n"],"mappings":";;;;AAAO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,OAAO;;AAE9C;AACA;AACA;AACA;AACA;AACO,MAAME,cAAc,GAAGA,CAAA,KAAe;EAC3C,IAAI,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,CAACC,SAAS,IAAI,IAAI,EAAE;IACnE,OAAO,KAAK;EACd;EAEA,OAAOJ,uBAAuB,CAACK,IAAI,CAACF,SAAS,CAACC,SAAS,CAACE,WAAW,CAAC,CAAC,CAAC;AACxE,CAAC;AAACL,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"cairo.entityPage.header.subscribe.CTA": "Přihlásit odběr",
|
|
46
46
|
"cairo.customFields.fieldType.date": "Datum",
|
|
47
47
|
"cairo.search.Tab.noresults.title": "V záložce „{tabName}“ nebyly nalezeny žádné výsledky",
|
|
48
|
-
"cairo.tags.collectionPage.tagsColumn.title": "
|
|
48
|
+
"cairo.tags.collectionPage.tagsColumn.title": "Štítky",
|
|
49
49
|
"cairo.emptyState.filters.nothingFound.description": "Zkuste upravit filtry, abyste našli, co hledáte.",
|
|
50
50
|
"cairo.customFields.fieldType.numberInteger.placeholder": "např. 30",
|
|
51
51
|
"cairo.appliedFilters.applyAndClose.CTA": "Použít filtry a zavřít",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
"cairo.customFields.updateDataExtension.fqdn-not-extensible.error": "Toto pole nemůžete upravit.",
|
|
228
228
|
"cairo.filtersPanel.numRange.minRange.consumer.error": "{minAmount, plural, one {Hodnota musí být 1 nebo více.} few {Hodnota musí být {minAmount,number} nebo více.} many {Hodnota musí být {minAmount,number} nebo více.} other {Hodnota musí být {minAmount,number} nebo více.}}",
|
|
229
229
|
"cairo.manageView.saveChanges.error.toast": "Vaše změny nebyly kvůli technickým potížím uloženy.",
|
|
230
|
-
"cairo.tags.collectionPage.tagsColumn.emptyState.body": "
|
|
230
|
+
"cairo.tags.collectionPage.tagsColumn.emptyState.body": "Štítky vám pomáhají filtrovat a organizovat položky.",
|
|
231
231
|
"cairo.emptyState.title.nothingAvailable": "Nic k zobrazení",
|
|
232
232
|
"cairo.tags.fqdn-not-found.error.cta": "Kontaktovat podporu",
|
|
233
233
|
"cairo.toast.undo": "Zpět",
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
"airo.tags.collectionPage.popover.emptyState.body.asLabels": "Štítky vám pomáhají filtrovat a organizovat položky.",
|
|
286
286
|
"cairo.folders.showAll.button": "Vše",
|
|
287
287
|
"cairo.dragAndDrop.reorderMode.discardChanges.description": "Are you sure you want to cancel changes? Your changes won’t be saved.",
|
|
288
|
-
"cairo.tags.tagsWidget.emptyState.body": "
|
|
288
|
+
"cairo.tags.tagsWidget.emptyState.body": "Štítky vám pomáhají filtrovat a organizovat položky.",
|
|
289
289
|
"cairo.customFields.fieldType.date.placeholder": "Vyberte datum",
|
|
290
290
|
"cairo.table.advanced-sorting.title.tooltip": "Třídění je použito podle pořadí vybraných sloupců.",
|
|
291
291
|
"cairo.tags.popover.bulkItemLimit.tooltip.asLabels": "Štítky lze přiřadit najednou pouze ke 100 položkám.",
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
"cairo.tags.manageTags.modal.deleteModal.title.asLabels": "Odstranit tento štítek?",
|
|
305
305
|
"cairo.customFields.fieldType.dropdownList.Name.placeholder": "Např. Země",
|
|
306
306
|
"cairo.selectorModal.searchEmptyState.changeFilter.subtitle": "Zkuste změnit filtr.",
|
|
307
|
-
"cairo.tags.collectionPage.add.CTA": "Přiřadit
|
|
307
|
+
"cairo.tags.collectionPage.add.CTA": "Přiřadit štítek",
|
|
308
308
|
"cairo.tags.loadTags.error.CTA.asLabels": "Znovu načíst štítky",
|
|
309
309
|
"cairo.tags.collectionPage.popover.emptyState.body": "Uspořádejte položky pomocí štítků. Vytvořte první štítek ve vyhledávání.",
|
|
310
310
|
"cairo.tags.collectionPage.popover.close.CTA": "Zavřít",
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
"cairo.tags.tagsWidget.input.placeholder": "Zadejte název nového tagu",
|
|
337
337
|
"cairo.entity.item": "{num, plural, =0 {položky} one {položka} few {položky} many {položek} other {položek}}",
|
|
338
338
|
"cairo.entityPage.widgetError.TPAconnectionFail.description": "Objevily se technické potíže a tento oddíl se nám nepodařilo načíst. Zkuste oddíl obnovit.",
|
|
339
|
-
"cairo.tags.tagsWidget.subtitle": "
|
|
339
|
+
"cairo.tags.tagsWidget.subtitle": "Štítky vám pomáhají filtrovat a zachovávat pořádek.",
|
|
340
340
|
"cairo.customFields.archive.modal.CTA": "Archivovat",
|
|
341
341
|
"cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip": "Umožněte návštěvníkům webu zobrazovat nebo upravovat vstup tohoto pole. ",
|
|
342
342
|
"cairo.customFields.delete.error.toast.CTA": "Zkusit znovu",
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
"cairo.manageView.Rename.modal.title": "Přejmenovat zobrazení",
|
|
396
396
|
"cairo.tags.collectionPage.tagsColumn.title.asLabels": "Štítky",
|
|
397
397
|
"cairo.table.summaryBar.loadError": "Couldn't load summary row.",
|
|
398
|
-
"cairo.tags.tagsWidget.title": "
|
|
398
|
+
"cairo.tags.tagsWidget.title": "Štítky",
|
|
399
399
|
"cairo.customFields.entityPage.emptyState.subtitle": "Zde se zobrazí uživatelská pole, pokud jej uživatelé vyplní.",
|
|
400
400
|
"cairo.archivedFields.title": "Archivovaná pole",
|
|
401
401
|
"cairo.searchPlaceholder": "Hledat...",
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
"cairo.customFields.modal.dropDownlist.option.error": "Tento název již existuje. Zkuste jiný.",
|
|
413
413
|
"cairo.appliedFilters.discardChanges.CTA": "Změny neukládat",
|
|
414
414
|
"cairo.tags.bulkItemUpdate.updatingModal.body.asLabels": "To může chvíli trvat. Ponechte tuto záložku otevřenou, dokud nebude aktualizace dokončena. ",
|
|
415
|
-
"airo.tags.collectionPage.popover.emptyState.body": "
|
|
415
|
+
"airo.tags.collectionPage.popover.emptyState.body": "Štítky vám pomáhají filtrovat a organizovat položky.",
|
|
416
416
|
"cairo.saveViewModal.error.message.unexpected": "Toto zobrazení jsme v tuto chvíli nemohli uložit. Zkuste to za pár minut znovu.",
|
|
417
417
|
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Prozkoumat související aplikace",
|
|
418
418
|
"cairo.tags.manageTags.modal.list.input.validation.maxLength.asLabels": "Štítky musí mít méně jak {count, plural, other {# znaků}}",
|
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
"cairo.customFields.manageFields.title": "Spravovat vlastní pole",
|
|
515
515
|
"cairo.technical.error.title": "Vaše položky se nám nepodařilo načíst",
|
|
516
516
|
"cairo.customFields.fieldType.shortText.placeholder": "např. Praha",
|
|
517
|
-
"cairo.tags.manageTags.modal.emptyState.body": "
|
|
517
|
+
"cairo.tags.manageTags.modal.emptyState.body": "Štítky vám pomáhají filtrovat a organizovat položky.",
|
|
518
518
|
"cairo.selectPlaceholder": "Vyberte...",
|
|
519
519
|
"cairo.tags.popover.tagCreated.toast.success.asLabels": "Štítek byl vytvořen.",
|
|
520
520
|
"cairo.errorHandler.requestID.tooltip.description": "If you report this error Customer Care, share this request ID so they can investigate.",
|
|
@@ -527,7 +527,7 @@
|
|
|
527
527
|
"cairo.tags.bulkItemUpdate.toast.error": "{total, plural, one {1 tag nebylo možné aktualizovat kvůli technickým potížím.} few {{total,number} tagy nebylo možné aktualizovat kvůli technickým potížím.} many {{total,number} tagů nebylo možné aktualizovat kvůli technickým potížím.} other {{total,number} tagů nebylo možné aktualizovat kvůli technickým potížím.}}",
|
|
528
528
|
"cairo.tags.bulkItemUpdate.updatingModal.body": "To může chvíli trvat. Ponechte tuto záložku otevřenou, dokud nebude aktualizace dokončena. ",
|
|
529
529
|
"cairo.archivedFields.more-actions.restore": "Obnovit",
|
|
530
|
-
"cairo.tags.tagsWidget.add.CTA": "Přiřadit
|
|
530
|
+
"cairo.tags.tagsWidget.add.CTA": "Přiřadit štítek",
|
|
531
531
|
"cairo.table.clearFilters.button": "Vymazat vše",
|
|
532
532
|
"cairo.table.gridView": "Mřížka",
|
|
533
533
|
"cairo.export.selectedItems": "Vybráno",
|
|
@@ -338,7 +338,7 @@
|
|
|
338
338
|
"cairo.entityPage.widgetError.TPAconnectionFail.description": "Der opstod et teknisk problem, og vi kunne ikke indlæse dette afsnit. Genindlæs for at prøve igen.",
|
|
339
339
|
"cairo.tags.tagsWidget.subtitle": "Tags hjælper dig med at filtrere og holde orden.",
|
|
340
340
|
"cairo.customFields.archive.modal.CTA": "Arkivér",
|
|
341
|
-
"cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip": "Tillad besøgende at
|
|
341
|
+
"cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip": "Tillad besøgende at læse eller redigere teksten i dette felt. ",
|
|
342
342
|
"cairo.customFields.delete.error.toast.CTA": "Prøv igen",
|
|
343
343
|
"cairo.export.exportFailed": "Eksport fejlede",
|
|
344
344
|
"cairo.export.filteredItems": "Filtreret",
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
"cairo.archivedFields.title": "Arkiverede felter",
|
|
401
401
|
"cairo.searchPlaceholder": "Søg ...",
|
|
402
402
|
"cairo.tags.manageTags.modal.deleteModal.title": "Vil du slette dette tag?",
|
|
403
|
-
"cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Tillad apps fra App Market at læse eller skrive dette
|
|
403
|
+
"cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Tillad apps fra App Market at læse eller skrive tekst i dette felt.",
|
|
404
404
|
"cairo.emptyState.additem.title": "Tilføj dit første element",
|
|
405
405
|
"cairo.tags.manageTags.modal.list.input.validation.maxLength": "Tags skal være under {count, plural, other {# tegn}}",
|
|
406
406
|
"cairo.selector.modal.items.selected": "{total, plural, one {1 element valgt} other {{total,number} elementer valgt}}",
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
"cairo.customFields.url-input.error": "Ingresa una URL válida. P. ej., https://www.wix.com",
|
|
378
378
|
"cairo.noFiltersApplied.validationTooltip": "Agrega o descarta un filtro o una columna para guardar esta vista.",
|
|
379
379
|
"cairo.customFields.placeholder.url": "P. ej., Página de inicio",
|
|
380
|
-
"cairo.customFields.emptyState.subtitle": "Cuando tengas campos, podrás hacer un seguimiento de la información que
|
|
380
|
+
"cairo.customFields.emptyState.subtitle": "Cuando tengas campos, podrás hacer un seguimiento de la información que recopilas aquí.",
|
|
381
381
|
"cairo.tags.collectionPage.popover.loadTags.error.body.asLabels": "No se pudieron cargar las etiquetas por un problema técnico de nuestra parte.",
|
|
382
382
|
"cairo.entityPage.header.activate.CTA": "Activar",
|
|
383
383
|
"cairo.tags.manageTags.modal.list.action.rename.CTA": "Renombrar",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"cairo.manageView.setAsDefault.CTA": "Définir comme vue par défaut",
|
|
36
36
|
"cairo.customFields.addCustomField.modal.advancedSettings.siteCollaborators": "Collaborateurs du site",
|
|
37
37
|
"cairo.passiveEmptyState.title": "Aucun élément pour le moment",
|
|
38
|
-
"cairo.emptyState.title": "
|
|
38
|
+
"cairo.emptyState.title": "Aucun élément à afficher",
|
|
39
39
|
"cairo.sortableColumns.modal.cancel": "Annuler",
|
|
40
40
|
"cairo.customFields.writePermission.tooltip": "Cette option est disponible uniquement pour les propriétaires et les copropriétaires.",
|
|
41
41
|
"cairo.customFields.manageFields.subtitle": "Ajoutez, modifiez ou archivez vos champs personnalisés.",
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
"cairo.filtersPanel.numRange.minRange.consumer.error": "{minAmount, plural, one {La valeur doit être égale ou supérieure à 1.} other {La valeur doit être égale ou supérieure à {minAmount,number}.}}",
|
|
229
229
|
"cairo.manageView.saveChanges.error.toast": "En raison d’un problème technique, vos modifications n’ont pas été enregistrées.",
|
|
230
230
|
"cairo.tags.collectionPage.tagsColumn.emptyState.body": "Les libellés vous permettent de filtrer et d'organiser vos éléments.",
|
|
231
|
-
"cairo.emptyState.title.nothingAvailable": "
|
|
231
|
+
"cairo.emptyState.title.nothingAvailable": "Aucun élément à afficher",
|
|
232
232
|
"cairo.tags.fqdn-not-found.error.cta": "Contacter l'Assistance",
|
|
233
233
|
"cairo.toast.undo": "Annuler",
|
|
234
234
|
"cairo.customFields.fieldType.numberDecimal.Name.placeholder": "Ex. Prix",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"cairo.filtersPanel.dateRange.title": "Datumbereik",
|
|
135
135
|
"section.header.folders": "Mappen",
|
|
136
136
|
"cairo.tags.manageTags.modal.list.input.save.CTA": "Opslaan",
|
|
137
|
-
"cairo.subtitle.learnMore": "
|
|
137
|
+
"cairo.subtitle.learnMore": "Lees meer",
|
|
138
138
|
"cairo.table.saveViewModal.placeholder": "bijv. Favorieten",
|
|
139
139
|
"cairo.filtersPanel.date.7days": "Afgelopen 7 dagen",
|
|
140
140
|
"cairo.customFields.fieldType.longText.placeholder": "Voer hier je tekst in",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"cairo.provider-not-found.error": "There was a technical issue loading the items.",
|
|
147
147
|
"cairo.dragAndDrop.reorder-cancelled.sr": "Slepen geannuleerd.",
|
|
148
148
|
"cairo.appliedFilters.discardChanges.description": "De geselecteerde filters worden niet toegepast op deze weergave.",
|
|
149
|
-
"cairo.customFields.addCustomField.modal.advancedSettings.write": "
|
|
149
|
+
"cairo.customFields.addCustomField.modal.advancedSettings.write": "Bewerken",
|
|
150
150
|
"cairo.archivedFields.more-actions.delete": "Verwijderen",
|
|
151
151
|
"cairo.pickerModal.back.button": "Terug",
|
|
152
152
|
"cairo.customFields.deleted.undo.CTA": "Annuleren",
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
"cairo.archivedFields.title": "Gearchiveerde velden",
|
|
401
401
|
"cairo.searchPlaceholder": "Zoeken...",
|
|
402
402
|
"cairo.tags.manageTags.modal.deleteModal.title": "Deze tag verwijderen?",
|
|
403
|
-
"cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Sta toe dat apps van de Appmarkt de invoer van dit veld kunnen lezen of
|
|
403
|
+
"cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Sta toe dat apps van de Appmarkt de invoer van dit veld kunnen lezen of bewerken.",
|
|
404
404
|
"cairo.emptyState.additem.title": "Voeg je eerste item toe",
|
|
405
405
|
"cairo.tags.manageTags.modal.list.input.validation.maxLength": "Tags moeten kleiner zijn dan {count, plural, other {# tekens}}",
|
|
406
406
|
"cairo.selector.modal.items.selected": "{total, plural, one {1 item geselecteerd} other {{total,number} items geselecteerd}}",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
"cairo.customFields.showAll.button": "Pokaż",
|
|
112
112
|
"cairo.customFields.successToast": "Dodano pole niestandardowe.",
|
|
113
113
|
"cairo.customFields.archive.modal.title.enabled": "Zarchiwizować {selectedField}?",
|
|
114
|
-
"cairo.customFields.addCustomField.modal.subtitle.note": "Uwaga: to pole zostanie dodane do wszystkich
|
|
114
|
+
"cairo.customFields.addCustomField.modal.subtitle.note": "Uwaga: to pole zostanie dodane do wszystkich elementów.",
|
|
115
115
|
"cairo.entityPage.widgetError.TPAconnectionFail.CTA": "Odśwież sekcję",
|
|
116
116
|
"cairo.dragAndDrop.error.toast": "Z powodu problemu technicznego wprowadzone przez Ciebie zmiany w kolejności elementów nie zostały zapisane.",
|
|
117
117
|
"cairo.table.custom-columns.subtitle": "Wybierz kolumny do pokazania.",
|