@wix/bex-core 1.443.0 → 1.444.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +4 -4
  2. package/dist/cjs/assets/locale/messages_da.json +1 -1
  3. package/dist/cjs/assets/locale/messages_de.json +1 -1
  4. package/dist/cjs/assets/locale/messages_es.json +1 -1
  5. package/dist/cjs/assets/locale/messages_fr.json +1 -1
  6. package/dist/cjs/assets/locale/messages_id.json +1 -1
  7. package/dist/cjs/assets/locale/messages_it.json +7 -7
  8. package/dist/cjs/assets/locale/messages_ja.json +3 -3
  9. package/dist/cjs/assets/locale/messages_ko.json +1 -1
  10. package/dist/cjs/assets/locale/messages_nl.json +2 -2
  11. package/dist/cjs/assets/locale/messages_no.json +1 -1
  12. package/dist/cjs/assets/locale/messages_pl.json +1 -1
  13. package/dist/cjs/assets/locale/messages_pt.json +3 -3
  14. package/dist/cjs/assets/locale/messages_sv.json +1 -1
  15. package/dist/cjs/assets/locale/messages_th.json +1 -1
  16. package/dist/cjs/assets/locale/messages_tr.json +2 -2
  17. package/dist/cjs/assets/locale/messages_vi.json +5 -5
  18. package/dist/cjs/assets/locale/messages_zh.json +2 -2
  19. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  20. package/dist/cjs/hooks/createCollectionConfig.js +2 -2
  21. package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
  22. package/dist/cjs/state/CollectionState.js.map +1 -1
  23. package/dist/cjs/util/assertKey.js +11 -1
  24. package/dist/cjs/util/assertKey.js.map +1 -1
  25. package/dist/esm/assets/locale/messages_cs.json +4 -4
  26. package/dist/esm/assets/locale/messages_da.json +1 -1
  27. package/dist/esm/assets/locale/messages_de.json +1 -1
  28. package/dist/esm/assets/locale/messages_es.json +1 -1
  29. package/dist/esm/assets/locale/messages_fr.json +1 -1
  30. package/dist/esm/assets/locale/messages_id.json +1 -1
  31. package/dist/esm/assets/locale/messages_it.json +7 -7
  32. package/dist/esm/assets/locale/messages_ja.json +3 -3
  33. package/dist/esm/assets/locale/messages_ko.json +1 -1
  34. package/dist/esm/assets/locale/messages_nl.json +2 -2
  35. package/dist/esm/assets/locale/messages_no.json +1 -1
  36. package/dist/esm/assets/locale/messages_pl.json +1 -1
  37. package/dist/esm/assets/locale/messages_pt.json +3 -3
  38. package/dist/esm/assets/locale/messages_sv.json +1 -1
  39. package/dist/esm/assets/locale/messages_th.json +1 -1
  40. package/dist/esm/assets/locale/messages_tr.json +2 -2
  41. package/dist/esm/assets/locale/messages_vi.json +5 -5
  42. package/dist/esm/assets/locale/messages_zh.json +2 -2
  43. package/dist/esm/hooks/createCollectionConfig.js +4 -4
  44. package/dist/esm/hooks/createCollectionConfig.js.map +1 -1
  45. package/dist/esm/util/assertKey.js +9 -1
  46. package/dist/esm/util/assertKey.js.map +1 -1
  47. package/dist/types/hooks/collectionConfig.d.ts +1 -1
  48. package/dist/types/hooks/collectionConfig.d.ts.map +1 -1
  49. package/dist/types/hooks/createCollectionConfig.d.ts.map +1 -1
  50. package/dist/types/state/CollectionState.d.ts +2 -2
  51. package/dist/types/state/CollectionState.d.ts.map +1 -1
  52. package/dist/types/util/assertKey.d.ts +4 -1
  53. package/dist/types/util/assertKey.d.ts.map +1 -1
  54. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","onNewPageAdded","onNewPageStart","emitter","status","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","filtersPanelModal","open","close","isOpen","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","itemKey","itemName","translate","initDependencies","remove","QueryState","limit","history","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","collection","scrollToTop","_this$scrollableConte","scrollTo","top","left","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","origin","changeSort","multiple","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","push","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","get","key","keyedItem","item","getKeyedItem","getKeyedItemByIndex","index","keyedItems","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\ninterface FiltersPanelModalDeprecatedAPI {\n _events: TypedEmitter<{\n open: () => unknown;\n close: () => unknown;\n isOpen: () => boolean;\n }>;\n open(): void;\n close(): void;\n isOpen: boolean;\n}\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchErrorMessage: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly filtersPanelModal?: FiltersPanelModalDeprecatedAPI;\n}\n\nexport 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 * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n filtersPanelModal: {\n open(): void;\n close(): void;\n isOpen: boolean;\n };\n /**\n * [BulkSelectState](/pages/cairo/?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](/pages/cairo/?path=/story/common-models--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly bulkSelect: BulkSelectState<T>;\n /**\n * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n readonly filtersPanelModal;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n this.filtersPanelModal = params.filtersPanelModal ?? {\n _events: new EventEmitter() as FiltersPanelModalDeprecatedAPI['_events'],\n open() {},\n close() {},\n isOpen: false,\n };\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n });\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this._resetReactQuery();\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get total() {\n return this.result.total;\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n this._resetReactQuery();\n }\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n get(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.result.get(key);\n }\n\n getKeyedItemByIndex(index: number): KeyedItem<T> | null {\n return this.result.keyedItems[index];\n }\n\n get keyedItems() {\n return this.result.keyedItems;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":";;;;;;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;AAsKO,MAAMa,eAAe,CAE5B;EAyEE,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;EAEAE,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;IA3FjD;AACF;AACA;AACA;IAHE,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BAK+C,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,qBAEhDd,UAAgC,IAAK;MAChD,MAAM;QAAEkB;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,GAAG1B,UAAU;MAEd,OAAO,CAACkB,SAAS,EAAEQ,aAAa,CAAC;IACnC,CAAC;IAAA,IAAAb,gBAAA,CAAAC,OAAA,oBA6NU,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,yBA4M+B,IAAAqB,YAAM,EAAC,YAAY;MAClD,MAAM;QACJtC,KAAK;QACLK,MAAM;QACNmC,MAAM,EAAE;UAAEiB,cAAc;UAAEC;QAAe,CAAC;QAC1CC;MACF,CAAC,GAAG,IAAI;MACR;MACA,IAAI,CAACtD,MAAM,CAACuD,MAAM,CAACC,OAAO,EAAE;QAC1B7D,KAAK,CAAC8D,UAAU,CAACC,QAAQ,CAAC,CAAC;MAC7B;MAEA,IAAI,CAACC,cAAc,GAAG,WAAW;MAEjC,MAAMC,uBAAuB,GAAGN,OAAO,CACpCO,SAAS,CAAC,cAAc,CAAC,CACzBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClB,MAAMC,mBAAmB,GAAGX,cAAc,oBAAdA,cAAc,CAAG;QAC3C1D,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,CAACtD,KAAK,CAACuD,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;YACAvB,cAAc,YAAdA,cAAc,CAAGuB,oBAAoB,CAAC;UACxC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAAA,IAAAhE,gBAAA,CAAAC,OAAA,2BAgXgB,IAAAqB,YAAM,EAAC,MAAM;MAC7B,MAAM;QAAE/B;MAAY,CAAC,GAAG,IAAI;MAC5B,MAAM;QAAE+E;MAAa,CAAC,GAAG/E,WAAW;MAEpC,IACE+E,YAAY,CAACC,SAAS,CAAC,CAAC,IACxBhF,WAAW,CAACD,QAAQ,IACpB,IAAI,CAACD,MAAM,CAACuD,MAAM,CAACC,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,IAAA1E,gBAAA,CAAAC,OAAA,+BAEqBX,QAAiB,IAAK;MAC3C,MAAMiE,YAAY,GAAG,IAAI,CAACvB,eAAe,CAAC,CAAC;MAE3C,IAAI1C,QAAQ,EAAE;QACZ,IAAI,CAACqF,eAAe,CAAC,CAAC;MACxB,CAAC,MAAM,IAAI,CAACrF,QAAQ,IAAIiE,YAAY,CAACqB,KAAK,CAACC,QAAQ,EAAE;QACnDtB,YAAY,CAACuB,QAAQ,CAAC;UACpBvC,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;QAAEyD;MAAS,CAAC,GAAG,IAAI;MAEzB,IAAIA,QAAQ,CAACnC,MAAM,CAACC,OAAO,EAAE;QAC3BkC,QAAQ,CAACC,OAAO,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACP,yBAAyB,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;IAAA,IAAAzE,gBAAA,CAAAC,OAAA,4BA+JiB,IAAIgF,gCAAe,CAAgB,CAAC;IAnlCrD,IAAI,CAACC,MAAM,GAAGnF,MAAM,CAACmF,MAAM;IAC3B,IAAI,CAACC,iBAAiB,GAAGpF,MAAM,CAACoF,iBAAiB;IACjD,IAAI,CAACC,gBAAgB,GAAGrF,MAAM,CAACqF,gBAAgB;IAC/C,IAAI,CAACC,iBAAiB,GAAGtF,MAAM,CAACsF,iBAAiB,IAAI;MACnDjH,OAAO,EAAE,IAAI8B,oBAAY,CAAC,CAA8C;MACxEoF,IAAIA,CAAA,EAAG,CAAC,CAAC;MACTC,KAAKA,CAAA,EAAG,CAAC,CAAC;MACVC,MAAM,EAAE;IACV,CAAC;IACD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBjB,qBAAqB,EAAElD,YAAM,CAACoE,KAAK;MACnCC,kBAAkB,EAAErE,YAAM,CAACoE,KAAK;MAChCjB,yBAAyB,EAAEnD,YAAM,CAACoE,KAAK;MACvCE,eAAe,EAAEtE,YAAM,CAACoE,KAAK;MAC7BvD,YAAY,EAAEb,YAAM,CAACoE,KAAK;MAC1B7B,YAAY,EAAEvC,YAAM,CAACoE,KAAK;MAC1BlF,MAAM,EAAEc,YAAM;MACduE,IAAI,EAAEvE,YAAM;MACZmC,KAAK,EAAEnC,YAAM;MACbwE,IAAI,EAAExE,YAAM;MACZyE,cAAc,EAAEzE,YAAM;MACtB0E,YAAY,EAAE1E,YAAM;MACpB2E,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,EAAElF,YAAM,CAACoE,KAAK;MACpC1C,cAAc,EAAEyD,gBAAU,CAACC,GAAG;MAC9BC,wBAAwB,EAAErF,YAAM;MAChCsF,iBAAiB,EAAEH,gBAAU,CAACC,GAAG;MACjCG,sBAAsB,EAAEvF;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACjB,SAAS,GAAGN,MAAM,CAACM,SAAS;IACjC,IAAI,CAACyG,IAAI,GAAG/G,MAAM,CAAC+G,IAAI;IACvB,IAAI,CAACC,mBAAmB,GAAGhH,MAAM,CAACgH,mBAAmB;IACrD,IAAI,CAACC,UAAU,GAAGjH,MAAM,CAACiH,UAAU;IAEnC,IAAI,CAAC3E,iBAAiB,GAAGtC,MAAM,CAACsC,iBAAiB;IACjD,IAAI,CAAC4E,OAAO,GAAGlH,MAAM,CAACkH,OAAO;IAC7B,IAAI,CAACC,QAAQ,GAAGnH,MAAM,CAACmH,QAAQ;IAC/B,IAAI,CAACC,SAAS,GAAGpH,MAAM,CAACoH,SAAS;IACjC,IAAI,CAACjG,SAAS,GAAGnB,MAAM,CAACmB,SAAS;IACjC,IAAI,CAACM,MAAM,GAAGzB,MAAM,CAACyB,MAAM,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC4F,gBAAgB,GAAGrH,MAAM,CAACqH,gBAAgB;IAE/C,IAAI,CAAC9E,SAAS,GAAGvC,MAAM,CAACuC,SAAS,KAAK,OAAO;MAAE+E,MAAM,EAAEA,CAAA,KAAM,CAAC;IAAE,CAAC,CAAC,CAAC;IAEnE,IAAI,CAACrI,KAAK,GAAG,IAAIsI,sBAAU,CAAC;MAC1BhH,OAAO,EAAEP,MAAM,CAACO,OAAO;MACvBE,MAAM,EAAET,MAAM,CAACS,MAAM;MACrB+G,KAAK,EAAExH,MAAM,CAACwH,KAAK;MACnBC,OAAO,EAAEzH,MAAM,CAACoF,iBAAiB,GAAGpF,MAAM,CAACyH,OAAO,GAAGC,SAAS;MAC9DC,sBAAsB,EAAE3H,MAAM,CAAC2H;IACjC,CAAC,CAAC;IAEF,IAAI,CAACC,kBAAkB,GACrB5H,MAAM,CAAC6H,iBAAiB,IACvB;MAAEC,OAAO,EAAE9H,MAAM,CAAC+H;IAAe,CAAuB;IAE3D,IAAI,CAACC,eAAe,GAAG,IAAIC,8BAAc,CAAC,IAAI,CAAC;IAE/C,IAAI,CAACC,wBAAwB,GAC3BlI,MAAM,CAACkI,wBAAwB,IAAI,UAAU;IAE/C,IAAI,CAAC5I,MAAM,GAAG,IAAI6I,kCAAgB,CAAO;MACvCjB,OAAO,EAAElH,MAAM,CAACkH,OAAO;MACvB7H,WAAW,EAAE,IAAI,CAACJ,KAAK,CAACmJ,UAAU,CAAC;IACrC,CAAC,CAAC;IAEF,IAAI,CAACC,UAAU,GAAG,IAAIC,gCAAe,CAAI;MACvCC,yBAAyB,EAAEvI,MAAM,CAACuI,yBAAyB;MAC3DC,oBAAoB,EAAExI,MAAM,CAACwI,oBAAoB;MACjDC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAEA,CAAA,KAAM;QAAA,IAAAC,qBAAA;QACjB,CAAAA,qBAAA,OAAI,CAAC9B,iBAAiB,aAAtB8B,qBAAA,CAAwBC,QAAQ,CAAC;UAC/BC,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE;QACR,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,IAAI,CAACpH,YAAY,GAAG1B,MAAM,CAAC0B,YAAY;IACvC,IAAI,CAAClC,WAAW,GAAGQ,MAAM,CAACR,WAAW;IACrC,IAAI,CAACiI,OAAO,GAAGzH,MAAM,CAACyH,OAAO;IAE7B,MAAMsB,mBAAmB,GAAG;MAC1BC,OAAO,EAAE,IAAAzH,YAAM,EAAC,MAAM,IAAI,CAAC0H,QAAQ,CAAC,IAAI,CAAChK,KAAK,CAACG,UAAU,CAAC,CAAC;MAC3D8J,gBAAgB,EAAE,IAAI;MACtBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,GAAG;MACfC,SAAS,EAAE,MAAM;MACjBvH,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBwH,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE,KAAK;MACnB,GAAGxJ,MAAM,CAACyJ;IACZ,CAAC;IAED,IAAI,CAACC,WAAW,GAAG,IAAIC,iBAAW,CAAC;MACjC1C,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3B2C,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,EAAErI,KAAK,KAAK;QAC9B,IACE,IAAAsI,2BAAqB,EAACtI,KAAK,EAAEqI,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC1K,QAAQ,CAAC,CAAC,CAAC,EACjE;UACA,OAAO,KAAK;QACd;QACA,OAAO0K,YAAY,GAAG,CAAC;MACzB,CAAC;MACD,GAAGlB;IACL,CACF,CAAC;IAED,IAAI,CAAC5G,gBAAgB,CAAC,CAAC;IAEvB,IAAInC,MAAM,CAACmK,WAAW,EAAE;MACtB,IAAI,CAACnE,cAAc,CAAChG,MAAM,CAACmK,WAAW,CAAC;IACzC;IAEA,IAAInK,MAAM,CAACgH,mBAAmB,EAAE;MAC9B,IAAI,CAACoD,eAAe,CAACC,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC7D;IAEA,IAAI,CAACC,QAAQ,GAAG,IAAAhJ,YAAM,EAAC,CAAC;MAAEiJ;IAAuC,CAAC,KAAK;MACrE,IAAI,CAAC5H,OAAO,CAAC6H,IAAI,CAAC,MAAM,EAAE;QAAED;MAAY,CAAC,CAAC;MAC1C,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC;MACA,OAAO,IAAI,CAAC8D,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,GAAG,IAAI,CAACC,WAAW,CAClC,IAAI,CAACzF,MAAM,CAAC0F,QAAQ,CAAC,IAAI,CAACN,QAAQ,EAAE,GAAG,CACzC,CAAC;IAED,IAAI,CAACO,UAAU,GAAG,IAAAvJ,YAAM,EAAC,MAAOiJ,WAAqB,IAAK;MACxD,MAAM;QACJ/I,MAAM,EAAE;UAAEsJ,QAAQ;UAAEC;QAAgB,CAAC;QACrCpI,OAAO;QACP3D;MACF,CAAC,GAAG,IAAI;MAER,MAAMgM,kBAAkB,GAAGrI,OAAO,CAC/BO,SAAS,CAAC,aAAa,CAAC,CACxBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClB0H,QAAQ,YAARA,QAAQ,CAAG;QACT9L,KAAK,EAAEA,KAAK,CAACG;MACf,CAAC,CAAC;MACFwD,OAAO,CAAC6H,IAAI,CAAC,QAAQ,EAAE;QAAED;MAAY,CAAC,CAAC;MAEvC,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC;MAEA,IAAI,IAAI,CAACsB,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;MACnC;MAEA,OAAO,IAAI,CAACR,eAAe,CAAC;QAC1BS,eAAe,EAAGnL,MAAM,IAAK;UAC3BiL,kBAAkB,CAAClH,OAAO,CAAEV,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;UACtC2H,eAAe,YAAfA,eAAe,CAAGhL,MAAM,CAAC;QAC3B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAACoL,cAAc,GAAG,IAAI,CAACjG,MAAM,CAAC0F,QAAQ,CAAC,IAAI,CAACC,UAAU,EAAE,GAAG,CAAC;EAClE;EAEA3I,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAAC2H,aAAa,CAACuB,UAAU,CAC3B;MACE,GAAG,IAAI,CAACvB,aAAa,CAACwB,OAAO;MAC7B,GAAG,IAAI,CAACtM,eAAe;MACvBoK,OAAO,EAAE;IACX,CAAC,EACD;MACErH,OAAO,EAAE;IACX,CACF,CAAC;EACH;EAyBAiE,cAAcA,CAACmE,WAA6B,EAAE;IAC5C,MAAM;MACJpJ,KAAK;MACLC,KAAK,EAAEuK,UAAU;MACjBtK,SAAS,GAAG,IAAI;MAChBC,MAAM,GAAG;IACX,CAAC,GAAGiJ,WAAW;IAEf,MAAMnJ,KAAK,GAAGuK,UAAU,IAAIxK,KAAK,CAACuD,MAAM;IAExC,IAAI,CAACoF,WAAW,CAAC8B,YAAY,CAC3B,IAAI,CAACxM,eAAe,CAACE,QAAQ,EAC7B;MACE6B,KAAK;MACLC,KAAK;MACLC,SAAS;MACTC;IACF,CACF,CAAC;EACH;EAuDAe,eAAeA,CAAA,EAAG;IAChB,MAAMhD,KAAK,GAAG,IAAI,CAAC6K,aAAa,CAAC7H,eAAe,CAAC,CAAC;IAClD,OAAOhD,KAAK;EACd;EAEA,IAAI8I,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEAyD,mBAAmBA,CAAC;IAClBC,gBAAgB;IAChBC,gBAAgB;IAChBC;EAKF,CAAC,EAAE;IACD,MAAM;MAAEhJ,OAAO;MAAEtD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAMuM,0BAA0B,GAAGjJ,OAAO,CAACO,SAAS,CAAC,mBAAmB,CAAC;IAEzE,MAAM2I,cAAc,GAAGD,0BAA0B,CAAC1H,MAAM,CACtD,CAAC4H,KAAK,EAAEC,QAAQ,KACdA,QAAQ,CAAC;MACPD,KAAK;MACLH,eAAe;MACfvM;IACF,CAAC,CAAC,EACJqM,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;MAAE/I,OAAO;MAAEtD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAM6M,uBAAuB,GAAGvJ,OAAO,CAACO,SAAS,CAAC,gBAAgB,CAAC;IACnE,OAAOgJ,uBAAuB,CAAChI,MAAM,CACnC,CAACnD,KAAK,EAAEgL,QAAQ,KACdA,QAAQ,CAAC;MACPhL,KAAK;MACL3B;IACF,CAAC,CAAC,EACJsM,gBACF,CAAC;EACH;EAEA7H,YAAYA,CAAC+F,OAAmB,EAAE;IAChC,MAAM;MAAEvK,MAAM;MAAEyI,cAAc;MAAEnF;IAAQ,CAAC,GAAG,IAAI;IAEhD,MAAMoB,QAAQ,GAAG6F,OAAO,CACrBzG,GAAG,CAAEgJ,UAAU,IAAKA,UAAU,CAACvH,KAAK,CAACwH,IAAI,CAAC,CAC1CC,MAAM,CAAEC,CAAC,IAA8BA,CAAC,IAAI,IAAI,CAAC;IAEpD,IAAI,CAACnK,YAAY,CAAC,CAAC;IAEnB,IAAI4B,QAAQ,CAACM,MAAM,EAAE;MACnB1B,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;MAEnC,MAAM+B,QAAQ,GAAGxI,QAAQ,CAACA,QAAQ,CAACM,MAAM,GAAG,CAAC,CAAC;MAC9C,MAAM;QAAErD,SAAS;QAAEC;MAAO,CAAC,GAAGsL,QAAQ;MAEtC,MAAMb,gBAAgB,GAAGa,QAAQ,CAACxL,KAAK,IAAIwL,QAAQ,CAACzL,KAAK,CAACuD,MAAM;MAChE,MAAMoH,gBAAgB,GAAG1H,QAAQ,CAACZ,GAAG,CAAEiJ,IAAI,IAAKA,IAAI,CAACtL,KAAK,CAAC;MAE3D,MAAM;QAAE+K,cAAc;QAAEG;MAAe,CAAC,GAAG,IAAI,CAACR,mBAAmB,CAAC;QAClEC,gBAAgB;QAChBC,gBAAgB;QAChBC,eAAe,EAAEtM,MAAM,CAACmN;MAC1B,CAAC,CAAC;MAEFnN,MAAM,CAACoN,QAAQ,CAAC;QACdC,WAAW,EAAEjB,gBAAgB;QAC7BkB,SAAS,EAAEd;MACb,CAAC,CAAC;MAEFxM,MAAM,CAACuN,SAAS,CAAC;QACfF,WAAW,EAAEhB,gBAAgB;QAC7BiB,SAAS,EAAEX;MACb,CAAC,CAAC;MAEF3M,MAAM,CAACwN,eAAe,CAACN,QAAQ,CAACxL,KAAK,IAAI,IAAI,CAAC;MAE9C+G,cAAc,CAACgF,SAAS,CAAC7L,MAAM,CAAC;MAChC,IAAID,SAAS,IAAI,IAAI,EAAE;QACrB3B,MAAM,CAAC2B,SAAS,GAAGA,SAAS;MAC9B;MACA,IAAI,CAACgC,cAAc,GAAG,QAAQ;MAE9BL,OAAO,CAAC6H,IAAI,CAAC,eAAe,CAAC;MAE7B,OAAO;QACLzG;MACF,CAAC;IACH;IAEA,OAAO,IAAI;EACb;EAEA4G,WAAWA,CAACoC,EAA+B,EAAE;IAC3C,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB,IAAI,IAAI,CAAC3N,MAAM,CAACuD,MAAM,CAACqK,MAAM,EAAE;QAC7B;MACF;MAEAF,EAAE,CAAC,GAAGC,IAAI,CAAC;IACb,CAAC;EACH;EAEA7K,YAAYA,CAAA,EAAG;IACb,MAAM;MAAE0H,aAAa;MAAExK,MAAM;MAAEL;IAAM,CAAC,GAAG,IAAI;IAC7C,MAAM;MAAE4D,MAAM;MAAEjB,KAAK;MAAEuL;IAAW,CAAC,GAAGrD,aAAa,CAACsD,mBAAmB,CACrEtD,aAAa,CAACwB,OAChB,CAAC;IAEDhM,MAAM,CAACuD,MAAM,GAAG;MACd,GAAGwK,kBAAW,CAACxK,MAAM,CAAC;MACtBsK,UAAU;MACVvL;IACF,CAAmD;IACnDtC,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;EACvC;EAEAsE,KAAKA,CAAA,EAAG;IACN,MAAM;MAAEoG,aAAa;MAAEtK,WAAW;MAAEoD;IAAQ,CAAC,GAAG,IAAI;IAEpDkH,aAAa,CAACuB,UAAU,CACtB;MACE,GAAGvB,aAAa,CAACwB,OAAO;MACxB,GAAG,IAAI,CAACtM,eAAe;MACvBoK,OAAO,EAAE;IACX,CAAC,EACD;MACErH,OAAO,EAAE;IACX,CACF,CAAC;IAED,MAAMyB,YAAY,GAAG,IAAI,CAACvB,eAAe,CAAC,CAAC;IAC3C,IAAI,CAAC2B,oBAAoB,GAAG,IAAIxC,OAAO,CAAQC,OAAO,IAAK;MACzD,IAAImC,YAAY,CAACD,OAAO,EAAE;QACxBC,YAAY,CAACD,OAAO,CAAC+J,IAAI,CAAC,MAAMjM,OAAO,CAAC,CAAC,CAAC,CAACkM,KAAK,CAAC,MAAMlM,OAAO,CAAC,CAAC,CAAC;MACnE,CAAC,MAAM;QACLA,OAAO,CAAC,CAAC;MACX;IACF,CAAC,CAAC;IAEF,MAAMmM,OAAO,GAAGhK,YAAY,CAACgK,OAAO,CAAC,CAAC;IAEtC,MAAMC,cAAc,GAAG7K,OAAO,CAACO,SAAS,CAAC,OAAO,CAAC;IACjD,MAAMM,iBAAiB,GAAGgK,cAAc,CAACrK,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC;MAAEmK;IAAQ,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAChO,WAAW,CAACD,QAAQ,EAAE;MACzBiE,YAAY,CAACuB,QAAQ,CAAC;QACpBvC,IAAI,EAAE,OAAO;QACbZ,KAAK,EAAE,IAAIC,kBAAY,CAAC,gCAAgC;MAC1D,CAAC,CAAC;IACJ;IAEA,IAAI,CAACO,YAAY,CAAC,CAAC;IAEnB,OAAO;MACLoB,YAAY;MACZgK,OAAO;MACP/J,iBAAiB;MACjBF,OAAO,EAAE,IAAI,CAACK;IAChB,CAAC;EACH;EAEA,IAAIsC,UAAUA,CAAA,EAAG;IACf,MAAM;MACJ5G,MAAM,EAAE;QACNoO,OAAO,EAAE;UAAEf,WAAW,EAAE3L;QAAM;MAChC,CAAC;MACD/B,KAAK,EAAE;QACL8D,UAAU,EAAE;UAAEyE;QAAM;MACtB;IACF,CAAC,GAAG,IAAI;IACR,OAAOmG,IAAI,CAACC,IAAI,CAAC5M,KAAK,GAAGwG,KAAK,CAAC;EACjC;EAEA,IAAIxG,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC1B,MAAM,CAAC0B,KAAK;EAC1B;EAEA,IAAI6M,eAAeA,CAAA,EAAG;IACpB,MAAM;MACJ9F,cAAc,EAAE;QAAE8F;MAAgB;IACpC,CAAC,GAAG,IAAI;IACR,OAAOA,eAAe;EACxB;EAqDA,MAAMpJ,qBAAqBA,CAAA,EAAG;IAC5B,MAAM;MAAEnF,MAAM;MAAEuO,eAAe;MAAE5K;IAAe,CAAC,GAAG,IAAI;IACxD,IACEA,cAAc,KAAK,SAAS,IAC5B,CAAC3D,MAAM,CAACuD,MAAM,CAACsK,UAAU,IACzB,CAACU,eAAe,EAChB;MACA,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAC5B;EACF;;EAEA;EACA,MAAMlI,kBAAkBA,CACtBvB,IAAY,EACZiH,OAAgD,GAAG,CAAC,CAAC,EACrD;IACA,IAAIyC,aAAa,GAAG,CAAC;IACrB,MAAM;MAAEC,IAAI,GAAG;QAAEC,GAAG,EAAE,GAAG;QAAEC,GAAG,EAAE;MAAI;IAAE,CAAC,GAAG5C,OAAO;IACjD,MAAM;MACJrM,KAAK;MACLK,MAAM;MACNmC,MAAM,EAAE;QAAEkB;MAAe;IAC3B,CAAC,GAAG,IAAI;IACR,MAAM;MAAEI;IAAW,CAAC,GAAG9D,KAAK;IAC5B8D,UAAU,CAACsB,IAAI,GAAGA,IAAI;IAEtB,MAAMf,mBAAmB,GAAGX,cAAc,oBAAdA,cAAc,CAAG;MAC3C1D,KAAK,EAAEA,KAAK,CAACG;IACf,CAAC,CAAC;IAEF,MAAM;MAAEmE,OAAO;MAAEC,YAAY;MAAEC;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IACjE,MAAMyK,YAAY,GAAG5K,OAAO;IAE5B,IAAI6K,SAA+C,GAAG,IAAI;IAE1D,MAAMC,cAAc,GAAG,IAAIjN,OAAO,CAAQC,OAAO,IAAK;MACpD+M,SAAS,GAAGE,UAAU,CAAC,MAAM;QAC3B;QACAP,aAAa,GAAGC,IAAI,CAACC,GAAG;QACxB,IAAI,CAACrH,wBAAwB,CAAC,CAAC;QAC/BvF,OAAO,CAAC,CAAC;MACX,CAAC,EAAE2M,IAAI,CAACE,GAAG,CAAC;IACd,CAAC,CAAC;;IAEF;IACA,MAAMK,cAAc,GAAG,IAAInN,OAAO,CAAEC,OAAO,IAAK;MAC9CiN,UAAU,CAACjN,OAAO,EAAE2M,IAAI,CAACC,GAAG,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM7M,OAAO,CAACoN,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,IAAI3M,OAAO,CAAEC,OAAO,IAAKiN,UAAU,CAACjN,OAAO,EAAE0M,aAAa,CAAC,CAAC;IACpE;IAEA,MAAMQ,cAAc;IACpB,MAAMJ,YAAY;IAElB,IAAI5K,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAACoP,KAAK,CAAC,CAAC;QACd,MAAM7K,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,CAACtD,KAAK,CAACuD,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;EAEAwH,wBAAwBA,CAAA,EAAG;IACzB,MAAM;MAAEtH;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAAC2D,cAAc,GAAG,SAAS;IAC/B3D,MAAM,CAACoP,KAAK,CAAC,CAAC;EAChB;EAEA,MAAMhE,eAAeA,CAAC;IACpBS;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MACJlM,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAERA,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC,MAAM,IAAI,CAACC,qBAAqB,CAAC;MAAEzD;IAAgB,CAAC,CAAC;EACvD;EAEAjJ,UAAUA,CAAC;IAAE3B;EAAqC,CAAC,GAAG,CAAC,CAAC,EAAE;IACxD,MAAM;MAAE0G,UAAU;MAAE3G;IAAU,CAAC,GAAG,IAAI;IACtC,MAAMuO,WAAW,GAAG,CAAC,CAAC;IACtB,IAAItO,OAAO,EAAE;MACXuO,MAAM,CAACC,MAAM,CAACF,WAAW,EAAE;QACzBG,UAAU,EAAEzO;MACd,CAAC,CAAC;IACJ;IAEA0G,UAAU,CACPgI,OAAO,CAAC;MAAE/P,QAAQ,EAAE,CAACoB,SAAS,EAAEuO,WAAW;IAAE,CAAC,CAAC,CAC/C9K,OAAO,CAAEmL,CAAC,IAAKA,CAAC,CAAChN,UAAU,CAAC,CAAC,CAAC;EACnC;EAEAwC,yBAAyBA,CAAC;IACxByG,eAAe;IACfxG,KAAK;IACLpE;EAKF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,IAAIoE,KAAK,EAAE;MACT,IAAI,CAACzC,UAAU,CAAC;QAAE3B;MAAQ,CAAC,CAAC;MAC5B,IAAI,CAAC4B,gBAAgB,CAAC,CAAC;IACzB;IACA,IAAI,CAACyE,wBAAwB,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC8D,eAAe,CAAC;MAAES;IAAgB,CAAC,CAAC;EAClD;EAEArF,IAAIA,CACFqJ,GAAa,EACbnP,MAGC,GAAG,CAAC,CAAC,EACN;IACA,MAAM;MAAEf,KAAK;MAAE2D;IAAQ,CAAC,GAAG,IAAI;IAE/BA,OAAO,CAAC6H,IAAI,CAAC,iBAAiB,EAAE;MAC9B2E,MAAM,EAAE;IACV,CAAC,CAAC;IAEFnQ,KAAK,CAAC6G,IAAI,CAACuJ,UAAU,CAACF,GAAG,EAAE;MAAEG,QAAQ,EAAEtP,MAAM,CAACsP;IAAS,CAAC,CAAC;IAEzD1M,OAAO,CAAC6H,IAAI,CAAC,WAAW,EAAE;MAAE0E;IAAI,CAAC,CAAC;IAElC,OAAO,IAAI,CAACxE,YAAY,CAAC3K,MAAM,CAAC;EAClC;EAEA,MAAM4O,qBAAqBA,CAAC;IAC1BzD;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAE7L,MAAM;MAAEL,KAAK;MAAE2D;IAAQ,CAAC,GAAG,IAAI;IAEvC,MAAM;MAAEW,OAAO;MAAEC,YAAY;MAAEgK,OAAO;MAAE/J;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IAC1E;IACA,IAAIzE,KAAK,CAAC8D,UAAU,CAACsB,IAAI,KAAK,CAAC,EAAE;MAC/BzB,OAAO,CAAC6H,IAAI,CAAC,SAAS,EAAE;QAAE+C;MAAQ,CAAC,CAAC;IACtC;IAEA,MAAMjK,OAAO;IAEb,IAAIA,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAACiQ,KAAK,CAAC,CAAC,EAAEtQ,KAAK,CAAC8D,UAAU,CAACsB,IAAI,GAAG,CAAC,CAAC;QAC1C,IAAI,CAACzB,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC3G,YAAY,CAAC,CAACN,YAAY,CAAC,CAAC;QACjCC,iBAAiB,CAACM,OAAO,CAAEV,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;QACvC8H,eAAe,YAAfA,eAAe,CAAG;UAChBlM,KAAK,EAAEK,MAAM,CAACD,WAAW;UACzBC,MAAM,EAAEA,MAAM,CAACF;QACjB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,OAAOoE,YAAY;EACrB;EAEA/C,MAAMA,CACJ+O,KAAa,EACb;IAAE7K,KAAK;IAAE6F;EAAwD,CAAC,GAAG,CAAC,CAAC,EACvE;IACA,MAAM;MAAEvL;IAAM,CAAC,GAAG,IAAI;IACtB,MAAM;MAAEwB;IAAO,CAAC,GAAGxB,KAAK;IACxB,IAAI0F,KAAK,IAAI6K,KAAK,KAAK/O,MAAM,CAAC+O,KAAK,EAAE;MACnC/O,MAAM,CAACgP,WAAW,CAACD,KAAK,CAAC;MACzB,IAAI,CAACpE,cAAc,CAACZ,WAAW,CAAC;IAClC;EACF;EAEAkF,WAAWA,CAAA,EAAG;IACZ,MAAM;MACJzQ,KAAK;MACLwC,MAAM,EAAE;QAAEuJ;MAAgB,CAAC;MAC3BpI;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEnC;IAAO,CAAC,GAAGxB,KAAK;IACxB,IAAIwB,MAAM,CAAC+O,KAAK,KAAK,EAAE,EAAE;MACvB;IACF;IAEA/O,MAAM,CAACgP,WAAW,CAAC,EAAE,CAAC;IACtB7M,OAAO,CAAC6H,IAAI,CAAC,aAAa,CAAC;IAE3B,IAAI,IAAI,CAACvC,wBAAwB,KAAK,OAAO,EAAE;MAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;IACnC;IAEA,OAAO,IAAI,CAACxG,yBAAyB,CAAC;MAAEyG,eAAe,EAAEH;IAAgB,CAAC,CAAC;EAC7E;EAEA,IAAIzK,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACtB,KAAK,CAACsB,OAAO;EAC3B;EAEAoP,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,CAACzQ,MAAM,CAACuQ,WAAW,CAACC,QAAQ,CAAC;IAEtD,IAAIC,YAAY,IAAI,IAAI,EAAE;MACxB,IAAI,CAAC7N,UAAU,CAAC,CAAC;MAEjB,OAAO6N,YAAY,CAACC,QAAQ;IAC9B;IAEA,OAAOtI,SAAS;EAClB;EAEA,MAAMuI,kBAAkBA,CAAC;IAAEC;EAAyC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC1E,MAAM;MAAEtN;IAAQ,CAAC,GAAG,IAAI;IAExB,IAAI,CAACsN,YAAY,EAAE;MACjB,IAAI,CAAChO,UAAU,CAAC,CAAC;IACnB;IAEA,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvBS,OAAO,CAAC6H,IAAI,CAAC,oBAAoB,CAAC;IAElC,MAAM,IAAI,CAACmE,qBAAqB,CAAC,CAAC;EACpC;EAEA,MAAM/I,eAAeA,CAAC;IACpBsK,kBAAkB;IAClB5P;EAIF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAEtB,KAAK;MAAEK,MAAM;MAAEyI,cAAc;MAAEnF;IAAQ,CAAC,GAAG,IAAI;IACvD,MAAM;MAAEG;IAAW,CAAC,GAAG9D,KAAK;IAC5B,MAAM;MAAEoF,IAAI,EAAE+L;IAAY,CAAC,GAAGrN,UAAU;IAExC,IAAI,CAACb,UAAU,CAAC;MAAE3B;IAAQ,CAAC,CAAC;IAE5B,MAAM8P,QAA6B,GAAG,EAAE;IAExCtN,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC/L,OAAO,CAAC6H,IAAI,CAAC,iBAAiB,CAAC;IAC/B7H,OAAO,CAAC6H,IAAI,CAAC,SAAS,EAAE;MAAE+C,OAAO,EAAE;IAAK,CAAC,CAAC,CAAC,CAAC;;IAE5C,IAAI8C,eAAe,GAAG5I,SAAyC;IAE/D,KAAK,IAAIrD,IAAI,GAAG,CAAC,EAAEA,IAAI,IAAI+L,WAAW,EAAE/L,IAAI,EAAE,EAAE;MAC9CtB,UAAU,CAACsB,IAAI,GAAGA,IAAI;MACtB,IAAI,CAAClC,gBAAgB,CAAC,CAAC;MACvB,MAAM;QAAEqB,YAAY,EAAE+M,SAAS;QAAEhN;MAAQ,CAAC,GAAG,IAAI,CAACG,KAAK,CAAC,CAAC;MACzD,IAAI6M,SAAS,CAAChN,OAAO,EAAE;QACrB,IAAIwE,cAAc,CAACyI,EAAE,KAAK,QAAQ,EAAE;UAClC,MAAMD,SAAS,CAAChN,OAAO;UACvB,IAAAI,iBAAW,EACT;YAAA,IAAA8M,qBAAA;YAAA,OAAO1N,UAAU,CAAC7B,MAAM,GAAG,EAAAuP,qBAAA,GAAAF,SAAS,CAAC1L,KAAK,CAACwH,IAAI,qBAApBoE,qBAAA,CAAsBvP,MAAM,KAAI,IAAI;UAAA,CACjE,CAAC;QACH;QACAmP,QAAQ,CAACK,IAAI,CAACH,SAAS,CAAChN,OAAO,CAAC+J,IAAI,CAAC,MAAMiD,SAAS,CAAC,CAAC;MACxD;MAEA,IAAIlM,IAAI,KAAK+L,WAAW,EAAE;QACxBE,eAAe,GAAG/M,OAAO;MAC3B;IACF;IAEA,IAAI,CAACnB,YAAY,CAAC,CAAC;IAEnB,MAAMuO,OAAO,GAAG,MAAMvP,OAAO,CAACwP,GAAG,CAACP,QAAQ,CAAC;IAE3C,IAAA1M,iBAAW,EAAC,MAAM;MAChBwM,kBAAkB,YAAlBA,kBAAkB,CAAG,CAAC;MACtB,IAAIG,eAAe,KAAK,IAAI,CAAC1M,oBAAoB,EAAE;QACjDtE,MAAM,CAACiQ,KAAK,CAACa,WAAW,CAAC;QACzB,IAAI,CAACxN,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC3G,YAAY,CAAC6M,OAAO,CAAC;MAC5B;IACF,CAAC,CAAC;EACJ;EAEA,IAAIvK,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAC9G,MAAM,CAAC8G,iBAAiB;EACtC;EAEAK,sBAAsBA,CAAA,EAAG;IACvB,MAAM;MAAExH;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAAC4R,YAAY,CAAC;MAAEC,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EAC3D;EAEAC,4BAA4BA,CAAA,EAAG;IAC7B,MAAM;MAAE9R;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAAC+R,kBAAkB,CAAC;MAAEF,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EACjE;EAEA,MAAM7K,YAAYA,CAAA,EAAG;IACnB,MAAM;MACJ3G,MAAM;MACNmC,MAAM,EAAE;QAAEwP;MAAqB,CAAC;MAChCrO,OAAO;MACP3D,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAER,MAAMmO,SAAS,GAAG,IAAI,CAACjP,eAAe,CAAC,CAAC;IAExC,IAAI,CAAC3C,MAAM,CAACuD,MAAM,CAACqK,MAAM,IAAI,CAAC5N,MAAM,CAACuD,MAAM,CAACC,OAAO,EAAE;MACnD,OAAOoO,SAAS,CAAC3N,OAAO;IAC1B;IAEAR,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC,IAAI,CAAC1L,cAAc,GAAG,SAAS;IAC/B,MAAMuK,OAAO,GAAG0D,SAAS,CAAC1D,OAAO,CAAC,CAAC;IACnC,MAAM2D,2BAA2B,GAAGvO,OAAO,CAACO,SAAS,CAAC,oBAAoB,CAAC;IAC3E,MAAM/B,OAAO,CAACwP,GAAG,CAACO,2BAA2B,CAAC/N,GAAG,CAAEgO,CAAC,IAAKA,CAAC,CAAC;MAAE5D;IAAQ,CAAC,CAAC,CAAC,CAAC;;IAEzE;IACA,IAAA7J,iBAAW,EAAC,MAAM;MAChBZ,UAAU,CAACsB,IAAI,GAAG,CAAC;MACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;MACjC,IAAI,CAAC1L,cAAc,GAAG,SAAS;IACjC,CAAC,CAAC;IAEF,MAAMO,YAAY,GAAG,MAAM,IAAI,CAACoL,qBAAqB,CAAC,CAAC;IACvD,MAAMpL,YAAY,CAACD,OAAO;IAC1B,IAAI,CAACX,OAAO,CAAC6H,IAAI,CAAC,OAAO,CAAC;IAC1B,IAAA9G,iBAAW,EAAC,MAAM;MAChB,MAAM;QAAE3C,KAAK;QAAEC;MAAU,CAAC,GAAG3B,MAAM;MACnC2R,oBAAoB,YAApBA,oBAAoB,CAAG;QACrB3R,MAAM,EAAE;UACN0B,KAAK;UACLC,SAAS,EAAEA,SAAS,IAAI;QAC1B,CAAC;QACDhC,KAAK,EAAEK,MAAM,CAACD;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EA6CA0G,IAAIA,CAAC;IAAEsL;EAAiD,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9D,MAAM;MAAEhJ,UAAU;MAAE7I,WAAW;MAAEP,KAAK;MAAE+F,QAAQ;MAAE1F;IAAO,CAAC,GAAG,IAAI;IACjE,MAAM;MAAEiF;IAAa,CAAC,GAAG/E,WAAW;IAEpCF,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;IAErCI,WAAW,CAACiC,MAAM,CAAC6P,EAAE,CAAC,QAAQ,EAAE,IAAI,CAACC,mBAAmB,CAAC;IAEzD,MAAMC,SAAS,GAAG,CAChBvS,KAAK,CAAC8G,IAAI,CAAC,CAAC,EACZ,IAAI,CAAC0L,oBAAoB,CAAC,CAAC,EAC3BpJ,UAAU,CAACtC,IAAI,CAAC,CAAC;IACjB;IACA,IAAI,CAAC+D,aAAa,CAAC4H,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EACtCnN,YAAY,CAACmN,SAAS,CAAC,IAAI,CAAC9M,eAAe,CAAC,CAC7C;IAEDI,QAAQ,CAACC,OAAO,CAAC,YAAY;MAAA,IAAA0M,qBAAA;MAC3B,MAAMvQ,OAAO,CAACwP,GAAG,CAAC,CAChBS,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAACpL,YAAY,CAAC,CAAC,GAAA0L,qBAAA,GAC7C,IAAI,CAACtK,gBAAgB,qBAArBsK,qBAAA,CAAAC,IAAA,KAAwB,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAArQ,YAAM,EAAC,MAAM;MAClB/B,WAAW,CAACiC,MAAM,CAACoQ,GAAG,CAAC,QAAQ,EAAE,IAAI,CAACN,mBAAmB,CAAC;MAC1DC,SAAS,CAACzN,OAAO,CAAE+N,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;MAC3C9M,QAAQ,CAACnC,MAAM,GAAG;QAChB,GAAGwK,kBAAW,CAAC0E;MACjB,CAAC;IACH,CAAC,CAAC;EACJ;EAEAN,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MAAExS;IAAM,CAAC,GAAG,IAAI;IACtB,MAAMuS,SAAS,GAAG,CAChB,IAAAQ,sBAAgB,EAAC/S,KAAK,CAACwC,MAAM,EAAE,SAAS,EAAGwQ,IAAI,IAAK;MAClD,IAAI,IAAI,CAAC/J,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;MACnC;MAEA,IAAI,IAAI,CAAClE,mBAAmB,EAAE;QAC5B,IAAI,CAACkL,eAAe,CAAC7H,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;MAC7D;MAEA,IAAI,CAAA2H,IAAI,oBAAJA,IAAI,CAAEzH,WAAW,MAAK,KAAK,EAAE;QAC/B,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC,CAAC,MAAM;QAAA,IAAAuL,sBAAA;QACL,CAAAA,sBAAA,OAAI,CAACtL,iBAAiB,aAAtBsL,sBAAA,CAAwBvJ,QAAQ,CAAC;UAAEC,GAAG,EAAE,CAAC;UAAEuJ,QAAQ,EAAE;QAAS,CAAC,CAAC;MAClE;MAEA,IAAI,CAAC1H,eAAe,CAAC,CAAC;IACxB,CAAC,CAAC,EACF,IAAAsH,sBAAgB,EAAC/S,KAAK,CAACwC,MAAM,EAAE,iBAAiB,EAAGwQ,IAAI,IAAK;MAC1D,IAAI,CAAC7G,cAAc,CAAC6G,IAAI,oBAAJA,IAAI,CAAEzH,WAAW,CAAC;IACxC,CAAC,CAAC,EACF,IAAIvL,KAAK,CAAC0I,sBAAsB,GAC5B,CACE,IAAA0K,cAAQ,EACN,MAAMpT,KAAK,CAACqT,aAAa,EACzB,MAAM;MACJ,IAAI,CAAC1L,wBAAwB,CAAC,CAAC;MAC/B,IAAI,CAAC8D,eAAe,CAAC,CAAC;IACxB,CACF,CAAC,CACF,GACD,EAAE,CAAC,CACR;IAED,OAAO,MAAM;MACX8G,SAAS,CAACzN,OAAO,CAAEwI,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;EAEAgG,GAAGA,CAACC,GAAW,EAAwB;IACrC,MAAMC,SAAS,GAAG,IAAI,CAACnT,MAAM,CAACiT,GAAG,CAACC,GAAG,CAAC;IACtC,OAAOC,SAAS,oBAATA,SAAS,CAAEC,IAAI;EACxB;EAEAC,YAAYA,CAACH,GAAW,EAAmC;IACzD,OAAO,IAAI,CAAClT,MAAM,CAACiT,GAAG,CAACC,GAAG,CAAC;EAC7B;EAEAI,mBAAmBA,CAACC,KAAa,EAAuB;IACtD,OAAO,IAAI,CAACvT,MAAM,CAACwT,UAAU,CAACD,KAAK,CAAC;EACtC;EAEA,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACxT,MAAM,CAACwT,UAAU;EAC/B;EAEAC,iBAAiBA,CAAIC,aAA+B,EAAE;IACpD,OAAO,IAAI,CAACd,eAAe,CAAC7H,UAAU,CAAC2I,aAAa,CAAC;EACvD;EAEAlM,sBAAsBA,CAAC7H,KAAK,GAAG,IAAI,CAACK,MAAM,CAACD,WAAW,EAOpD;IAAA,IAAA4T,WAAA,EAAAC,YAAA;IACA,MAAM;MAAE5T,MAAM;MAAEyH;IAAK,CAAC,GAAG,IAAI;IAE7B,OAAO;MACL,GAAGA,IAAI;MACPoM,cAAc,EAAEC,IAAI,CAACC,SAAS,CAACpU,KAAK,CAAC+P,UAAU,CAAC;MAChDsE,gBAAgB,EAAE,CAAAL,WAAA,GAAAhU,KAAK,CAAC6G,IAAI,aAAVmN,WAAA,CAAY3O,MAAM,GAChC8O,IAAI,CAACC,SAAS,CAACpU,KAAK,CAAC6G,IAAI,CAAC,GAC1B4B,SAAS;MACb6L,gBAAgB,EAAEjU,MAAM,CAAC0B,KAAK;MAC9BwS,YAAY,EAAElU,MAAM,CAACmU,IAAI;MACzBC,gBAAgB,GAAAR,YAAA,GAAEjU,KAAK,CAAC6G,IAAI,qBAAVoN,YAAA,CAAY5O;IAChC,CAAC;EACH;EAEA,IAAI+B,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJrB,QAAQ,EAAE;QACRnC,MAAM,EAAE;UAAE8Q;QAAU;MACtB,CAAC;MACDvJ,eAAe,EAAE;QAAEwJ;MAAkB;IACvC,CAAC,GAAG,IAAI;IACR,OAAOD,SAAS,IAAIC,iBAAiB;EACvC;EAEA,IAAItN,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJ4L,eAAe,EAAE;QAAE0B;MAAkB,CAAC;MACtCtU,MAAM,EAAE;QAAEuD;MAAO,CAAC;MAClBI;IACF,CAAC,GAAG,IAAI;IACR,OACE2Q,iBAAiB,IACjBC,OAAO,CAAChR,MAAM,CAACsK,UAAU,IAAIlK,cAAc,KAAK,SAAS,CAAC;EAE9D;EAEA,IAAIsD,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJtD,cAAc;MACd3D,MAAM,EAAE;QAAEwU;MAAQ;IACpB,CAAC,GAAG,IAAI;IACR,OAAO7Q,cAAc,KAAK,QAAQ,IAAI6Q,OAAO;EAC/C;EAEA,IAAItN,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJlH,MAAM,EAAE;QAAEuD;MAAO,CAAC;MAClBI;IACF,CAAC,GAAG,IAAI;IACR,OACE,CAACJ,MAAM,CAACsK,UAAU,IAAItK,MAAM,CAACC,OAAO,IAAIG,cAAc,KAAK,WAAW;EAE1E;EAIA,IAAI8Q,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,IAAAtQ,iBAAW,EAAC,MAAMqQ,gBAAgB,CAAC3H,IAAI,CAAC;MACjD,CAAC;MACD,IAAI+H,IAAIA,CAAA,EAAG;QACT,OAAO,IAAAzQ,iBAAW,EAAC,MAAMqQ,gBAAgB,CAACI,IAAI,CAAC;MACjD;IACF,CAAC;EACH;AACF;AAACC,OAAA,CAAAtV,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","message","fetchErrorMessage","showToast","type","biName","onNewPageAdded","onNewPageStart","emitter","status","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","filtersPanelModal","open","close","isOpen","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","itemKey","itemName","translate","initDependencies","remove","QueryState","limit","history","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","collection","scrollToTop","_this$scrollableConte","scrollTo","top","left","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","origin","changeSort","multiple","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","push","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","get","key","keyedItem","item","getKeyedItem","getKeyedItemByIndex","index","keyedItems","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\ninterface FiltersPanelModalDeprecatedAPI {\n _events: TypedEmitter<{\n open: () => unknown;\n close: () => unknown;\n isOpen: () => boolean;\n }>;\n open(): void;\n close(): void;\n isOpen: boolean;\n}\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined | null;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchErrorMessage: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n readonly filtersPanelModal?: FiltersPanelModalDeprecatedAPI;\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 * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n filtersPanelModal: {\n open(): void;\n close(): void;\n isOpen: boolean;\n };\n /**\n * [BulkSelectState](/pages/cairo/?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](/pages/cairo/?path=/story/common-models--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly bulkSelect: BulkSelectState<T>;\n /**\n * @deprecated\n * Use [ToolbarCollectionState.closeCairoSidePanel](/pages/cairo/?path=/story/common-state--toolbarcollectionstate) instead.\n */\n readonly filtersPanelModal;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n this.filtersPanelModal = params.filtersPanelModal ?? {\n _events: new EventEmitter() as FiltersPanelModalDeprecatedAPI['_events'],\n open() {},\n close() {},\n isOpen: false,\n };\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n });\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this._resetReactQuery();\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = await this.fetchData(computedQuery);\n\n return {\n items,\n total,\n available,\n cursor,\n };\n };\n\n scheduleSort;\n private readonly scheduleSearch;\n readonly _runSearch;\n readonly _runSort;\n\n setInitialPage(initialPage: DataResultRaw<T>) {\n const {\n items,\n total: maybeTotal,\n available = null,\n cursor = null,\n } = initialPage;\n\n const total = maybeTotal ?? items.length;\n\n this.queryClient.setQueryData<DataResultKeyed<T>>(\n this.queryKeyOptions.queryKey,\n {\n items,\n total,\n available,\n cursor,\n },\n );\n }\n\n animationFramePromise = () =>\n new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n\n onError = action((err: unknown) => {\n if (err == null) {\n return;\n }\n\n const { onlineState, events, errorMonitor } = this;\n console.error(err);\n\n const { isOnline } = onlineState;\n\n if (!(err instanceof OfflineError)) {\n const handled = events.onError?.({\n err,\n isOnline,\n });\n\n if (!handled) {\n errorMonitor.captureException(err);\n }\n }\n\n this.getCurrentQuery().invalidate();\n this._resetReactQuery();\n this.updateStatus();\n\n // online manager is responsible for showing offline toast message\n const message = isOnline\n ? this.fetchErrorMessage({\n err,\n isOnline,\n })\n : null;\n\n if (message) {\n this.showToast({\n type: 'ERROR' as any,\n message,\n biName: 'cairo-fetch-error',\n });\n }\n });\n\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get total() {\n return this.result.total;\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n this._resetReactQuery();\n }\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n get(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.result.get(key);\n }\n\n getKeyedItemByIndex(index: number): KeyedItem<T> | null {\n return this.result.keyedItems[index];\n }\n\n get keyedItems() {\n return this.result.keyedItems;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":";;;;;;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;AAsKO,MAAMa,eAAe,CAE5B;EAyEE,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;EAEAE,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;IA3FjD;AACF;AACA;AACA;IAHE,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BAK+C,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,qBAEhDd,UAAgC,IAAK;MAChD,MAAM;QAAEkB;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,GAAG1B,UAAU;MAEd,OAAO,CAACkB,SAAS,EAAEQ,aAAa,CAAC;IACnC,CAAC;IAAA,IAAAb,gBAAA,CAAAC,OAAA,oBA6NU,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,yBA4M+B,IAAAqB,YAAM,EAAC,YAAY;MAClD,MAAM;QACJtC,KAAK;QACLK,MAAM;QACNmC,MAAM,EAAE;UAAEiB,cAAc;UAAEC;QAAe,CAAC;QAC1CC;MACF,CAAC,GAAG,IAAI;MACR;MACA,IAAI,CAACtD,MAAM,CAACuD,MAAM,CAACC,OAAO,EAAE;QAC1B7D,KAAK,CAAC8D,UAAU,CAACC,QAAQ,CAAC,CAAC;MAC7B;MAEA,IAAI,CAACC,cAAc,GAAG,WAAW;MAEjC,MAAMC,uBAAuB,GAAGN,OAAO,CACpCO,SAAS,CAAC,cAAc,CAAC,CACzBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClB,MAAMC,mBAAmB,GAAGX,cAAc,oBAAdA,cAAc,CAAG;QAC3C1D,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,CAACtD,KAAK,CAACuD,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;YACAvB,cAAc,YAAdA,cAAc,CAAGuB,oBAAoB,CAAC;UACxC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAAA,IAAAhE,gBAAA,CAAAC,OAAA,2BAgXgB,IAAAqB,YAAM,EAAC,MAAM;MAC7B,MAAM;QAAE/B;MAAY,CAAC,GAAG,IAAI;MAC5B,MAAM;QAAE+E;MAAa,CAAC,GAAG/E,WAAW;MAEpC,IACE+E,YAAY,CAACC,SAAS,CAAC,CAAC,IACxBhF,WAAW,CAACD,QAAQ,IACpB,IAAI,CAACD,MAAM,CAACuD,MAAM,CAACC,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,IAAA1E,gBAAA,CAAAC,OAAA,+BAEqBX,QAAiB,IAAK;MAC3C,MAAMiE,YAAY,GAAG,IAAI,CAACvB,eAAe,CAAC,CAAC;MAE3C,IAAI1C,QAAQ,EAAE;QACZ,IAAI,CAACqF,eAAe,CAAC,CAAC;MACxB,CAAC,MAAM,IAAI,CAACrF,QAAQ,IAAIiE,YAAY,CAACqB,KAAK,CAACC,QAAQ,EAAE;QACnDtB,YAAY,CAACuB,QAAQ,CAAC;UACpBvC,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;QAAEyD;MAAS,CAAC,GAAG,IAAI;MAEzB,IAAIA,QAAQ,CAACnC,MAAM,CAACC,OAAO,EAAE;QAC3BkC,QAAQ,CAACC,OAAO,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACP,yBAAyB,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;IAAA,IAAAzE,gBAAA,CAAAC,OAAA,4BA+JiB,IAAIgF,gCAAe,CAAgB,CAAC;IAnlCrD,IAAI,CAACC,MAAM,GAAGnF,MAAM,CAACmF,MAAM;IAC3B,IAAI,CAACC,iBAAiB,GAAGpF,MAAM,CAACoF,iBAAiB;IACjD,IAAI,CAACC,gBAAgB,GAAGrF,MAAM,CAACqF,gBAAgB;IAC/C,IAAI,CAACC,iBAAiB,GAAGtF,MAAM,CAACsF,iBAAiB,IAAI;MACnDjH,OAAO,EAAE,IAAI8B,oBAAY,CAAC,CAA8C;MACxEoF,IAAIA,CAAA,EAAG,CAAC,CAAC;MACTC,KAAKA,CAAA,EAAG,CAAC,CAAC;MACVC,MAAM,EAAE;IACV,CAAC;IACD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBjB,qBAAqB,EAAElD,YAAM,CAACoE,KAAK;MACnCC,kBAAkB,EAAErE,YAAM,CAACoE,KAAK;MAChCjB,yBAAyB,EAAEnD,YAAM,CAACoE,KAAK;MACvCE,eAAe,EAAEtE,YAAM,CAACoE,KAAK;MAC7BvD,YAAY,EAAEb,YAAM,CAACoE,KAAK;MAC1B7B,YAAY,EAAEvC,YAAM,CAACoE,KAAK;MAC1BlF,MAAM,EAAEc,YAAM;MACduE,IAAI,EAAEvE,YAAM;MACZmC,KAAK,EAAEnC,YAAM;MACbwE,IAAI,EAAExE,YAAM;MACZyE,cAAc,EAAEzE,YAAM;MACtB0E,YAAY,EAAE1E,YAAM;MACpB2E,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,EAAElF,YAAM,CAACoE,KAAK;MACpC1C,cAAc,EAAEyD,gBAAU,CAACC,GAAG;MAC9BC,wBAAwB,EAAErF,YAAM;MAChCsF,iBAAiB,EAAEH,gBAAU,CAACC,GAAG;MACjCG,sBAAsB,EAAEvF;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACjB,SAAS,GAAGN,MAAM,CAACM,SAAS;IACjC,IAAI,CAACyG,IAAI,GAAG/G,MAAM,CAAC+G,IAAI;IACvB,IAAI,CAACC,mBAAmB,GAAGhH,MAAM,CAACgH,mBAAmB;IACrD,IAAI,CAACC,UAAU,GAAGjH,MAAM,CAACiH,UAAU;IAEnC,IAAI,CAAC3E,iBAAiB,GAAGtC,MAAM,CAACsC,iBAAiB;IACjD,IAAI,CAAC4E,OAAO,GAAGlH,MAAM,CAACkH,OAAO;IAC7B,IAAI,CAACC,QAAQ,GAAGnH,MAAM,CAACmH,QAAQ;IAC/B,IAAI,CAACC,SAAS,GAAGpH,MAAM,CAACoH,SAAS;IACjC,IAAI,CAACjG,SAAS,GAAGnB,MAAM,CAACmB,SAAS;IACjC,IAAI,CAACM,MAAM,GAAGzB,MAAM,CAACyB,MAAM,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC4F,gBAAgB,GAAGrH,MAAM,CAACqH,gBAAgB;IAE/C,IAAI,CAAC9E,SAAS,GAAGvC,MAAM,CAACuC,SAAS,KAAK,OAAO;MAAE+E,MAAM,EAAEA,CAAA,KAAM,CAAC;IAAE,CAAC,CAAC,CAAC;IAEnE,IAAI,CAACrI,KAAK,GAAG,IAAIsI,sBAAU,CAAC;MAC1BhH,OAAO,EAAEP,MAAM,CAACO,OAAO;MACvBE,MAAM,EAAET,MAAM,CAACS,MAAM;MACrB+G,KAAK,EAAExH,MAAM,CAACwH,KAAK;MACnBC,OAAO,EAAEzH,MAAM,CAACoF,iBAAiB,GAAGpF,MAAM,CAACyH,OAAO,GAAGC,SAAS;MAC9DC,sBAAsB,EAAE3H,MAAM,CAAC2H;IACjC,CAAC,CAAC;IAEF,IAAI,CAACC,kBAAkB,GACrB5H,MAAM,CAAC6H,iBAAiB,IACvB;MAAEC,OAAO,EAAE9H,MAAM,CAAC+H;IAAe,CAAuB;IAE3D,IAAI,CAACC,eAAe,GAAG,IAAIC,8BAAc,CAAC,IAAI,CAAC;IAE/C,IAAI,CAACC,wBAAwB,GAC3BlI,MAAM,CAACkI,wBAAwB,IAAI,UAAU;IAE/C,IAAI,CAAC5I,MAAM,GAAG,IAAI6I,kCAAgB,CAAO;MACvCjB,OAAO,EAAElH,MAAM,CAACkH,OAAO;MACvB7H,WAAW,EAAE,IAAI,CAACJ,KAAK,CAACmJ,UAAU,CAAC;IACrC,CAAC,CAAC;IAEF,IAAI,CAACC,UAAU,GAAG,IAAIC,gCAAe,CAAI;MACvCC,yBAAyB,EAAEvI,MAAM,CAACuI,yBAAyB;MAC3DC,oBAAoB,EAAExI,MAAM,CAACwI,oBAAoB;MACjDC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAEA,CAAA,KAAM;QAAA,IAAAC,qBAAA;QACjB,CAAAA,qBAAA,OAAI,CAAC9B,iBAAiB,aAAtB8B,qBAAA,CAAwBC,QAAQ,CAAC;UAC/BC,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE;QACR,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,IAAI,CAACpH,YAAY,GAAG1B,MAAM,CAAC0B,YAAY;IACvC,IAAI,CAAClC,WAAW,GAAGQ,MAAM,CAACR,WAAW;IACrC,IAAI,CAACiI,OAAO,GAAGzH,MAAM,CAACyH,OAAO;IAE7B,MAAMsB,mBAAmB,GAAG;MAC1BC,OAAO,EAAE,IAAAzH,YAAM,EAAC,MAAM,IAAI,CAAC0H,QAAQ,CAAC,IAAI,CAAChK,KAAK,CAACG,UAAU,CAAC,CAAC;MAC3D8J,gBAAgB,EAAE,IAAI;MACtBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,GAAG;MACfC,SAAS,EAAE,MAAM;MACjBvH,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBwH,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE,KAAK;MACnB,GAAGxJ,MAAM,CAACyJ;IACZ,CAAC;IAED,IAAI,CAACC,WAAW,GAAG,IAAIC,iBAAW,CAAC;MACjC1C,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3B2C,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,EAAErI,KAAK,KAAK;QAC9B,IACE,IAAAsI,2BAAqB,EAACtI,KAAK,EAAEqI,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC1K,QAAQ,CAAC,CAAC,CAAC,EACjE;UACA,OAAO,KAAK;QACd;QACA,OAAO0K,YAAY,GAAG,CAAC;MACzB,CAAC;MACD,GAAGlB;IACL,CACF,CAAC;IAED,IAAI,CAAC5G,gBAAgB,CAAC,CAAC;IAEvB,IAAInC,MAAM,CAACmK,WAAW,EAAE;MACtB,IAAI,CAACnE,cAAc,CAAChG,MAAM,CAACmK,WAAW,CAAC;IACzC;IAEA,IAAInK,MAAM,CAACgH,mBAAmB,EAAE;MAC9B,IAAI,CAACoD,eAAe,CAACC,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC7D;IAEA,IAAI,CAACC,QAAQ,GAAG,IAAAhJ,YAAM,EAAC,CAAC;MAAEiJ;IAAuC,CAAC,KAAK;MACrE,IAAI,CAAC5H,OAAO,CAAC6H,IAAI,CAAC,MAAM,EAAE;QAAED;MAAY,CAAC,CAAC;MAC1C,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC;MACA,OAAO,IAAI,CAAC8D,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,GAAG,IAAI,CAACC,WAAW,CAClC,IAAI,CAACzF,MAAM,CAAC0F,QAAQ,CAAC,IAAI,CAACN,QAAQ,EAAE,GAAG,CACzC,CAAC;IAED,IAAI,CAACO,UAAU,GAAG,IAAAvJ,YAAM,EAAC,MAAOiJ,WAAqB,IAAK;MACxD,MAAM;QACJ/I,MAAM,EAAE;UAAEsJ,QAAQ;UAAEC;QAAgB,CAAC;QACrCpI,OAAO;QACP3D;MACF,CAAC,GAAG,IAAI;MAER,MAAMgM,kBAAkB,GAAGrI,OAAO,CAC/BO,SAAS,CAAC,aAAa,CAAC,CACxBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;MAClB0H,QAAQ,YAARA,QAAQ,CAAG;QACT9L,KAAK,EAAEA,KAAK,CAACG;MACf,CAAC,CAAC;MACFwD,OAAO,CAAC6H,IAAI,CAAC,QAAQ,EAAE;QAAED;MAAY,CAAC,CAAC;MAEvC,IAAIA,WAAW,EAAE;QACf,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC;MAEA,IAAI,IAAI,CAACsB,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;MACnC;MAEA,OAAO,IAAI,CAACR,eAAe,CAAC;QAC1BS,eAAe,EAAGnL,MAAM,IAAK;UAC3BiL,kBAAkB,CAAClH,OAAO,CAAEV,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;UACtC2H,eAAe,YAAfA,eAAe,CAAGhL,MAAM,CAAC;QAC3B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAACoL,cAAc,GAAG,IAAI,CAACjG,MAAM,CAAC0F,QAAQ,CAAC,IAAI,CAACC,UAAU,EAAE,GAAG,CAAC;EAClE;EAEA3I,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAAC2H,aAAa,CAACuB,UAAU,CAC3B;MACE,GAAG,IAAI,CAACvB,aAAa,CAACwB,OAAO;MAC7B,GAAG,IAAI,CAACtM,eAAe;MACvBoK,OAAO,EAAE;IACX,CAAC,EACD;MACErH,OAAO,EAAE;IACX,CACF,CAAC;EACH;EAyBAiE,cAAcA,CAACmE,WAA6B,EAAE;IAC5C,MAAM;MACJpJ,KAAK;MACLC,KAAK,EAAEuK,UAAU;MACjBtK,SAAS,GAAG,IAAI;MAChBC,MAAM,GAAG;IACX,CAAC,GAAGiJ,WAAW;IAEf,MAAMnJ,KAAK,GAAGuK,UAAU,IAAIxK,KAAK,CAACuD,MAAM;IAExC,IAAI,CAACoF,WAAW,CAAC8B,YAAY,CAC3B,IAAI,CAACxM,eAAe,CAACE,QAAQ,EAC7B;MACE6B,KAAK;MACLC,KAAK;MACLC,SAAS;MACTC;IACF,CACF,CAAC;EACH;EAuDAe,eAAeA,CAAA,EAAG;IAChB,MAAMhD,KAAK,GAAG,IAAI,CAAC6K,aAAa,CAAC7H,eAAe,CAAC,CAAC;IAClD,OAAOhD,KAAK;EACd;EAEA,IAAI8I,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACC,eAAe;EAC7B;EAEAyD,mBAAmBA,CAAC;IAClBC,gBAAgB;IAChBC,gBAAgB;IAChBC;EAKF,CAAC,EAAE;IACD,MAAM;MAAEhJ,OAAO;MAAEtD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAMuM,0BAA0B,GAAGjJ,OAAO,CAACO,SAAS,CAAC,mBAAmB,CAAC;IAEzE,MAAM2I,cAAc,GAAGD,0BAA0B,CAAC1H,MAAM,CACtD,CAAC4H,KAAK,EAAEC,QAAQ,KACdA,QAAQ,CAAC;MACPD,KAAK;MACLH,eAAe;MACfvM;IACF,CAAC,CAAC,EACJqM,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;MAAE/I,OAAO;MAAEtD;IAAO,CAAC,GAAG,IAAI;IAChC,MAAM;MAAED;IAAY,CAAC,GAAGC,MAAM;IAE9B,MAAM6M,uBAAuB,GAAGvJ,OAAO,CAACO,SAAS,CAAC,gBAAgB,CAAC;IACnE,OAAOgJ,uBAAuB,CAAChI,MAAM,CACnC,CAACnD,KAAK,EAAEgL,QAAQ,KACdA,QAAQ,CAAC;MACPhL,KAAK;MACL3B;IACF,CAAC,CAAC,EACJsM,gBACF,CAAC;EACH;EAEA7H,YAAYA,CAAC+F,OAAmB,EAAE;IAChC,MAAM;MAAEvK,MAAM;MAAEyI,cAAc;MAAEnF;IAAQ,CAAC,GAAG,IAAI;IAEhD,MAAMoB,QAAQ,GAAG6F,OAAO,CACrBzG,GAAG,CAAEgJ,UAAU,IAAKA,UAAU,CAACvH,KAAK,CAACwH,IAAI,CAAC,CAC1CC,MAAM,CAAEC,CAAC,IAA8BA,CAAC,IAAI,IAAI,CAAC;IAEpD,IAAI,CAACnK,YAAY,CAAC,CAAC;IAEnB,IAAI4B,QAAQ,CAACM,MAAM,EAAE;MACnB1B,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;MAEnC,MAAM+B,QAAQ,GAAGxI,QAAQ,CAACA,QAAQ,CAACM,MAAM,GAAG,CAAC,CAAC;MAC9C,MAAM;QAAErD,SAAS;QAAEC;MAAO,CAAC,GAAGsL,QAAQ;MAEtC,MAAMb,gBAAgB,GAAGa,QAAQ,CAACxL,KAAK,IAAIwL,QAAQ,CAACzL,KAAK,CAACuD,MAAM;MAChE,MAAMoH,gBAAgB,GAAG1H,QAAQ,CAACZ,GAAG,CAAEiJ,IAAI,IAAKA,IAAI,CAACtL,KAAK,CAAC;MAE3D,MAAM;QAAE+K,cAAc;QAAEG;MAAe,CAAC,GAAG,IAAI,CAACR,mBAAmB,CAAC;QAClEC,gBAAgB;QAChBC,gBAAgB;QAChBC,eAAe,EAAEtM,MAAM,CAACmN;MAC1B,CAAC,CAAC;MAEFnN,MAAM,CAACoN,QAAQ,CAAC;QACdC,WAAW,EAAEjB,gBAAgB;QAC7BkB,SAAS,EAAEd;MACb,CAAC,CAAC;MAEFxM,MAAM,CAACuN,SAAS,CAAC;QACfF,WAAW,EAAEhB,gBAAgB;QAC7BiB,SAAS,EAAEX;MACb,CAAC,CAAC;MAEF3M,MAAM,CAACwN,eAAe,CAACN,QAAQ,CAACxL,KAAK,IAAI,IAAI,CAAC;MAE9C+G,cAAc,CAACgF,SAAS,CAAC7L,MAAM,CAAC;MAChC,IAAID,SAAS,IAAI,IAAI,EAAE;QACrB3B,MAAM,CAAC2B,SAAS,GAAGA,SAAS;MAC9B;MACA,IAAI,CAACgC,cAAc,GAAG,QAAQ;MAE9BL,OAAO,CAAC6H,IAAI,CAAC,eAAe,CAAC;MAE7B,OAAO;QACLzG;MACF,CAAC;IACH;IAEA,OAAO,IAAI;EACb;EAEA4G,WAAWA,CAACoC,EAA+B,EAAE;IAC3C,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB,IAAI,IAAI,CAAC3N,MAAM,CAACuD,MAAM,CAACqK,MAAM,EAAE;QAC7B;MACF;MAEAF,EAAE,CAAC,GAAGC,IAAI,CAAC;IACb,CAAC;EACH;EAEA7K,YAAYA,CAAA,EAAG;IACb,MAAM;MAAE0H,aAAa;MAAExK,MAAM;MAAEL;IAAM,CAAC,GAAG,IAAI;IAC7C,MAAM;MAAE4D,MAAM;MAAEjB,KAAK;MAAEuL;IAAW,CAAC,GAAGrD,aAAa,CAACsD,mBAAmB,CACrEtD,aAAa,CAACwB,OAChB,CAAC;IAEDhM,MAAM,CAACuD,MAAM,GAAG;MACd,GAAGwK,kBAAW,CAACxK,MAAM,CAAC;MACtBsK,UAAU;MACVvL;IACF,CAAmD;IACnDtC,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;EACvC;EAEAsE,KAAKA,CAAA,EAAG;IACN,MAAM;MAAEoG,aAAa;MAAEtK,WAAW;MAAEoD;IAAQ,CAAC,GAAG,IAAI;IAEpDkH,aAAa,CAACuB,UAAU,CACtB;MACE,GAAGvB,aAAa,CAACwB,OAAO;MACxB,GAAG,IAAI,CAACtM,eAAe;MACvBoK,OAAO,EAAE;IACX,CAAC,EACD;MACErH,OAAO,EAAE;IACX,CACF,CAAC;IAED,MAAMyB,YAAY,GAAG,IAAI,CAACvB,eAAe,CAAC,CAAC;IAC3C,IAAI,CAAC2B,oBAAoB,GAAG,IAAIxC,OAAO,CAAQC,OAAO,IAAK;MACzD,IAAImC,YAAY,CAACD,OAAO,EAAE;QACxBC,YAAY,CAACD,OAAO,CAAC+J,IAAI,CAAC,MAAMjM,OAAO,CAAC,CAAC,CAAC,CAACkM,KAAK,CAAC,MAAMlM,OAAO,CAAC,CAAC,CAAC;MACnE,CAAC,MAAM;QACLA,OAAO,CAAC,CAAC;MACX;IACF,CAAC,CAAC;IAEF,MAAMmM,OAAO,GAAGhK,YAAY,CAACgK,OAAO,CAAC,CAAC;IAEtC,MAAMC,cAAc,GAAG7K,OAAO,CAACO,SAAS,CAAC,OAAO,CAAC;IACjD,MAAMM,iBAAiB,GAAGgK,cAAc,CAACrK,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC;MAAEmK;IAAQ,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAChO,WAAW,CAACD,QAAQ,EAAE;MACzBiE,YAAY,CAACuB,QAAQ,CAAC;QACpBvC,IAAI,EAAE,OAAO;QACbZ,KAAK,EAAE,IAAIC,kBAAY,CAAC,gCAAgC;MAC1D,CAAC,CAAC;IACJ;IAEA,IAAI,CAACO,YAAY,CAAC,CAAC;IAEnB,OAAO;MACLoB,YAAY;MACZgK,OAAO;MACP/J,iBAAiB;MACjBF,OAAO,EAAE,IAAI,CAACK;IAChB,CAAC;EACH;EAEA,IAAIsC,UAAUA,CAAA,EAAG;IACf,MAAM;MACJ5G,MAAM,EAAE;QACNoO,OAAO,EAAE;UAAEf,WAAW,EAAE3L;QAAM;MAChC,CAAC;MACD/B,KAAK,EAAE;QACL8D,UAAU,EAAE;UAAEyE;QAAM;MACtB;IACF,CAAC,GAAG,IAAI;IACR,OAAOmG,IAAI,CAACC,IAAI,CAAC5M,KAAK,GAAGwG,KAAK,CAAC;EACjC;EAEA,IAAIxG,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC1B,MAAM,CAAC0B,KAAK;EAC1B;EAEA,IAAI6M,eAAeA,CAAA,EAAG;IACpB,MAAM;MACJ9F,cAAc,EAAE;QAAE8F;MAAgB;IACpC,CAAC,GAAG,IAAI;IACR,OAAOA,eAAe;EACxB;EAqDA,MAAMpJ,qBAAqBA,CAAA,EAAG;IAC5B,MAAM;MAAEnF,MAAM;MAAEuO,eAAe;MAAE5K;IAAe,CAAC,GAAG,IAAI;IACxD,IACEA,cAAc,KAAK,SAAS,IAC5B,CAAC3D,MAAM,CAACuD,MAAM,CAACsK,UAAU,IACzB,CAACU,eAAe,EAChB;MACA,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAC5B;EACF;;EAEA;EACA,MAAMlI,kBAAkBA,CACtBvB,IAAY,EACZiH,OAAgD,GAAG,CAAC,CAAC,EACrD;IACA,IAAIyC,aAAa,GAAG,CAAC;IACrB,MAAM;MAAEC,IAAI,GAAG;QAAEC,GAAG,EAAE,GAAG;QAAEC,GAAG,EAAE;MAAI;IAAE,CAAC,GAAG5C,OAAO;IACjD,MAAM;MACJrM,KAAK;MACLK,MAAM;MACNmC,MAAM,EAAE;QAAEkB;MAAe;IAC3B,CAAC,GAAG,IAAI;IACR,MAAM;MAAEI;IAAW,CAAC,GAAG9D,KAAK;IAC5B8D,UAAU,CAACsB,IAAI,GAAGA,IAAI;IAEtB,MAAMf,mBAAmB,GAAGX,cAAc,oBAAdA,cAAc,CAAG;MAC3C1D,KAAK,EAAEA,KAAK,CAACG;IACf,CAAC,CAAC;IAEF,MAAM;MAAEmE,OAAO;MAAEC,YAAY;MAAEC;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IACjE,MAAMyK,YAAY,GAAG5K,OAAO;IAE5B,IAAI6K,SAA+C,GAAG,IAAI;IAE1D,MAAMC,cAAc,GAAG,IAAIjN,OAAO,CAAQC,OAAO,IAAK;MACpD+M,SAAS,GAAGE,UAAU,CAAC,MAAM;QAC3B;QACAP,aAAa,GAAGC,IAAI,CAACC,GAAG;QACxB,IAAI,CAACrH,wBAAwB,CAAC,CAAC;QAC/BvF,OAAO,CAAC,CAAC;MACX,CAAC,EAAE2M,IAAI,CAACE,GAAG,CAAC;IACd,CAAC,CAAC;;IAEF;IACA,MAAMK,cAAc,GAAG,IAAInN,OAAO,CAAEC,OAAO,IAAK;MAC9CiN,UAAU,CAACjN,OAAO,EAAE2M,IAAI,CAACC,GAAG,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM7M,OAAO,CAACoN,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,IAAI3M,OAAO,CAAEC,OAAO,IAAKiN,UAAU,CAACjN,OAAO,EAAE0M,aAAa,CAAC,CAAC;IACpE;IAEA,MAAMQ,cAAc;IACpB,MAAMJ,YAAY;IAElB,IAAI5K,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAACoP,KAAK,CAAC,CAAC;QACd,MAAM7K,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,CAACtD,KAAK,CAACuD,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;EAEAwH,wBAAwBA,CAAA,EAAG;IACzB,MAAM;MAAEtH;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAAC2D,cAAc,GAAG,SAAS;IAC/B3D,MAAM,CAACoP,KAAK,CAAC,CAAC;EAChB;EAEA,MAAMhE,eAAeA,CAAC;IACpBS;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MACJlM,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAERA,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC,MAAM,IAAI,CAACC,qBAAqB,CAAC;MAAEzD;IAAgB,CAAC,CAAC;EACvD;EAEAjJ,UAAUA,CAAC;IAAE3B;EAAqC,CAAC,GAAG,CAAC,CAAC,EAAE;IACxD,MAAM;MAAE0G,UAAU;MAAE3G;IAAU,CAAC,GAAG,IAAI;IACtC,MAAMuO,WAAW,GAAG,CAAC,CAAC;IACtB,IAAItO,OAAO,EAAE;MACXuO,MAAM,CAACC,MAAM,CAACF,WAAW,EAAE;QACzBG,UAAU,EAAEzO;MACd,CAAC,CAAC;IACJ;IAEA0G,UAAU,CACPgI,OAAO,CAAC;MAAE/P,QAAQ,EAAE,CAACoB,SAAS,EAAEuO,WAAW;IAAE,CAAC,CAAC,CAC/C9K,OAAO,CAAEmL,CAAC,IAAKA,CAAC,CAAChN,UAAU,CAAC,CAAC,CAAC;EACnC;EAEAwC,yBAAyBA,CAAC;IACxByG,eAAe;IACfxG,KAAK;IACLpE;EAKF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,IAAIoE,KAAK,EAAE;MACT,IAAI,CAACzC,UAAU,CAAC;QAAE3B;MAAQ,CAAC,CAAC;MAC5B,IAAI,CAAC4B,gBAAgB,CAAC,CAAC;IACzB;IACA,IAAI,CAACyE,wBAAwB,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC8D,eAAe,CAAC;MAAES;IAAgB,CAAC,CAAC;EAClD;EAEArF,IAAIA,CACFqJ,GAAa,EACbnP,MAGC,GAAG,CAAC,CAAC,EACN;IACA,MAAM;MAAEf,KAAK;MAAE2D;IAAQ,CAAC,GAAG,IAAI;IAE/BA,OAAO,CAAC6H,IAAI,CAAC,iBAAiB,EAAE;MAC9B2E,MAAM,EAAE;IACV,CAAC,CAAC;IAEFnQ,KAAK,CAAC6G,IAAI,CAACuJ,UAAU,CAACF,GAAG,EAAE;MAAEG,QAAQ,EAAEtP,MAAM,CAACsP;IAAS,CAAC,CAAC;IAEzD1M,OAAO,CAAC6H,IAAI,CAAC,WAAW,EAAE;MAAE0E;IAAI,CAAC,CAAC;IAElC,OAAO,IAAI,CAACxE,YAAY,CAAC3K,MAAM,CAAC;EAClC;EAEA,MAAM4O,qBAAqBA,CAAC;IAC1BzD;EAGF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAE7L,MAAM;MAAEL,KAAK;MAAE2D;IAAQ,CAAC,GAAG,IAAI;IAEvC,MAAM;MAAEW,OAAO;MAAEC,YAAY;MAAEgK,OAAO;MAAE/J;IAAkB,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IAC1E;IACA,IAAIzE,KAAK,CAAC8D,UAAU,CAACsB,IAAI,KAAK,CAAC,EAAE;MAC/BzB,OAAO,CAAC6H,IAAI,CAAC,SAAS,EAAE;QAAE+C;MAAQ,CAAC,CAAC;IACtC;IAEA,MAAMjK,OAAO;IAEb,IAAIA,OAAO,KAAK,IAAI,CAACK,oBAAoB,EAAE;MACzC,IAAAD,iBAAW,EAAC,MAAM;QAChBrE,MAAM,CAACiQ,KAAK,CAAC,CAAC,EAAEtQ,KAAK,CAAC8D,UAAU,CAACsB,IAAI,GAAG,CAAC,CAAC;QAC1C,IAAI,CAACzB,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC3G,YAAY,CAAC,CAACN,YAAY,CAAC,CAAC;QACjCC,iBAAiB,CAACM,OAAO,CAAEV,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;QACvC8H,eAAe,YAAfA,eAAe,CAAG;UAChBlM,KAAK,EAAEK,MAAM,CAACD,WAAW;UACzBC,MAAM,EAAEA,MAAM,CAACF;QACjB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,OAAOoE,YAAY;EACrB;EAEA/C,MAAMA,CACJ+O,KAAa,EACb;IAAE7K,KAAK;IAAE6F;EAAwD,CAAC,GAAG,CAAC,CAAC,EACvE;IACA,MAAM;MAAEvL;IAAM,CAAC,GAAG,IAAI;IACtB,MAAM;MAAEwB;IAAO,CAAC,GAAGxB,KAAK;IACxB,IAAI0F,KAAK,IAAI6K,KAAK,KAAK/O,MAAM,CAAC+O,KAAK,EAAE;MACnC/O,MAAM,CAACgP,WAAW,CAACD,KAAK,CAAC;MACzB,IAAI,CAACpE,cAAc,CAACZ,WAAW,CAAC;IAClC;EACF;EAEAkF,WAAWA,CAAA,EAAG;IACZ,MAAM;MACJzQ,KAAK;MACLwC,MAAM,EAAE;QAAEuJ;MAAgB,CAAC;MAC3BpI;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEnC;IAAO,CAAC,GAAGxB,KAAK;IACxB,IAAIwB,MAAM,CAAC+O,KAAK,KAAK,EAAE,EAAE;MACvB;IACF;IAEA/O,MAAM,CAACgP,WAAW,CAAC,EAAE,CAAC;IACtB7M,OAAO,CAAC6H,IAAI,CAAC,aAAa,CAAC;IAE3B,IAAI,IAAI,CAACvC,wBAAwB,KAAK,OAAO,EAAE;MAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;IACnC;IAEA,OAAO,IAAI,CAACxG,yBAAyB,CAAC;MAAEyG,eAAe,EAAEH;IAAgB,CAAC,CAAC;EAC7E;EAEA,IAAIzK,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACtB,KAAK,CAACsB,OAAO;EAC3B;EAEAoP,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,CAACzQ,MAAM,CAACuQ,WAAW,CAACC,QAAQ,CAAC;IAEtD,IAAIC,YAAY,IAAI,IAAI,EAAE;MACxB,IAAI,CAAC7N,UAAU,CAAC,CAAC;MAEjB,OAAO6N,YAAY,CAACC,QAAQ;IAC9B;IAEA,OAAOtI,SAAS;EAClB;EAEA,MAAMuI,kBAAkBA,CAAC;IAAEC;EAAyC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC1E,MAAM;MAAEtN;IAAQ,CAAC,GAAG,IAAI;IAExB,IAAI,CAACsN,YAAY,EAAE;MACjB,IAAI,CAAChO,UAAU,CAAC,CAAC;IACnB;IAEA,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvBS,OAAO,CAAC6H,IAAI,CAAC,oBAAoB,CAAC;IAElC,MAAM,IAAI,CAACmE,qBAAqB,CAAC,CAAC;EACpC;EAEA,MAAM/I,eAAeA,CAAC;IACpBsK,kBAAkB;IAClB5P;EAIF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAEtB,KAAK;MAAEK,MAAM;MAAEyI,cAAc;MAAEnF;IAAQ,CAAC,GAAG,IAAI;IACvD,MAAM;MAAEG;IAAW,CAAC,GAAG9D,KAAK;IAC5B,MAAM;MAAEoF,IAAI,EAAE+L;IAAY,CAAC,GAAGrN,UAAU;IAExC,IAAI,CAACb,UAAU,CAAC;MAAE3B;IAAQ,CAAC,CAAC;IAE5B,MAAM8P,QAA6B,GAAG,EAAE;IAExCtN,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC/L,OAAO,CAAC6H,IAAI,CAAC,iBAAiB,CAAC;IAC/B7H,OAAO,CAAC6H,IAAI,CAAC,SAAS,EAAE;MAAE+C,OAAO,EAAE;IAAK,CAAC,CAAC,CAAC,CAAC;;IAE5C,IAAI8C,eAAe,GAAG5I,SAAyC;IAE/D,KAAK,IAAIrD,IAAI,GAAG,CAAC,EAAEA,IAAI,IAAI+L,WAAW,EAAE/L,IAAI,EAAE,EAAE;MAC9CtB,UAAU,CAACsB,IAAI,GAAGA,IAAI;MACtB,IAAI,CAAClC,gBAAgB,CAAC,CAAC;MACvB,MAAM;QAAEqB,YAAY,EAAE+M,SAAS;QAAEhN;MAAQ,CAAC,GAAG,IAAI,CAACG,KAAK,CAAC,CAAC;MACzD,IAAI6M,SAAS,CAAChN,OAAO,EAAE;QACrB,IAAIwE,cAAc,CAACyI,EAAE,KAAK,QAAQ,EAAE;UAClC,MAAMD,SAAS,CAAChN,OAAO;UACvB,IAAAI,iBAAW,EACT;YAAA,IAAA8M,qBAAA;YAAA,OAAO1N,UAAU,CAAC7B,MAAM,GAAG,EAAAuP,qBAAA,GAAAF,SAAS,CAAC1L,KAAK,CAACwH,IAAI,qBAApBoE,qBAAA,CAAsBvP,MAAM,KAAI,IAAI;UAAA,CACjE,CAAC;QACH;QACAmP,QAAQ,CAACK,IAAI,CAACH,SAAS,CAAChN,OAAO,CAAC+J,IAAI,CAAC,MAAMiD,SAAS,CAAC,CAAC;MACxD;MAEA,IAAIlM,IAAI,KAAK+L,WAAW,EAAE;QACxBE,eAAe,GAAG/M,OAAO;MAC3B;IACF;IAEA,IAAI,CAACnB,YAAY,CAAC,CAAC;IAEnB,MAAMuO,OAAO,GAAG,MAAMvP,OAAO,CAACwP,GAAG,CAACP,QAAQ,CAAC;IAE3C,IAAA1M,iBAAW,EAAC,MAAM;MAChBwM,kBAAkB,YAAlBA,kBAAkB,CAAG,CAAC;MACtB,IAAIG,eAAe,KAAK,IAAI,CAAC1M,oBAAoB,EAAE;QACjDtE,MAAM,CAACiQ,KAAK,CAACa,WAAW,CAAC;QACzB,IAAI,CAACxN,OAAO,CAAC6H,IAAI,CAAC,qBAAqB,CAAC;QACxC,IAAI,CAAC3G,YAAY,CAAC6M,OAAO,CAAC;MAC5B;IACF,CAAC,CAAC;EACJ;EAEA,IAAIvK,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAC9G,MAAM,CAAC8G,iBAAiB;EACtC;EAEAK,sBAAsBA,CAAA,EAAG;IACvB,MAAM;MAAExH;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAAC4R,YAAY,CAAC;MAAEC,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EAC3D;EAEAC,4BAA4BA,CAAA,EAAG;IAC7B,MAAM;MAAE9R;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAAC+R,kBAAkB,CAAC;MAAEF,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS;IAAE,CAAC,CAAC;EACjE;EAEA,MAAM7K,YAAYA,CAAA,EAAG;IACnB,MAAM;MACJ3G,MAAM;MACNmC,MAAM,EAAE;QAAEwP;MAAqB,CAAC;MAChCrO,OAAO;MACP3D,KAAK,EAAE;QAAE8D;MAAW;IACtB,CAAC,GAAG,IAAI;IAER,MAAMmO,SAAS,GAAG,IAAI,CAACjP,eAAe,CAAC,CAAC;IAExC,IAAI,CAAC3C,MAAM,CAACuD,MAAM,CAACqK,MAAM,IAAI,CAAC5N,MAAM,CAACuD,MAAM,CAACC,OAAO,EAAE;MACnD,OAAOoO,SAAS,CAAC3N,OAAO;IAC1B;IAEAR,UAAU,CAACsB,IAAI,GAAG,CAAC;IACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;IAEjC,IAAI,CAAC1L,cAAc,GAAG,SAAS;IAC/B,MAAMuK,OAAO,GAAG0D,SAAS,CAAC1D,OAAO,CAAC,CAAC;IACnC,MAAM2D,2BAA2B,GAAGvO,OAAO,CAACO,SAAS,CAAC,oBAAoB,CAAC;IAC3E,MAAM/B,OAAO,CAACwP,GAAG,CAACO,2BAA2B,CAAC/N,GAAG,CAAEgO,CAAC,IAAKA,CAAC,CAAC;MAAE5D;IAAQ,CAAC,CAAC,CAAC,CAAC;;IAEzE;IACA,IAAA7J,iBAAW,EAAC,MAAM;MAChBZ,UAAU,CAACsB,IAAI,GAAG,CAAC;MACnBtB,UAAU,CAAC7B,MAAM,GAAGyN,yBAAa;MACjC,IAAI,CAAC1L,cAAc,GAAG,SAAS;IACjC,CAAC,CAAC;IAEF,MAAMO,YAAY,GAAG,MAAM,IAAI,CAACoL,qBAAqB,CAAC,CAAC;IACvD,MAAMpL,YAAY,CAACD,OAAO;IAC1B,IAAI,CAACX,OAAO,CAAC6H,IAAI,CAAC,OAAO,CAAC;IAC1B,IAAA9G,iBAAW,EAAC,MAAM;MAChB,MAAM;QAAE3C,KAAK;QAAEC;MAAU,CAAC,GAAG3B,MAAM;MACnC2R,oBAAoB,YAApBA,oBAAoB,CAAG;QACrB3R,MAAM,EAAE;UACN0B,KAAK;UACLC,SAAS,EAAEA,SAAS,IAAI;QAC1B,CAAC;QACDhC,KAAK,EAAEK,MAAM,CAACD;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EA6CA0G,IAAIA,CAAC;IAAEsL;EAAiD,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9D,MAAM;MAAEhJ,UAAU;MAAE7I,WAAW;MAAEP,KAAK;MAAE+F,QAAQ;MAAE1F;IAAO,CAAC,GAAG,IAAI;IACjE,MAAM;MAAEiF;IAAa,CAAC,GAAG/E,WAAW;IAEpCF,MAAM,CAACD,WAAW,GAAGJ,KAAK,CAACG,UAAU;IAErCI,WAAW,CAACiC,MAAM,CAAC6P,EAAE,CAAC,QAAQ,EAAE,IAAI,CAACC,mBAAmB,CAAC;IAEzD,MAAMC,SAAS,GAAG,CAChBvS,KAAK,CAAC8G,IAAI,CAAC,CAAC,EACZ,IAAI,CAAC0L,oBAAoB,CAAC,CAAC,EAC3BpJ,UAAU,CAACtC,IAAI,CAAC,CAAC;IACjB;IACA,IAAI,CAAC+D,aAAa,CAAC4H,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EACtCnN,YAAY,CAACmN,SAAS,CAAC,IAAI,CAAC9M,eAAe,CAAC,CAC7C;IAEDI,QAAQ,CAACC,OAAO,CAAC,YAAY;MAAA,IAAA0M,qBAAA;MAC3B,MAAMvQ,OAAO,CAACwP,GAAG,CAAC,CAChBS,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAACpL,YAAY,CAAC,CAAC,GAAA0L,qBAAA,GAC7C,IAAI,CAACtK,gBAAgB,qBAArBsK,qBAAA,CAAAC,IAAA,KAAwB,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAArQ,YAAM,EAAC,MAAM;MAClB/B,WAAW,CAACiC,MAAM,CAACoQ,GAAG,CAAC,QAAQ,EAAE,IAAI,CAACN,mBAAmB,CAAC;MAC1DC,SAAS,CAACzN,OAAO,CAAE+N,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;MAC3C9M,QAAQ,CAACnC,MAAM,GAAG;QAChB,GAAGwK,kBAAW,CAAC0E;MACjB,CAAC;IACH,CAAC,CAAC;EACJ;EAEAN,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MAAExS;IAAM,CAAC,GAAG,IAAI;IACtB,MAAMuS,SAAS,GAAG,CAChB,IAAAQ,sBAAgB,EAAC/S,KAAK,CAACwC,MAAM,EAAE,SAAS,EAAGwQ,IAAI,IAAK;MAClD,IAAI,IAAI,CAAC/J,wBAAwB,KAAK,OAAO,EAAE;QAC7C,IAAI,CAACG,UAAU,CAAC6C,eAAe,CAAC,CAAC;MACnC;MAEA,IAAI,IAAI,CAAClE,mBAAmB,EAAE;QAC5B,IAAI,CAACkL,eAAe,CAAC7H,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAAC;MAC7D;MAEA,IAAI,CAAA2H,IAAI,oBAAJA,IAAI,CAAEzH,WAAW,MAAK,KAAK,EAAE;QAC/B,IAAI,CAAC5D,wBAAwB,CAAC,CAAC;MACjC,CAAC,MAAM;QAAA,IAAAuL,sBAAA;QACL,CAAAA,sBAAA,OAAI,CAACtL,iBAAiB,aAAtBsL,sBAAA,CAAwBvJ,QAAQ,CAAC;UAAEC,GAAG,EAAE,CAAC;UAAEuJ,QAAQ,EAAE;QAAS,CAAC,CAAC;MAClE;MAEA,IAAI,CAAC1H,eAAe,CAAC,CAAC;IACxB,CAAC,CAAC,EACF,IAAAsH,sBAAgB,EAAC/S,KAAK,CAACwC,MAAM,EAAE,iBAAiB,EAAGwQ,IAAI,IAAK;MAC1D,IAAI,CAAC7G,cAAc,CAAC6G,IAAI,oBAAJA,IAAI,CAAEzH,WAAW,CAAC;IACxC,CAAC,CAAC,EACF,IAAIvL,KAAK,CAAC0I,sBAAsB,GAC5B,CACE,IAAA0K,cAAQ,EACN,MAAMpT,KAAK,CAACqT,aAAa,EACzB,MAAM;MACJ,IAAI,CAAC1L,wBAAwB,CAAC,CAAC;MAC/B,IAAI,CAAC8D,eAAe,CAAC,CAAC;IACxB,CACF,CAAC,CACF,GACD,EAAE,CAAC,CACR;IAED,OAAO,MAAM;MACX8G,SAAS,CAACzN,OAAO,CAAEwI,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;EAEAgG,GAAGA,CAACC,GAAW,EAAwB;IACrC,MAAMC,SAAS,GAAG,IAAI,CAACnT,MAAM,CAACiT,GAAG,CAACC,GAAG,CAAC;IACtC,OAAOC,SAAS,oBAATA,SAAS,CAAEC,IAAI;EACxB;EAEAC,YAAYA,CAACH,GAAW,EAAmC;IACzD,OAAO,IAAI,CAAClT,MAAM,CAACiT,GAAG,CAACC,GAAG,CAAC;EAC7B;EAEAI,mBAAmBA,CAACC,KAAa,EAAuB;IACtD,OAAO,IAAI,CAACvT,MAAM,CAACwT,UAAU,CAACD,KAAK,CAAC;EACtC;EAEA,IAAIC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACxT,MAAM,CAACwT,UAAU;EAC/B;EAEAC,iBAAiBA,CAAIC,aAA+B,EAAE;IACpD,OAAO,IAAI,CAACd,eAAe,CAAC7H,UAAU,CAAC2I,aAAa,CAAC;EACvD;EAEAlM,sBAAsBA,CAAC7H,KAAK,GAAG,IAAI,CAACK,MAAM,CAACD,WAAW,EAOpD;IAAA,IAAA4T,WAAA,EAAAC,YAAA;IACA,MAAM;MAAE5T,MAAM;MAAEyH;IAAK,CAAC,GAAG,IAAI;IAE7B,OAAO;MACL,GAAGA,IAAI;MACPoM,cAAc,EAAEC,IAAI,CAACC,SAAS,CAACpU,KAAK,CAAC+P,UAAU,CAAC;MAChDsE,gBAAgB,EAAE,CAAAL,WAAA,GAAAhU,KAAK,CAAC6G,IAAI,aAAVmN,WAAA,CAAY3O,MAAM,GAChC8O,IAAI,CAACC,SAAS,CAACpU,KAAK,CAAC6G,IAAI,CAAC,GAC1B4B,SAAS;MACb6L,gBAAgB,EAAEjU,MAAM,CAAC0B,KAAK;MAC9BwS,YAAY,EAAElU,MAAM,CAACmU,IAAI;MACzBC,gBAAgB,GAAAR,YAAA,GAAEjU,KAAK,CAAC6G,IAAI,qBAAVoN,YAAA,CAAY5O;IAChC,CAAC;EACH;EAEA,IAAI+B,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJrB,QAAQ,EAAE;QACRnC,MAAM,EAAE;UAAE8Q;QAAU;MACtB,CAAC;MACDvJ,eAAe,EAAE;QAAEwJ;MAAkB;IACvC,CAAC,GAAG,IAAI;IACR,OAAOD,SAAS,IAAIC,iBAAiB;EACvC;EAEA,IAAItN,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJ4L,eAAe,EAAE;QAAE0B;MAAkB,CAAC;MACtCtU,MAAM,EAAE;QAAEuD;MAAO,CAAC;MAClBI;IACF,CAAC,GAAG,IAAI;IACR,OACE2Q,iBAAiB,IACjBC,OAAO,CAAChR,MAAM,CAACsK,UAAU,IAAIlK,cAAc,KAAK,SAAS,CAAC;EAE9D;EAEA,IAAIsD,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJtD,cAAc;MACd3D,MAAM,EAAE;QAAEwU;MAAQ;IACpB,CAAC,GAAG,IAAI;IACR,OAAO7Q,cAAc,KAAK,QAAQ,IAAI6Q,OAAO;EAC/C;EAEA,IAAItN,cAAcA,CAAA,EAAG;IACnB,MAAM;MACJlH,MAAM,EAAE;QAAEuD;MAAO,CAAC;MAClBI;IACF,CAAC,GAAG,IAAI;IACR,OACE,CAACJ,MAAM,CAACsK,UAAU,IAAItK,MAAM,CAACC,OAAO,IAAIG,cAAc,KAAK,WAAW;EAE1E;EAIA,IAAI8Q,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,IAAAtQ,iBAAW,EAAC,MAAMqQ,gBAAgB,CAAC3H,IAAI,CAAC;MACjD,CAAC;MACD,IAAI+H,IAAIA,CAAA,EAAG;QACT,OAAO,IAAAzQ,iBAAW,EAAC,MAAMqQ,gBAAgB,CAACI,IAAI,CAAC;MACjD;IACF,CAAC;EACH;AACF;AAACC,OAAA,CAAAtV,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -2,10 +2,11 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.assertKey = assertKey;
5
+ exports.assertStringKey = assertStringKey;
5
6
  function isObject(thing) {
6
7
  return thing != null;
7
8
  }
8
- function assertKey(thing, key, {
9
+ function assertStringKey(thing, key, {
9
10
  errorMessage
10
11
  } = {}) {
11
12
  if (process.env.NODE_ENV !== 'production') {
@@ -14,4 +15,13 @@ function assertKey(thing, key, {
14
15
  }
15
16
  }
16
17
  }
18
+ function assertKey(thing, key, {
19
+ errorMessage
20
+ } = {}) {
21
+ if (process.env.NODE_ENV !== 'production') {
22
+ if (!isObject(thing) || !(key in thing)) {
23
+ throw new Error((errorMessage == null ? void 0 : errorMessage(key)) ?? `Object must have property: ${key}`);
24
+ }
25
+ }
26
+ }
17
27
  //# sourceMappingURL=assertKey.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isObject","thing","assertKey","key","errorMessage","process","env","NODE_ENV","Error"],"sources":["../../../src/util/assertKey.ts"],"sourcesContent":["function isObject(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport function assertKey<K extends string>(\n thing: unknown,\n key: K,\n {\n errorMessage,\n }: {\n errorMessage?: (key: K) => string;\n } = {},\n): asserts thing is Record<K, string> {\n if (process.env.NODE_ENV !== 'production') {\n if (!isObject(thing) || typeof thing[key] !== 'string') {\n throw new Error(\n errorMessage?.(key) ?? `Object must have property: ${key}`,\n );\n }\n }\n}\n"],"mappings":";;;;AAAA,SAASA,QAAQA,CAACC,KAAc,EAAoC;EAClE,OAAOA,KAAK,IAAI,IAAI;AACtB;AAEO,SAASC,SAASA,CACvBD,KAAc,EACdE,GAAM,EACN;EACEC;AAGF,CAAC,GAAG,CAAC,CAAC,EAC8B;EACpC,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI,CAACP,QAAQ,CAACC,KAAK,CAAC,IAAI,OAAOA,KAAK,CAACE,GAAG,CAAC,KAAK,QAAQ,EAAE;MACtD,MAAM,IAAIK,KAAK,CACb,CAAAJ,YAAY,oBAAZA,YAAY,CAAGD,GAAG,CAAC,KAAK,8BAA6BA,GAAI,EAC3D,CAAC;IACH;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["isObject","thing","assertStringKey","key","errorMessage","process","env","NODE_ENV","Error","assertKey"],"sources":["../../../src/util/assertKey.ts"],"sourcesContent":["function isObject(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport function assertStringKey<K extends string>(\n thing: unknown,\n key: K,\n {\n errorMessage,\n }: {\n errorMessage?: (key: K) => string;\n } = {},\n): asserts thing is Record<K, string> {\n if (process.env.NODE_ENV !== 'production') {\n if (!isObject(thing) || typeof thing[key] !== 'string') {\n throw new Error(\n errorMessage?.(key) ?? `Object must have property: ${key}`,\n );\n }\n }\n}\n\nexport function assertKey<K extends string>(\n thing: unknown,\n key: K,\n {\n errorMessage,\n }: {\n errorMessage?: (key: K) => string;\n } = {},\n): asserts thing is Record<K, undefined> {\n if (process.env.NODE_ENV !== 'production') {\n if (!isObject(thing) || !(key in thing)) {\n throw new Error(\n errorMessage?.(key) ?? `Object must have property: ${key}`,\n );\n }\n }\n}\n"],"mappings":";;;;;AAAA,SAASA,QAAQA,CAACC,KAAc,EAAoC;EAClE,OAAOA,KAAK,IAAI,IAAI;AACtB;AAEO,SAASC,eAAeA,CAC7BD,KAAc,EACdE,GAAM,EACN;EACEC;AAGF,CAAC,GAAG,CAAC,CAAC,EAC8B;EACpC,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI,CAACP,QAAQ,CAACC,KAAK,CAAC,IAAI,OAAOA,KAAK,CAACE,GAAG,CAAC,KAAK,QAAQ,EAAE;MACtD,MAAM,IAAIK,KAAK,CACb,CAAAJ,YAAY,oBAAZA,YAAY,CAAGD,GAAG,CAAC,KAAK,8BAA6BA,GAAI,EAC3D,CAAC;IACH;EACF;AACF;AAEO,SAASM,SAASA,CACvBR,KAAc,EACdE,GAAM,EACN;EACEC;AAGF,CAAC,GAAG,CAAC,CAAC,EACiC;EACvC,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI,CAACP,QAAQ,CAACC,KAAK,CAAC,IAAI,EAAEE,GAAG,IAAIF,KAAK,CAAC,EAAE;MACvC,MAAM,IAAIO,KAAK,CACb,CAAAJ,YAAY,oBAAZA,YAAY,CAAGD,GAAG,CAAC,KAAK,8BAA6BA,GAAI,EAC3D,CAAC;IACH;EACF;AACF","ignoreList":[]}
@@ -42,9 +42,9 @@
42
42
  "cairo.table.saveViewModal.nameLabel": "Název",
43
43
  "cairo.manageView.setAsDefault.error.toast": "Zobrazení „{viewName}“ se kvůli technickým potížím nepodařilo nastavit jako výchozí.",
44
44
  "cairo.customFields.editCustomField.modal.title": "Upravit vlastní pole",
45
- "cairo.deleteSuccess": "Položka „{itemName}“ byla odstraněna.",
45
+ "cairo.deleteSuccess": "Odstranili jste „{itemName}“.",
46
46
  "cairo.export.databaseIssueMessage": "Na naší straně se objevily problémy, takže se export nepodařilo uložit. Kontaktujte podporu s žádostí o pomoc.",
47
- "cairo.saveView.Success.toast": "Položka „{viewName}“ byla uložena.",
47
+ "cairo.saveView.Success.toast": "Uložili jste „{viewName}“.",
48
48
  "cairo.customFields.fieldType.dropdownList.addOption.CTA": "Přidat možnost",
49
49
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Zpět",
50
50
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Odstranit",
@@ -238,7 +238,7 @@
238
238
  "cairo.customFields.emptyState.title": "Přidejte vlastní pole",
239
239
  "cairo.table.custom-columns.button.cta": "Přizpůsobit",
240
240
  "cairo.customFields.addCustomField.modal.sameName.error": "Pole s tímto názvem již existuje. Zkuste jiný název.",
241
- "cairo.deleteView.Success.toast": "Položka „{viewName}“ byla odstraněna.",
241
+ "cairo.deleteView.Success.toast": "Odstranili jste „{viewName}“.",
242
242
  "cairo.filtersPanel.sections.default.title": "Další filtry",
243
243
  "cairo.tags.tagsWidget.input.placeholder": "Zadejte název nového tagu",
244
244
  "cairo.entity.item": "{num, plural, =0 {položky} one {položka} few {položky} many {položek} other {položek}}",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Zjistit více",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Zpět",
336
336
  "cairo.customFields.archive.modal.description": "Toto pole a informace, které v něm byly shromážděny, budou archivovány a nelze je obnovit.",
337
- "cairo.emptyState.premium.title": "Upgradujte na plán",
337
+ "cairo.emptyState.premium.title": "Upgradujte pomocí plánu",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Číslo (desetinné)",
339
339
  "cairo.manageView.saveView.error.toast": "Vaše zobrazení nebylo kvůli technickým potížím uloženo.",
340
340
  "cairo.table.noFiltersApplied.label": "Není použit žádný filtr",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Læs mere",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Annuller",
336
336
  "cairo.customFields.archive.modal.description": "Dette felt og de oplysninger, der er indsamlet til det, arkiveres og kan ikke gendannes.",
337
- "cairo.emptyState.premium.title": "Opgrader til et abonnement",
337
+ "cairo.emptyState.premium.title": "Opgrader med et abonnement",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Tal (decimal)",
339
339
  "cairo.manageView.saveView.error.toast": "Din visning blev ikke gemt på grund af et teknisk problem.",
340
340
  "cairo.table.noFiltersApplied.label": "Ingen anvendte filtre",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Mehr erfahren",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Abbrechen",
336
336
  "cairo.customFields.archive.modal.description": "Dieses Feld und die dazugehörigen Informationen werden archiviert und können nicht wiederhergestellt werden.",
337
- "cairo.emptyState.premium.title": "Website-Paket upgraden",
337
+ "cairo.emptyState.premium.title": "Auf ein Website-Paket upgraden",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Zahl (dezimal)",
339
339
  "cairo.manageView.saveView.error.toast": "Wegen eines technischen Problems konnte die Ansicht nicht gespeichert werden.",
340
340
  "cairo.table.noFiltersApplied.label": "Keine Filter ausgewählt",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Leer más",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Cancelar",
336
336
  "cairo.customFields.archive.modal.description": "Este campo y la información recopilada en él se archivarán y no se podrán restaurar.",
337
- "cairo.emptyState.premium.title": "Haz Upgrade a un plan",
337
+ "cairo.emptyState.premium.title": "Haz Upgrade con un plan",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Número (decimal)",
339
339
  "cairo.manageView.saveView.error.toast": "Debido a un problema técnico, tu vista no se ha guardado.",
340
340
  "cairo.table.noFiltersApplied.label": "No se aplicaron filtros",
@@ -169,7 +169,7 @@
169
169
  "cairo.tags.popover.bulkItemLimit.tooltip": "Les libellés ne peuvent être attribués qu'à 100 éléments à la fois.",
170
170
  "cairo.tags.filterPanel.dropdown.title": "Libellés",
171
171
  "cairo.manageView.Rename.error.toast": "En raison d’un problème technique, votre vue n’a pas été renommée.",
172
- "cairo.filtersPanel.date.next3Days": "3 prochains jours",
172
+ "cairo.filtersPanel.date.next3Days": "Les 3 prochains jours",
173
173
  "cairo.customFields.technical.error.title": "Nous n'avons pas pu charger vos champs personnalisés.",
174
174
  "cairo.table.saveViewModal.body": "Cette vue comprendra les filtres et les colonnes actuellement appliqués. ",
175
175
  "cairo.customFields.emptyStatePassive.title": "Aucun champ pour l'instant",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Pelajari selengkapnya",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Batal",
336
336
  "cairo.customFields.archive.modal.description": "Kolom ini dan informasi yang dikumpulkan ke dalamnya akan diarsipkan dan tidak dapat dipulihkan.",
337
- "cairo.emptyState.premium.title": "Upgrade ke paket",
337
+ "cairo.emptyState.premium.title": "Upgrade dengan paket",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Angka (desimal)",
339
339
  "cairo.manageView.saveView.error.toast": "Karena masalah teknis, tampilan Anda tidak disimpan.",
340
340
  "cairo.table.noFiltersApplied.label": "Filter tidak diterapkan",
@@ -32,7 +32,7 @@
32
32
  "cairo.customFields.writePermission.tooltip": "Solo i proprietari e i comproprietari possono compiere questa azione.",
33
33
  "cairo.customFields.manageFields.subtitle": "Aggiungi, modifica o archivia i campi personalizzati.",
34
34
  "cairo.customFields.emptyStatePassive.subtitle": "Quando ci saranno, li vedrai qui.",
35
- "cairo.manageView.saveChanges.disabled.predefinedView.tooltip": "Questa è una visualizzazione predefinita. Per salvare le modifiche, clicca su Salva nuova vista.",
35
+ "cairo.manageView.saveChanges.disabled.predefinedView.tooltip": "Questa è una vista predefinita. Per salvare le modifiche, clicca su Salva nuova vista.",
36
36
  "cairo.customFields.fieldType.date": "Data",
37
37
  "cairo.search.Tab.noresults.title": "Nessun risultato trovato in \"{tabName}\"",
38
38
  "cairo.tags.collectionPage.tagsColumn.title": "Tag",
@@ -40,7 +40,7 @@
40
40
  "cairo.customFields.fieldType.numberInteger.placeholder": "es.: 30",
41
41
  "cairo.appliedFilters.applyAndClose.CTA": "Usa i filtri e chiudi",
42
42
  "cairo.table.saveViewModal.nameLabel": "Nome",
43
- "cairo.manageView.setAsDefault.error.toast": "Problema tecnico: \"{viewName}\" non impostata come visualizzazione predefinita.",
43
+ "cairo.manageView.setAsDefault.error.toast": "Problema tecnico: \"{viewName}\" non impostata come vista predefinita.",
44
44
  "cairo.customFields.editCustomField.modal.title": "Modifica campo personalizzato",
45
45
  "cairo.deleteSuccess": "\"{itemName}\" eliminata.",
46
46
  "cairo.export.databaseIssueMessage": "Si è verificato un problema temporaneo e non è stato possibile salvare l'esportazione. Contatta l'Assistenza se hai bisogno di aiuto.",
@@ -106,7 +106,7 @@
106
106
  "cairo.appliedFilters.discardChanges.description": "I filtri che hai selezionato non saranno applicati a questa vista.",
107
107
  "cairo.customFields.addCustomField.modal.advancedSettings.write": "Scrittura",
108
108
  "cairo.pickerModal.back.button": "Indietro",
109
- "cairo.manageView.Delete.disabled.predefinedView.tooltip": "Questa visualizzazione non può essere eliminata.",
109
+ "cairo.manageView.Delete.disabled.predefinedView.tooltip": "Questa vista non può essere eliminata.",
110
110
  "cairo.tags.manageTags.modal.toast.delete.success": "Tag eliminato.",
111
111
  "cairo.noViewName.validationTooltip": "Per salvare una visualizzazione devi assegnarle un nome.",
112
112
  "cairo.emptyState.subtitle.nothingMatches": "Non abbiamo trovato risultati per la ricerca \"{term}\".",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "Scopri di più",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "Annulla",
336
336
  "cairo.customFields.archive.modal.description": "Questo campo e le informazioni che ha raccolto saranno archiviate e non potrai ripristinarle.",
337
- "cairo.emptyState.premium.title": "Fai l'upgrade",
337
+ "cairo.emptyState.premium.title": "Fai l'upgrade con un pacchetto",
338
338
  "cairo.customFields.fieldType.numberDecimal": "Numero (decimale)",
339
339
  "cairo.manageView.saveView.error.toast": "Si è verificato un problema tecnico e la visualizzazione non è stata salvata.",
340
340
  "cairo.table.noFiltersApplied.label": "Nessun filtro attivo",
@@ -387,7 +387,7 @@
387
387
  "cairo.export.noPermissionsMessage": "Non hai l'autorizzazione per esportare elementi. Contatta il proprietario del sito per ulteriori informazioni.",
388
388
  "cairo.dragAndDrop.leaveSiteTitle": "Vuoi uscire dal sito?",
389
389
  "cairo.customFields.booleanValue.false": "No",
390
- "cairo.manageView.setAsDefault.reset.tooltip": "Per ripristinare la visualizzazione predefinita, clicca su Salva modifiche o Salva come nuova vista.",
390
+ "cairo.manageView.setAsDefault.reset.tooltip": "Per ripristinare la vista predefinita, clicca su Salva modifiche o Salva come nuova vista.",
391
391
  "cairo.tags.manageTags.modal.list.input.validation.emptyName": "Inserisci un nome.",
392
392
  "cairo.emptyState.subtitle.noFilterResults": "Prova a modificare i filtri.",
393
393
  "cairo.dropdownSearch.filters.selected": "{total, plural, one {1 filtro selezionato} other {{total,number} filtri selezionati}}",
@@ -406,7 +406,7 @@
406
406
  "cairo.tags.collectionPage.popover.loadTags.error.body": "Impossibile caricare i tag a causa di un problema tecnico interno.",
407
407
  "cairo.table.advanced-sorting.button.cta": "Ordina",
408
408
  "cairo.emptyState.premium.cta": "Fai l'upgrade",
409
- "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Questa è una visualizzazione predefinita. Per rinominarla, clicca su Salva nuova vista.",
409
+ "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Questa è una vista predefinita. Per rinominarla, clicca su Salva nuova vista.",
410
410
  "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Seleziona tipo",
411
411
  "cairo.customFields.fieldType.checkbox.Name.placeholder": "es.: Iscritto",
412
412
  "cairo.dragAndDrop.live-region.itemDropped.sr": "Rilasciato in posizione {currentNumber}.",
@@ -419,7 +419,7 @@
419
419
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "App installate",
420
420
  "cairo.export.successMessage": "Download del file in corso. Non funziona?",
421
421
  "cairo.customFields.entityPage.subtitle": "Usa i campi personalizzati per memorizzare e raccogliere più informazioni.",
422
- "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" è stata impostata come visualizzazione predefinita.",
422
+ "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" è stata impostata come vista predefinita.",
423
423
  "cairo.dropdownSearch.filters.emptyState": "Nessun elemento trovato con questo filtro.",
424
424
  "cairo.filtersPanel.appliedFilters.label": "Applicati: {numberAppliedFilters}",
425
425
  "cairo.dragAndDrop.note": "Nota: qualsiasi modifica apportata all'ordine degli articoli verrà visualizzata sul sito online.",
@@ -32,7 +32,7 @@
32
32
  "cairo.customFields.writePermission.tooltip": "この機能は、サイト所有者と共同管理者のみが使用できます。",
33
33
  "cairo.customFields.manageFields.subtitle": "カスタム項目の追加、編集、アーカイブができます。",
34
34
  "cairo.customFields.emptyStatePassive.subtitle": "項目を追加すると、ここに表示されます。",
35
- "cairo.manageView.saveChanges.disabled.predefinedView.tooltip": "これはプリセットビューです。変更を保存するには、新規ビューとして保存してください。",
35
+ "cairo.manageView.saveChanges.disabled.predefinedView.tooltip": "プリセットビューを表示中です。変更を保存するには、新規ビューとして保存してください。",
36
36
  "cairo.customFields.fieldType.date": "日付",
37
37
  "cairo.search.Tab.noresults.title": "「{tabName}」に検索結果はありません",
38
38
  "cairo.tags.collectionPage.tagsColumn.title": "タグ",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "詳しくはこちら",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "キャンセル",
336
336
  "cairo.customFields.archive.modal.description": "この項目および収集された情報はアーカイブされ、復元することはできません。",
337
- "cairo.emptyState.premium.title": "プランにアップグレード",
337
+ "cairo.emptyState.premium.title": "プランでアップグレード",
338
338
  "cairo.customFields.fieldType.numberDecimal": "数字(10進数)",
339
339
  "cairo.manageView.saveView.error.toast": "技術的な問題が発生したため、ビューが保存されませんでした。",
340
340
  "cairo.table.noFiltersApplied.label": "フィルターなし",
@@ -406,7 +406,7 @@
406
406
  "cairo.tags.collectionPage.popover.loadTags.error.body": "弊社側で技術的な問題が発生したため、タグが再読み込みされませんでした。",
407
407
  "cairo.table.advanced-sorting.button.cta": "並び替え",
408
408
  "cairo.emptyState.premium.cta": "アップグレードする",
409
- "cairo.manageView.Rename.disabled.predefinedView.tooltip": "これはプリセットビューです。このビューに名前をつけるには、新規ビューとして保存してください。",
409
+ "cairo.manageView.Rename.disabled.predefinedView.tooltip": "プリセットビューを表示中です。このビューに名前をつけるには、新規ビューとして保存してください。",
410
410
  "cairo.customFields.addCustomField.modal.fieldType.placeholder": "項目を選択",
411
411
  "cairo.customFields.fieldType.checkbox.Name.placeholder": "例:定期購入済み",
412
412
  "cairo.dragAndDrop.live-region.itemDropped.sr": "{currentNumber}にドロップされました。",
@@ -334,7 +334,7 @@
334
334
  "cairo.customFields.addCustomField.modal.PII.learnMore": "자세히 보기",
335
335
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "취소",
336
336
  "cairo.customFields.archive.modal.description": "입력란 및 수집된 정보가 보관 처리되며 보관 후에는 복구할 수 없습니다.",
337
- "cairo.emptyState.premium.title": "플랜 업그레이드",
337
+ "cairo.emptyState.premium.title": "플랜으로 업그레이드하기",
338
338
  "cairo.customFields.fieldType.numberDecimal": "숫자(소수)",
339
339
  "cairo.manageView.saveView.error.toast": "기술적인 문제가 발생하여 뷰 이름이 저장되지 않았습니다.",
340
340
  "cairo.table.noFiltersApplied.label": "적용 필터 없음",