@wix/bex-core 2.101.0 → 2.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_cs.json +1 -1
- package/dist/cjs/assets/locale/messages_da.json +1 -1
- package/dist/cjs/assets/locale/messages_de.json +1 -1
- package/dist/cjs/assets/locale/messages_en.json +1 -1
- package/dist/cjs/assets/locale/messages_es.json +1 -1
- package/dist/cjs/assets/locale/messages_fr.json +1 -1
- package/dist/cjs/assets/locale/messages_hi.json +1 -1
- package/dist/cjs/assets/locale/messages_id.json +1 -1
- package/dist/cjs/assets/locale/messages_it.json +1 -1
- package/dist/cjs/assets/locale/messages_ja.json +1 -1
- package/dist/cjs/assets/locale/messages_ko.json +1 -1
- package/dist/cjs/assets/locale/messages_nl.json +1 -1
- package/dist/cjs/assets/locale/messages_no.json +1 -1
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +1 -1
- package/dist/cjs/assets/locale/messages_ru.json +1 -1
- package/dist/cjs/assets/locale/messages_sv.json +1 -1
- package/dist/cjs/assets/locale/messages_th.json +1 -1
- package/dist/cjs/assets/locale/messages_tr.json +1 -1
- package/dist/cjs/assets/locale/messages_uk.json +1 -1
- package/dist/cjs/assets/locale/messages_vi.json +1 -1
- package/dist/cjs/assets/locale/messages_zh.json +1 -1
- package/dist/cjs/state/BulkActionModalState.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +12 -3
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/CustomFieldModalState.js +7 -1
- package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
- package/dist/cjs/state/PickerState.js +4 -2
- package/dist/cjs/state/PickerState.js.map +1 -1
- package/dist/cjs/state/SortState.js +2 -2
- package/dist/cjs/state/SortState.js.map +1 -1
- package/dist/cjs/state/WixPatternsContainer.js +1 -4
- package/dist/cjs/state/WixPatternsContainer.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +1 -1
- package/dist/esm/assets/locale/messages_da.json +1 -1
- package/dist/esm/assets/locale/messages_de.json +1 -1
- package/dist/esm/assets/locale/messages_en.json +1 -1
- package/dist/esm/assets/locale/messages_es.json +1 -1
- package/dist/esm/assets/locale/messages_fr.json +1 -1
- package/dist/esm/assets/locale/messages_hi.json +1 -1
- package/dist/esm/assets/locale/messages_id.json +1 -1
- package/dist/esm/assets/locale/messages_it.json +1 -1
- package/dist/esm/assets/locale/messages_ja.json +1 -1
- package/dist/esm/assets/locale/messages_ko.json +1 -1
- package/dist/esm/assets/locale/messages_nl.json +1 -1
- package/dist/esm/assets/locale/messages_no.json +1 -1
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +1 -1
- package/dist/esm/assets/locale/messages_ru.json +1 -1
- package/dist/esm/assets/locale/messages_sv.json +1 -1
- package/dist/esm/assets/locale/messages_th.json +1 -1
- package/dist/esm/assets/locale/messages_tr.json +1 -1
- package/dist/esm/assets/locale/messages_uk.json +1 -1
- package/dist/esm/assets/locale/messages_vi.json +1 -1
- package/dist/esm/assets/locale/messages_zh.json +1 -1
- package/dist/esm/state/CollectionState.js +10 -3
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/CustomFieldModalState.js +6 -0
- package/dist/esm/state/CustomFieldModalState.js.map +1 -1
- package/dist/esm/state/PickerState.js +3 -1
- package/dist/esm/state/PickerState.js.map +1 -1
- package/dist/esm/state/SortState.js +1 -1
- package/dist/esm/state/SortState.js.map +1 -1
- package/dist/esm/state/WixPatternsContainer.js +1 -4
- package/dist/esm/state/WixPatternsContainer.js.map +1 -1
- package/dist/types/state/BulkActionModalState.d.ts +2 -2
- package/dist/types/state/BulkActionModalState.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +3 -2
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
- package/dist/types/state/PickerState.d.ts.map +1 -1
- package/dist/types/state/SortState.d.ts +1 -0
- package/dist/types/state/SortState.d.ts.map +1 -1
- package/dist/types/state/WixPatternsContainer.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","_FetchTotalState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","status","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","onNewPageAdded","onNewPageStart","emitter","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","type","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","history","fetchErrorMessage","itemKey","itemName","translate","initDependencies","showToast","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","QueryState","limit","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","fetchTotal","FetchTotalState","collection","fetchesHistory","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","scrollToTop","_this$scrollableConte","scrollTo","top","left","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","_addToFetchesHistory","offset","push","itemsKeys","flatMap","p","item","queryPageInfo","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","totalStatus","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","origin","changeSort","multiple","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","addItem","addItems","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","getItem","key","keyedItem","get","getKeyedItem","getKeyedItemByIndex","index","keyedItems","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined | null;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchTotal?: (query: ComputedQuery<F>) => Promise<number>;\n readonly fetchErrorMessage?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n}\n\nexport interface CollectionStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Invalidates all cache records for this collection.<br>\n * Optional parameters:<br>\n * `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n invalidate(params?: {\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): void;\n\n /**\n * Invalidates cache and refreshes all previously fetched pages, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `beforeUpdateResult` - A callback function that will be called before updating the result.<br>\n * - `filters` - Invalidates only a specific part of the cache, for example: `refreshAllPages({ filters: { status: ['active'] } })`.\n * @external\n */\n refreshAllPages(params?: {\n beforeUpdateResult?: () => unknown;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Invalidates cache and refreshes current page, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `noInvalidate` - Refreshes current page without invalidating cache.\n * @external\n */\n refreshCurrentPage(params?: { noInvalidate?: boolean }): Promise<void>;\n\n /**\n * Clears all data from the collection and goes back to the first page and refreshes the first page data, while showing a loading indication.<br>\n * Optional parameters:<br>\n * - `force` - Invalidates the cache and resets react-query observer.\n * - `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n clearResultAndMoveToStart(params?: {\n force?: boolean;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Triggers retry when collection fails to load\n * @external\n */\n retryErrorState(): void;\n\n /**\n * [BulkSelectState](./?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](./?path=/story/common-types--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n\n /**\n * Status of the query. Contains boolean flags of `isIdle`, `isError`, `isLoading`, `isFetching`, `isSuccess`.\n * The difference between `isLoading` and `isFetching` is that `isLoading` is true during the initial query, `isFetching` is true during the next queries.\n * @external\n */\n status: QueryResultStatus<DataResultKeyed<T>, unknown>;\n\n /**\n * The total number of items, as was returned from the last query.\n * @external\n */\n total: number;\n\n /**\n * All the keyed items of the collection\n * @external\n */\n keyedItems: KeyedItem<T>[];\n\n /**\n * Get an item object according to its key\n * @external\n * @param key The key of the wanted item\n * @returns The wanted item\n */\n getItem(key: string): T | undefined | null;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly fetchesHistory: {\n itemsKeys: string[];\n queryPageInfo: {\n page: number;\n cursor: string | null | undefined;\n offset: number;\n };\n }[];\n readonly bulkSelect: BulkSelectState<T>;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n get status() {\n return this.result.status;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n fetchTotal: params.fetchTotal\n ? new FetchTotalState<T, F>({\n collection: this,\n queryCache: this.queryCache,\n fetchTotal: params.fetchTotal,\n })\n : undefined,\n });\n\n this._resetReactQuery();\n\n this.fetchesHistory = [];\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = 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\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n _addToFetchesHistory(newPages: DataResultKeyed<T>[]) {\n const { page, cursor, offset } = this.query.asComputed;\n\n this.fetchesHistory.push({\n itemsKeys: newPages\n .flatMap((p) => p.items)\n .map((item) => this.itemKey(item)),\n queryPageInfo: {\n page,\n cursor,\n offset,\n },\n });\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n this._addToFetchesHistory(newPages);\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get total() {\n return this.result.total;\n }\n\n get totalStatus() {\n return this.result.totalStatus;\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n }\n this._resetReactQuery();\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n params: {\n clearResult?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, { multiple: params.multiple });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort(params);\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n addItem(newItem: T) {\n return this.addItems([newItem]);\n }\n\n addItems(newItems: T[]) {\n const changeResult = this.result.addItems(newItems);\n this.invalidate();\n return changeResult.rollback;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n this._resetReactQuery();\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n result.init(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n getItem(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.result.get(key);\n }\n\n getKeyedItemByIndex(index: number): KeyedItem<T> | null {\n return this.result.keyedItems[index];\n }\n\n get keyedItems() {\n return this.result.keyedItems;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_model","require","_core","_mobx","_events","_QueryState","_QueryResultState","_BulkSelectState","_PromisesState","_Pagination","_PaginationMode","_TaskState","_util","_TransitionState","_FetchTotalState","CollectionState","queryKeyOptions","query","queryKey","_queryKey","asComputed","originQuery","result","status","isOnline","onlineState","optimisticActions","_optimisticActions","process","env","NODE_ENV","Error","constructor","params","_defineProperty2","default","EventEmitter","PromisesState","TaskState","queryName","filters","rawFilters","search","hasActiveFilters","hasNonPersistentActiveFilters","nonPersistentFiltersKey","columns","computedQuery","items","total","available","cursor","fetchData","Promise","resolve","requestAnimationFrame","action","err","events","errorMonitor","console","error","OfflineError","handled","onError","captureException","getCurrentQuery","invalidate","_resetReactQuery","updateStatus","onNewPageAdded","onNewPageStart","emitter","isError","pagination","nextPage","lifecycleState","onNewPageAddedListeners","listeners","map","l","maybeOnNewPageAdded","promise","currentQuery","onResultListeners","fetch","runInAction","_currentQueryPromise","updateResultInfo","updateResult","forEach","newPages","onNewPageAddedParams","totalNewItems","reduce","agg","page","length","focusManager","isFocused","fetchNextPageIfNeeded","clearResultAndMoveToStart","force","_recoverIfError","state","isPaused","dispatch","type","initTask","runOnce","TransitionState","lodash","persistQueryToUrl","toExtendedFields","makeObservable","bound","clearAndMoveToPage","refreshAllPages","sort","init","setInitialPage","initialFetch","totalPages","computed","hasAvailableItems","showInitialLoader","showRefreshLoader","showEmptyState","showErrorState","resetFiltersAndRefresh","observable","ref","clearResultBeforeRefresh","scrollableContent","_commonDynamicBiParams","fqdn","deferInitialLoading","queryCache","history","fetchErrorMessage","itemKey","itemName","translate","initDependencies","showToast","remove","defaultQueryOptions","queryFn","_queryFn","keepPreviousData","suspense","enabled","retryDelay","staleTime","refetchOnMount","retryOnMount","queryOptions","queryClient","QueryClient","defaultOptions","queries","queryObserver","QueryObserver","retry","failureCount","shouldRedirectToLogin","QueryState","limit","undefined","refreshOnColumnsChange","_paginationModeRef","paginationModeRef","current","paginationMode","_paginationMode","PaginationMode","selectionConsistencyMode","QueryResultState","toComputed","fetchTotal","FetchTotalState","collection","fetchesHistory","bulkSelect","BulkSelectState","disableAutoSelectAllCount","useNewSelectAllLogic","scrollToTop","_this$scrollableConte","scrollTo","top","left","initialPage","initialPromises","addPromise","animationFramePromise","_runSort","clearResult","emit","moveToFirstPage","scheduleSort","whenNotIdle","debounce","_runSearch","onSearch","onSearchResults","searchEndListeners","resetToDefaults","onResultUpdated","scheduleSearch","setOptions","options","maybeTotal","setQueryData","_getProcessedResult","unprocessedPages","unprocessedTotal","currentItemsMap","beforeAddNewPagesListeners","processedPages","pages","listener","processedTotal","_getProcessedTotal","beforeSetTotalListeners","_addToFetchesHistory","offset","push","itemsKeys","flatMap","p","item","queryPageInfo","reactQuery","data","filter","d","lastPage","_keyedItemsMap","addPages","unprocessed","processed","setTotals","setSupportTotal","setCursor","fn","args","isIdle","isFetching","getOptimisticResult","queryStatus","then","catch","isStale","fetchListeners","_totals","Math","ceil","totalStatus","fetchedLastPage","fetchNextPage","minLoaderTime","wait","min","max","fetchPromise","timeoutId","maxWaitPromise","setTimeout","minWaitPromise","race","clearTimeout","clear","initialCursor","fetchAndReplaceResult","queryLookup","Object","assign","filtersKey","findAll","q","col","multiple","forceDirection","origin","changeSort","slice","value","changeValue","clearSearch","changeItem","newItem","changeItems","newItems","changeResult","rollback","addItem","addItems","refreshCurrentPage","noInvalidate","beforeUpdateResult","currentPage","promises","lastPagePromise","pageQuery","id","_pageQuery$state$data","results","all","resetFilters","emitEvents","resetCustomFiltersAndRefresh","resetCustomFilters","onInitialPageFetched","prevQuery","beforeInitialFetchListeners","f","skipInitialFetch","on","onOnlineStateChange","disposers","_registerQueryEvents","subscribe","_this$initDependencie","call","off","disposer","idle","addEventListener","opts","refreshPromises","_this$scrollableConte2","behavior","reaction","fieldsKeyHash","getItem","key","keyedItem","get","getKeyedItem","getKeyedItemByIndex","index","keyedItems","addRefreshPromise","createPromise","_query$sort","_query$sort2","currentFilters","JSON","stringify","currentSortOrder","filteredListSize","initialItems","size","numSortedColumns","isLoading","isLoadingPromises","Boolean","isEmpty","topNotification","_topNotification","text","t","set","show","exports"],"sources":["../../../src/state/CollectionState.ts"],"sourcesContent":["import {\n CollectionEvents,\n ComputedQuery,\n ComputedQueryFull,\n DataResultKeyed,\n DataResultRaw,\n Filter,\n FiltersKey,\n FiltersMap,\n Fqdn,\n KeyedItem,\n OnResultUpdated,\n QueryOptions,\n QueryResultStatus,\n queryStatus,\n ShowToast,\n SortOrder,\n} from '../model';\nimport {\n Query as ReactQuery,\n QueryCache,\n QueryClient,\n QueryObserver,\n} from 'react-query/core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { QueryState } from './QueryState';\nimport { QueryResultState } from './QueryResultState';\nimport { BulkSelectState } from './BulkSelectState';\nimport { PromisesState } from './PromisesState';\nimport { initialCursor } from './Pagination';\nimport { PaginationMode, PaginationModeRef } from './PaginationMode';\nimport { TaskState } from './TaskState';\nimport {\n ErrorMonitor,\n ExtendedFields,\n PartialLodash,\n Translate,\n} from '../services';\nimport {\n addEventListener,\n OfflineError,\n shouldRedirectToLogin,\n TypedEmitter,\n} from '../util';\nimport { OnlineState } from './OnlineState';\nimport { TransitionState } from './TransitionState';\nimport { Sortable } from './SortState';\nimport { CollectionOptimisticActions } from './CollectionOptimisticActions';\nimport { FetchTotalState } from './FetchTotalState';\n\ntype Query<T> = Omit<ReactQuery<DataResultKeyed<T>>, 'promise' | 'dispatch'> & {\n promise?: Promise<unknown>;\n dispatch: (action: { type: string; error: unknown }) => void;\n};\n\nexport interface CollectionStateEvents<T, F extends FiltersMap> {\n beforeAddNewPages: (params: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) => T[][];\n beforeSetTotal: (params: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) => number;\n resultUpdated: () => unknown;\n beforeResultUpdated: () => unknown;\n ready: () => unknown;\n beforeInitialFetch: (params: { isStale: boolean }) => unknown;\n collectionLayout: () => unknown;\n fetch: (params: { isStale: boolean }) => void | undefined | (() => unknown);\n refresh: (params: { isStale: boolean }) => unknown;\n refreshCurrentPage: () => unknown;\n refreshAllPages: () => unknown;\n refreshUpdateResult: () => unknown;\n searchStart: () => () => unknown;\n search: (params: { clearResult?: boolean }) => unknown;\n clearSearch: () => unknown;\n newPageStart: () => (params: {\n totalNewItems: number;\n newPages: DataResultKeyed<T>[];\n }) => unknown;\n beforeSortStart: (params: {\n origin?: 'SidePanel' | 'ColumnHeader';\n }) => unknown;\n sortStart: (params: { col: { id: string } }) => unknown;\n sort: (params: { clearResult?: boolean }) => unknown;\n beforeClearFilters: (params: { origin: string }) => unknown;\n}\n\ninterface ScrollableContent {\n scrollTo: (options: ScrollToOptions) => void;\n}\n\nexport interface CollectionStateParams<T, F extends FiltersMap> {\n readonly queryCache: QueryCache;\n readonly queryName: string;\n readonly fqdn?: Fqdn;\n readonly filters: F;\n readonly search?: Filter<string>;\n readonly errorMonitor: ErrorMonitor;\n readonly onlineState: OnlineState;\n readonly history: History;\n readonly showToast?: ShowToast;\n readonly translate: Translate;\n readonly itemKey: (item: T) => string;\n readonly toExtendedFields?: (item: T) => ExtendedFields | undefined | null;\n readonly initDependencies?: () => Promise<unknown>;\n\n readonly fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;\n readonly fetchTotal?: (query: ComputedQuery<F>) => Promise<number>;\n readonly fetchErrorMessage?: (params: {\n err: unknown;\n isOnline: boolean;\n }) => string | null | undefined;\n readonly itemName: (item: T) => string;\n readonly deferInitialLoading?: boolean;\n readonly events?: CollectionEvents<F>;\n readonly persistQueryToUrl?: boolean;\n readonly refreshOnColumnsChange?: boolean;\n readonly limit?: number;\n readonly initialPage?: DataResultRaw<T>;\n readonly queryOptions?: QueryOptions;\n readonly paginationMode?: 'cursor' | 'offset';\n readonly paginationModeRef?: PaginationModeRef;\n readonly selectionConsistencyMode?: 'preserve' | 'clear';\n readonly disableAutoSelectAllCount?: boolean;\n readonly useNewSelectAllLogic?: boolean;\n readonly lodash: PartialLodash;\n}\n\nexport interface CollectionStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Invalidates all cache records for this collection.<br>\n * Optional parameters:<br>\n * `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n invalidate(params?: {\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): void;\n\n /**\n * Invalidates cache and refreshes all previously fetched pages, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `beforeUpdateResult` - A callback function that will be called before updating the result.<br>\n * - `filters` - Invalidates only a specific part of the cache, for example: `refreshAllPages({ filters: { status: ['active'] } })`.\n * @external\n */\n refreshAllPages(params?: {\n beforeUpdateResult?: () => unknown;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Invalidates cache and refreshes current page, without showing a loading indication.<br>\n * Optional parameters:<br>\n * - `noInvalidate` - Refreshes current page without invalidating cache.\n * @external\n */\n refreshCurrentPage(params?: { noInvalidate?: boolean }): Promise<void>;\n\n /**\n * Clears all data from the collection and goes back to the first page and refreshes the first page data, while showing a loading indication.<br>\n * Optional parameters:<br>\n * - `force` - Invalidates the cache and resets react-query observer.\n * - `filters` - Clears only a specific part of the cache, for example: `invalidate({ filters: { status: ['active'] } })`\n * @external\n */\n clearResultAndMoveToStart(params?: {\n force?: boolean;\n filters?: { [P in keyof F]?: string[] | undefined | null };\n }): Promise<void>;\n\n /**\n * Triggers retry when collection fails to load\n * @external\n */\n retryErrorState(): void;\n\n /**\n * [BulkSelectState](./?path=/story/common-state--bulkselectstate)\n * @external\n */\n bulkSelect: BulkSelectState<T>;\n\n /**\n * [ComputedQuery](./?path=/story/common-types--computedquery) instance. Holds all the relevant variables to query the server API with.\n */\n originQuery: ComputedQueryFull<F>;\n\n /**\n * Status of the query. Contains boolean flags of `isIdle`, `isError`, `isLoading`, `isFetching`, `isSuccess`.\n * The difference between `isLoading` and `isFetching` is that `isLoading` is true during the initial query, `isFetching` is true during the next queries.\n * @external\n */\n status: QueryResultStatus<DataResultKeyed<T>, unknown>;\n\n /**\n * The total number of items, as was returned from the last query.\n * @external\n */\n total: number;\n\n /**\n * All the keyed items of the collection\n * @external\n */\n keyedItems: KeyedItem<T>[];\n\n /**\n * Get an item object according to its key\n * @external\n * @param key The key of the wanted item\n * @returns The wanted item\n */\n getItem(key: string): T | undefined | null;\n}\n\nexport class CollectionState<T, F extends FiltersMap = FiltersMap>\n implements CollectionStatePublicAPI<T, F>\n{\n readonly query: QueryState<F>;\n readonly _paginationModeRef;\n private readonly _paginationMode: PaginationMode<T, F>;\n readonly selectionConsistencyMode: 'preserve' | 'clear';\n readonly result: QueryResultState<T, F>;\n readonly fetchesHistory: {\n itemsKeys: string[];\n queryPageInfo: {\n page: number;\n cursor: string | null | undefined;\n offset: number;\n };\n }[];\n readonly bulkSelect: BulkSelectState<T>;\n scrollableContent?: ScrollableContent | null = null;\n readonly errorMonitor: ErrorMonitor;\n\n readonly queryCache: QueryCache;\n readonly queryClient: QueryClient;\n\n readonly queryObserver: QueryObserver<DataResultKeyed<T>>;\n readonly queryName;\n readonly fqdn;\n readonly fetchErrorMessage: CollectionStateParams<T, F>['fetchErrorMessage'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly toExtendedFields?;\n readonly translate: Translate;\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly lodash;\n\n readonly deferInitialLoading?: boolean;\n readonly persistQueryToUrl;\n\n _optimisticActions?: CollectionOptimisticActions<T, F>;\n beforeSetData?: () => void | Promise<unknown>;\n readonly showToast: ShowToast;\n\n readonly events: CollectionEvents<F>;\n readonly emitter = new EventEmitter() as TypedEmitter<\n CollectionStateEvents<T, F>\n >;\n\n readonly onlineState: OnlineState;\n readonly history: History;\n\n readonly initDependencies?: () => Promise<unknown>;\n readonly initialPromises = new PromisesState();\n readonly refreshPromises = new PromisesState();\n\n readonly initTask = new TaskState();\n\n /**\n * Possible flows:\n * result->refresh, refresh->result, result->fetchMore, fetchMore->result, refresh->refresh, fetchMore->fetchMore\n */\n lifecycleState: 'result' | 'refresh' | 'fetchMore' = 'result';\n\n _queryKey = (asComputed: ComputedQueryFull<F>) => {\n const { queryName } = this;\n const {\n filters,\n rawFilters,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n nonPersistentFiltersKey,\n columns,\n // Pick only properties relevant to `queryKey` uniqueness\n ...computedQuery\n } = asComputed;\n\n return [queryName, computedQuery] as const;\n };\n\n get queryKeyOptions() {\n const { query } = this;\n return {\n queryKey: this._queryKey(query.asComputed),\n };\n }\n\n get originQuery() {\n return this.result.originQuery;\n }\n\n get status() {\n return this.result.status;\n }\n\n isOnline() {\n return this.onlineState.isOnline;\n }\n\n get optimisticActions() {\n if (\n this._optimisticActions == null &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error('optimisticActions is not initialized');\n }\n return this._optimisticActions as CollectionOptimisticActions<T, F>;\n }\n\n constructor(params: CollectionStateParams<T, F>) {\n this.lodash = params.lodash;\n this.persistQueryToUrl = params.persistQueryToUrl;\n this.toExtendedFields = params.toExtendedFields;\n makeObservable(this, {\n fetchNextPageIfNeeded: action.bound,\n clearAndMoveToPage: action.bound,\n clearResultAndMoveToStart: action.bound,\n refreshAllPages: action.bound,\n updateStatus: action.bound,\n updateResult: action.bound,\n search: action,\n sort: action,\n fetch: action,\n init: action,\n setInitialPage: action,\n initialFetch: action,\n totalPages: computed,\n hasAvailableItems: computed,\n showInitialLoader: computed,\n showRefreshLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n resetFiltersAndRefresh: action.bound,\n lifecycleState: observable.ref,\n clearResultBeforeRefresh: action,\n scrollableContent: observable.ref,\n _commonDynamicBiParams: action,\n });\n\n this.queryName = params.queryName;\n this.fqdn = params.fqdn;\n this.deferInitialLoading = params.deferInitialLoading;\n this.queryCache = params.queryCache;\n this.errorMonitor = params.errorMonitor;\n this.onlineState = params.onlineState;\n this.history = params.history;\n\n this.fetchErrorMessage = params.fetchErrorMessage;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.translate = params.translate;\n this.fetchData = params.fetchData;\n this.events = params.events ?? {};\n\n this.initDependencies = params.initDependencies;\n\n this.showToast = params.showToast ?? (() => ({ remove: () => {} }));\n\n const defaultQueryOptions = {\n queryFn: action(() => this._queryFn(this.query.asComputed)),\n keepPreviousData: true,\n suspense: false,\n enabled: false,\n retryDelay: 200,\n staleTime: 120000,\n onError: this.onError,\n refetchOnMount: false,\n retryOnMount: false,\n ...params.queryOptions,\n };\n\n this.queryClient = new QueryClient({\n queryCache: this.queryCache,\n defaultOptions: {\n queries: defaultQueryOptions,\n },\n });\n\n this.queryObserver = new QueryObserver<DataResultKeyed<T>>(\n this.queryClient,\n {\n retry: (failureCount, error) => {\n if (\n shouldRedirectToLogin(error, failureCount > 2 && this.isOnline())\n ) {\n return false;\n }\n return failureCount < 3;\n },\n ...defaultQueryOptions,\n },\n );\n\n this.query = new QueryState({\n filters: params.filters,\n search: params.search,\n limit: params.limit,\n history: params.persistQueryToUrl ? params.history : undefined,\n refreshOnColumnsChange: params.refreshOnColumnsChange,\n });\n\n this._paginationModeRef =\n params.paginationModeRef ??\n ({ current: params.paginationMode } as PaginationModeRef);\n\n this._paginationMode = new PaginationMode(this);\n\n this.selectionConsistencyMode =\n params.selectionConsistencyMode ?? 'preserve';\n\n this.result = new QueryResultState<T, F>({\n itemKey: params.itemKey,\n originQuery: this.query.toComputed(),\n fetchTotal: params.fetchTotal\n ? new FetchTotalState<T, F>({\n collection: this,\n queryCache: this.queryCache,\n fetchTotal: params.fetchTotal,\n })\n : undefined,\n });\n\n this._resetReactQuery();\n\n this.fetchesHistory = [];\n\n this.bulkSelect = new BulkSelectState<T>({\n disableAutoSelectAllCount: params.disableAutoSelectAllCount,\n useNewSelectAllLogic: params.useNewSelectAllLogic,\n collection: this,\n scrollToTop: () => {\n this.scrollableContent?.scrollTo({\n top: 0,\n left: 0,\n });\n },\n });\n\n if (params.initialPage) {\n this.setInitialPage(params.initialPage);\n }\n\n if (params.deferInitialLoading) {\n this.initialPromises.addPromise(this.animationFramePromise);\n }\n\n this._runSort = action(({ clearResult }: { clearResult?: boolean }) => {\n this.emitter.emit('sort', { clearResult });\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n return this.moveToFirstPage();\n });\n\n this.scheduleSort = this.whenNotIdle(\n this.lodash.debounce(this._runSort, 300),\n );\n\n this._runSearch = action(async (clearResult?: boolean) => {\n const {\n events: { onSearch, onSearchResults },\n emitter,\n query,\n } = this;\n\n const searchEndListeners = emitter\n .listeners('searchStart')\n .map((l) => l());\n onSearch?.({\n query: query.asComputed,\n });\n emitter.emit('search', { clearResult });\n\n if (clearResult) {\n this.clearResultBeforeRefresh();\n }\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.moveToFirstPage({\n onResultUpdated: (params) => {\n searchEndListeners.forEach((l) => l());\n onSearchResults?.(params);\n },\n });\n });\n\n this.scheduleSearch = this.lodash.debounce(this._runSearch, 300);\n }\n\n _resetReactQuery() {\n this.queryObserver.setOptions(\n {\n ...this.queryObserver.options,\n ...this.queryKeyOptions,\n enabled: false,\n },\n {\n onError: true,\n },\n );\n }\n\n _queryFn = async (\n computedQuery: ComputedQuery<F>,\n ): Promise<DataResultKeyed<T>> => {\n const {\n items,\n total,\n available = null,\n cursor = null,\n } = 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\n _currentQueryPromise?: Promise<void>;\n\n getCurrentQuery() {\n const query = this.queryObserver.getCurrentQuery();\n return query as unknown as Query<T>;\n }\n\n get paginationMode() {\n return this._paginationMode;\n }\n\n _getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap,\n }: {\n unprocessedPages: T[][];\n unprocessedTotal: number;\n currentItemsMap: Map<string, KeyedItem<T>>;\n }) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeAddNewPagesListeners = emitter.listeners('beforeAddNewPages');\n\n const processedPages = beforeAddNewPagesListeners.reduce(\n (pages, listener) =>\n listener({\n pages,\n currentItemsMap,\n originQuery,\n }),\n unprocessedPages,\n );\n\n const processedTotal = this._getProcessedTotal(unprocessedTotal);\n\n return {\n processedPages,\n processedTotal,\n };\n }\n\n _getProcessedTotal(unprocessedTotal: number) {\n const { emitter, result } = this;\n const { originQuery } = result;\n\n const beforeSetTotalListeners = emitter.listeners('beforeSetTotal');\n return beforeSetTotalListeners.reduce(\n (total, listener) =>\n listener({\n total,\n originQuery,\n }),\n unprocessedTotal,\n );\n }\n\n _addToFetchesHistory(newPages: DataResultKeyed<T>[]) {\n const { page, cursor, offset } = this.query.asComputed;\n\n this.fetchesHistory.push({\n itemsKeys: newPages\n .flatMap((p) => p.items)\n .map((item) => this.itemKey(item)),\n queryPageInfo: {\n page,\n cursor,\n offset,\n },\n });\n }\n\n updateResult(queries: Query<T>[]) {\n const { result, paginationMode, emitter } = this;\n\n const newPages = queries\n .map((reactQuery) => reactQuery.state.data)\n .filter((d): d is DataResultKeyed<T> => d != null);\n\n this.updateStatus();\n\n if (newPages.length) {\n emitter.emit('beforeResultUpdated');\n\n const lastPage = newPages[newPages.length - 1];\n const { available, cursor } = lastPage;\n\n const unprocessedTotal = lastPage.total ?? lastPage.items.length;\n const unprocessedPages = newPages.map((data) => data.items);\n\n const { processedPages, processedTotal } = this._getProcessedResult({\n unprocessedPages,\n unprocessedTotal,\n currentItemsMap: result._keyedItemsMap,\n });\n\n result.addPages({\n unprocessed: unprocessedPages,\n processed: processedPages,\n });\n\n result.setTotals({\n unprocessed: unprocessedTotal,\n processed: processedTotal,\n });\n\n this._addToFetchesHistory(newPages);\n\n result.setSupportTotal(lastPage.total != null);\n\n paginationMode.setCursor(cursor);\n if (available != null) {\n result.available = available;\n }\n this.lifecycleState = 'result';\n\n emitter.emit('resultUpdated');\n\n return {\n newPages,\n };\n }\n\n return null;\n }\n\n whenNotIdle(fn: (...args: any[]) => unknown) {\n return (...args: any[]) => {\n if (this.result.status.isIdle) {\n return;\n }\n\n fn(...args);\n };\n }\n\n updateStatus() {\n const { queryObserver, result, query } = this;\n const { status, error, isFetching } = queryObserver.getOptimisticResult(\n queryObserver.options,\n );\n\n result.status = {\n ...queryStatus[status],\n isFetching,\n error,\n } as QueryResultStatus<DataResultKeyed<T>, unknown>;\n result.originQuery = query.asComputed;\n }\n\n fetch() {\n const { queryObserver, onlineState, emitter } = this;\n\n queryObserver.setOptions(\n {\n ...queryObserver.options,\n ...this.queryKeyOptions,\n enabled: true,\n },\n {\n onError: true,\n },\n );\n\n const currentQuery = this.getCurrentQuery();\n this._currentQueryPromise = new Promise<void>((resolve) => {\n if (currentQuery.promise) {\n currentQuery.promise.then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n\n const isStale = currentQuery.isStale();\n\n const fetchListeners = emitter.listeners('fetch');\n const onResultListeners = fetchListeners.map((l) => l({ isStale }));\n\n if (!onlineState.isOnline) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.fetch: offline'),\n });\n }\n\n this.updateStatus();\n\n return {\n currentQuery,\n isStale,\n onResultListeners,\n promise: this._currentQueryPromise,\n };\n }\n\n get totalPages() {\n const {\n result: {\n _totals: { unprocessed: total },\n },\n query: {\n pagination: { limit },\n },\n } = this;\n return Math.ceil(total / limit);\n }\n\n get total() {\n return this.result.total;\n }\n\n get totalStatus() {\n return this.result.totalStatus;\n }\n\n get fetchedLastPage() {\n const {\n paginationMode: { fetchedLastPage },\n } = this;\n return fetchedLastPage;\n }\n\n private readonly fetchNextPage = action(async () => {\n const {\n query,\n result,\n events: { onNewPageAdded, onNewPageStart },\n emitter,\n } = this;\n // if current page has an error, do not skip to next page\n if (!result.status.isError) {\n query.pagination.nextPage();\n }\n\n this.lifecycleState = 'fetchMore';\n\n const onNewPageAddedListeners = emitter\n .listeners('newPageStart')\n .map((l) => l());\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n await promise;\n\n runInAction(() => {\n if (promise === this._currentQueryPromise) {\n const updateResultInfo = this.updateResult([currentQuery]);\n\n onResultListeners.forEach((l) => l?.());\n\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n const onNewPageAddedParams = {\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n newPages,\n query: result.originQuery,\n result: result.asComputed,\n };\n onNewPageAddedListeners.forEach((l) => l(onNewPageAddedParams));\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded(onNewPageAddedParams);\n }\n onNewPageAdded?.(onNewPageAddedParams);\n }\n }\n });\n });\n\n async fetchNextPageIfNeeded() {\n const { result, fetchedLastPage, lifecycleState } = this;\n if (\n lifecycleState !== 'refresh' &&\n !result.status.isFetching &&\n !fetchedLastPage\n ) {\n await this.fetchNextPage();\n }\n }\n\n // for rendering only a single page (<PaginationTable />)\n async clearAndMoveToPage(\n page: number,\n options: { wait?: { min: number; max: number } } = {},\n ) {\n let minLoaderTime = 0;\n const { wait = { min: 200, max: 500 } } = options;\n const {\n query,\n result,\n events: { onNewPageStart },\n } = this;\n const { pagination } = query;\n pagination.page = page;\n\n const maybeOnNewPageAdded = onNewPageStart?.({\n query: query.asComputed,\n });\n\n const { promise, currentQuery, onResultListeners } = this.fetch();\n const fetchPromise = promise;\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const maxWaitPromise = new Promise<void>((resolve) => {\n timeoutId = setTimeout(() => {\n // timeoutId was not cleared yet, start showing a loader and set minimal time for the loader to show\n minLoaderTime = wait.min;\n this.clearResultBeforeRefresh();\n resolve();\n }, wait.max);\n });\n\n // minimal time to wait (usually scrolling to top time) before applying the new result\n const minWaitPromise = new Promise((resolve) => {\n setTimeout(resolve, wait.min);\n });\n\n await Promise.race([maxWaitPromise, fetchPromise]);\n\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n if (minLoaderTime) {\n await new Promise((resolve) => setTimeout(resolve, minLoaderTime));\n }\n\n await minWaitPromise;\n await fetchPromise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.clear();\n const updateResultInfo = this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n if (updateResultInfo) {\n const { newPages } = updateResultInfo;\n if (maybeOnNewPageAdded != null) {\n maybeOnNewPageAdded({\n totalNewItems: newPages.reduce(\n (agg, page) => agg + page.items.length,\n 0,\n ),\n query: result.originQuery,\n result: result.asComputed,\n });\n }\n }\n });\n }\n }\n\n clearResultBeforeRefresh() {\n const { result } = this;\n this.lifecycleState = 'refresh';\n result.clear();\n }\n\n async moveToFirstPage({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const {\n query: { pagination },\n } = this;\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n await this.fetchAndReplaceResult({ onResultUpdated });\n }\n\n invalidate({ filters }: { filters?: FiltersKey<F> } = {}) {\n const { queryCache, queryName } = this;\n const queryLookup = {};\n if (filters) {\n Object.assign(queryLookup, {\n filtersKey: filters,\n });\n }\n\n queryCache\n .findAll({ queryKey: [queryName, queryLookup] })\n .forEach((q) => q.invalidate());\n }\n\n clearResultAndMoveToStart({\n onResultUpdated,\n force,\n filters,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n force?: boolean;\n filters?: FiltersKey<F>;\n } = {}) {\n if (force) {\n this.invalidate({ filters });\n }\n this._resetReactQuery();\n this.clearResultBeforeRefresh();\n return this.moveToFirstPage({ onResultUpdated });\n }\n\n sort(\n col: Sortable,\n {\n clearResult,\n multiple,\n forceDirection,\n }: {\n clearResult?: boolean;\n multiple?: boolean;\n forceDirection?: SortOrder;\n } = {},\n ) {\n const { query, emitter } = this;\n\n emitter.emit('beforeSortStart', {\n origin: 'ColumnHeader',\n });\n\n query.sort.changeSort(col, {\n multiple,\n forceDirection,\n });\n\n emitter.emit('sortStart', { col });\n\n return this.scheduleSort({\n clearResult,\n multiple,\n forceDirection,\n });\n }\n\n async fetchAndReplaceResult({\n onResultUpdated,\n }: {\n onResultUpdated?: OnResultUpdated<F>;\n } = {}) {\n const { result, query, emitter } = this;\n\n const { promise, currentQuery, isStale, onResultListeners } = this.fetch();\n // page=1 means starting over, i.e refresh\n if (query.pagination.page === 1) {\n emitter.emit('refresh', { isStale });\n }\n\n await promise;\n\n if (promise === this._currentQueryPromise) {\n runInAction(() => {\n result.slice(0, query.pagination.page - 1);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult([currentQuery]);\n onResultListeners.forEach((l) => l?.());\n onResultUpdated?.({\n query: result.originQuery,\n result: result.asComputed,\n });\n });\n }\n\n return currentQuery;\n }\n\n search(\n value: string,\n { force, clearResult }: { force?: boolean; clearResult?: boolean } = {},\n ) {\n const { query } = this;\n const { search } = query;\n if (force || value !== search.value) {\n search.changeValue(value);\n this.scheduleSearch(clearResult);\n }\n }\n\n clearSearch() {\n const {\n query,\n events: { onSearchResults },\n emitter,\n } = this;\n const { search } = query;\n if (search.value === '') {\n return;\n }\n\n search.changeValue('');\n emitter.emit('clearSearch');\n\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n return this.clearResultAndMoveToStart({ onResultUpdated: onSearchResults });\n }\n\n get filters() {\n return this.query.filters;\n }\n\n changeItem(newItem: T) {\n return this.changeItems([newItem]);\n }\n\n changeItems(newItems: T[]) {\n const changeResult = this.result.changeItems(newItems);\n\n if (changeResult != null) {\n this.invalidate();\n\n return changeResult.rollback;\n }\n\n return undefined;\n }\n\n addItem(newItem: T) {\n return this.addItems([newItem]);\n }\n\n addItems(newItems: T[]) {\n const changeResult = this.result.addItems(newItems);\n this.invalidate();\n return changeResult.rollback;\n }\n\n async refreshCurrentPage({ noInvalidate }: { noInvalidate?: boolean } = {}) {\n const { emitter } = this;\n\n if (!noInvalidate) {\n this.invalidate();\n }\n\n this._resetReactQuery();\n emitter.emit('refreshCurrentPage');\n\n await this.fetchAndReplaceResult();\n }\n\n async refreshAllPages({\n beforeUpdateResult,\n filters,\n }: {\n beforeUpdateResult?: () => unknown;\n filters?: FiltersKey<F>;\n } = {}) {\n const { query, result, paginationMode, emitter } = this;\n const { pagination } = query;\n const { page: currentPage } = pagination;\n\n this.invalidate({ filters });\n\n const promises: Promise<Query<T>>[] = [];\n\n pagination.cursor = initialCursor;\n\n emitter.emit('refreshAllPages');\n emitter.emit('refresh', { isStale: true }); // Because of invalidation above, all queries are now stale\n\n let lastPagePromise = undefined as Promise<unknown> | undefined;\n\n for (let page = 1; page <= currentPage; page++) {\n pagination.page = page;\n this._resetReactQuery();\n const { currentQuery: pageQuery, promise } = this.fetch();\n if (pageQuery.promise) {\n if (paginationMode.id === 'cursor') {\n await pageQuery.promise;\n runInAction(\n () => (pagination.cursor = pageQuery.state.data?.cursor ?? null),\n );\n }\n promises.push(pageQuery.promise.then(() => pageQuery));\n }\n\n if (page === currentPage) {\n lastPagePromise = promise;\n }\n }\n\n this.updateStatus();\n\n const results = await Promise.all(promises);\n\n runInAction(() => {\n beforeUpdateResult?.();\n if (lastPagePromise === this._currentQueryPromise) {\n result.slice(currentPage);\n this.emitter.emit('refreshUpdateResult');\n this.updateResult(results);\n }\n });\n }\n\n get hasAvailableItems() {\n return this.result.hasAvailableItems;\n }\n\n resetFiltersAndRefresh() {\n const { query } = this;\n query.resetFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n resetCustomFiltersAndRefresh() {\n const { query } = this;\n query.resetCustomFilters({ emitEvents: ['change', 'refresh'] });\n }\n\n async initialFetch() {\n const {\n result,\n events: { onInitialPageFetched },\n emitter,\n query: { pagination },\n } = this;\n\n const prevQuery = this.getCurrentQuery();\n\n if (!result.status.isIdle && !result.status.isError) {\n return prevQuery.promise;\n }\n\n this._resetReactQuery();\n\n pagination.page = 1;\n pagination.cursor = initialCursor;\n\n this.lifecycleState = 'refresh';\n const isStale = prevQuery.isStale();\n const beforeInitialFetchListeners = emitter.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((f) => f({ isStale })));\n\n // reset paging state again for any possible edge case caused by external side effect while waiting `beforeInitialFetchListeners`\n runInAction(() => {\n pagination.page = 1;\n pagination.cursor = initialCursor;\n this.lifecycleState = 'refresh';\n });\n\n const currentQuery = await this.fetchAndReplaceResult();\n await currentQuery.promise;\n this.emitter.emit('ready');\n runInAction(() => {\n const { total, available } = result;\n onInitialPageFetched?.({\n result: {\n total,\n available: available ?? 0,\n },\n query: result.originQuery,\n });\n });\n }\n\n _recoverIfError = action(() => {\n const { onlineState } = this;\n const { focusManager } = onlineState;\n\n if (\n focusManager.isFocused() &&\n onlineState.isOnline &&\n this.result.status.isError\n ) {\n if (this.lifecycleState === 'fetchMore') {\n // error state is not shown, fetch next page\n this.fetchNextPageIfNeeded();\n } else {\n // error state is shown, move to start\n this.clearResultAndMoveToStart({ force: true });\n }\n }\n });\n\n onOnlineStateChange = (isOnline: boolean) => {\n const currentQuery = this.getCurrentQuery();\n\n if (isOnline) {\n this._recoverIfError();\n } else if (!isOnline && currentQuery.state.isPaused) {\n currentQuery.dispatch({\n type: 'error',\n error: new OfflineError('CollectionState.onOnlineStateChange: offline'),\n });\n this.updateStatus();\n }\n };\n\n retryErrorState = action(() => {\n const { initTask } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n this.clearResultAndMoveToStart();\n }\n });\n\n init({ skipInitialFetch }: { skipInitialFetch?: boolean } = {}) {\n const { bulkSelect, onlineState, query, initTask, result } = this;\n const { focusManager } = onlineState;\n\n result.originQuery = query.asComputed;\n\n onlineState.events.on('change', this.onOnlineStateChange);\n\n const disposers = [\n query.init(),\n this._registerQueryEvents(),\n result.init(),\n bulkSelect.init(),\n // react-query considers \"mounted\" only if listeners are subscribed\n this.queryObserver.subscribe(() => {}),\n focusManager.subscribe(this._recoverIfError),\n ];\n\n initTask.runOnce(async () => {\n await Promise.all([\n skipInitialFetch ? null : this.initialFetch(),\n this.initDependencies?.(),\n ]);\n });\n\n return action(() => {\n onlineState.events.off('change', this.onOnlineStateChange);\n disposers.forEach((disposer) => disposer());\n initTask.status = {\n ...queryStatus.idle,\n };\n });\n }\n\n _registerQueryEvents() {\n const { query } = this;\n const disposers = [\n addEventListener(query.events, 'refresh', (opts) => {\n if (this.selectionConsistencyMode === 'clear') {\n this.bulkSelect.resetToDefaults();\n }\n\n if (this.deferInitialLoading) {\n this.refreshPromises.addPromise(this.animationFramePromise);\n }\n\n if (opts?.clearResult !== false) {\n this.clearResultBeforeRefresh();\n } else {\n this.scrollableContent?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n this.moveToFirstPage();\n }),\n addEventListener(query.events, 'scheduleRefresh', (opts) => {\n this.scheduleSearch(opts?.clearResult);\n }),\n ...(query.refreshOnColumnsChange\n ? [\n reaction(\n () => query.fieldsKeyHash,\n () => {\n this.clearResultBeforeRefresh();\n this.moveToFirstPage();\n },\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n getItem(key: string): T | undefined | null {\n const keyedItem = this.result.get(key);\n return keyedItem?.item;\n }\n\n getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.result.get(key);\n }\n\n getKeyedItemByIndex(index: number): KeyedItem<T> | null {\n return this.result.keyedItems[index];\n }\n\n get keyedItems() {\n return this.result.keyedItems;\n }\n\n addRefreshPromise<P>(createPromise: () => Promise<P>) {\n return this.refreshPromises.addPromise(createPromise);\n }\n\n _commonDynamicBiParams(query = this.result.originQuery): {\n currentFilters?: string;\n currentSortOrder?: string;\n filteredListSize?: number;\n initialItems?: number;\n numSortedColumns?: number;\n csid?: string;\n } {\n const { result, fqdn } = this;\n\n return {\n ...fqdn,\n currentFilters: JSON.stringify(query.filtersKey),\n currentSortOrder: query.sort?.length\n ? JSON.stringify(query.sort)\n : undefined,\n filteredListSize: result.total,\n initialItems: result.size,\n numSortedColumns: query.sort?.length,\n };\n }\n\n get showInitialLoader() {\n const {\n initTask: {\n status: { isLoading },\n },\n initialPromises: { isLoadingPromises },\n } = this;\n return isLoading || isLoadingPromises;\n }\n\n get showRefreshLoader() {\n const {\n refreshPromises: { isLoadingPromises },\n result: { status },\n lifecycleState,\n } = this;\n return (\n isLoadingPromises ||\n Boolean(status.isFetching && lifecycleState === 'refresh')\n );\n }\n\n get showEmptyState() {\n const {\n lifecycleState,\n result: { isEmpty },\n } = this;\n return lifecycleState === 'result' && isEmpty;\n }\n\n get showErrorState() {\n const {\n result: { status },\n lifecycleState,\n } = this;\n return (\n !status.isFetching && status.isError && lifecycleState !== 'fetchMore'\n );\n }\n\n _topNotification = new TransitionState<string | null>();\n\n get topNotification(): {\n text: string | null | undefined;\n readonly show: boolean;\n } {\n const { _topNotification } = this;\n return {\n set text(t: string | null | undefined) {\n _topNotification.set(t);\n },\n get text() {\n return runInAction(() => _topNotification.data);\n },\n get show() {\n return runInAction(() => _topNotification.show);\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -154,7 +154,13 @@ class CustomFieldModalState {
|
|
|
154
154
|
const httpError = resolvedError == null ? void 0 : resolvedError.httpError;
|
|
155
155
|
if ((0, _isHttpError.isDetailsResponse)(httpError == null || (_httpError$response = httpError.response) == null ? void 0 : _httpError$response.data) && (0, _isHttpError.isErrorDetails)(httpError == null || (_httpError$response2 = httpError.response) == null ? void 0 : _httpError$response2.data.details) && httpError != null && (_httpError$response3 = httpError.response) != null && (_httpError$response3 = _httpError$response3.data) != null && (_httpError$response3 = _httpError$response3.details) != null && (_httpError$response3 = _httpError$response3.validationError) != null && (_httpError$response3 = _httpError$response3.fieldViolations) != null && _httpError$response3.some(v => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE')) {
|
|
156
156
|
this.errorToastConfig = {
|
|
157
|
-
message: this.t('cairo.customFields.modal.maxFieldsError')
|
|
157
|
+
message: this.t('cairo.customFields.modal.maxFieldsError'),
|
|
158
|
+
action: {
|
|
159
|
+
text: this.t('cairo.error.contactSupport.cta'),
|
|
160
|
+
onClick: () => {
|
|
161
|
+
window.open('https://www.wix.com/contact', '_blank');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
158
164
|
};
|
|
159
165
|
} else {
|
|
160
166
|
this.errorToastConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","ConditionalModalState","onConfirm","form","mode","customFieldModalBiReporter","reportModalEndProcess","t","validation","validate","hasError","enableAutoValidation","Error","_this$dataExtensionSt","_this$dataExtensionSt2","dataExtensionSchema","dataExtensionState","dataExtensionService","addCustomField","getFormValues","schema","userSchema","fqdn","fqdnString","filterable","runInAction","container","showToast","call","message","type","biName","endType","e","onConfirmError","FormState","FieldState","validators","value","name","key","allUserCustomFields","some","field","id","test","readUsers","readApps","writeUsers","writeApps","containsPii","permissions","read","apps","users","write","$","dirty","CustomFieldModalBiReporter","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","errorToastConfig","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","_this$errorToastConfi","getResolvedError","errorHandler","_httpError$response","_httpError$response2","_httpError$response3","resolvedError","httpError","isDetailsResponse","response","data","isErrorDetails","details","validationError","fieldViolations","v","ruleName","reportSubmitFailure","errorType","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","containsKey","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType } from '../services';\nimport { DataExtensionState } from './DataExtensionState';\nimport { slugify } from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\nexport interface CustomFieldStateParams {\n dataExtensionState: DataExtensionState;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport class CustomFieldModalState {\n dataExtensionState: DataExtensionState;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n errorToastConfig: ToastConfig | undefined = undefined;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionState.dataExtensionService.addCustomField({\n form: this.getFormValues(),\n schema: this.dataExtensionState.userSchema,\n fqdn: this.dataExtensionState.fqdnString,\n filterable: this.dataExtensionState.filterable,\n });\n\n runInAction(() => {\n this.dataExtensionState.userSchema = dataExtensionSchema;\n });\n\n this.dataExtensionState.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n this.onConfirmError(e);\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<CustomFieldType | undefined>(undefined).validators(\n (value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n },\n ),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const {\n t,\n mode,\n dataExtensionState: { allUserCustomFields },\n } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (\n mode === 'new' &&\n allUserCustomFields.some((field) => field.id === value)\n ) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n containsPii: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.dataExtensionState = params.dataExtensionState;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n dataExtensionState: params.dataExtensionState,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n });\n }\n\n onConfirmError(e: unknown) {\n const { getResolvedError } = this.dataExtensionState.container.errorHandler;\n\n runInAction(() => {\n const resolvedError = getResolvedError?.(e);\n const httpError = resolvedError?.httpError;\n\n if (\n isDetailsResponse(httpError?.response?.data) &&\n isErrorDetails(httpError?.response?.data.details) &&\n httpError?.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.errorToastConfig = {\n message: this.t('cairo.customFields.modal.maxFieldsError'),\n };\n } else {\n this.errorToastConfig = {\n message: resolvedError?.message!,\n action: resolvedError?.action,\n };\n }\n });\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: this.errorToastConfig?.message,\n });\n\n // Prevents modal closing\n throw e;\n }\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.errorToastConfig = undefined;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): CustomFieldForm {\n const {\n form: {\n $: {\n type,\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n };\n }\n\n setFormValues(\n form: CustomFieldForm,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n $.containsPii.value = form.containsPii;\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.dataExtensionState.allUserCustomFields.some(\n (field) => field.id === key,\n );\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.dataExtensionState.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const {\n t,\n form: {\n $: { type },\n },\n } = this;\n\n switch (type.value) {\n case 'dropdown':\n return t('cairo.customFields.fieldType.dropdownList.Name.placeholder');\n case 'checkbox':\n return t('cairo.customFields.fieldType.checkbox.Name.placeholder');\n case 'shortText':\n return t('cairo.customFields.fieldType.shortText.Name.placeholder');\n case 'longText':\n return t('cairo.customFields.fieldType.longText.Name.placeholder');\n case 'date':\n return t('cairo.customFields.fieldType.date.Name.placeholder');\n case 'dateTime':\n return t('cairo.customFields.fieldType.dateAndTime.Name.placeholder');\n case 'integer':\n return t('cairo.customFields.fieldType.numberInteger.Name.placeholder');\n case 'decimal':\n return t('cairo.customFields.fieldType.numberDecimal.Name.placeholder');\n default:\n return t(\n 'cairo.customFields.addCustomField.modal.fieldName.placeholder',\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","ConditionalModalState","onConfirm","form","mode","customFieldModalBiReporter","reportModalEndProcess","t","validation","validate","hasError","enableAutoValidation","Error","_this$dataExtensionSt","_this$dataExtensionSt2","dataExtensionSchema","dataExtensionState","dataExtensionService","addCustomField","getFormValues","schema","userSchema","fqdn","fqdnString","filterable","runInAction","container","showToast","call","message","type","biName","endType","e","onConfirmError","FormState","FieldState","validators","value","name","key","allUserCustomFields","some","field","id","test","readUsers","readApps","writeUsers","writeApps","containsPii","permissions","read","apps","users","write","$","dirty","CustomFieldModalBiReporter","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","errorToastConfig","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","_this$errorToastConfi","getResolvedError","errorHandler","_httpError$response","_httpError$response2","_httpError$response3","resolvedError","httpError","isDetailsResponse","response","data","isErrorDetails","details","validationError","fieldViolations","v","ruleName","text","onClick","window","open","reportSubmitFailure","errorType","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","containsKey","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType } from '../services';\nimport { DataExtensionState } from './DataExtensionState';\nimport { slugify } from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\nexport interface CustomFieldStateParams {\n dataExtensionState: DataExtensionState;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport class CustomFieldModalState {\n dataExtensionState: DataExtensionState;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n errorToastConfig: ToastConfig | undefined = undefined;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionState.dataExtensionService.addCustomField({\n form: this.getFormValues(),\n schema: this.dataExtensionState.userSchema,\n fqdn: this.dataExtensionState.fqdnString,\n filterable: this.dataExtensionState.filterable,\n });\n\n runInAction(() => {\n this.dataExtensionState.userSchema = dataExtensionSchema;\n });\n\n this.dataExtensionState.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n this.onConfirmError(e);\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<CustomFieldType | undefined>(undefined).validators(\n (value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n },\n ),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const {\n t,\n mode,\n dataExtensionState: { allUserCustomFields },\n } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (\n mode === 'new' &&\n allUserCustomFields.some((field) => field.id === value)\n ) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n containsPii: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.dataExtensionState = params.dataExtensionState;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n dataExtensionState: params.dataExtensionState,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n });\n }\n\n onConfirmError(e: unknown) {\n const { getResolvedError } = this.dataExtensionState.container.errorHandler;\n\n runInAction(() => {\n const resolvedError = getResolvedError?.(e);\n const httpError = resolvedError?.httpError;\n\n if (\n isDetailsResponse(httpError?.response?.data) &&\n isErrorDetails(httpError?.response?.data.details) &&\n httpError?.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.errorToastConfig = {\n message: this.t('cairo.customFields.modal.maxFieldsError'),\n action: {\n text: this.t('cairo.error.contactSupport.cta'),\n onClick: () => {\n window.open('https://www.wix.com/contact', '_blank');\n },\n },\n };\n } else {\n this.errorToastConfig = {\n message: resolvedError?.message!,\n action: resolvedError?.action,\n };\n }\n });\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: this.errorToastConfig?.message,\n });\n\n // Prevents modal closing\n throw e;\n }\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.errorToastConfig = undefined;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): CustomFieldForm {\n const {\n form: {\n $: {\n type,\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n };\n }\n\n setFormValues(\n form: CustomFieldForm,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n $.containsPii.value = form.containsPii;\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.dataExtensionState.allUserCustomFields.some(\n (field) => field.id === key,\n );\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.dataExtensionState.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const {\n t,\n form: {\n $: { type },\n },\n } = this;\n\n switch (type.value) {\n case 'dropdown':\n return t('cairo.customFields.fieldType.dropdownList.Name.placeholder');\n case 'checkbox':\n return t('cairo.customFields.fieldType.checkbox.Name.placeholder');\n case 'shortText':\n return t('cairo.customFields.fieldType.shortText.Name.placeholder');\n case 'longText':\n return t('cairo.customFields.fieldType.longText.Name.placeholder');\n case 'date':\n return t('cairo.customFields.fieldType.date.Name.placeholder');\n case 'dateTime':\n return t('cairo.customFields.fieldType.dateAndTime.Name.placeholder');\n case 'integer':\n return t('cairo.customFields.fieldType.numberInteger.Name.placeholder');\n case 'decimal':\n return t('cairo.customFields.fieldType.numberDecimal.Name.placeholder');\n default:\n return t(\n 'cairo.customFields.addCustomField.modal.fieldName.placeholder',\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -82,7 +82,8 @@ class PickerState {
|
|
|
82
82
|
numLevels,
|
|
83
83
|
location: 'picker',
|
|
84
84
|
moreActionsIndex: 0,
|
|
85
|
-
ctaName
|
|
85
|
+
ctaName,
|
|
86
|
+
url: typeof window !== 'undefined' ? window.location.href : ''
|
|
86
87
|
}));
|
|
87
88
|
});
|
|
88
89
|
(0, _defineProperty2.default)(this, "onCreateNew", (0, _mobx.action)(async items => {
|
|
@@ -275,7 +276,7 @@ class PickerState {
|
|
|
275
276
|
try {
|
|
276
277
|
reportBi(withoutDefaults(_v.loadEnd)({
|
|
277
278
|
...this._commonDynamicBiParams(),
|
|
278
|
-
url: window.location.href,
|
|
279
|
+
url: typeof window !== 'undefined' ? window.location.href : '',
|
|
279
280
|
loadingTime: Math.round(performance.now() - this.loadStartTime),
|
|
280
281
|
initialItems: result.size
|
|
281
282
|
}));
|
|
@@ -393,6 +394,7 @@ class PickerState {
|
|
|
393
394
|
bulkSelect.toggle(keyedItem);
|
|
394
395
|
reportBi((0, _v.cairoItemSelectionToggled)({
|
|
395
396
|
...this._commonDynamicBiParams(),
|
|
397
|
+
url: typeof window !== 'undefined' ? window.location.href : '',
|
|
396
398
|
isSelectAll: false,
|
|
397
399
|
isFromSearch: !search.isEmpty,
|
|
398
400
|
searchQuery: search.value,
|