@wix/bex-core 2.76.0 → 2.78.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 +3 -2
- package/dist/cjs/assets/locale/messages_da.json +4 -3
- package/dist/cjs/assets/locale/messages_de.json +2 -1
- package/dist/cjs/assets/locale/messages_en.json +3 -2
- package/dist/cjs/assets/locale/messages_es.json +4 -3
- package/dist/cjs/assets/locale/messages_fr.json +3 -2
- package/dist/cjs/assets/locale/messages_hi.json +2 -1
- package/dist/cjs/assets/locale/messages_id.json +3 -2
- package/dist/cjs/assets/locale/messages_it.json +3 -2
- package/dist/cjs/assets/locale/messages_ja.json +4 -3
- package/dist/cjs/assets/locale/messages_ko.json +2 -1
- package/dist/cjs/assets/locale/messages_nl.json +3 -2
- package/dist/cjs/assets/locale/messages_no.json +4 -3
- package/dist/cjs/assets/locale/messages_pl.json +3 -2
- package/dist/cjs/assets/locale/messages_pt.json +3 -2
- package/dist/cjs/assets/locale/messages_ru.json +3 -2
- package/dist/cjs/assets/locale/messages_sv.json +3 -2
- package/dist/cjs/assets/locale/messages_th.json +3 -2
- package/dist/cjs/assets/locale/messages_tr.json +3 -2
- package/dist/cjs/assets/locale/messages_uk.json +3 -2
- package/dist/cjs/assets/locale/messages_vi.json +3 -2
- package/dist/cjs/assets/locale/messages_zh.json +3 -2
- package/dist/cjs/services/translations.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +1 -0
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/FetchTotalState.js +3 -2
- package/dist/cjs/state/FetchTotalState.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +3 -2
- package/dist/esm/assets/locale/messages_da.json +4 -3
- package/dist/esm/assets/locale/messages_de.json +2 -1
- package/dist/esm/assets/locale/messages_en.json +3 -2
- package/dist/esm/assets/locale/messages_es.json +4 -3
- package/dist/esm/assets/locale/messages_fr.json +3 -2
- package/dist/esm/assets/locale/messages_hi.json +2 -1
- package/dist/esm/assets/locale/messages_id.json +3 -2
- package/dist/esm/assets/locale/messages_it.json +3 -2
- package/dist/esm/assets/locale/messages_ja.json +4 -3
- package/dist/esm/assets/locale/messages_ko.json +2 -1
- package/dist/esm/assets/locale/messages_nl.json +3 -2
- package/dist/esm/assets/locale/messages_no.json +4 -3
- package/dist/esm/assets/locale/messages_pl.json +3 -2
- package/dist/esm/assets/locale/messages_pt.json +3 -2
- package/dist/esm/assets/locale/messages_ru.json +3 -2
- package/dist/esm/assets/locale/messages_sv.json +3 -2
- package/dist/esm/assets/locale/messages_th.json +3 -2
- package/dist/esm/assets/locale/messages_tr.json +3 -2
- package/dist/esm/assets/locale/messages_uk.json +3 -2
- package/dist/esm/assets/locale/messages_vi.json +3 -2
- package/dist/esm/assets/locale/messages_zh.json +3 -2
- package/dist/esm/state/CollectionState.js +1 -0
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/FetchTotalState.js +2 -1
- package/dist/esm/state/FetchTotalState.js.map +1 -1
- package/dist/types/services/translations.d.ts +1 -1
- package/dist/types/services/translations.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/FetchTotalState.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","_FetchTotalState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","status","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","onNewPageAdded","onNewPageStart","emitter","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","history","itemKey","itemName","translate","initDependencies","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","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","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","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","origin","changeSort","multiple","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","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 QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined | null;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly 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}\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\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n get status() {\n return this.result.status;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n this.errorMonitor = params.errorMonitor;\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 (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\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._resetReactQuery();\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.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 } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n _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 } = 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\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 params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n 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 emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n 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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAiBA,IAAAC,KAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAF,OAAA;AAQA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAOA,IAAAW,KAAA,GAAAX,OAAA;AAOA,IAAAY,gBAAA,GAAAZ,OAAA;AAGA,IAAAa,gBAAA,GAAAb,OAAA;AA2KO,MAAMc,eAAe,CAE5B;EA4EE,IAAIC,eAAeA,CAAA,EAAG;IACpB,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAI;IACtB,OAAO;MACLC,QAAQ,EAAE,IAAI,CAACC,SAAS,CAACF,KAAK,CAACG,UAAU;IAC3C,CAAC;EACH;EAEA,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,MAAM,CAACD,WAAW;EAChC;EAEA,IAAIE,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,MAAM,CAACC,MAAM;EAC3B;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACC,WAAW,CAACD,QAAQ;EAClC;EAEA,IAAIE,iBAAiBA,CAAA,EAAG;IACtB,IACE,IAAI,CAACC,kBAAkB,IAAI,IAAI,IAC/BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EACrC;MACA,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;IACzD;IACA,OAAO,IAAI,CAACJ,kBAAkB;EAChC;EAEAK,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BA1FF,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBAyBhC,IAAIC,oBAAY,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BAQV,IAAIE,4BAAa,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,2BACnB,IAAIE,4BAAa,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,oBAE1B,IAAIG,oBAAS,CAAC,CAAC;IAEnC;AACF;AACA;AACA;IAHE,IAAAJ,gBAAA,CAAAC,OAAA,0BAIqD,QAAQ;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAEhDf,UAAgC,IAAK;MAChD,MAAM;QAAEmB;MAAU,CAAC,GAAG,IAAI;MAC1B,MAAM;QACJC,OAAO;QACPC,UAAU;QACVC,MAAM;QACNC,gBAAgB;QAChBC,6BAA6B;QAC7BC,uBAAuB;QACvBC,OAAO;QACP;QACA,GAAGC;MACL,CAAC,GAAG3B,UAAU;MAEd,OAAO,CAACmB,SAAS,EAAEQ,aAAa,CAAC;IACnC,CAAC;IAAA,IAAAb,gBAAA,CAAAC,OAAA,oBAmOU,MACTY,aAA+B,IACC;MAChC,MAAM;QACJC,KAAK;QACLC,KAAK;QACLC,SAAS,GAAG,IAAI;QAChBC,MAAM,GAAG;MACX,CAAC,GAAG,MAAM,IAAI,CAACC,SAAS,CAACL,aAAa,CAAC;MAEvC,OAAO;QACLC,KAAK;QACLC,KAAK;QACLC,SAAS;QACTC;MACF,CAAC;IACH,CAAC;IAAA,IAAAjB,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,iCA4BuB,MACtB,IAAIkB,OAAO,CAAQC,OAAO,IAAK;MAC7BC,qBAAqB,CAAC,MAAM;QAC1BA,qBAAqB,CAAC,MAAM;UAC1BD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;IAAA,IAAApB,gBAAA,CAAAC,OAAA,mBAEM,IAAAqB,YAAM,EAAEC,GAAY,IAAK;MACjC,IAAIA,GAAG,IAAI,IAAI,EAAE;QACf;MACF;MAEA,MAAM;QAAEhC,WAAW;QAAEiC,MAAM;QAAEC;MAAa,CAAC,GAAG,IAAI;MAClDC,OAAO,CAACC,KAAK,CAACJ,GAAG,CAAC;MAElB,MAAM;QAAEjC;MAAS,CAAC,GAAGC,WAAW;MAEhC,IAAI,EAAEgC,GAAG,YAAYK,kBAAY,CAAC,EAAE;QAClC,MAAMC,OAAO,GAAGL,MAAM,CAACM,OAAO,oBAAdN,MAAM,CAACM,OAAO,CAAG;UAC/BP,GAAG;UACHjC;QACF,CAAC,CAAC;QAEF,IAAI,CAACuC,OAAO,EAAE;UACZJ,YAAY,CAACM,gBAAgB,CAACR,GAAG,CAAC;QACpC;MACF;MAEA,IAAI,CAACS,eAAe,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;MACnC,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACC,YAAY,CAAC,CAAC;;MAEnB;MACA,MAAMC,OAAO,GAAG9C,QAAQ,GACpB,IAAI,CAAC+C,iBAAiB,CAAC;QACrBd,GAAG;QACHjC;MACF,CAAC,CAAC,GACF,IAAI;MAER,IAAI8C,OAAO,EAAE;QACX,IAAI,CAACE,SAAS,CAAC;UACbC,IAAI,EAAE,OAAc;UACpBH,OAAO;UACPI,MAAM,EAAE;QACV,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAAA,IAAAxC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBAiO+B,IAAAqB,YAAM,EAAC,YAAY;MAClD,MAAM;QACJvC,KAAK;QACLK,MAAM;QACNoC,MAAM,EAAE;UAAEiB,cAAc;UAAEC;QAAe,CAAC;QAC1CC;MACF,CAAC,GAAG,IAAI;MACR;MACA,IAAI,CAACvD,MAAM,CAACC,MAAM,CAACuD,OAAO,EAAE;QAC1B7D,KAAK,CAAC8D,UAAU,CAACC,QAAQ,CAAC,CAAC;MAC7B;MAEA,IAAI,CAACC,cAAc,GAAG,WAAW;MAEjC,MAAMC,uBAAuB,GAAGL,OAAO,CACpCM,SAAS,CAAC,cAAc,CAAC,CACzBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClB,MAAMC,mBAAmB,GAAGV,cAAc,oBAAdA,cAAc,CAAG;QAC3C3D,KAAK,EAAEA,KAAK,CAACG;MACf,CAAC,CAAC;MAEF,MAAM;QAAEmE,OAAO;QAAEC,YAAY;QAAEC;MAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;MACjE,MAAMH,OAAO;MAEb,IAAAI,iBAAW,EAAC,MAAM;QAChB,IAAIJ,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;UACzC,MAAMC,gBAAgB,GAAG,IAAI,CAACC,YAAY,CAAC,CAACN,YAAY,CAAC,CAAC;UAE1DC,iBAAiB,CAACM,OAAO,CAAEV,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;UAEvC,IAAIQ,gBAAgB,EAAE;YACpB,MAAM;cAAEG;YAAS,CAAC,GAAGH,gBAAgB;YACrC,MAAMI,oBAAoB,GAAG;cAC3BC,aAAa,EAAEF,QAAQ,CAACG,MAAM,CAC5B,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAGC,IAAI,CAACrD,KAAK,CAACsD,MAAM,EACtC,CACF,CAAC;cACDN,QAAQ;cACR/E,KAAK,EAAEK,MAAM,CAACD,WAAW;cACzBC,MAAM,EAAEA,MAAM,CAACF;YACjB,CAAC;YACD8D,uBAAuB,CAACa,OAAO,CAAEV,CAAC,IAAKA,CAAC,CAACY,oBAAoB,CAAC,CAAC;YAC/D,IAAIX,mBAAmB,IAAI,IAAI,EAAE;cAC/BA,mBAAmB,CAACW,oBAAoB,CAAC;YAC3C;YACAtB,cAAc,YAAdA,cAAc,CAAGsB,oBAAoB,CAAC;UACxC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAAA,IAAA/D,gBAAA,CAAAC,OAAA,2BA0XgB,IAAAqB,YAAM,EAAC,MAAM;MAC7B,MAAM;QAAE/B;MAAY,CAAC,GAAG,IAAI;MAC5B,MAAM;QAAE8E;MAAa,CAAC,GAAG9E,WAAW;MAEpC,IACE8E,YAAY,CAACC,SAAS,CAAC,CAAC,IACxB/E,WAAW,CAACD,QAAQ,IACpB,IAAI,CAACF,MAAM,CAACC,MAAM,CAACuD,OAAO,EAC1B;QACA,IAAI,IAAI,CAACG,cAAc,KAAK,WAAW,EAAE;UACvC;UACA,IAAI,CAACwB,qBAAqB,CAAC,CAAC;QAC9B,CAAC,MAAM;UACL;UACA,IAAI,CAACC,yBAAyB,CAAC;YAAEC,KAAK,EAAE;UAAK,CAAC,CAAC;QACjD;MACF;IACF,CAAC,CAAC;IAAA,IAAAzE,gBAAA,CAAAC,OAAA,+BAEqBX,QAAiB,IAAK;MAC3C,MAAMgE,YAAY,GAAG,IAAI,CAACtB,eAAe,CAAC,CAAC;MAE3C,IAAI1C,QAAQ,EAAE;QACZ,IAAI,CAACoF,eAAe,CAAC,CAAC;MACxB,CAAC,MAAM,IAAI,CAACpF,QAAQ,IAAIgE,YAAY,CAACqB,KAAK,CAACC,QAAQ,EAAE;QACnDtB,YAAY,CAACuB,QAAQ,CAAC;UACpBtC,IAAI,EAAE,OAAO;UACbZ,KAAK,EAAE,IAAIC,kBAAY,CAAC,8CAA8C;QACxE,CAAC,CAAC;QACF,IAAI,CAACO,YAAY,CAAC,CAAC;MACrB;IACF,CAAC;IAAA,IAAAnC,gBAAA,CAAAC,OAAA,2BAEiB,IAAAqB,YAAM,EAAC,MAAM;MAC7B,MAAM;QAAEwD;MAAS,CAAC,GAAG,IAAI;MAEzB,IAAIA,QAAQ,CAACzF,MAAM,CAACuD,OAAO,EAAE;QAC3BkC,QAAQ,CAACC,OAAO,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACP,yBAAyB,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;IAAA,IAAAxE,gBAAA,CAAAC,OAAA,4BAgKiB,IAAI+E,gCAAe,CAAgB,CAAC;IArnCrD,IAAI,CAACC,MAAM,GAAGlF,MAAM,CAACkF,MAAM;IAC3B,IAAI,CAACC,iBAAiB,GAAGnF,MAAM,CAACmF,iBAAiB;IACjD,IAAI,CAACC,gBAAgB,GAAGpF,MAAM,CAACoF,gBAAgB;IAC/C,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBb,qBAAqB,EAAEjD,YAAM,CAAC+D,KAAK;MACnCC,kBAAkB,EAAEhE,YAAM,CAAC+D,KAAK;MAChCb,yBAAyB,EAAElD,YAAM,CAAC+D,KAAK;MACvCE,eAAe,EAAEjE,YAAM,CAAC+D,KAAK;MAC7BlD,YAAY,EAAEb,YAAM,CAAC+D,KAAK;MAC1BzB,YAAY,EAAEtC,YAAM,CAAC+D,KAAK;MAC1B7E,MAAM,EAAEc,YAAM;MACdkE,IAAI,EAAElE,YAAM;MACZkC,KAAK,EAAElC,YAAM;MACbmE,IAAI,EAAEnE,YAAM;MACZoE,cAAc,EAAEpE,YAAM;MACtBqE,YAAY,EAAErE,YAAM;MACpBsE,UAAU,EAAEC,cAAQ;MACpBC,iBAAiB,EAAED,cAAQ;MAC3BE,iBAAiB,EAAEF,cAAQ;MAC3BG,iBAAiB,EAAEH,cAAQ;MAC3BI,cAAc,EAAEJ,cAAQ;MACxBK,cAAc,EAAEL,cAAQ;MACxBM,sBAAsB,EAAE7E,YAAM,CAAC+D,KAAK;MACpCtC,cAAc,EAAEqD,gBAAU,CAACC,GAAG;MAC9BC,wBAAwB,EAAEhF,YAAM;MAChCiF,iBAAiB,EAAEH,gBAAU,CAACC,GAAG;MACjCG,sBAAsB,EAAElF;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACjB,SAAS,GAAGN,MAAM,CAACM,SAAS;IACjC,IAAI,CAACoG,IAAI,GAAG1G,MAAM,CAAC0G,IAAI;IACvB,IAAI,CAACC,mBAAmB,GAAG3G,MAAM,CAAC2G,mBAAmB;IACrD,IAAI,CAACC,UAAU,GAAG5G,MAAM,CAAC4G,UAAU;IACnC,IAAI,CAAClF,YAAY,GAAG1B,MAAM,CAAC0B,YAAY;IACvC,IAAI,CAAClC,WAAW,GAAGQ,MAAM,CAACR,WAAW;IACrC,IAAI,CAACqH,OAAO,GAAG7G,MAAM,CAAC6G,OAAO;IAE7B,IAAI,CAACvE,iBAAiB,GAAGtC,MAAM,CAACsC,iBAAiB;IACjD,IAAI,CAACwE,OAAO,GAAG9G,MAAM,CAAC8G,OAAO;IAC7B,IAAI,CAACC,QAAQ,GAAG/G,MAAM,CAAC+G,QAAQ;IAC/B,IAAI,CAACC,SAAS,GAAGhH,MAAM,CAACgH,SAAS;IACjC,IAAI,CAAC7F,SAAS,GAAGnB,MAAM,CAACmB,SAAS;IACjC,IAAI,CAACM,MAAM,GAAGzB,MAAM,CAACyB,MAAM,IAAI,CAAC,CAAC;IAEjC,IAAI,CAACwF,gBAAgB,GAAGjH,MAAM,CAACiH,gBAAgB;IAE/C,IAAI,CAAC1E,SAAS,GAAGvC,MAAM,CAACuC,SAAS,KAAK,OAAO;MAAE2E,MAAM,EAAEA,CAAA,KAAM,CAAC;IAAE,CAAC,CAAC,CAAC;IAEnE,MAAMC,mBAAmB,GAAG;MAC1BC,OAAO,EAAE,IAAA7F,YAAM,EAAC,MAAM,IAAI,CAAC8F,QAAQ,CAAC,IAAI,CAACrI,KAAK,CAACG,UAAU,CAAC,CAAC;MAC3DmI,gBAAgB,EAAE,IAAI;MACtBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,GAAG;MACfC,SAAS,EAAE,MAAM;MACjB3F,OAAO,EAAE,IAAI,CAACA,OAAO;MACrB4F,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE,KAAK;MACnB,GAAG5H,MAAM,CAAC6H;IACZ,CAAC;IAED,IAAI,CAACC,WAAW,GAAG,IAAIC,iBAAW,CAAC;MACjCnB,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BoB,cAAc,EAAE;QACdC,OAAO,EAAEd;MACX;IACF,CAAC,CAAC;IAEF,IAAI,CAACe,aAAa,GAAG,IAAIC,mBAAa,CACpC,IAAI,CAACL,WAAW,EAChB;MACEM,KAAK,EAAEA,CAACC,YAAY,EAAEzG,KAAK,KAAK;QAC9B,IACE,IAAA0G,2BAAqB,EAAC1G,KAAK,EAAEyG,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC9I,QAAQ,CAAC,CAAC,CAAC,EACjE;UACA,OAAO,KAAK;QACd;QACA,OAAO8I,YAAY,GAAG,CAAC;MACzB,CAAC;MACD,GAAGlB;IACL,CACF,CAAC;IAED,IAAI,CAACnI,KAAK,GAAG,IAAIuJ,sBAAU,CAAC;MAC1BhI,OAAO,EAAEP,MAAM,CAACO,OAAO;MACvBE,MAAM,EAAET,MAAM,CAACS,MAAM;MACrB+H,KAAK,EAAExI,MAAM,CAACwI,KAAK;MACnB3B,OAAO,EAAE7G,MAAM,CAACmF,iBAAiB,GAAGnF,MAAM,CAAC6G,OAAO,GAAG4B,SAAS;MAC9DC,sBAAsB,EAAE1I,MAAM,CAAC0I;IACjC,CAAC,CAAC;IAEF,IAAI,CAACvG,gBAAgB,CAAC,CAAC;IAEvB,IAAI,CAACwG,kBAAkB,GACrB3I,MAAM,CAAC4I,iBAAiB,IACvB;MAAEC,OAAO,EAAE7I,MAAM,CAAC8I;IAAe,CAAuB;IAE3D,IAAI,CAACC,eAAe,GAAG,IAAIC,8BAAc,CAAC,IAAI,CAAC;IAE/C,IAAI,CAACC,wBAAwB,GAC3BjJ,MAAM,CAACiJ,wBAAwB,IAAI,UAAU;IAE/C,IAAI,CAAC5J,MAAM,GAAG,IAAI6J,kCAAgB,CAAO;MACvCpC,OAAO,EAAE9G,MAAM,CAAC8G,OAAO;MACvB1H,WAAW,EAAE,IAAI,CAACJ,KAAK,CAACmK,UAAU,CAAC,CAAC;MACpCC,UAAU,EAAEpJ,MAAM,CAACoJ,UAAU,GACzB,IAAIC,gCAAe,CAAO;QACxBC,UAAU,EAAE,IAAI;QAChB1C,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BwC,UAAU,EAAEpJ,MAAM,CAACoJ;MACrB,CAAC,CAAC,GACFX;IACN,CAAC,CAAC;IAEF,IAAI,CAACc,cAAc,GAAG,EAAE;IAExB,IAAI,CAACC,UAAU,GAAG,IAAIC,gCAAe,CAAI;MACvCC,yBAAyB,EAAE1J,MAAM,CAAC0J,yBAAyB;MAC3DC,oBAAoB,EAAE3J,MAAM,CAAC2J,oBAAoB;MACjDL,UAAU,EAAE,IAAI;MAChBM,WAAW,EAAEA,CAAA,KAAM;QAAA,IAAAC,qBAAA;QACjB,CAAAA,qBAAA,OAAI,CAACrD,iBAAiB,aAAtBqD,qBAAA,CAAwBC,QAAQ,CAAC;UAC/BC,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE;QACR,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,IAAIhK,MAAM,CAACiK,WAAW,EAAE;MACtB,IAAI,CAACtE,cAAc,CAAC3F,MAAM,CAACiK,WAAW,CAAC;IACzC;IAEA,IAAIjK,MAAM,CAAC2G,mBAAmB,EAAE;MAC9B,IAAI,CAACuD,eAAe,CAACC,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC7D;IAEA,IAAI,CAACC,QAAQ,GAAG,IAAA9I,YAAM,EAAC,CAAC;MAAE+I;IAAuC,CAAC,KAAK;MACrE,IAAI,CAAC1H,OAAO,CAAC2H,IAAI,CAAC,MAAM,EAAE;QAAED;MAAY,CAAC,CAAC;MAC1C,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC/D,wBAAwB,CAAC,CAAC;MACjC;MACA,OAAO,IAAI,CAACiE,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,GAAG,IAAI,CAACC,WAAW,CAClC,IAAI,CAACxF,MAAM,CAACyF,QAAQ,CAAC,IAAI,CAACN,QAAQ,EAAE,GAAG,CACzC,CAAC;IAED,IAAI,CAACO,UAAU,GAAG,IAAArJ,YAAM,EAAC,MAAO+I,WAAqB,IAAK;MACxD,MAAM;QACJ7I,MAAM,EAAE;UAAEoJ,QAAQ;UAAEC;QAAgB,CAAC;QACrClI,OAAO;QACP5D;MACF,CAAC,GAAG,IAAI;MAER,MAAM+L,kBAAkB,GAAGnI,OAAO,CAC/BM,SAAS,CAAC,aAAa,CAAC,CACxBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClByH,QAAQ,YAARA,QAAQ,CAAG;QACT7L,KAAK,EAAEA,KAAK,CAACG;MACf,CAAC,CAAC;MACFyD,OAAO,CAAC2H,IAAI,CAAC,QAAQ,EAAE;QAAED;MAAY,CAAC,CAAC;MAEvC,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC/D,wBAAwB,CAAC,CAAC;MACjC;MAEA,IAAI,IAAI,CAAC0C,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACO,UAAU,CAACwB,eAAe,CAAC,CAAC;MACnC;MAEA,OAAO,IAAI,CAACR,eAAe,CAAC;QAC1BS,eAAe,EAAGjL,MAAM,IAAK;UAC3B+K,kBAAkB,CAACjH,OAAO,CAAEV,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;UACtC0H,eAAe,YAAfA,eAAe,CAAG9K,MAAM,CAAC;QAC3B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAACkL,cAAc,GAAG,IAAI,CAAChG,MAAM,CAACyF,QAAQ,CAAC,IAAI,CAACC,UAAU,EAAE,GAAG,CAAC;EAClE;EAEAzI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAAC+F,aAAa,CAACiD,UAAU,CAC3B;MACE,GAAG,IAAI,CAACjD,aAAa,CAACkD,OAAO;MAC7B,GAAG,IAAI,CAACrM,eAAe;MACvByI,OAAO,EAAE;IACX,CAAC,EACD;MACEzF,OAAO,EAAE;IACX,CACF,CAAC;EACH;EAyBA4D,cAAcA,CAACsE,WAA6B,EAAE;IAC5C,MAAM;MACJlJ,KAAK;MACLC,KAAK,EAAEqK,UAAU;MACjBpK,SAAS,GAAG,IAAI;MAChBC,MAAM,GAAG;IACX,CAAC,GAAG+I,WAAW;IAEf,MAAMjJ,KAAK,GAAGqK,UAAU,IAAItK,KAAK,CAACsD,MAAM;IAExC,IAAI,CAACyD,WAAW,CAACwD,YAAY,CAC3B,IAAI,CAACvM,eAAe,CAACE,QAAQ,EAC7B;MACE8B,KAAK;MACLC,KAAK;MACLC,SAAS;MACTC;IACF,CACF,CAAC;EACH;EAuDAe,eAAeA,CAAA,EAAG;IAChB,MAAMjD,KAAK,GAAG,IAAI,CAACkJ,aAAa,CAACjG,eAAe,CAAC,CAAC;IAClD,OAAOjD,KAAK;EACd;EAEA,IAAI8J,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEAwC,mBAAmBA,CAAC;IAClBC,gBAAgB;IAChBC,gBAAgB;IAChBC;EAKF,CAAC,EAAE;IACD,MAAM;MAAE9I,OAAO;MAAEvD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAMsM,0BAA0B,GAAG/I,OAAO,CAACM,SAAS,CAAC,mBAAmB,CAAC;IAEzE,MAAM0I,cAAc,GAAGD,0BAA0B,CAACzH,MAAM,CACtD,CAAC2H,KAAK,EAAEC,QAAQ,KACdA,QAAQ,CAAC;MACPD,KAAK;MACLH,eAAe;MACftM;IACF,CAAC,CAAC,EACJoM,gBACF,CAAC;IAED,MAAMO,cAAc,GAAG,IAAI,CAACC,kBAAkB,CAACP,gBAAgB,CAAC;IAEhE,OAAO;MACLG,cAAc;MACdG;IACF,CAAC;EACH;EAEAC,kBAAkBA,CAACP,gBAAwB,EAAE;IAC3C,MAAM;MAAE7I,OAAO;MAAEvD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAM4M,uBAAuB,GAAGrJ,OAAO,CAACM,SAAS,CAAC,gBAAgB,CAAC;IACnE,OAAO+I,uBAAuB,CAAC/H,MAAM,CACnC,CAAClD,KAAK,EAAE8K,QAAQ,KACdA,QAAQ,CAAC;MACP9K,KAAK;MACL5B;IACF,CAAC,CAAC,EACJqM,gBACF,CAAC;EACH;EAEAS,oBAAoBA,CAACnI,QAA8B,EAAE;IACnD,MAAM;MAAEK,IAAI;MAAElD,MAAM;MAAEiL;IAAO,CAAC,GAAG,IAAI,CAACnN,KAAK,CAACG,UAAU;IAEtD,IAAI,CAACoK,cAAc,CAAC6C,IAAI,CAAC;MACvBC,SAAS,EAAEtI,QAAQ,CAChBuI,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACxL,KAAK,CAAC,CACvBoC,GAAG,CAAEqJ,IAAI,IAAK,IAAI,CAAC1F,OAAO,CAAC0F,IAAI,CAAC,CAAC;MACpCC,aAAa,EAAE;QACbrI,IAAI;QACJlD,MAAM;QACNiL;MACF;IACF,CAAC,CAAC;EACJ;EAEAtI,YAAYA,CAACoE,OAAmB,EAAE;IAChC,MAAM;MAAE5I,MAAM;MAAEyJ,cAAc;MAAElG;IAAQ,CAAC,GAAG,IAAI;IAEhD,MAAMmB,QAAQ,GAAGkE,OAAO,CACrB9E,GAAG,CAAEuJ,UAAU,IAAKA,UAAU,CAAC9H,KAAK,CAAC+H,IAAI,CAAC,CAC1CC,MAAM,CAAEC,CAAC,IAA8BA,CAAC,IAAI,IAAI,CAAC;IAEpD,IAAI,CAACzK,YAAY,CAAC,CAAC;IAEnB,IAAI2B,QAAQ,CAACM,MAAM,EAAE;MACnBzB,OAAO,CAAC2H,IAAI,CAAC,qBAAqB,CAAC;MAEnC,MAAMuC,QAAQ,GAAG/I,QAAQ,CAACA,QAAQ,CAACM,MAAM,GAAG,CAAC,CAAC;MAC9C,MAAM;QAAEpD,SAAS;QAAEC;MAAO,CAAC,GAAG4L,QAAQ;MAEtC,MAAMrB,gBAAgB,GAAGqB,QAAQ,CAAC9L,KAAK,IAAI8L,QAAQ,CAAC/L,KAAK,CAACsD,MAAM;MAChE,MAAMmH,gBAAgB,GAAGzH,QAAQ,CAACZ,GAAG,CAAEwJ,IAAI,IAAKA,IAAI,CAAC5L,KAAK,CAAC;MAE3D,MAAM;QAAE6K,cAAc;QAAEG;MAAe,CAAC,GAAG,IAAI,CAACR,mBAAmB,CAAC;QAClEC,gBAAgB;QAChBC,gBAAgB;QAChBC,eAAe,EAAErM,MAAM,CAAC0N;MAC1B,CAAC,CAAC;MAEF1N,MAAM,CAAC2N,QAAQ,CAAC;QACdC,WAAW,EAAEzB,gBAAgB;QAC7B0B,SAAS,EAAEtB;MACb,CAAC,CAAC;MAEFvM,MAAM,CAAC8N,SAAS,CAAC;QACfF,WAAW,EAAExB,gBAAgB;QAC7ByB,SAAS,EAAEnB;MACb,CAAC,CAAC;MAEF,IAAI,CAACG,oBAAoB,CAACnI,QAAQ,CAAC;MAEnC1E,MAAM,CAAC+N,eAAe,CAACN,QAAQ,CAAC9L,KAAK,IAAI,IAAI,CAAC;MAE9C8H,cAAc,CAACuE,SAAS,CAACnM,MAAM,CAAC;MAChC,IAAID,SAAS,IAAI,IAAI,EAAE;QACrB5B,MAAM,CAAC4B,SAAS,GAAGA,SAAS;MAC9B;MACA,IAAI,CAAC+B,cAAc,GAAG,QAAQ;MAE9BJ,OAAO,CAAC2H,IAAI,CAAC,eAAe,CAAC;MAE7B,OAAO;QACLxG;MACF,CAAC;IACH;IAEA,OAAO,IAAI;EACb;EAEA2G,WAAWA,CAAC4C,EAA+B,EAAE;IAC3C,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB,IAAI,IAAI,CAAClO,MAAM,CAACC,MAAM,CAACkO,MAAM,EAAE;QAC7B;MACF;MAEAF,EAAE,CAAC,GAAGC,IAAI,CAAC;IACb,CAAC;EACH;EAEAnL,YAAYA,CAAA,EAAG;IACb,MAAM;MAAE8F,aAAa;MAAE7I,MAAM;MAAEL;IAAM,CAAC,GAAG,IAAI;IAC7C,MAAM;MAAEM,MAAM;MAAEsC,KAAK;MAAE6L;IAAW,CAAC,GAAGvF,aAAa,CAACwF,mBAAmB,CACrExF,aAAa,CAACkD,OAChB,CAAC;IAED/L,MAAM,CAACC,MAAM,GAAG;MACd,GAAGqO,kBAAW,CAACrO,MAAM,CAAC;MACtBmO,UAAU;MACV7L;IACF,CAAmD;IACnDvC,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;EACvC;EAEAsE,KAAKA,CAAA,EAAG;IACN,MAAM;MAAEyE,aAAa;MAAE1I,WAAW;MAAEoD;IAAQ,CAAC,GAAG,IAAI;IAEpDsF,aAAa,CAACiD,UAAU,CACtB;MACE,GAAGjD,aAAa,CAACkD,OAAO;MACxB,GAAG,IAAI,CAACrM,eAAe;MACvByI,OAAO,EAAE;IACX,CAAC,EACD;MACEzF,OAAO,EAAE;IACX,CACF,CAAC;IAED,MAAMwB,YAAY,GAAG,IAAI,CAACtB,eAAe,CAAC,CAAC;IAC3C,IAAI,CAAC0B,oBAAoB,GAAG,IAAIvC,OAAO,CAAQC,OAAO,IAAK;MACzD,IAAIkC,YAAY,CAACD,OAAO,EAAE;QACxBC,YAAY,CAACD,OAAO,CAACsK,IAAI,CAAC,MAAMvM,OAAO,CAAC,CAAC,CAAC,CAACwM,KAAK,CAAC,MAAMxM,OAAO,CAAC,CAAC,CAAC;MACnE,CAAC,MAAM;QACLA,OAAO,CAAC,CAAC;MACX;IACF,CAAC,CAAC;IAEF,MAAMyM,OAAO,GAAGvK,YAAY,CAACuK,OAAO,CAAC,CAAC;IAEtC,MAAMC,cAAc,GAAGnL,OAAO,CAACM,SAAS,CAAC,OAAO,CAAC;IACjD,MAAMM,iBAAiB,GAAGuK,cAAc,CAAC5K,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC;MAAE0K;IAAQ,CAAC,CAAC,CAAC;IAEnE,IAAI,CAACtO,WAAW,CAACD,QAAQ,EAAE;MACzBgE,YAAY,CAACuB,QAAQ,CAAC;QACpBtC,IAAI,EAAE,OAAO;QACbZ,KAAK,EAAE,IAAIC,kBAAY,CAAC,gCAAgC;MAC1D,CAAC,CAAC;IACJ;IAEA,IAAI,CAACO,YAAY,CAAC,CAAC;IAEnB,OAAO;MACLmB,YAAY;MACZuK,OAAO;MACPtK,iBAAiB;MACjBF,OAAO,EAAE,IAAI,CAACK;IAChB,CAAC;EACH;EAEA,IAAIkC,UAAUA,CAAA,EAAG;IACf,MAAM;MACJxG,MAAM,EAAE;QACN2O,OAAO,EAAE;UAAEf,WAAW,EAAEjM;QAAM;MAChC,CAAC;MACDhC,KAAK,EAAE;QACL8D,UAAU,EAAE;UAAE0F;QAAM;MACtB;IACF,CAAC,GAAG,IAAI;IACR,OAAOyF,IAAI,CAACC,IAAI,CAAClN,KAAK,GAAGwH,KAAK,CAAC;EACjC;EAEA,IAAIxH,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC3B,MAAM,CAAC2B,KAAK;EAC1B;EAEA,IAAImN,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC9O,MAAM,CAAC8O,WAAW;EAChC;EAEA,IAAIC,eAAeA,CAAA,EAAG;IACpB,MAAM;MACJtF,cAAc,EAAE;QAAEsF;MAAgB;IACpC,CAAC,GAAG,IAAI;IACR,OAAOA,eAAe;EACxB;EAqDA,MAAM5J,qBAAqBA,CAAA,EAAG;IAC5B,MAAM;MAAEnF,MAAM;MAAE+O,eAAe;MAAEpL;IAAe,CAAC,GAAG,IAAI;IACxD,IACEA,cAAc,KAAK,SAAS,IAC5B,CAAC3D,MAAM,CAACC,MAAM,CAACmO,UAAU,IACzB,CAACW,eAAe,EAChB;MACA,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAC5B;EACF;;EAEA;EACA,MAAM9I,kBAAkBA,CACtBnB,IAAY,EACZgH,OAAgD,GAAG,CAAC,CAAC,EACrD;IACA,IAAIkD,aAAa,GAAG,CAAC;IACrB,MAAM;MAAEC,IAAI,GAAG;QAAEC,GAAG,EAAE,GAAG;QAAEC,GAAG,EAAE;MAAI;IAAE,CAAC,GAAGrD,OAAO;IACjD,MAAM;MACJpM,KAAK;MACLK,MAAM;MACNoC,MAAM,EAAE;QAAEkB;MAAe;IAC3B,CAAC,GAAG,IAAI;IACR,MAAM;MAAEG;IAAW,CAAC,GAAG9D,KAAK;IAC5B8D,UAAU,CAACsB,IAAI,GAAGA,IAAI;IAEtB,MAAMf,mBAAmB,GAAGV,cAAc,oBAAdA,cAAc,CAAG;MAC3C3D,KAAK,EAAEA,KAAK,CAACG;IACf,CAAC,CAAC;IAEF,MAAM;MAAEmE,OAAO;MAAEC,YAAY;MAAEC;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IACjE,MAAMiL,YAAY,GAAGpL,OAAO;IAE5B,IAAIqL,SAA+C,GAAG,IAAI;IAE1D,MAAMC,cAAc,GAAG,IAAIxN,OAAO,CAAQC,OAAO,IAAK;MACpDsN,SAAS,GAAGE,UAAU,CAAC,MAAM;QAC3B;QACAP,aAAa,GAAGC,IAAI,CAACC,GAAG;QACxB,IAAI,CAACjI,wBAAwB,CAAC,CAAC;QAC/BlF,OAAO,CAAC,CAAC;MACX,CAAC,EAAEkN,IAAI,CAACE,GAAG,CAAC;IACd,CAAC,CAAC;;IAEF;IACA,MAAMK,cAAc,GAAG,IAAI1N,OAAO,CAAEC,OAAO,IAAK;MAC9CwN,UAAU,CAACxN,OAAO,EAAEkN,IAAI,CAACC,GAAG,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAMpN,OAAO,CAAC2N,IAAI,CAAC,CAACH,cAAc,EAAEF,YAAY,CAAC,CAAC;IAElD,IAAIC,SAAS,IAAI,IAAI,EAAE;MACrBK,YAAY,CAACL,SAAS,CAAC;IACzB;IAEA,IAAIL,aAAa,EAAE;MACjB,MAAM,IAAIlN,OAAO,CAAEC,OAAO,IAAKwN,UAAU,CAACxN,OAAO,EAAEiN,aAAa,CAAC,CAAC;IACpE;IAEA,MAAMQ,cAAc;IACpB,MAAMJ,YAAY;IAElB,IAAIpL,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAAC4P,KAAK,CAAC,CAAC;QACd,MAAMrL,gBAAgB,GAAG,IAAI,CAACC,YAAY,CAAC,CAACN,YAAY,CAAC,CAAC;QAC1DC,iBAAiB,CAACM,OAAO,CAAEV,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;QACvC,IAAIQ,gBAAgB,EAAE;UACpB,MAAM;YAAEG;UAAS,CAAC,GAAGH,gBAAgB;UACrC,IAAIP,mBAAmB,IAAI,IAAI,EAAE;YAC/BA,mBAAmB,CAAC;cAClBY,aAAa,EAAEF,QAAQ,CAACG,MAAM,CAC5B,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAGC,IAAI,CAACrD,KAAK,CAACsD,MAAM,EACtC,CACF,CAAC;cACDrF,KAAK,EAAEK,MAAM,CAACD,WAAW;cACzBC,MAAM,EAAEA,MAAM,CAACF;YACjB,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC;IACJ;EACF;EAEAoH,wBAAwBA,CAAA,EAAG;IACzB,MAAM;MAAElH;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAAC2D,cAAc,GAAG,SAAS;IAC/B3D,MAAM,CAAC4P,KAAK,CAAC,CAAC;EAChB;EAEA,MAAMzE,eAAeA,CAAC;IACpBS;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MACJjM,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAERA,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC5B,MAAM,GAAGgO,yBAAa;IAEjC,MAAM,IAAI,CAACC,qBAAqB,CAAC;MAAElE;IAAgB,CAAC,CAAC;EACvD;EAEA/I,UAAUA,CAAC;IAAE3B;EAAqC,CAAC,GAAG,CAAC,CAAC,EAAE;IACxD,MAAM;MAAEqG,UAAU;MAAEtG;IAAU,CAAC,GAAG,IAAI;IACtC,MAAM8O,WAAW,GAAG,CAAC,CAAC;IACtB,IAAI7O,OAAO,EAAE;MACX8O,MAAM,CAACC,MAAM,CAACF,WAAW,EAAE;QACzBG,UAAU,EAAEhP;MACd,CAAC,CAAC;IACJ;IAEAqG,UAAU,CACP4I,OAAO,CAAC;MAAEvQ,QAAQ,EAAE,CAACqB,SAAS,EAAE8O,WAAW;IAAE,CAAC,CAAC,CAC/CtL,OAAO,CAAE2L,CAAC,IAAKA,CAAC,CAACvN,UAAU,CAAC,CAAC,CAAC;EACnC;EAEAuC,yBAAyBA,CAAC;IACxBwG,eAAe;IACfvG,KAAK;IACLnE;EAKF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,IAAImE,KAAK,EAAE;MACT,IAAI,CAACxC,UAAU,CAAC;QAAE3B;MAAQ,CAAC,CAAC;IAC9B;IACA,IAAI,CAAC4B,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACoE,wBAAwB,CAAC,CAAC;IAC/B,OAAO,IAAI,CAACiE,eAAe,CAAC;MAAES;IAAgB,CAAC,CAAC;EAClD;EAEAxF,IAAIA,CACFiK,GAAa,EACb1P,MAGC,GAAG,CAAC,CAAC,EACN;IACA,MAAM;MAAEhB,KAAK;MAAE4D;IAAQ,CAAC,GAAG,IAAI;IAE/BA,OAAO,CAAC2H,IAAI,CAAC,iBAAiB,EAAE;MAC9BoF,MAAM,EAAE;IACV,CAAC,CAAC;IAEF3Q,KAAK,CAACyG,IAAI,CAACmK,UAAU,CAACF,GAAG,EAAE;MAAEG,QAAQ,EAAE7P,MAAM,CAAC6P;IAAS,CAAC,CAAC;IAEzDjN,OAAO,CAAC2H,IAAI,CAAC,WAAW,EAAE;MAAEmF;IAAI,CAAC,CAAC;IAElC,OAAO,IAAI,CAACjF,YAAY,CAACzK,MAAM,CAAC;EAClC;EAEA,MAAMmP,qBAAqBA,CAAC;IAC1BlE;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAE5L,MAAM;MAAEL,KAAK;MAAE4D;IAAQ,CAAC,GAAG,IAAI;IAEvC,MAAM;MAAEU,OAAO;MAAEC,YAAY;MAAEuK,OAAO;MAAEtK;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IAC1E;IACA,IAAIzE,KAAK,CAAC8D,UAAU,CAACsB,IAAI,KAAK,CAAC,EAAE;MAC/BxB,OAAO,CAAC2H,IAAI,CAAC,SAAS,EAAE;QAAEuD;MAAQ,CAAC,CAAC;IACtC;IAEA,MAAMxK,OAAO;IAEb,IAAIA,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAACyQ,KAAK,CAAC,CAAC,EAAE9Q,KAAK,CAAC8D,UAAU,CAACsB,IAAI,GAAG,CAAC,CAAC;QAC1C,IAAI,CAACxB,OAAO,CAAC2H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC1G,YAAY,CAAC,CAACN,YAAY,CAAC,CAAC;QACjCC,iBAAiB,CAACM,OAAO,CAAEV,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;QACvC6H,eAAe,YAAfA,eAAe,CAAG;UAChBjM,KAAK,EAAEK,MAAM,CAACD,WAAW;UACzBC,MAAM,EAAEA,MAAM,CAACF;QACjB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,OAAOoE,YAAY;EACrB;EAEA9C,MAAMA,CACJsP,KAAa,EACb;IAAErL,KAAK;IAAE4F;EAAwD,CAAC,GAAG,CAAC,CAAC,EACvE;IACA,MAAM;MAAEtL;IAAM,CAAC,GAAG,IAAI;IACtB,MAAM;MAAEyB;IAAO,CAAC,GAAGzB,KAAK;IACxB,IAAI0F,KAAK,IAAIqL,KAAK,KAAKtP,MAAM,CAACsP,KAAK,EAAE;MACnCtP,MAAM,CAACuP,WAAW,CAACD,KAAK,CAAC;MACzB,IAAI,CAAC7E,cAAc,CAACZ,WAAW,CAAC;IAClC;EACF;EAEA2F,WAAWA,CAAA,EAAG;IACZ,MAAM;MACJjR,KAAK;MACLyC,MAAM,EAAE;QAAEqJ;MAAgB,CAAC;MAC3BlI;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEnC;IAAO,CAAC,GAAGzB,KAAK;IACxB,IAAIyB,MAAM,CAACsP,KAAK,KAAK,EAAE,EAAE;MACvB;IACF;IAEAtP,MAAM,CAACuP,WAAW,CAAC,EAAE,CAAC;IACtBpN,OAAO,CAAC2H,IAAI,CAAC,aAAa,CAAC;IAE3B,IAAI,IAAI,CAACtB,wBAAwB,KAAK,OAAO,EAAE;MAC7C,IAAI,CAACO,UAAU,CAACwB,eAAe,CAAC,CAAC;IACnC;IAEA,OAAO,IAAI,CAACvG,yBAAyB,CAAC;MAAEwG,eAAe,EAAEH;IAAgB,CAAC,CAAC;EAC7E;EAEA,IAAIvK,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACvB,KAAK,CAACuB,OAAO;EAC3B;EAEA2P,UAAUA,CAACC,OAAU,EAAE;IACrB,OAAO,IAAI,CAACC,WAAW,CAAC,CAACD,OAAO,CAAC,CAAC;EACpC;EAEAC,WAAWA,CAACC,QAAa,EAAE;IACzB,MAAMC,YAAY,GAAG,IAAI,CAACjR,MAAM,CAAC+Q,WAAW,CAACC,QAAQ,CAAC;IAEtD,IAAIC,YAAY,IAAI,IAAI,EAAE;MACxB,IAAI,CAACpO,UAAU,CAAC,CAAC;MAEjB,OAAOoO,YAAY,CAACC,QAAQ;IAC9B;IAEA,OAAO9H,SAAS;EAClB;EAEA+H,OAAOA,CAACL,OAAU,EAAE;IAClB,OAAO,IAAI,CAACM,QAAQ,CAAC,CAACN,OAAO,CAAC,CAAC;EACjC;EAEAM,QAAQA,CAACJ,QAAa,EAAE;IACtB,MAAMC,YAAY,GAAG,IAAI,CAACjR,MAAM,CAACoR,QAAQ,CAACJ,QAAQ,CAAC;IACnD,IAAI,CAACnO,UAAU,CAAC,CAAC;IACjB,OAAOoO,YAAY,CAACC,QAAQ;EAC9B;EAEA,MAAMG,kBAAkBA,CAAC;IAAEC;EAAyC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC1E,MAAM;MAAE/N;IAAQ,CAAC,GAAG,IAAI;IAExB,IAAI,CAAC+N,YAAY,EAAE;MACjB,IAAI,CAACzO,UAAU,CAAC,CAAC;IACnB;IAEA,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvBS,OAAO,CAAC2H,IAAI,CAAC,oBAAoB,CAAC;IAElC,MAAM,IAAI,CAAC4E,qBAAqB,CAAC,CAAC;EACpC;EAEA,MAAM3J,eAAeA,CAAC;IACpBoL,kBAAkB;IAClBrQ;EAIF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAEvB,KAAK;MAAEK,MAAM;MAAEyJ,cAAc;MAAElG;IAAQ,CAAC,GAAG,IAAI;IACvD,MAAM;MAAEE;IAAW,CAAC,GAAG9D,KAAK;IAC5B,MAAM;MAAEoF,IAAI,EAAEyM;IAAY,CAAC,GAAG/N,UAAU;IAExC,IAAI,CAACZ,UAAU,CAAC;MAAE3B;IAAQ,CAAC,CAAC;IAE5B,MAAMuQ,QAA6B,GAAG,EAAE;IAExChO,UAAU,CAAC5B,MAAM,GAAGgO,yBAAa;IAEjCtM,OAAO,CAAC2H,IAAI,CAAC,iBAAiB,CAAC;IAC/B3H,OAAO,CAAC2H,IAAI,CAAC,SAAS,EAAE;MAAEuD,OAAO,EAAE;IAAK,CAAC,CAAC,CAAC,CAAC;;IAE5C,IAAIiD,eAAe,GAAGtI,SAAyC;IAE/D,KAAK,IAAIrE,IAAI,GAAG,CAAC,EAAEA,IAAI,IAAIyM,WAAW,EAAEzM,IAAI,EAAE,EAAE;MAC9CtB,UAAU,CAACsB,IAAI,GAAGA,IAAI;MACtB,IAAI,CAACjC,gBAAgB,CAAC,CAAC;MACvB,MAAM;QAAEoB,YAAY,EAAEyN,SAAS;QAAE1N;MAAQ,CAAC,GAAG,IAAI,CAACG,KAAK,CAAC,CAAC;MACzD,IAAIuN,SAAS,CAAC1N,OAAO,EAAE;QACrB,IAAIwF,cAAc,CAACmI,EAAE,KAAK,QAAQ,EAAE;UAClC,MAAMD,SAAS,CAAC1N,OAAO;UACvB,IAAAI,iBAAW,EACT;YAAA,IAAAwN,qBAAA;YAAA,OAAOpO,UAAU,CAAC5B,MAAM,GAAG,EAAAgQ,qBAAA,GAAAF,SAAS,CAACpM,KAAK,CAAC+H,IAAI,qBAApBuE,qBAAA,CAAsBhQ,MAAM,KAAI,IAAI;UAAA,CACjE,CAAC;QACH;QACA4P,QAAQ,CAAC1E,IAAI,CAAC4E,SAAS,CAAC1N,OAAO,CAACsK,IAAI,CAAC,MAAMoD,SAAS,CAAC,CAAC;MACxD;MAEA,IAAI5M,IAAI,KAAKyM,WAAW,EAAE;QACxBE,eAAe,GAAGzN,OAAO;MAC3B;IACF;IAEA,IAAI,CAAClB,YAAY,CAAC,CAAC;IAEnB,MAAM+O,OAAO,GAAG,MAAM/P,OAAO,CAACgQ,GAAG,CAACN,QAAQ,CAAC;IAE3C,IAAApN,iBAAW,EAAC,MAAM;MAChBkN,kBAAkB,YAAlBA,kBAAkB,CAAG,CAAC;MACtB,IAAIG,eAAe,KAAK,IAAI,CAACpN,oBAAoB,EAAE;QACjDtE,MAAM,CAACyQ,KAAK,CAACe,WAAW,CAAC;QACzB,IAAI,CAACjO,OAAO,CAAC2H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC1G,YAAY,CAACsN,OAAO,CAAC;MAC5B;IACF,CAAC,CAAC;EACJ;EAEA,IAAIpL,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAC1G,MAAM,CAAC0G,iBAAiB;EACtC;EAEAK,sBAAsBA,CAAA,EAAG;IACvB,MAAM;MAAEpH;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAACqS,YAAY,CAAC;MAAEC,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EAC3D;EAEAC,4BAA4BA,CAAA,EAAG;IAC7B,MAAM;MAAEvS;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAACwS,kBAAkB,CAAC;MAAEF,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EACjE;EAEA,MAAM1L,YAAYA,CAAA,EAAG;IACnB,MAAM;MACJvG,MAAM;MACNoC,MAAM,EAAE;QAAEgQ;MAAqB,CAAC;MAChC7O,OAAO;MACP5D,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAER,MAAM4O,SAAS,GAAG,IAAI,CAACzP,eAAe,CAAC,CAAC;IAExC,IAAI,CAAC5C,MAAM,CAACC,MAAM,CAACkO,MAAM,IAAI,CAACnO,MAAM,CAACC,MAAM,CAACuD,OAAO,EAAE;MACnD,OAAO6O,SAAS,CAACpO,OAAO;IAC1B;IAEAR,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC5B,MAAM,GAAGgO,yBAAa;IAEjC,IAAI,CAAClM,cAAc,GAAG,SAAS;IAC/B,MAAM8K,OAAO,GAAG4D,SAAS,CAAC5D,OAAO,CAAC,CAAC;IACnC,MAAM6D,2BAA2B,GAAG/O,OAAO,CAACM,SAAS,CAAC,oBAAoB,CAAC;IAC3E,MAAM9B,OAAO,CAACgQ,GAAG,CAACO,2BAA2B,CAACxO,GAAG,CAAEyO,CAAC,IAAKA,CAAC,CAAC;MAAE9D;IAAQ,CAAC,CAAC,CAAC,CAAC;;IAEzE;IACA,IAAApK,iBAAW,EAAC,MAAM;MAChBZ,UAAU,CAACsB,IAAI,GAAG,CAAC;MACnBtB,UAAU,CAAC5B,MAAM,GAAGgO,yBAAa;MACjC,IAAI,CAAClM,cAAc,GAAG,SAAS;IACjC,CAAC,CAAC;IAEF,MAAMO,YAAY,GAAG,MAAM,IAAI,CAAC4L,qBAAqB,CAAC,CAAC;IACvD,MAAM5L,YAAY,CAACD,OAAO;IAC1B,IAAI,CAACV,OAAO,CAAC2H,IAAI,CAAC,OAAO,CAAC;IAC1B,IAAA7G,iBAAW,EAAC,MAAM;MAChB,MAAM;QAAE1C,KAAK;QAAEC;MAAU,CAAC,GAAG5B,MAAM;MACnCoS,oBAAoB,YAApBA,oBAAoB,CAAG;QACrBpS,MAAM,EAAE;UACN2B,KAAK;UACLC,SAAS,EAAEA,SAAS,IAAI;QAC1B,CAAC;QACDjC,KAAK,EAAEK,MAAM,CAACD;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EA6CAsG,IAAIA,CAAC;IAAEmM;EAAiD,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9D,MAAM;MAAErI,UAAU;MAAEhK,WAAW;MAAER,KAAK;MAAE+F,QAAQ;MAAE1F;IAAO,CAAC,GAAG,IAAI;IACjE,MAAM;MAAEiF;IAAa,CAAC,GAAG9E,WAAW;IAEpCH,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;IAErCK,WAAW,CAACiC,MAAM,CAACqQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAACC,mBAAmB,CAAC;IAEzD,MAAMC,SAAS,GAAG,CAChBhT,KAAK,CAAC0G,IAAI,CAAC,CAAC,EACZ,IAAI,CAACuM,oBAAoB,CAAC,CAAC,EAC3B5S,MAAM,CAACqG,IAAI,CAAC,CAAC,EACb8D,UAAU,CAAC9D,IAAI,CAAC,CAAC;IACjB;IACA,IAAI,CAACwC,aAAa,CAACgK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EACtC5N,YAAY,CAAC4N,SAAS,CAAC,IAAI,CAACvN,eAAe,CAAC,CAC7C;IAEDI,QAAQ,CAACC,OAAO,CAAC,YAAY;MAAA,IAAAmN,qBAAA;MAC3B,MAAM/Q,OAAO,CAACgQ,GAAG,CAAC,CAChBS,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAACjM,YAAY,CAAC,CAAC,GAAAuM,qBAAA,GAC7C,IAAI,CAAClL,gBAAgB,qBAArBkL,qBAAA,CAAAC,IAAA,KAAwB,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAA7Q,YAAM,EAAC,MAAM;MAClB/B,WAAW,CAACiC,MAAM,CAAC4Q,GAAG,CAAC,QAAQ,EAAE,IAAI,CAACN,mBAAmB,CAAC;MAC1DC,SAAS,CAAClO,OAAO,CAAEwO,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;MAC3CvN,QAAQ,CAACzF,MAAM,GAAG;QAChB,GAAGqO,kBAAW,CAAC4E;MACjB,CAAC;IACH,CAAC,CAAC;EACJ;EAEAN,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MAAEjT;IAAM,CAAC,GAAG,IAAI;IACtB,MAAMgT,SAAS,GAAG,CAChB,IAAAQ,sBAAgB,EAACxT,KAAK,CAACyC,MAAM,EAAE,SAAS,EAAGgR,IAAI,IAAK;MAClD,IAAI,IAAI,CAACxJ,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACO,UAAU,CAACwB,eAAe,CAAC,CAAC;MACnC;MAEA,IAAI,IAAI,CAACrE,mBAAmB,EAAE;QAC5B,IAAI,CAAC+L,eAAe,CAACvI,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;MAC7D;MAEA,IAAI,CAAAqI,IAAI,oBAAJA,IAAI,CAAEnI,WAAW,MAAK,KAAK,EAAE;QAC/B,IAAI,CAAC/D,wBAAwB,CAAC,CAAC;MACjC,CAAC,MAAM;QAAA,IAAAoM,sBAAA;QACL,CAAAA,sBAAA,OAAI,CAACnM,iBAAiB,aAAtBmM,sBAAA,CAAwB7I,QAAQ,CAAC;UAAEC,GAAG,EAAE,CAAC;UAAE6I,QAAQ,EAAE;QAAS,CAAC,CAAC;MAClE;MAEA,IAAI,CAACpI,eAAe,CAAC,CAAC;IACxB,CAAC,CAAC,EACF,IAAAgI,sBAAgB,EAACxT,KAAK,CAACyC,MAAM,EAAE,iBAAiB,EAAGgR,IAAI,IAAK;MAC1D,IAAI,CAACvH,cAAc,CAACuH,IAAI,oBAAJA,IAAI,CAAEnI,WAAW,CAAC;IACxC,CAAC,CAAC,EACF,IAAItL,KAAK,CAAC0J,sBAAsB,GAC5B,CACE,IAAAmK,cAAQ,EACN,MAAM7T,KAAK,CAAC8T,aAAa,EACzB,MAAM;MACJ,IAAI,CAACvM,wBAAwB,CAAC,CAAC;MAC/B,IAAI,CAACiE,eAAe,CAAC,CAAC;IACxB,CACF,CAAC,CACF,GACD,EAAE,CAAC,CACR;IAED,OAAO,MAAM;MACXwH,SAAS,CAAClO,OAAO,CAAE+I,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;EAEAkG,OAAOA,CAACC,GAAW,EAAwB;IACzC,MAAMC,SAAS,GAAG,IAAI,CAAC5T,MAAM,CAAC6T,GAAG,CAACF,GAAG,CAAC;IACtC,OAAOC,SAAS,oBAATA,SAAS,CAAEzG,IAAI;EACxB;EAEA2G,YAAYA,CAACH,GAAW,EAAmC;IACzD,OAAO,IAAI,CAAC3T,MAAM,CAAC6T,GAAG,CAACF,GAAG,CAAC;EAC7B;EAEAI,mBAAmBA,CAACC,KAAa,EAAuB;IACtD,OAAO,IAAI,CAAChU,MAAM,CAACiU,UAAU,CAACD,KAAK,CAAC;EACtC;EAEA,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACjU,MAAM,CAACiU,UAAU;EAC/B;EAEAC,iBAAiBA,CAAIC,aAA+B,EAAE;IACpD,OAAO,IAAI,CAACd,eAAe,CAACvI,UAAU,CAACqJ,aAAa,CAAC;EACvD;EAEA/M,sBAAsBA,CAACzH,KAAK,GAAG,IAAI,CAACK,MAAM,CAACD,WAAW,EAOpD;IAAA,IAAAqU,WAAA,EAAAC,YAAA;IACA,MAAM;MAAErU,MAAM;MAAEqH;IAAK,CAAC,GAAG,IAAI;IAE7B,OAAO;MACL,GAAGA,IAAI;MACPiN,cAAc,EAAEC,IAAI,CAACC,SAAS,CAAC7U,KAAK,CAACuQ,UAAU,CAAC;MAChDuE,gBAAgB,EAAE,CAAAL,WAAA,GAAAzU,KAAK,CAACyG,IAAI,aAAVgO,WAAA,CAAYpP,MAAM,GAChCuP,IAAI,CAACC,SAAS,CAAC7U,KAAK,CAACyG,IAAI,CAAC,GAC1BgD,SAAS;MACbsL,gBAAgB,EAAE1U,MAAM,CAAC2B,KAAK;MAC9BgT,YAAY,EAAE3U,MAAM,CAAC4U,IAAI;MACzBC,gBAAgB,GAAAR,YAAA,GAAE1U,KAAK,CAACyG,IAAI,qBAAViO,YAAA,CAAYrP;IAChC,CAAC;EACH;EAEA,IAAI2B,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJjB,QAAQ,EAAE;QACRzF,MAAM,EAAE;UAAE6U;QAAU;MACtB,CAAC;MACDjK,eAAe,EAAE;QAAEkK;MAAkB;IACvC,CAAC,GAAG,IAAI;IACR,OAAOD,SAAS,IAAIC,iBAAiB;EACvC;EAEA,IAAInO,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJyM,eAAe,EAAE;QAAE0B;MAAkB,CAAC;MACtC/U,MAAM,EAAE;QAAEC;MAAO,CAAC;MAClB0D;IACF,CAAC,GAAG,IAAI;IACR,OACEoR,iBAAiB,IACjBC,OAAO,CAAC/U,MAAM,CAACmO,UAAU,IAAIzK,cAAc,KAAK,SAAS,CAAC;EAE9D;EAEA,IAAIkD,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJlD,cAAc;MACd3D,MAAM,EAAE;QAAEiV;MAAQ;IACpB,CAAC,GAAG,IAAI;IACR,OAAOtR,cAAc,KAAK,QAAQ,IAAIsR,OAAO;EAC/C;EAEA,IAAInO,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJ9G,MAAM,EAAE;QAAEC;MAAO,CAAC;MAClB0D;IACF,CAAC,GAAG,IAAI;IACR,OACE,CAAC1D,MAAM,CAACmO,UAAU,IAAInO,MAAM,CAACuD,OAAO,IAAIG,cAAc,KAAK,WAAW;EAE1E;EAIA,IAAIuR,eAAeA,CAAA,EAGjB;IACA,MAAM;MAAEC;IAAiB,CAAC,GAAG,IAAI;IACjC,OAAO;MACL,IAAIC,IAAIA,CAACC,CAA4B,EAAE;QACrCF,gBAAgB,CAACG,GAAG,CAACD,CAAC,CAAC;MACzB,CAAC;MACD,IAAID,IAAIA,CAAA,EAAG;QACT,OAAO,IAAA/Q,iBAAW,EAAC,MAAM8Q,gBAAgB,CAAC7H,IAAI,CAAC;MACjD,CAAC;MACD,IAAIiI,IAAIA,CAAA,EAAG;QACT,OAAO,IAAAlR,iBAAW,EAAC,MAAM8Q,gBAAgB,CAACI,IAAI,CAAC;MACjD;IACF,CAAC;EACH;AACF;AAACC,OAAA,CAAA/V,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","_FetchTotalState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","status","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","onNewPageAdded","onNewPageStart","emitter","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","history","itemKey","itemName","translate","initDependencies","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","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","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","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","origin","changeSort","multiple","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","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 QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined | null;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly 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}\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\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n get status() {\n return this.result.status;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n this.errorMonitor = params.errorMonitor;\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 (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\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._resetReactQuery();\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.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 } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n _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 } = 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\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 params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n 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 emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n this._resetReactQuery();\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n 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":[]}
|
|
@@ -59,15 +59,16 @@ class FetchTotalState {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
init() {
|
|
62
|
+
var _collection$_optimist;
|
|
62
63
|
const {
|
|
63
64
|
_collection,
|
|
64
65
|
_totalsCollection
|
|
65
66
|
} = this;
|
|
66
|
-
const disposers = [_totalsCollection.init(), (0, _util.addEventListener)(_collection.emitter, 'search', () => {
|
|
67
|
+
const disposers = [_totalsCollection.init(), (_collection$_optimist = _collection._optimisticActions) == null ? void 0 : _collection$_optimist.initCollection(_totalsCollection), (0, _util.addEventListener)(_collection.emitter, 'search', () => {
|
|
67
68
|
_totalsCollection.clearResultAndMoveToStart();
|
|
68
69
|
}), (0, _util.addEventListener)(_collection.emitter, 'clearSearch', _totalsCollection.clearResultAndMoveToStart), (0, _util.addEventListener)(_collection.emitter, 'refreshAllPages', _totalsCollection.refreshAllPages), (0, _util.addEventListener)(_collection.emitter, 'refreshCurrentPage', _totalsCollection.refreshCurrentPage)];
|
|
69
70
|
return () => {
|
|
70
|
-
disposers.forEach(disposer => disposer());
|
|
71
|
+
disposers.forEach(disposer => disposer == null ? void 0 : disposer());
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
74
|
get total() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_CollectionState","_util","FetchTotalState","constructor","params","_defineProperty2","default","_collection","collection","errorMonitor","onlineState","history","translate","queryCache","lodash","queryName","itemKey","itemName","paginationMode","selectionConsistencyMode","filters","query","search","_totalsCollection","CollectionState","limit","fetchData","total","fetchTotal","items","fetchErrorMessage","id","makeObservable","computed","status","init","disposers","addEventListener","emitter","clearResultAndMoveToStart","refreshAllPages","refreshCurrentPage","forEach","disposer","result","lifecycleState","exports"],"sources":["../../../src/state/FetchTotalState.ts"],"sourcesContent":["import { computed, makeObservable } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { addEventListener } from '../util';\nimport { QueryCache } from 'react-query';\nimport { ComputedQuery, FiltersMap, QueryStatusValue } from '../model';\n\nexport interface FetchTotalStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly queryCache: QueryCache;\n readonly fetchTotal: (query: ComputedQuery<F>) => Promise<number>;\n}\n\nexport class FetchTotalState<T, F extends FiltersMap> {\n readonly _collection;\n readonly _totalsCollection;\n\n constructor(params: Readonly<FetchTotalStateParams<T, F>>) {\n this._collection = params.collection;\n\n const {\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n filters,\n query: { search },\n } = params.collection;\n\n this._totalsCollection = new CollectionState<T, F>({\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName: `${queryName}.total`,\n itemKey,\n itemName,\n limit: 1,\n fetchData: async (query) => {\n const total = await params.fetchTotal(query);\n return { items: [], total };\n },\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n selectionConsistencyMode,\n filters,\n search,\n });\n\n makeObservable(this, {\n total: computed,\n status: computed,\n });\n }\n\n init() {\n const { _collection, _totalsCollection } = this;\n\n const disposers = [\n _totalsCollection.init(),\n addEventListener(_collection.emitter, 'search', () => {\n _totalsCollection.clearResultAndMoveToStart();\n }),\n addEventListener(\n _collection.emitter,\n 'clearSearch',\n _totalsCollection.clearResultAndMoveToStart,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshAllPages',\n _totalsCollection.refreshAllPages,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshCurrentPage',\n _totalsCollection.refreshCurrentPage,\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get total(): number {\n return this._totalsCollection.result.total;\n }\n\n get status(): QueryStatusValue {\n // While refreshing the status remains as success\n return this._totalsCollection.lifecycleState === 'refresh'\n ? 'loading'\n : this._totalsCollection.result.status.status;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAUO,MAAMG,eAAe,CAA0B;EAIpDC,WAAWA,CAACC,MAA6C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACzD,IAAI,CAACC,WAAW,GAAGH,MAAM,CAACI,UAAU;IAEpC,MAAM;MACJC,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,OAAO;MACPC,QAAQ;MACRC,cAAc;MACdC,wBAAwB;MACxBC,OAAO;MACPC,KAAK,EAAE;QAAEC;MAAO;IAClB,CAAC,GAAGlB,MAAM,CAACI,UAAU;IAErB,IAAI,CAACe,iBAAiB,GAAG,IAAIC,gCAAe,CAAO;MACjDf,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS,EAAE,GAAGA,SAAS,QAAQ;MAC/BC,OAAO;MACPC,QAAQ;MACRQ,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,MAAOL,KAAK,IAAK;QAC1B,MAAMM,KAAK,GAAG,MAAMvB,MAAM,CAACwB,UAAU,CAACP,KAAK,CAAC;QAC5C,OAAO;UAAEQ,KAAK,EAAE,EAAE;UAAEF;QAAM,CAAC;MAC7B,CAAC;MACDG,iBAAiB,EAAEA,CAAA,KAAM,IAAI;MAC7BZ,cAAc,EAAEA,cAAc,CAACa,EAAE;MACjCZ,wBAAwB;MACxBC,OAAO;MACPE;IACF,CAAC,CAAC;IAEF,IAAAU,oBAAc,EAAC,IAAI,EAAE;MACnBL,KAAK,EAAEM,cAAQ;MACfC,MAAM,EAAED;IACV,CAAC,CAAC;EACJ;EAEAE,IAAIA,CAAA,EAAG;IACL,MAAM;
|
|
1
|
+
{"version":3,"names":["_mobx","require","_CollectionState","_util","FetchTotalState","constructor","params","_defineProperty2","default","_collection","collection","errorMonitor","onlineState","history","translate","queryCache","lodash","queryName","itemKey","itemName","paginationMode","selectionConsistencyMode","filters","query","search","_totalsCollection","CollectionState","limit","fetchData","total","fetchTotal","items","fetchErrorMessage","id","makeObservable","computed","status","init","_collection$_optimist","disposers","_optimisticActions","initCollection","addEventListener","emitter","clearResultAndMoveToStart","refreshAllPages","refreshCurrentPage","forEach","disposer","result","lifecycleState","exports"],"sources":["../../../src/state/FetchTotalState.ts"],"sourcesContent":["import { computed, makeObservable } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { addEventListener } from '../util';\nimport { QueryCache } from 'react-query';\nimport { ComputedQuery, FiltersMap, QueryStatusValue } from '../model';\n\nexport interface FetchTotalStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly queryCache: QueryCache;\n readonly fetchTotal: (query: ComputedQuery<F>) => Promise<number>;\n}\n\nexport class FetchTotalState<T, F extends FiltersMap> {\n readonly _collection;\n readonly _totalsCollection;\n\n constructor(params: Readonly<FetchTotalStateParams<T, F>>) {\n this._collection = params.collection;\n\n const {\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n filters,\n query: { search },\n } = params.collection;\n\n this._totalsCollection = new CollectionState<T, F>({\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName: `${queryName}.total`,\n itemKey,\n itemName,\n limit: 1,\n fetchData: async (query) => {\n const total = await params.fetchTotal(query);\n return { items: [], total };\n },\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n selectionConsistencyMode,\n filters,\n search,\n });\n\n makeObservable(this, {\n total: computed,\n status: computed,\n });\n }\n\n init() {\n const { _collection, _totalsCollection } = this;\n\n const disposers = [\n _totalsCollection.init(),\n _collection._optimisticActions?.initCollection(_totalsCollection),\n addEventListener(_collection.emitter, 'search', () => {\n _totalsCollection.clearResultAndMoveToStart();\n }),\n addEventListener(\n _collection.emitter,\n 'clearSearch',\n _totalsCollection.clearResultAndMoveToStart,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshAllPages',\n _totalsCollection.refreshAllPages,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshCurrentPage',\n _totalsCollection.refreshCurrentPage,\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get total(): number {\n return this._totalsCollection.result.total;\n }\n\n get status(): QueryStatusValue {\n // While refreshing the status remains as success\n return this._totalsCollection.lifecycleState === 'refresh'\n ? 'loading'\n : this._totalsCollection.result.status.status;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAUO,MAAMG,eAAe,CAA0B;EAIpDC,WAAWA,CAACC,MAA6C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACzD,IAAI,CAACC,WAAW,GAAGH,MAAM,CAACI,UAAU;IAEpC,MAAM;MACJC,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,OAAO;MACPC,QAAQ;MACRC,cAAc;MACdC,wBAAwB;MACxBC,OAAO;MACPC,KAAK,EAAE;QAAEC;MAAO;IAClB,CAAC,GAAGlB,MAAM,CAACI,UAAU;IAErB,IAAI,CAACe,iBAAiB,GAAG,IAAIC,gCAAe,CAAO;MACjDf,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS,EAAE,GAAGA,SAAS,QAAQ;MAC/BC,OAAO;MACPC,QAAQ;MACRQ,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,MAAOL,KAAK,IAAK;QAC1B,MAAMM,KAAK,GAAG,MAAMvB,MAAM,CAACwB,UAAU,CAACP,KAAK,CAAC;QAC5C,OAAO;UAAEQ,KAAK,EAAE,EAAE;UAAEF;QAAM,CAAC;MAC7B,CAAC;MACDG,iBAAiB,EAAEA,CAAA,KAAM,IAAI;MAC7BZ,cAAc,EAAEA,cAAc,CAACa,EAAE;MACjCZ,wBAAwB;MACxBC,OAAO;MACPE;IACF,CAAC,CAAC;IAEF,IAAAU,oBAAc,EAAC,IAAI,EAAE;MACnBL,KAAK,EAAEM,cAAQ;MACfC,MAAM,EAAED;IACV,CAAC,CAAC;EACJ;EAEAE,IAAIA,CAAA,EAAG;IAAA,IAAAC,qBAAA;IACL,MAAM;MAAE7B,WAAW;MAAEgB;IAAkB,CAAC,GAAG,IAAI;IAE/C,MAAMc,SAAS,GAAG,CAChBd,iBAAiB,CAACY,IAAI,CAAC,CAAC,GAAAC,qBAAA,GACxB7B,WAAW,CAAC+B,kBAAkB,qBAA9BF,qBAAA,CAAgCG,cAAc,CAAChB,iBAAiB,CAAC,EACjE,IAAAiB,sBAAgB,EAACjC,WAAW,CAACkC,OAAO,EAAE,QAAQ,EAAE,MAAM;MACpDlB,iBAAiB,CAACmB,yBAAyB,CAAC,CAAC;IAC/C,CAAC,CAAC,EACF,IAAAF,sBAAgB,EACdjC,WAAW,CAACkC,OAAO,EACnB,aAAa,EACblB,iBAAiB,CAACmB,yBACpB,CAAC,EACD,IAAAF,sBAAgB,EACdjC,WAAW,CAACkC,OAAO,EACnB,iBAAiB,EACjBlB,iBAAiB,CAACoB,eACpB,CAAC,EACD,IAAAH,sBAAgB,EACdjC,WAAW,CAACkC,OAAO,EACnB,oBAAoB,EACpBlB,iBAAiB,CAACqB,kBACpB,CAAC,CACF;IAED,OAAO,MAAM;MACXP,SAAS,CAACQ,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,IAAInB,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACJ,iBAAiB,CAACwB,MAAM,CAACpB,KAAK;EAC5C;EAEA,IAAIO,MAAMA,CAAA,EAAqB;IAC7B;IACA,OAAO,IAAI,CAACX,iBAAiB,CAACyB,cAAc,KAAK,SAAS,GACtD,SAAS,GACT,IAAI,CAACzB,iBAAiB,CAACwB,MAAM,CAACb,MAAM,CAACA,MAAM;EACjD;AACF;AAACe,OAAA,CAAA/C,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"cairo.customFields.fieldType.numberDecimal.placeholder": "např. 25,50",
|
|
10
10
|
"cairo.tags.popover.tagCreated.toast.success": "Tag vytvořen.",
|
|
11
11
|
"cairo.dragAndDrop.list-aria-label.sr": "Chcete-li změnit pořadí, stisknutím mezerníku položku uchopíte; šipkami přetáhnete; mezerníkem pustíte; klávesy „escape“ nebo „tab“ pro zrušení.",
|
|
12
|
+
"cairo.collectionPage.nested.expandAll.tooltip": "Expand all",
|
|
12
13
|
"cairo.customFields.addCustomField.modal.add.CTA": "Přidat pole",
|
|
13
14
|
"cairo.tags.loadTags.error.CTA": "Znovu načíst tagy",
|
|
14
15
|
"cairo.appliedFilters.filteredBy.label": "Filtrováno podle:",
|
|
@@ -120,7 +121,6 @@
|
|
|
120
121
|
"cairo.tags.manageTags.modal.toast.delete.success": "Tag byl odstraněn.",
|
|
121
122
|
"cairo.noViewName.validationTooltip": "Pokud chcete uložit zobrazení, musíte zadat jeho název.",
|
|
122
123
|
"cairo.emptyState.subtitle.nothingMatches": "Vámi hledaný termín „{term}“ se nám nepodařilo najít.",
|
|
123
|
-
"cairo.customFields.fieldType.checkbox.Selected.all": "All",
|
|
124
124
|
"cairo.filtersPanel.date.lastMonth": "Poslední měsíc",
|
|
125
125
|
"cairo.dragAndDrop.reorderMode.toolbar.cancel.cta": "Zpět",
|
|
126
126
|
"cairo.table.advanced-sorting.disabled.cta.tooltip": "Přidali jste všechny sloupce.",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
"cairo.appliedFilters.discardChanges.CTA": "Změny neukládat",
|
|
329
329
|
"airo.tags.collectionPage.popover.emptyState.body": "Tagy vám pomáhají filtrovat a organizovat položky.",
|
|
330
330
|
"cairo.saveViewModal.error.message.unexpected": "Toto zobrazení jsme v tuto chvíli nemohli uložit. Zkuste to za pár minut znovu.",
|
|
331
|
-
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "
|
|
331
|
+
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Prozkoumat související aplikace",
|
|
332
332
|
"cairo.customFields.entityPage.emptyState.title": "Nebyla vyplněna žádná pole",
|
|
333
333
|
"cairo.export.exportToCSVMessage": "Vaše položky a všechna jejich data budou staženy ve formátu CSV souboru.",
|
|
334
334
|
"cairo.manageView.unsaved.tooltip": "Pro uložení změn přejděte do „Správa zobrazení“.",
|
|
@@ -440,6 +440,7 @@
|
|
|
440
440
|
"cairo.tags.collectionPage.popover.loadTags.error.body": "Tagy se nepodařilo načíst kvůli technickým potížím na naší straně.",
|
|
441
441
|
"cairo.table.advanced-sorting.button.cta": "Třídit",
|
|
442
442
|
"cairo.emptyState.premium.cta": "Upgradovat",
|
|
443
|
+
"cairo.collectionPage.nested.collapseAll.tooltip": "Collapse all",
|
|
443
444
|
"cairo.manageView.Rename.disabled.predefinedView.tooltip": "Toto je přednastavené zobrazení. Pokud chcete toto zobrazení přejmenovat, uložte jej jako nové zobrazení.",
|
|
444
445
|
"cairo.customFields.addCustomField.modal.fieldType.placeholder": "Vyberte typ",
|
|
445
446
|
"cairo.customFields.fieldType.checkbox.Name.placeholder": "Např. Přihlášeni k odběru",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"cairo.customFields.fieldType.numberDecimal.placeholder": "fx 25,50",
|
|
10
10
|
"cairo.tags.popover.tagCreated.toast.success": "Tag er oprettet.",
|
|
11
11
|
"cairo.dragAndDrop.list-aria-label.sr": "For at omarrangere skal du trykke på mellemrumstasten for at få fat i et element; piletaster til at trække; mellemrumstasten for at droppe; \"escape\" eller \"tab\" for at annullere.",
|
|
12
|
+
"cairo.collectionPage.nested.expandAll.tooltip": "Expand all",
|
|
12
13
|
"cairo.customFields.addCustomField.modal.add.CTA": "Tilføj felt",
|
|
13
14
|
"cairo.tags.loadTags.error.CTA": "Genindlæs tags",
|
|
14
15
|
"cairo.appliedFilters.filteredBy.label": "Filtreret ud fra:",
|
|
@@ -120,7 +121,6 @@
|
|
|
120
121
|
"cairo.tags.manageTags.modal.toast.delete.success": "Tag er slettet.",
|
|
121
122
|
"cairo.noViewName.validationTooltip": "Gem en visning ved at give den et navn.",
|
|
122
123
|
"cairo.emptyState.subtitle.nothingMatches": "Vi fandt ingen resultater, der matcher din søgning på \"{term}\".",
|
|
123
|
-
"cairo.customFields.fieldType.checkbox.Selected.all": "All",
|
|
124
124
|
"cairo.filtersPanel.date.lastMonth": "Forrige måned",
|
|
125
125
|
"cairo.dragAndDrop.reorderMode.toolbar.cancel.cta": "Annuller",
|
|
126
126
|
"cairo.table.advanced-sorting.disabled.cta.tooltip": "Alle kolonner blev tilføjet.",
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"cairo.emptyState.subtitle.nothingAvailable": "Vi fandt ingen resultater.",
|
|
174
174
|
"cairo.tags.tagsWidget.create.CTA": "Opret tags",
|
|
175
175
|
"cairo.customFields.addCustomField.modal.keyFormat.error": "Skal starte med et bogstav fra det internationale alfabet og kan kun indeholde bogstaver, tal eller understregninger.",
|
|
176
|
-
"cairo.picker.itemsSelected": "{total, plural, one {1 element
|
|
176
|
+
"cairo.picker.itemsSelected": "{total, plural, one {1 valgt element (maks. {max})} other {{total,number} valgte elementer (maks. {max})}}",
|
|
177
177
|
"cairo.customFields.addCustomField.modal.title": "Tilføj et brugerdefineret felt",
|
|
178
178
|
"cairo.customFields.updateDataExtension.fqdn-not-extensible.error": "This is invalid action - you can't edit this feild ",
|
|
179
179
|
"cairo.dropdownSearch.select.filers.placeholder": "Vælg filtre",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
"cairo.appliedFilters.discardChanges.CTA": "Fortryd ændringer",
|
|
329
329
|
"airo.tags.collectionPage.popover.emptyState.body": "Tags hjælper dig med at filtrere og organisere dine elementer.",
|
|
330
330
|
"cairo.saveViewModal.error.message.unexpected": "Denne visning kunne ikke gemmes i øjeblikket. Forsøg igen om et par minutter.",
|
|
331
|
-
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "
|
|
331
|
+
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Udforsk relaterede apps",
|
|
332
332
|
"cairo.customFields.entityPage.emptyState.title": "Ingen felter blev udfyldt",
|
|
333
333
|
"cairo.export.exportToCSVMessage": "Dine elementer og alle deres data downloades som en CSV-fil.",
|
|
334
334
|
"cairo.manageView.unsaved.tooltip": "Hvis du vil gemme dine ændringer, skal du gå til \"Administrer visning\".",
|
|
@@ -440,6 +440,7 @@
|
|
|
440
440
|
"cairo.tags.collectionPage.popover.loadTags.error.body": "Kunne ikke indlæse tags på grund af et teknisk problem hos os.",
|
|
441
441
|
"cairo.table.advanced-sorting.button.cta": "Sortér",
|
|
442
442
|
"cairo.emptyState.premium.cta": "Opgrader",
|
|
443
|
+
"cairo.collectionPage.nested.collapseAll.tooltip": "Collapse all",
|
|
443
444
|
"cairo.manageView.Rename.disabled.predefinedView.tooltip": "Dette er en forudindstillet visning. Hvis du vil navngive denne visning, skal den gemmes som en ny visning.",
|
|
444
445
|
"cairo.customFields.addCustomField.modal.fieldType.placeholder": "Vælg type",
|
|
445
446
|
"cairo.customFields.fieldType.checkbox.Name.placeholder": "fx abonnent",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"cairo.customFields.fieldType.numberDecimal.placeholder": "z. B. 25,50",
|
|
10
10
|
"cairo.tags.popover.tagCreated.toast.success": "Tag wurde erstellt.",
|
|
11
11
|
"cairo.dragAndDrop.list-aria-label.sr": "So änderst du die Reihenfolge: Drücke die Leertaste, um ein Element zu greifen; nutze die Pfeiltasten zum Ziehen; die Leertaste zum Ablegen und „Escape“ oder „Tab“, um den Vorgang abzubrechen.",
|
|
12
|
+
"cairo.collectionPage.nested.expandAll.tooltip": "Expand all",
|
|
12
13
|
"cairo.customFields.addCustomField.modal.add.CTA": "Feld hinzufügen",
|
|
13
14
|
"cairo.tags.loadTags.error.CTA": "Tags neu laden",
|
|
14
15
|
"cairo.appliedFilters.filteredBy.label": "Gefiltert nach:",
|
|
@@ -120,7 +121,6 @@
|
|
|
120
121
|
"cairo.tags.manageTags.modal.toast.delete.success": "Tag wurde gelöscht.",
|
|
121
122
|
"cairo.noViewName.validationTooltip": "Benenne deine Ansicht, um sie zu speichern.",
|
|
122
123
|
"cairo.emptyState.subtitle.nothingMatches": "Deine Suche nach „{term}“ ergab keine Treffer.",
|
|
123
|
-
"cairo.customFields.fieldType.checkbox.Selected.all": "All",
|
|
124
124
|
"cairo.filtersPanel.date.lastMonth": "Letzter Monat",
|
|
125
125
|
"cairo.dragAndDrop.reorderMode.toolbar.cancel.cta": "Abbrechen",
|
|
126
126
|
"cairo.table.advanced-sorting.disabled.cta.tooltip": "Alle Spalten wurden hinzugefügt.",
|
|
@@ -440,6 +440,7 @@
|
|
|
440
440
|
"cairo.tags.collectionPage.popover.loadTags.error.body": "Wegen technischer Probleme wurden die Tags nicht geladen.",
|
|
441
441
|
"cairo.table.advanced-sorting.button.cta": "Sortieren",
|
|
442
442
|
"cairo.emptyState.premium.cta": "Upgraden",
|
|
443
|
+
"cairo.collectionPage.nested.collapseAll.tooltip": "Collapse all",
|
|
443
444
|
"cairo.manageView.Rename.disabled.predefinedView.tooltip": "Dies ist eine voreingestellte Ansicht. Um sie umzubenennen, speichere sie als neue Ansicht.",
|
|
444
445
|
"cairo.customFields.addCustomField.modal.fieldType.placeholder": "Feldtyp auswählen",
|
|
445
446
|
"cairo.customFields.fieldType.checkbox.Name.placeholder": "z. B. Abonnieren",
|
|
@@ -457,7 +457,8 @@
|
|
|
457
457
|
"cairo.customFields.updateDataExtension.invalid-namespace.error": "Unable to update custom field due to a technical issue on our end.",
|
|
458
458
|
"cairo.customFields.createDataExtension.fqdn-not-found.error": "Unable to create custom field due to a technical issue on our end.",
|
|
459
459
|
"cairo.customFields.createDataExtension.fqdn-not-extensible.error": "You can't edit this field.",
|
|
460
|
-
"cairo.customFields.fieldType.checkbox.Selected.all": "All",
|
|
461
460
|
"cairo.customFields.fieldType.checkbox.Selected.checked": "Yes (checked)",
|
|
462
|
-
"cairo.customFields.fieldType.checkbox.Selected.NotChecked": "No (not checked)"
|
|
461
|
+
"cairo.customFields.fieldType.checkbox.Selected.NotChecked": "No (not checked)",
|
|
462
|
+
"cairo.collectionPage.nested.expandAll.tooltip": "Expand all",
|
|
463
|
+
"cairo.collectionPage.nested.collapseAll.tooltip": "Collapse all"
|
|
463
464
|
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"cairo.customFields.fieldType.numberDecimal.placeholder": "P. ej., 25,50",
|
|
10
10
|
"cairo.tags.popover.tagCreated.toast.success": "Etiqueta creada.",
|
|
11
11
|
"cairo.dragAndDrop.list-aria-label.sr": "Para reordenar, presiona la barra espaciadora y agarra un ítem; arrástralo con las teclas de flecha; suéltalo con la barra espaciadora. Cancela con \"escape\" o \"tab\".",
|
|
12
|
+
"cairo.collectionPage.nested.expandAll.tooltip": "Expand all",
|
|
12
13
|
"cairo.customFields.addCustomField.modal.add.CTA": "Agregar campo",
|
|
13
14
|
"cairo.tags.loadTags.error.CTA": "Volver a cargar",
|
|
14
15
|
"cairo.appliedFilters.filteredBy.label": "Filtrado por:",
|
|
@@ -120,7 +121,6 @@
|
|
|
120
121
|
"cairo.tags.manageTags.modal.toast.delete.success": "Etiqueta eliminada.",
|
|
121
122
|
"cairo.noViewName.validationTooltip": "Para guardar una vista, tienes que asignarle un nombre.",
|
|
122
123
|
"cairo.emptyState.subtitle.nothingMatches": "No pudimos encontrar nada que coincida con tu búsqueda \"{term}\".",
|
|
123
|
-
"cairo.customFields.fieldType.checkbox.Selected.all": "All",
|
|
124
124
|
"cairo.filtersPanel.date.lastMonth": "El mes pasado",
|
|
125
125
|
"cairo.dragAndDrop.reorderMode.toolbar.cancel.cta": "Cancelar",
|
|
126
126
|
"cairo.table.advanced-sorting.disabled.cta.tooltip": "Se agregaron todas las columnas.",
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
"cairo.manageView.Rename.error.toast": "Debido a un problema técnico, no se cambió el nombre de tu vista.",
|
|
189
189
|
"cairo.filtersPanel.date.next3Days": "Dentro de 3 días",
|
|
190
190
|
"cairo.customFields.technical.error.title": "No pudimos cargar tus campos personalizados.",
|
|
191
|
-
"cairo.table.saveViewModal.body": "Esta vista incluirá
|
|
191
|
+
"cairo.table.saveViewModal.body": "Esta vista incluirá las columnas y los filtros aplicados actualmente. ",
|
|
192
192
|
"cairo.customFields.emptyStatePassive.title": "Aún no hay campos",
|
|
193
193
|
"cairo.customFields.entityPage.title": "Campos adicionales",
|
|
194
194
|
"cairo.dragAndDrop.reorderMode.toolbar.save.cta": "Save Order",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
"cairo.appliedFilters.discardChanges.CTA": "Descartar cambios",
|
|
329
329
|
"airo.tags.collectionPage.popover.emptyState.body": "Las etiquetas te ayudan a filtrar y organizar tus ítems.",
|
|
330
330
|
"cairo.saveViewModal.error.message.unexpected": "No pudimos guardar esta vista en este momento. Vuelve a intentarlo en unos minutos.",
|
|
331
|
-
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "
|
|
331
|
+
"cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explorar apps relacionadas",
|
|
332
332
|
"cairo.customFields.entityPage.emptyState.title": "No se rellenó ningún campo",
|
|
333
333
|
"cairo.export.exportToCSVMessage": "Tus ítems y todos sus datos se descargarán en un archivo CSV.",
|
|
334
334
|
"cairo.manageView.unsaved.tooltip": "Para guardar tus cambios, ve a Administrar vista.",
|
|
@@ -440,6 +440,7 @@
|
|
|
440
440
|
"cairo.tags.collectionPage.popover.loadTags.error.body": "No se pudieron cargar las etiquetas debido a un problema técnico de nuestra parte.",
|
|
441
441
|
"cairo.table.advanced-sorting.button.cta": "Ordenar",
|
|
442
442
|
"cairo.emptyState.premium.cta": "Hacer Upgrade",
|
|
443
|
+
"cairo.collectionPage.nested.collapseAll.tooltip": "Collapse all",
|
|
443
444
|
"cairo.manageView.Rename.disabled.predefinedView.tooltip": "Esta es una vista preestablecida. Para asignarle un nombre, guárdala como vista nueva.",
|
|
444
445
|
"cairo.customFields.addCustomField.modal.fieldType.placeholder": "Elegir tipo",
|
|
445
446
|
"cairo.customFields.fieldType.checkbox.Name.placeholder": "P. ej., Suscrito",
|