@pega/lists-core 10.0.0-build.5.14 → 10.0.0-build.5.16

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.
@@ -1 +1 @@
1
- {"version":3,"file":"StateResolver.d.ts","sourceRoot":"","sources":["../../../src/core/StateResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAc,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAgB9F,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,2BAA2B,CAAC;AAC7F,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGpF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,KAAK,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,UAAU,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChC,kCAAkC;AAClC,MAAM,CAAC,OAAO,OAAO,aAAa;;IAwChC,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;gBAED,QAAQ,EAAE,eAAe,EACzB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU;IAiCxB;;;;;OAKG;IACH,QAAQ,GAAI,QAAQ,UAAU,KAAG,IAAI,CA+CnC;IAEF;;OAEG;IACH,QAAQ,cAEN;IAEF;;OAEG;IACH,gBAAgB,cAEd;IAEF;;;;OAIG;IACH,cAAc,GACZ,aAAa,CAAC,YAAY,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAI3E;CAoIH;AAED,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,UAAU,IAcrD,OAAO,KAAK,EAAE,kBAAkB,UAAU,gCAwBzD"}
1
+ {"version":3,"file":"StateResolver.d.ts","sourceRoot":"","sources":["../../../src/core/StateResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAc,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAgB9F,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,2BAA2B,CAAC;AAC7F,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGpF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,KAAK,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,UAAU,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChC,kCAAkC;AAClC,MAAM,CAAC,OAAO,OAAO,aAAa;;IAwChC,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;gBAED,QAAQ,EAAE,eAAe,EACzB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU;IAiCxB;;;;;OAKG;IACH,QAAQ,GAAI,QAAQ,UAAU,KAAG,IAAI,CAgDnC;IAEF;;OAEG;IACH,QAAQ,cAEN;IAEF;;OAEG;IACH,gBAAgB,cAEd;IAEF;;;;OAIG;IACH,cAAc,GACZ,aAAa,CAAC,YAAY,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAI3E;CAoIH;AAED,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,UAAU,IAcrD,OAAO,KAAK,EAAE,kBAAkB,UAAU,gCAwBzD"}
@@ -82,7 +82,7 @@ export default class StateResolver {
82
82
  }
83
83
  }
84
84
  if (typeof action === 'function')
85
- return action(this.dispatch, this.getState, this.#rsInternal.getView().meta);
85
+ return action(this.dispatch, this.getState, this.#rsInternal.getView().meta, this.#rsInternal.getRsStore);
86
86
  if (!this.#queuedActions.length && !this.fetchDataInProgress) {
87
87
  // Don't do deep copy as we don't do deep comparison for arrays and objects in memoization in feature files
88
88
  this.#currentState = { ...this.#state };
@@ -1 +1 @@
1
- {"version":3,"file":"StateResolver.js","sourceRoot":"","sources":["../../../src/core/StateResolver.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport type { State } from '../../types/State.types';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions, FetchDataResponse } from '../../types/ApiContext.types';\n\nimport { AFTER_FETCH, BEFORE_FETCH } from './pubSub/events';\nimport {\n clearProcessedActionsFromLatestActions,\n isSignificantPaginationOverlap,\n isEmpty,\n isFilterCriteriaChanged,\n isSameActionPresent as isSameActionPresentInQueue,\n isStaleAction,\n pickProperties,\n withMemoization\n} from './utils/util';\nimport { personalizationProps } from './reducers/personalizationReducer';\nimport ActionTypes from './actions/actionConstants';\nimport type { ActionType } from './actions/actionConstants';\nimport type RsInternal from './RsInternal';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { MiddleWareFeatureProps, UIFeatures, Feature } from './features/featureFactory';\nimport type { ActionAsFunction, BaseAction, Action } from './actions/actions.types';\nimport type RsProps from './RsProps';\n\nexport type ReducerFunction = (state: State, action: Action, rsInternal: RsInternal) => State;\nexport type FetchDataHandler = (\n state: State,\n fetchDataOptions: ApiOptions\n) => Promise<FetchDataResponse>;\n/** It manages state of RsCore. */\nexport default class StateResolver {\n /** A reference to {@link RsInternal} object. */\n #rsInternal: RsInternal;\n\n /** Reducer function to reduce RS Core actions to its respective state. */\n #reducers: ReducerFunction;\n\n /** A reference to beforeRender UI features */\n #middlewares?: (featureProps: MiddleWareFeatureProps) => Promise<void | null>;\n\n /** Handler to fetch and manage data using {@link ApiContext.fetchData fetchData} api. */\n #fetchDataHandler: FetchDataHandler;\n\n /** previously dispatched stable state excluding instant state */\n #state: State;\n\n /** Intermittent state generated based upon the processed actions from the queue */\n #currentState: State;\n\n /** State generated via actions with instantRender. */\n #instantState: State;\n\n /** Queue holding actions that are dispatched. */\n #queuedActions: Action[];\n\n /** Holds the action that is executed. */\n #previousExecutedActionQueue: Action[];\n\n /** It contains registered api's provided by consumer of RsCore */\n #externalStoreRef: NonNullable<RsProps['externalStore']>;\n\n /** Keep track of latest action of a type of that action is marked to ignore stale actions */\n #latestActions = new Map<ActionType, Action>();\n\n /** Indicates if an external dispatch to RS core consumer should ber skipped. */\n #skipExternalDispatch = false;\n\n /** Abort controller to abort the fetchData requests in transit */\n #abortController?: AbortController;\n\n /** Indicates if fetchData is in progress. */\n fetchDataInProgress?: boolean;\n\n /**\n * Create an instance of {@link StateResolver} class.\n * @param reducers Reducer function to reduce state for a given action\n * @param fetchDataHandler Fetch Data handler function to fetch the data of RSCore when required.\n * @param rsInternal Reference to {@link RsInternal} object.\n */\n constructor(\n reducers: ReducerFunction,\n fetchDataHandler: FetchDataHandler,\n rsInternal: RsInternal\n ) {\n this.#reducers = reducers;\n this.#fetchDataHandler = fetchDataHandler;\n this.#rsInternal = rsInternal;\n\n this.#externalStoreRef = rsInternal.getRsProps().externalStore!;\n\n this.#state = {};\n this.#currentState = {};\n this.#instantState = {};\n this.#queuedActions = [];\n this.#previousExecutedActionQueue = [];\n }\n\n /**\n * Executes {@link ApiContext.stateUpdateCallback stateUpdateCallback} and {@link ApiContext.setComponentState setComponentState} api with latest state.\n */\n #executePostStateUpdateCallbacks = () => {\n const { apiContext } = this.#rsInternal.getRsProps();\n if (apiContext?.stateUpdateCallback) {\n apiContext.stateUpdateCallback({\n ...pickProperties(this.getState(), personalizationProps)\n });\n }\n if (apiContext?.setComponentState && this.getState().personalization?.active) {\n apiContext.setComponentState({\n ...pickProperties(this.getState(), personalizationProps),\n activePersonalization: this.getState().personalization?.active\n });\n }\n };\n\n /**\n * Dispatches given {@link action} to update the RsCore {@link State state} based on the provided action type. Multiple actions are queued in the action queue.\n * It will further triggers various {@link UIFeatures features} and fetches data using {@link FetchDataHandler} according to the state changes.\n *\n * @param action - The action to be dispatched.\n */\n dispatch = (action: BaseAction): void => {\n if ('takeLatestAction' in action && action.takeLatestAction) {\n if (isSameActionPresentInQueue(action, this.#latestActions)) return;\n this.#latestActions.set(action.type, action);\n if (isSignificantPaginationOverlap(this.#latestActions, this.#previousExecutedActionQueue)) {\n this.#abortController?.abort();\n }\n }\n if (typeof action === 'function')\n return (action as ActionAsFunction)(\n this.dispatch,\n this.getState,\n this.#rsInternal.getView().meta\n );\n if (!this.#queuedActions.length && !this.fetchDataInProgress) {\n // Don't do deep copy as we don't do deep comparison for arrays and objects in memoization in feature files\n this.#currentState = { ...this.#state };\n }\n\n if ('instantRender' in action && action.instantRender) {\n if (this.#rsInternal.getRsProps().mode === 'debug') {\n console.warn(\n 'Doing instant render. This might introduce performance issues. Check if this is really needed.'\n );\n }\n this.#instantState = this.#reducers(this.#instantState, action, this.#rsInternal);\n this.#rsInternal.getView().setProp({\n state: { ...this.getState(), ...this.#instantState },\n isInstantRender: true\n });\n this.#externalStoreRef.dispatch({\n ...this.#instantState\n });\n this.#executePostStateUpdateCallbacks();\n\n return;\n }\n if ('skipActionQueue' in action && action.skipActionQueue) {\n this.#currentState = this.#reducers(this.#currentState, action, this.#rsInternal);\n return;\n }\n\n this.#queuedActions.push(action);\n // We run next batch only after completing first batch, Fetch call should get completed.\n if (this.#queuedActions.length === 1 && !this.#previousExecutedActionQueue.length) {\n this.#runQueuedActions();\n }\n };\n\n /**\n * Returns the current state that is built using the {@link dispatch dispatched} action.\n */\n getState = () => {\n return Object.keys(this.#currentState).length > 0 ? this.#currentState : this.#state;\n };\n\n /**\n * Returns a snapshot of the previous stable state before the action queue starts executing via {@link dispatch}.\n */\n getOriginalState = () => {\n return this.#state;\n };\n\n /**\n * Sets a function to execute a set of {@link Feature features} before triggering a render.\n * The provided function will be called with the {@link MiddleWareFeatureProps featureProps}\n * @param middlewares - A function that executes a set of {@link Feature features} before rendering.\n */\n setMiddlewares = (\n middlewares: (featureProps: MiddleWareFeatureProps) => Promise<void | null>\n ) => {\n if (this.#middlewares) return;\n this.#middlewares = middlewares;\n };\n\n /**\n * Returns true if the lone queued FORCE_UPDATE action should be skipped (no-op optimization).\n */\n #skipForceUpdateAction = (): boolean => {\n if (this.#queuedActions.length !== 1) return false;\n const action = this.#queuedActions[0];\n if (action?.type !== ActionTypes.FORCE_UPDATE) return false;\n if (!('payload' in action)) return false;\n return !Object.keys(action.payload.forceUpdateFeatures ?? {}).length;\n };\n\n /** This will reduce the RsCore {@link State state} for a {@link StateResolver.dispatch dispatched} action .\n * Additionally it will also run middlewares, fetches latest data using {@link FetchDataHandler} and executes post state update callback with latest reduced state.\n */\n #runQueuedActions = async () => {\n const queuedAction = this.#queuedActions[0];\n if (queuedAction) {\n const skipStaleActionExecution =\n 'takeLatestAction' in queuedAction &&\n queuedAction.takeLatestAction &&\n isStaleAction(queuedAction, this.#latestActions);\n\n if (skipStaleActionExecution) {\n this.#queuedActions.shift();\n await this.#runQueuedActions();\n return;\n }\n\n this.#previousExecutedActionQueue.push(queuedAction);\n this.#currentState = this.#reducers(this.#currentState, queuedAction, this.#rsInternal);\n await this.#middlewares!({\n rsInternal: this.#rsInternal,\n getState: this.getState,\n getOriginalState: this.getOriginalState,\n dispatch: this.dispatch,\n queuedActions: [queuedAction]\n });\n this.#queuedActions.shift();\n await this.#runQueuedActions();\n } else if (this.#rsInternal.getRsStore().isMounted) {\n this.fetchDataInProgress = true;\n\n await this.#fetchData({\n ...this.#currentState,\n ...this.#instantState\n });\n\n // if the processed action and latest action has same payload, delete the latestAction as all the actions have been processed.\n clearProcessedActionsFromLatestActions(\n this.#latestActions,\n this.#previousExecutedActionQueue\n );\n\n // if data has been ignored, don't dispatch to view layer as the there is no change in rows\n if (!this.#skipExternalDispatch) {\n await this.#externalStoreRef.dispatch({\n ...this.#currentState\n });\n }\n this.#skipExternalDispatch = false;\n this.fetchDataInProgress = false;\n this.#previousExecutedActionQueue = [];\n\n // this happens in cases of dispatches like query info. In that case, the props have been set on view directly and the dispatch has already happened\n // This will prevent unnecessary renders in case of server side table\n\n // Avoid skipping FORCE_UPDATE action in case feature has triggered it and is relying on forceUpdatedFeatures slice of state.\n // forceUpdateFeatures slice is generally used by features when they are not able to perform their task if the rendering cycle is not complete.\n // For eg.renderHeader and autosize feature set forceRenderOnNextRun and forceCalculateAutoWidth in this slice so that they will get executed after the existing rendering cycle is complete and the rows are rendered on DOM.\n // If we skip these types of FORCE_UPDATE action then the corresponding features execution will also be skipped.\n if (this.#skipForceUpdateAction()) {\n this.#queuedActions.shift();\n }\n if (this.#queuedActions.length) {\n this.#runQueuedActions();\n } else {\n this.#state = { ...this.#currentState };\n this.#currentState = {};\n this.#executePostStateUpdateCallbacks();\n }\n }\n };\n\n /**\n * Calls the {@link FetchDataHandler fetchDataHandler} and updates the latest data in the {@link View}\n * @param latestState - Current state.\n */\n #fetchData = async (latestState: State) => {\n this.#abortController = new AbortController();\n const signal = this.#abortController.signal;\n this.#rsInternal.getPubSubUtils().publish(BEFORE_FETCH);\n\n const derivedState = {\n ...latestState,\n groupFilters: this.#rsInternal.getRsStore().groupFilters\n };\n // TODO: No need to fetch data if all the groups are collapsed.\n const res = await this.#fetchDataHandler(derivedState, {\n signal,\n ...(this.#rsInternal.getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: this.#rsInternal.getRsStore().refreshToken\n })\n });\n if (res) {\n const { totalRecordCount, filteredRecordCount, data = [] } = res;\n\n if (!isEmpty(totalRecordCount) || !isEmpty(filteredRecordCount)) {\n this.#rsInternal.getView().setProp({\n resultsCount: totalRecordCount || filteredRecordCount,\n countGeneratedInternally: false,\n showCount: true\n });\n }\n\n if (isSignificantPaginationOverlap(this.#latestActions, this.#previousExecutedActionQueue)) {\n this.#skipExternalDispatch = true;\n } else {\n this.#rsInternal.getView().setProp({\n data,\n isCountUpdateRequired:\n isFilterCriteriaChanged(this.#rsInternal.getRsStore().meta, this.#state, latestState) ||\n latestState.refresh !== this.#state.refresh\n });\n }\n }\n\n this.#rsInternal.getPubSubUtils().publish(AFTER_FETCH);\n this.#rsInternal.getView().setProp({ state: latestState, isInstantRender: false });\n };\n}\n\n/** Initializes handler for {@link ApiContext.fetchData fetchData} api. */\nexport function initializeFetchDataHandler(rsCoreInternal: RsInternal) {\n let response = {} as FetchDataResponse;\n const fetchWrapper = withMemoization(async ([state, fetchDataOptions]: [State, ApiOptions]) => {\n try {\n response = await rsCoreInternal\n .getRsProps()\n .apiContext.fetchData(state, rsCoreInternal.getRsStore().meta, fetchDataOptions);\n } catch (err: any) {\n if (!['AbortError', 'CanceledError'].includes(err.name)) {\n console.error('API call failed', err);\n }\n }\n });\n\n return async (state: State, fetchDataOptions: ApiOptions) => {\n /**\n * Returning default data from getView() in case the actual apiContext.getData() doesn't get called.\n *\n * BUG-811621: in case of bulk actions and inline edit, the updated rows come from separate apiContext APIs\n * and the memo of below function won't break, so, it will give stale data. Using getView().data as the default fallback for such cases.\n */\n response.data = rsCoreInternal.getView().data!;\n await fetchWrapper(\n [state, fetchDataOptions],\n [\n state.filterExpression,\n state.search,\n state.paginationOptions,\n state.sortingOrder,\n state.refresh,\n state.groups,\n state.hierarchicalGroup,\n state.groupFilters,\n state.visibleColumns\n ]\n );\n return response;\n };\n}\n"]}
1
+ {"version":3,"file":"StateResolver.js","sourceRoot":"","sources":["../../../src/core/StateResolver.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport type { State } from '../../types/State.types';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions, FetchDataResponse } from '../../types/ApiContext.types';\n\nimport { AFTER_FETCH, BEFORE_FETCH } from './pubSub/events';\nimport {\n clearProcessedActionsFromLatestActions,\n isSignificantPaginationOverlap,\n isEmpty,\n isFilterCriteriaChanged,\n isSameActionPresent as isSameActionPresentInQueue,\n isStaleAction,\n pickProperties,\n withMemoization\n} from './utils/util';\nimport { personalizationProps } from './reducers/personalizationReducer';\nimport ActionTypes from './actions/actionConstants';\nimport type { ActionType } from './actions/actionConstants';\nimport type RsInternal from './RsInternal';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { MiddleWareFeatureProps, UIFeatures, Feature } from './features/featureFactory';\nimport type { ActionAsFunction, BaseAction, Action } from './actions/actions.types';\nimport type RsProps from './RsProps';\n\nexport type ReducerFunction = (state: State, action: Action, rsInternal: RsInternal) => State;\nexport type FetchDataHandler = (\n state: State,\n fetchDataOptions: ApiOptions\n) => Promise<FetchDataResponse>;\n/** It manages state of RsCore. */\nexport default class StateResolver {\n /** A reference to {@link RsInternal} object. */\n #rsInternal: RsInternal;\n\n /** Reducer function to reduce RS Core actions to its respective state. */\n #reducers: ReducerFunction;\n\n /** A reference to beforeRender UI features */\n #middlewares?: (featureProps: MiddleWareFeatureProps) => Promise<void | null>;\n\n /** Handler to fetch and manage data using {@link ApiContext.fetchData fetchData} api. */\n #fetchDataHandler: FetchDataHandler;\n\n /** previously dispatched stable state excluding instant state */\n #state: State;\n\n /** Intermittent state generated based upon the processed actions from the queue */\n #currentState: State;\n\n /** State generated via actions with instantRender. */\n #instantState: State;\n\n /** Queue holding actions that are dispatched. */\n #queuedActions: Action[];\n\n /** Holds the action that is executed. */\n #previousExecutedActionQueue: Action[];\n\n /** It contains registered api's provided by consumer of RsCore */\n #externalStoreRef: NonNullable<RsProps['externalStore']>;\n\n /** Keep track of latest action of a type of that action is marked to ignore stale actions */\n #latestActions = new Map<ActionType, Action>();\n\n /** Indicates if an external dispatch to RS core consumer should ber skipped. */\n #skipExternalDispatch = false;\n\n /** Abort controller to abort the fetchData requests in transit */\n #abortController?: AbortController;\n\n /** Indicates if fetchData is in progress. */\n fetchDataInProgress?: boolean;\n\n /**\n * Create an instance of {@link StateResolver} class.\n * @param reducers Reducer function to reduce state for a given action\n * @param fetchDataHandler Fetch Data handler function to fetch the data of RSCore when required.\n * @param rsInternal Reference to {@link RsInternal} object.\n */\n constructor(\n reducers: ReducerFunction,\n fetchDataHandler: FetchDataHandler,\n rsInternal: RsInternal\n ) {\n this.#reducers = reducers;\n this.#fetchDataHandler = fetchDataHandler;\n this.#rsInternal = rsInternal;\n\n this.#externalStoreRef = rsInternal.getRsProps().externalStore!;\n\n this.#state = {};\n this.#currentState = {};\n this.#instantState = {};\n this.#queuedActions = [];\n this.#previousExecutedActionQueue = [];\n }\n\n /**\n * Executes {@link ApiContext.stateUpdateCallback stateUpdateCallback} and {@link ApiContext.setComponentState setComponentState} api with latest state.\n */\n #executePostStateUpdateCallbacks = () => {\n const { apiContext } = this.#rsInternal.getRsProps();\n if (apiContext?.stateUpdateCallback) {\n apiContext.stateUpdateCallback({\n ...pickProperties(this.getState(), personalizationProps)\n });\n }\n if (apiContext?.setComponentState && this.getState().personalization?.active) {\n apiContext.setComponentState({\n ...pickProperties(this.getState(), personalizationProps),\n activePersonalization: this.getState().personalization?.active\n });\n }\n };\n\n /**\n * Dispatches given {@link action} to update the RsCore {@link State state} based on the provided action type. Multiple actions are queued in the action queue.\n * It will further triggers various {@link UIFeatures features} and fetches data using {@link FetchDataHandler} according to the state changes.\n *\n * @param action - The action to be dispatched.\n */\n dispatch = (action: BaseAction): void => {\n if ('takeLatestAction' in action && action.takeLatestAction) {\n if (isSameActionPresentInQueue(action, this.#latestActions)) return;\n this.#latestActions.set(action.type, action);\n if (isSignificantPaginationOverlap(this.#latestActions, this.#previousExecutedActionQueue)) {\n this.#abortController?.abort();\n }\n }\n if (typeof action === 'function')\n return (action as ActionAsFunction)(\n this.dispatch,\n this.getState,\n this.#rsInternal.getView().meta,\n this.#rsInternal.getRsStore\n );\n if (!this.#queuedActions.length && !this.fetchDataInProgress) {\n // Don't do deep copy as we don't do deep comparison for arrays and objects in memoization in feature files\n this.#currentState = { ...this.#state };\n }\n\n if ('instantRender' in action && action.instantRender) {\n if (this.#rsInternal.getRsProps().mode === 'debug') {\n console.warn(\n 'Doing instant render. This might introduce performance issues. Check if this is really needed.'\n );\n }\n this.#instantState = this.#reducers(this.#instantState, action, this.#rsInternal);\n this.#rsInternal.getView().setProp({\n state: { ...this.getState(), ...this.#instantState },\n isInstantRender: true\n });\n this.#externalStoreRef.dispatch({\n ...this.#instantState\n });\n this.#executePostStateUpdateCallbacks();\n\n return;\n }\n if ('skipActionQueue' in action && action.skipActionQueue) {\n this.#currentState = this.#reducers(this.#currentState, action, this.#rsInternal);\n return;\n }\n\n this.#queuedActions.push(action);\n // We run next batch only after completing first batch, Fetch call should get completed.\n if (this.#queuedActions.length === 1 && !this.#previousExecutedActionQueue.length) {\n this.#runQueuedActions();\n }\n };\n\n /**\n * Returns the current state that is built using the {@link dispatch dispatched} action.\n */\n getState = () => {\n return Object.keys(this.#currentState).length > 0 ? this.#currentState : this.#state;\n };\n\n /**\n * Returns a snapshot of the previous stable state before the action queue starts executing via {@link dispatch}.\n */\n getOriginalState = () => {\n return this.#state;\n };\n\n /**\n * Sets a function to execute a set of {@link Feature features} before triggering a render.\n * The provided function will be called with the {@link MiddleWareFeatureProps featureProps}\n * @param middlewares - A function that executes a set of {@link Feature features} before rendering.\n */\n setMiddlewares = (\n middlewares: (featureProps: MiddleWareFeatureProps) => Promise<void | null>\n ) => {\n if (this.#middlewares) return;\n this.#middlewares = middlewares;\n };\n\n /**\n * Returns true if the lone queued FORCE_UPDATE action should be skipped (no-op optimization).\n */\n #skipForceUpdateAction = (): boolean => {\n if (this.#queuedActions.length !== 1) return false;\n const action = this.#queuedActions[0];\n if (action?.type !== ActionTypes.FORCE_UPDATE) return false;\n if (!('payload' in action)) return false;\n return !Object.keys(action.payload.forceUpdateFeatures ?? {}).length;\n };\n\n /** This will reduce the RsCore {@link State state} for a {@link StateResolver.dispatch dispatched} action .\n * Additionally it will also run middlewares, fetches latest data using {@link FetchDataHandler} and executes post state update callback with latest reduced state.\n */\n #runQueuedActions = async () => {\n const queuedAction = this.#queuedActions[0];\n if (queuedAction) {\n const skipStaleActionExecution =\n 'takeLatestAction' in queuedAction &&\n queuedAction.takeLatestAction &&\n isStaleAction(queuedAction, this.#latestActions);\n\n if (skipStaleActionExecution) {\n this.#queuedActions.shift();\n await this.#runQueuedActions();\n return;\n }\n\n this.#previousExecutedActionQueue.push(queuedAction);\n this.#currentState = this.#reducers(this.#currentState, queuedAction, this.#rsInternal);\n await this.#middlewares!({\n rsInternal: this.#rsInternal,\n getState: this.getState,\n getOriginalState: this.getOriginalState,\n dispatch: this.dispatch,\n queuedActions: [queuedAction]\n });\n this.#queuedActions.shift();\n await this.#runQueuedActions();\n } else if (this.#rsInternal.getRsStore().isMounted) {\n this.fetchDataInProgress = true;\n\n await this.#fetchData({\n ...this.#currentState,\n ...this.#instantState\n });\n\n // if the processed action and latest action has same payload, delete the latestAction as all the actions have been processed.\n clearProcessedActionsFromLatestActions(\n this.#latestActions,\n this.#previousExecutedActionQueue\n );\n\n // if data has been ignored, don't dispatch to view layer as the there is no change in rows\n if (!this.#skipExternalDispatch) {\n await this.#externalStoreRef.dispatch({\n ...this.#currentState\n });\n }\n this.#skipExternalDispatch = false;\n this.fetchDataInProgress = false;\n this.#previousExecutedActionQueue = [];\n\n // this happens in cases of dispatches like query info. In that case, the props have been set on view directly and the dispatch has already happened\n // This will prevent unnecessary renders in case of server side table\n\n // Avoid skipping FORCE_UPDATE action in case feature has triggered it and is relying on forceUpdatedFeatures slice of state.\n // forceUpdateFeatures slice is generally used by features when they are not able to perform their task if the rendering cycle is not complete.\n // For eg.renderHeader and autosize feature set forceRenderOnNextRun and forceCalculateAutoWidth in this slice so that they will get executed after the existing rendering cycle is complete and the rows are rendered on DOM.\n // If we skip these types of FORCE_UPDATE action then the corresponding features execution will also be skipped.\n if (this.#skipForceUpdateAction()) {\n this.#queuedActions.shift();\n }\n if (this.#queuedActions.length) {\n this.#runQueuedActions();\n } else {\n this.#state = { ...this.#currentState };\n this.#currentState = {};\n this.#executePostStateUpdateCallbacks();\n }\n }\n };\n\n /**\n * Calls the {@link FetchDataHandler fetchDataHandler} and updates the latest data in the {@link View}\n * @param latestState - Current state.\n */\n #fetchData = async (latestState: State) => {\n this.#abortController = new AbortController();\n const signal = this.#abortController.signal;\n this.#rsInternal.getPubSubUtils().publish(BEFORE_FETCH);\n\n const derivedState = {\n ...latestState,\n groupFilters: this.#rsInternal.getRsStore().groupFilters\n };\n // TODO: No need to fetch data if all the groups are collapsed.\n const res = await this.#fetchDataHandler(derivedState, {\n signal,\n ...(this.#rsInternal.getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: this.#rsInternal.getRsStore().refreshToken\n })\n });\n if (res) {\n const { totalRecordCount, filteredRecordCount, data = [] } = res;\n\n if (!isEmpty(totalRecordCount) || !isEmpty(filteredRecordCount)) {\n this.#rsInternal.getView().setProp({\n resultsCount: totalRecordCount || filteredRecordCount,\n countGeneratedInternally: false,\n showCount: true\n });\n }\n\n if (isSignificantPaginationOverlap(this.#latestActions, this.#previousExecutedActionQueue)) {\n this.#skipExternalDispatch = true;\n } else {\n this.#rsInternal.getView().setProp({\n data,\n isCountUpdateRequired:\n isFilterCriteriaChanged(this.#rsInternal.getRsStore().meta, this.#state, latestState) ||\n latestState.refresh !== this.#state.refresh\n });\n }\n }\n\n this.#rsInternal.getPubSubUtils().publish(AFTER_FETCH);\n this.#rsInternal.getView().setProp({ state: latestState, isInstantRender: false });\n };\n}\n\n/** Initializes handler for {@link ApiContext.fetchData fetchData} api. */\nexport function initializeFetchDataHandler(rsCoreInternal: RsInternal) {\n let response = {} as FetchDataResponse;\n const fetchWrapper = withMemoization(async ([state, fetchDataOptions]: [State, ApiOptions]) => {\n try {\n response = await rsCoreInternal\n .getRsProps()\n .apiContext.fetchData(state, rsCoreInternal.getRsStore().meta, fetchDataOptions);\n } catch (err: any) {\n if (!['AbortError', 'CanceledError'].includes(err.name)) {\n console.error('API call failed', err);\n }\n }\n });\n\n return async (state: State, fetchDataOptions: ApiOptions) => {\n /**\n * Returning default data from getView() in case the actual apiContext.getData() doesn't get called.\n *\n * BUG-811621: in case of bulk actions and inline edit, the updated rows come from separate apiContext APIs\n * and the memo of below function won't break, so, it will give stale data. Using getView().data as the default fallback for such cases.\n */\n response.data = rsCoreInternal.getView().data!;\n await fetchWrapper(\n [state, fetchDataOptions],\n [\n state.filterExpression,\n state.search,\n state.paginationOptions,\n state.sortingOrder,\n state.refresh,\n state.groups,\n state.hierarchicalGroup,\n state.groupFilters,\n state.visibleColumns\n ]\n );\n return response;\n };\n}\n"]}
@@ -156,7 +156,7 @@ export declare function actionVisibleColumnUpdate(payload: string[]): {
156
156
  payload: string[];
157
157
  };
158
158
  /**
159
- * Returns a dispatch function that dispatches {@link query} value with all the text type fields.
159
+ * Returns a dispatch function that dispatches {@link query} value with all the text and URL type fields.
160
160
  * @param query search string
161
161
  */
162
162
  export declare function actionSearchGlobal(query: string): SearchGlobalActionAsFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/actions.ts"],"names":[],"mappings":"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"}
@@ -215,11 +215,11 @@ export function actionVisibleColumnUpdate(payload) {
215
215
  };
216
216
  }
217
217
  /**
218
- * Returns a dispatch function that dispatches {@link query} value with all the text type fields.
218
+ * Returns a dispatch function that dispatches {@link query} value with all the text and URL type fields.
219
219
  * @param query search string
220
220
  */
221
221
  export function actionSearchGlobal(query) {
222
- return (dispatch, getState, meta) => {
222
+ return (dispatch, getState, meta, getRsStore) => {
223
223
  const state = getState();
224
224
  const { customFields } = state;
225
225
  let { visibleColumns } = state;
@@ -229,7 +229,16 @@ export function actionSearchGlobal(query) {
229
229
  visibleColumns = [...new Set([...(visibleColumns ?? []), ...timelineCustomColumns])].filter((column) => Boolean(column));
230
230
  }
231
231
  const visibleFields = getVisibileFields(meta.fieldDefs, visibleColumns, customFields);
232
- const fields = visibleFields.filter(({ searchable }) => searchable).map(({ name }) => name); // Searchable fields
232
+ const fields = visibleFields.flatMap(field => {
233
+ if (!field.searchable) {
234
+ return [];
235
+ }
236
+ const referencedField = field.searchProperty
237
+ ? getRsStore().getFieldDefById(field.searchProperty.field)
238
+ : undefined;
239
+ const searchField = referencedField ?? field;
240
+ return searchField.searchable ? [searchField.name] : [];
241
+ });
233
242
  dispatch({
234
243
  type: ActionTypes.SEARCH,
235
244
  payload: { query, fields }
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/core/actions/actions.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:words Sanitizable\n\nimport {\n REPEATING_STRUCTURE_TEMPLATES,\n type ConditionalStyleFormat,\n type FieldDef,\n type GalleryLayout,\n type HierarchicalInfo,\n type ROW_DENSITY\n} from '../../../types/Meta.types';\nimport type { Errors, Group, Notification, State } from '../../../types/State.types';\nimport { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport {\n autoSizeOfColumn,\n autoSizeOfColumns\n} from '../features/uIFeatures/afterRender/columnSizing/autoSize';\nimport type Column from '../generators/ColumnGenerator';\nimport type View from '../generators/ViewGenerator';\nimport { getVisibileFields } from '../utils/util';\nimport type { WarningDetail } from '../generators/ViewGenerator.types';\n\nimport ActionTypes from './actionConstants';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ChangeLabelActionPayload,\n ColumnDragDropAction,\n ColumnFilteringActionPayload,\n ColumnResizePayload,\n ColumnSortPayload,\n DeleteCustomColumnPayload,\n ExpandCollapsePayload,\n MergeColumnsPayload,\n MoveRecordKeysUpdatePayload,\n PaginateAction,\n PaginationPayload,\n RemoveRenderFormatterPayload,\n RowSelectionItemsUpdatePayload,\n RowSelectionUpdatePayload,\n SanitizableProperties,\n SearchGlobalActionAsFunction,\n UpdateAggregationPayload,\n UpdateRenderFormatterPayload,\n UpdateRowSelectionStatusPayload\n} from './actions.types';\n\nexport function actionNotificationAdd(notifications: Notification | Notification[]) {\n const msgs = Array.isArray(notifications) ? notifications : [notifications];\n\n msgs.forEach(msg => {\n msg.id = crypto.randomUUID();\n });\n\n return {\n type: ActionTypes.NOTIFICATION_ADD,\n payload: {\n msgs\n }\n };\n}\n\nexport function actionNotificationRemove(ids: string | string[]) {\n return {\n type: ActionTypes.NOTIFICATION_REMOVE,\n payload: {\n ids\n }\n };\n}\n\nexport function actionGroupingExpandCollapseAll(payload: boolean) {\n return {\n type: ActionTypes.TOGGLE_EXPAND_COLLAPSE_ALL,\n payload\n };\n}\n\nexport function actionColumnFiltering(payload: ColumnFilteringActionPayload) {\n return {\n type: ActionTypes.COLUMN_FILTERING,\n payload\n };\n}\n\nexport function actionClearFiltering(colId: string) {\n return {\n type: ActionTypes.COLUMN_CLEAR_FILTERING,\n payload: {\n colId\n }\n };\n}\n\nexport function actionColumnSort(payload: ColumnSortPayload) {\n return {\n type: ActionTypes.COLUMN_SORT,\n payload\n };\n}\n\nexport function setWarningMessages(payload: WarningDetail[]) {\n return {\n type: ActionTypes.SET_WARNING_MESSAGES,\n payload\n };\n}\n\nexport function actionUpdateSort(payload: NonNullable<State['sortingOrder']>) {\n return {\n type: ActionTypes.UPDATE_SORT,\n payload\n };\n}\n\nexport function actionPaginate(\n payload: PaginationPayload,\n actionMeta: ActionMeta = {}\n): PaginateAction {\n return {\n takeLatestAction: actionMeta.takeLatestAction,\n type: ActionTypes.PAGINATE,\n payload\n };\n}\n\nexport function actionChangeTemplate(\n payload: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES]\n) {\n return {\n type: ActionTypes.CHANGE_TEMPLATE,\n payload\n };\n}\n\nexport function actionRowHeightChange(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n return {\n type: ActionTypes.ROW_HEIGHT_CHANGE,\n payload\n };\n}\n\nexport function actionGalleryLayoutChange(payload: GalleryLayout) {\n return {\n type: ActionTypes.GALLERY_LAYOUT_CHANGE,\n payload\n };\n}\n\nexport function actionColumnResize(columnResizeObj: ColumnResizePayload['data']) {\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: { data: columnResizeObj }\n };\n}\n\nexport function actionColumnAutoSize(\n column: Column,\n domContainer: NonNullable<View['domContainer']>,\n forceAutoSize = false\n) {\n const columnResizeObj = {\n [column.field.id]: autoSizeOfColumn(column, domContainer, forceAutoSize)\n };\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: { data: columnResizeObj }\n };\n}\n\nexport function actionColumnsAutoSize(\n columns: Column[],\n domContainer: NonNullable<View['domContainer']>,\n reset = true\n) {\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: {\n data: autoSizeOfColumns(columns, domContainer, reset) as ColumnResizePayload['data']\n }\n };\n}\n\nexport function actionColumnToggle(toggledColumns: string[]) {\n return {\n type: ActionTypes.COLUMN_TOGGLE,\n payload: toggledColumns\n };\n}\n\nexport function actionHiddenColumnUpdate(\n hiddenColumns: string[],\n ootbColumns?: { dragHandle?: boolean }\n) {\n return {\n type: ActionTypes.HIDDEN_COLUMN_UPDATE,\n payload: { hiddenColumns, ootbColumns }\n };\n}\n\nexport function actionColumnPin(pinnedColumns: string[]) {\n return {\n type: ActionTypes.TOGGLE_PIN,\n payload: pinnedColumns\n };\n}\n\nexport function actionColumnPinAtIndex(pinnedColumn: string, index: number) {\n return {\n type: ActionTypes.TOGGLE_PIN_AT_INDEX,\n payload: { pinnedColumn, index }\n };\n}\n\nexport function actionColumnDragDrop(\n sourceColId: string,\n targetColId: string\n): ColumnDragDropAction {\n return {\n type: ActionTypes.COLUMN_DRAG_DROP,\n payload: {\n sourceColId: `${sourceColId}`,\n targetColId: `${targetColId}`\n }\n };\n}\n\nexport function actionToggleGrouping(payload: FieldDef) {\n return {\n type: ActionTypes.TOGGLE_GROUPING,\n payload\n };\n}\n\nexport function actionToggleExpandCollpase(payload: ExpandCollapsePayload) {\n return {\n type: ActionTypes.TOGGLE_EXPAND_COLLAPSE,\n payload\n };\n}\n\nexport function actionUpdateGroupingSort() {\n return {\n type: ActionTypes.UPDATE_GROUPING_SORT\n };\n}\n\nexport function actionAddGroups(payload: Group[]) {\n return {\n type: ActionTypes.ADD_GROUPS,\n payload\n };\n}\n\nexport function actionSetGroupSnapshot(payload: Group[] | undefined) {\n return {\n type: ActionTypes.SET_GROUP_SNAPSHOT,\n payload\n };\n}\n\nexport function actionMoveRecordKeysUpdate(payload: MoveRecordKeysUpdatePayload) {\n return {\n type: ActionTypes.MOVE_RECORD_KEYS,\n payload\n };\n}\n\nexport function actionRowSelectionUpdate(payload: RowSelectionUpdatePayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION,\n payload\n };\n}\n\nexport function actionRowSelectionItemsUpdate(payload: RowSelectionItemsUpdatePayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION_ITEMS,\n payload\n };\n}\n\nexport function actionUpdateRowSelectionStatus(payload: UpdateRowSelectionStatusPayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION_STATUS,\n payload\n };\n}\n\nexport function actionClearRowSelectionStatus(payload: { keys: string[] }) {\n return {\n type: ActionTypes.CLEAR_ROW_SELECTION,\n payload\n };\n}\n\nexport function addColumnIntoVisibility(columnIds: string | string[]) {\n return {\n type: ActionTypes.ADD_COLUMN_VISIBILITY,\n payload: columnIds\n };\n}\n\nexport function actionVisibleColumnUpdate(payload: string[]) {\n return {\n type: ActionTypes.VISIBLE_COLUMN_UPDATE,\n payload\n };\n}\n\n/**\n * Returns a dispatch function that dispatches {@link query} value with all the text type fields.\n * @param query search string\n */\nexport function actionSearchGlobal(query: string): SearchGlobalActionAsFunction {\n return (dispatch, getState, meta) => {\n const state = getState();\n const { customFields } = state;\n let { visibleColumns } = state;\n if (meta.template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE && meta.timelineFields) {\n const { title, date, status } = meta.timelineFields;\n const timelineCustomColumns = [title?.label, date?.label, status?.label];\n visibleColumns = [...new Set([...(visibleColumns ?? []), ...timelineCustomColumns])].filter(\n (column): column is string => Boolean(column)\n );\n }\n const visibleFields = getVisibileFields(meta.fieldDefs, visibleColumns, customFields);\n const fields = visibleFields.filter(({ searchable }) => searchable).map(({ name }) => name); // Searchable fields\n dispatch({\n type: ActionTypes.SEARCH,\n payload: { query, fields }\n });\n };\n}\n\nexport function actionMergeColumns(payload: MergeColumnsPayload) {\n return {\n type: ActionTypes.COLUMN_MERGE,\n payload\n };\n}\n\nexport function actionGetPersonalizations(\n payload: NonNullable<State['personalization']> & { personalizationKey?: string }\n) {\n return {\n skipActionQueue: true,\n type: ActionTypes.PERSONALIZATION_GET,\n payload\n };\n}\n\nexport function actionDeleteCustomColumn(payload: DeleteCustomColumnPayload) {\n return {\n type: ActionTypes.CUSTOM_COLUMN_DELETE,\n payload\n };\n}\n\nexport function actionHydrateState(payload: State) {\n return {\n skipActionQueue: false,\n type: ActionTypes.HYDRATE_STATE,\n payload\n };\n}\n\n// cspell:disable-next-line\nexport function actionSanitizeState(payload: SanitizableProperties) {\n return {\n skipActionQueue: true,\n type: ActionTypes.SANITIZE_STATE,\n payload\n };\n}\n\n/**\n * Returns the {@link ActionTypes.UPDATE_COLUMN_ORDER UPDATE_COLUMN_ORDER} action.\n * @param payload A field name tuple of the column.\n */\nexport function actionUpdateColumnOrder(payload: [string]) {\n return {\n type: ActionTypes.UPDATE_COLUMN_ORDER,\n payload\n };\n}\n\nexport function actionNewColumnOrder(payload: string[]) {\n return {\n type: ActionTypes.NEW_COLUMN_ORDER,\n payload\n };\n}\n\nexport function actionUpdateTableHeight(payload: View['bodyHeight']) {\n return {\n type: ActionTypes.UPDATE_TABLE_HEIGHT,\n payload\n };\n}\n\n/**\n * Returns personalization update action.\n * @param personalizationKey - The current personalization key\n * @param markAsDefault - Indicates whether the current personalization should be marked as default.\n * @param markAsAppDefault - Indicates whether the current personalization should be marked as app default.\n */\nexport function actionPersonalizationUpdate(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE,\n payload: {\n personalizationKey,\n markAsDefault,\n markAsAppDefault\n }\n };\n}\n\nexport function actionPersonalizationUpdateId(\n oldPersonalizationId: string,\n newPersonalizationId: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE_ID,\n payload: {\n oldPersonalizationId,\n newPersonalizationId\n }\n };\n}\n\nexport function actionPersonalizationUpdatePresetId(\n personalizationKey: string,\n oldPresetId: string,\n newPresetId: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID,\n payload: {\n oldPresetId,\n newPresetId,\n personalizationKey\n }\n };\n}\n\n/**\n * Returns an action that deletes the personalization\n * @param personalizationKey id of the personalization that needs to be deleted.\n * @param deletePresetPersonalizations If set to false indicates notification to be shown after deletion of personalization.\n */\nexport function actionPersonalizationDelete(\n personalizationKey: string,\n deletePresetPersonalizations?: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_DELETE,\n payload: {\n personalizationKey,\n deletePresetPersonalizations\n }\n };\n}\n\nexport function actionPersonalizationSetActive({\n id,\n isPreset\n}: {\n id: string;\n isPreset: boolean;\n}) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_ACTIVE,\n payload: {\n personalizationKey: id,\n isPreset\n }\n };\n}\n\n// TODO: remove template, presetId after Infinity'23 release branch is cut\nexport function actionPersonalizationCreate(\n personalizationName: string,\n markAsDefault: boolean,\n template?: string,\n presetId?: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_CREATE,\n payload: {\n personalizationKey: crypto.randomUUID(),\n personalizationName,\n markAsDefault,\n template,\n presetId\n }\n };\n}\n\nexport function actionPersonalizationEdit(\n personalizationKey: string,\n personalizationName: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_EDIT,\n payload: {\n personalizationKey,\n personalizationName,\n markAsDefault,\n markAsAppDefault\n }\n };\n}\n\nexport function actionPersonalizationSetDefault(personalizationKey: string) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_DEFAULT,\n payload: {\n personalizationKey\n }\n };\n}\n\nexport function actionPersonalizationSetAppDefault(\n personalizationKey: string,\n personalizationName: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_APP_DEFAULT,\n payload: {\n personalizationKey,\n personalizationName\n }\n };\n}\n\nexport function actionBootstrap() {\n return {\n type: ActionTypes.BOOTSTRAP\n };\n}\n\nexport function actionUpdateStateVersion() {\n return {\n type: ActionTypes.UPDATE_STATE_VERSION\n };\n}\n\nexport function actionUpdateAggregation(payload: UpdateAggregationPayload) {\n return {\n type: ActionTypes.UPDATE_AGGREGATION,\n payload\n };\n}\n\nexport function actionUpdateAggregations(payload: NonNullable<State['aggregationInfo']>) {\n return {\n type: ActionTypes.UPDATE_AGGREGATIONS,\n payload\n };\n}\n\nexport function actionUpdateRenderFormatter(payload: UpdateRenderFormatterPayload) {\n return {\n type: ActionTypes.CHANGE_RENDERER_FORMATTER,\n payload\n };\n}\n\nexport function actionRemoveRenderFormatter(payload: RemoveRenderFormatterPayload) {\n return {\n type: ActionTypes.REMOVE_RENDERER_FORMATTER,\n payload\n };\n}\n\nexport function actionUpdateDisplayMode(payload: HierarchicalInfo) {\n return {\n type: ActionTypes.COLUMN_DISPLAY_CHANGE,\n payload\n };\n}\n\nexport function actionChangeLabel(payload: ChangeLabelActionPayload) {\n return {\n type: ActionTypes.CHANGE_LABEL,\n payload\n };\n}\n\nexport function actionReplaceLabels(payload: ApplyAliasesActionPayload) {\n return {\n type: ActionTypes.REPLACE_LABELS,\n payload\n };\n}\n\nexport function actionShowHeaderIcons(showHeaderIcons: boolean) {\n return {\n type: ActionTypes.SHOW_HEADER_ICONS,\n payload: showHeaderIcons\n };\n}\n\n/**\n *\n * @param instantRender skip the action queue and update the state immediately\n * @param forceUpdateFeatures if instantRender is false, push feature identifying name in state.forceUpdateFeatures to render in next execution\n */\nexport function actionForceUpdate(\n instantRender = true,\n forceUpdateFeatures: State['forceUpdateFeatures'] = {}\n) {\n return {\n instantRender,\n type: ActionTypes.FORCE_UPDATE,\n payload: {\n forceUpdateFeatures\n }\n };\n}\n\nexport function actionForceRefresh(\n flushState: { [key: string]: boolean } = {},\n featuresToAvoid: string[] = []\n) {\n let stateToReset = {};\n if (Object.keys(flushState).length > 0) {\n stateToReset = SUPPORTED_FLUSH_KEYS.reduce((acc: { [k: string]: undefined }, k: string) => {\n if (flushState[k] === true) {\n acc[k] = undefined;\n }\n return acc;\n }, {});\n }\n\n const featuresToNotRun: string[] = [];\n featuresToAvoid.forEach(item => {\n if (SUPPORTED_AVOIDABLE_FEATURES.includes(item)) {\n featuresToNotRun.push(item);\n }\n });\n\n const payload = {\n stateToReset,\n featuresToAvoid: featuresToNotRun\n };\n\n return {\n type: ActionTypes.FORCE_REFRESH,\n payload\n };\n}\n\nexport function showConfirmationAction() {\n return {\n type: ActionTypes.USER_CONFIRMATION_ACTION,\n instantRender: true\n };\n}\n\nexport function completeConfirmationAction() {\n return {\n type: ActionTypes.COMPLETE_USER_CONFIRMATION_ACTION,\n instantRender: true\n };\n}\n\nexport function setDataErrors(payload: Errors['dataErrors']) {\n return {\n type: ActionTypes.SET_DATA_ERROR,\n payload\n };\n}\n\nexport function setDomContainerResponsiveBreakpoints(payload: {\n breakpoint: string;\n value: boolean;\n}) {\n return {\n type: ActionTypes.SET_DOM_CONTAINER_BREAKPOINTS,\n payload\n };\n}\n\n// External state should set instantly without executing action queue.\nexport function setExternalState(payload: NonNullable<State['externalState']>) {\n return {\n type: ActionTypes.SET_IN_EXTERNAL_STATE,\n payload\n };\n}\n\nexport function updateColumnsVisibility(payload: { [key: FieldDef['id']]: boolean }) {\n return {\n type: ActionTypes.UPDATE_COLUMNS_VISIBILITY,\n payload\n };\n}\n\nexport function setConditionalStyleFormats(payload: ConditionalStyleFormat[]) {\n return {\n type: ActionTypes.SET_CONDITIONAL_STYLE_FORMATS,\n payload\n };\n}\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/core/actions/actions.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:words Sanitizable\n\nimport {\n REPEATING_STRUCTURE_TEMPLATES,\n type ConditionalStyleFormat,\n type FieldDef,\n type GalleryLayout,\n type HierarchicalInfo,\n type ROW_DENSITY\n} from '../../../types/Meta.types';\nimport type { Errors, Group, Notification, State } from '../../../types/State.types';\nimport { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport {\n autoSizeOfColumn,\n autoSizeOfColumns\n} from '../features/uIFeatures/afterRender/columnSizing/autoSize';\nimport type Column from '../generators/ColumnGenerator';\nimport type View from '../generators/ViewGenerator';\nimport { getVisibileFields } from '../utils/util';\nimport type { WarningDetail } from '../generators/ViewGenerator.types';\n\nimport ActionTypes from './actionConstants';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ChangeLabelActionPayload,\n ColumnDragDropAction,\n ColumnFilteringActionPayload,\n ColumnResizePayload,\n ColumnSortPayload,\n DeleteCustomColumnPayload,\n ExpandCollapsePayload,\n MergeColumnsPayload,\n MoveRecordKeysUpdatePayload,\n PaginateAction,\n PaginationPayload,\n RemoveRenderFormatterPayload,\n RowSelectionItemsUpdatePayload,\n RowSelectionUpdatePayload,\n SanitizableProperties,\n SearchGlobalActionAsFunction,\n UpdateAggregationPayload,\n UpdateRenderFormatterPayload,\n UpdateRowSelectionStatusPayload\n} from './actions.types';\n\nexport function actionNotificationAdd(notifications: Notification | Notification[]) {\n const msgs = Array.isArray(notifications) ? notifications : [notifications];\n\n msgs.forEach(msg => {\n msg.id = crypto.randomUUID();\n });\n\n return {\n type: ActionTypes.NOTIFICATION_ADD,\n payload: {\n msgs\n }\n };\n}\n\nexport function actionNotificationRemove(ids: string | string[]) {\n return {\n type: ActionTypes.NOTIFICATION_REMOVE,\n payload: {\n ids\n }\n };\n}\n\nexport function actionGroupingExpandCollapseAll(payload: boolean) {\n return {\n type: ActionTypes.TOGGLE_EXPAND_COLLAPSE_ALL,\n payload\n };\n}\n\nexport function actionColumnFiltering(payload: ColumnFilteringActionPayload) {\n return {\n type: ActionTypes.COLUMN_FILTERING,\n payload\n };\n}\n\nexport function actionClearFiltering(colId: string) {\n return {\n type: ActionTypes.COLUMN_CLEAR_FILTERING,\n payload: {\n colId\n }\n };\n}\n\nexport function actionColumnSort(payload: ColumnSortPayload) {\n return {\n type: ActionTypes.COLUMN_SORT,\n payload\n };\n}\n\nexport function setWarningMessages(payload: WarningDetail[]) {\n return {\n type: ActionTypes.SET_WARNING_MESSAGES,\n payload\n };\n}\n\nexport function actionUpdateSort(payload: NonNullable<State['sortingOrder']>) {\n return {\n type: ActionTypes.UPDATE_SORT,\n payload\n };\n}\n\nexport function actionPaginate(\n payload: PaginationPayload,\n actionMeta: ActionMeta = {}\n): PaginateAction {\n return {\n takeLatestAction: actionMeta.takeLatestAction,\n type: ActionTypes.PAGINATE,\n payload\n };\n}\n\nexport function actionChangeTemplate(\n payload: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES]\n) {\n return {\n type: ActionTypes.CHANGE_TEMPLATE,\n payload\n };\n}\n\nexport function actionRowHeightChange(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n return {\n type: ActionTypes.ROW_HEIGHT_CHANGE,\n payload\n };\n}\n\nexport function actionGalleryLayoutChange(payload: GalleryLayout) {\n return {\n type: ActionTypes.GALLERY_LAYOUT_CHANGE,\n payload\n };\n}\n\nexport function actionColumnResize(columnResizeObj: ColumnResizePayload['data']) {\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: { data: columnResizeObj }\n };\n}\n\nexport function actionColumnAutoSize(\n column: Column,\n domContainer: NonNullable<View['domContainer']>,\n forceAutoSize = false\n) {\n const columnResizeObj = {\n [column.field.id]: autoSizeOfColumn(column, domContainer, forceAutoSize)\n };\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: { data: columnResizeObj }\n };\n}\n\nexport function actionColumnsAutoSize(\n columns: Column[],\n domContainer: NonNullable<View['domContainer']>,\n reset = true\n) {\n return {\n type: ActionTypes.COLUMN_RESIZE,\n payload: {\n data: autoSizeOfColumns(columns, domContainer, reset) as ColumnResizePayload['data']\n }\n };\n}\n\nexport function actionColumnToggle(toggledColumns: string[]) {\n return {\n type: ActionTypes.COLUMN_TOGGLE,\n payload: toggledColumns\n };\n}\n\nexport function actionHiddenColumnUpdate(\n hiddenColumns: string[],\n ootbColumns?: { dragHandle?: boolean }\n) {\n return {\n type: ActionTypes.HIDDEN_COLUMN_UPDATE,\n payload: { hiddenColumns, ootbColumns }\n };\n}\n\nexport function actionColumnPin(pinnedColumns: string[]) {\n return {\n type: ActionTypes.TOGGLE_PIN,\n payload: pinnedColumns\n };\n}\n\nexport function actionColumnPinAtIndex(pinnedColumn: string, index: number) {\n return {\n type: ActionTypes.TOGGLE_PIN_AT_INDEX,\n payload: { pinnedColumn, index }\n };\n}\n\nexport function actionColumnDragDrop(\n sourceColId: string,\n targetColId: string\n): ColumnDragDropAction {\n return {\n type: ActionTypes.COLUMN_DRAG_DROP,\n payload: {\n sourceColId: `${sourceColId}`,\n targetColId: `${targetColId}`\n }\n };\n}\n\nexport function actionToggleGrouping(payload: FieldDef) {\n return {\n type: ActionTypes.TOGGLE_GROUPING,\n payload\n };\n}\n\nexport function actionToggleExpandCollpase(payload: ExpandCollapsePayload) {\n return {\n type: ActionTypes.TOGGLE_EXPAND_COLLAPSE,\n payload\n };\n}\n\nexport function actionUpdateGroupingSort() {\n return {\n type: ActionTypes.UPDATE_GROUPING_SORT\n };\n}\n\nexport function actionAddGroups(payload: Group[]) {\n return {\n type: ActionTypes.ADD_GROUPS,\n payload\n };\n}\n\nexport function actionSetGroupSnapshot(payload: Group[] | undefined) {\n return {\n type: ActionTypes.SET_GROUP_SNAPSHOT,\n payload\n };\n}\n\nexport function actionMoveRecordKeysUpdate(payload: MoveRecordKeysUpdatePayload) {\n return {\n type: ActionTypes.MOVE_RECORD_KEYS,\n payload\n };\n}\n\nexport function actionRowSelectionUpdate(payload: RowSelectionUpdatePayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION,\n payload\n };\n}\n\nexport function actionRowSelectionItemsUpdate(payload: RowSelectionItemsUpdatePayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION_ITEMS,\n payload\n };\n}\n\nexport function actionUpdateRowSelectionStatus(payload: UpdateRowSelectionStatusPayload) {\n return {\n type: ActionTypes.UPDATE_ROW_SELECTION_STATUS,\n payload\n };\n}\n\nexport function actionClearRowSelectionStatus(payload: { keys: string[] }) {\n return {\n type: ActionTypes.CLEAR_ROW_SELECTION,\n payload\n };\n}\n\nexport function addColumnIntoVisibility(columnIds: string | string[]) {\n return {\n type: ActionTypes.ADD_COLUMN_VISIBILITY,\n payload: columnIds\n };\n}\n\nexport function actionVisibleColumnUpdate(payload: string[]) {\n return {\n type: ActionTypes.VISIBLE_COLUMN_UPDATE,\n payload\n };\n}\n\n/**\n * Returns a dispatch function that dispatches {@link query} value with all the text and URL type fields.\n * @param query search string\n */\nexport function actionSearchGlobal(query: string): SearchGlobalActionAsFunction {\n return (dispatch, getState, meta, getRsStore) => {\n const state = getState();\n const { customFields } = state;\n let { visibleColumns } = state;\n if (meta.template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE && meta.timelineFields) {\n const { title, date, status } = meta.timelineFields;\n const timelineCustomColumns = [title?.label, date?.label, status?.label];\n visibleColumns = [...new Set([...(visibleColumns ?? []), ...timelineCustomColumns])].filter(\n (column): column is string => Boolean(column)\n );\n }\n const visibleFields = getVisibileFields(meta.fieldDefs, visibleColumns, customFields);\n const fields = visibleFields.flatMap(field => {\n if (!field.searchable) {\n return [];\n }\n\n const referencedField = field.searchProperty\n ? getRsStore().getFieldDefById(field.searchProperty.field)\n : undefined;\n const searchField = referencedField ?? field;\n return searchField.searchable ? [searchField.name] : [];\n });\n dispatch({\n type: ActionTypes.SEARCH,\n payload: { query, fields }\n });\n };\n}\n\nexport function actionMergeColumns(payload: MergeColumnsPayload) {\n return {\n type: ActionTypes.COLUMN_MERGE,\n payload\n };\n}\n\nexport function actionGetPersonalizations(\n payload: NonNullable<State['personalization']> & { personalizationKey?: string }\n) {\n return {\n skipActionQueue: true,\n type: ActionTypes.PERSONALIZATION_GET,\n payload\n };\n}\n\nexport function actionDeleteCustomColumn(payload: DeleteCustomColumnPayload) {\n return {\n type: ActionTypes.CUSTOM_COLUMN_DELETE,\n payload\n };\n}\n\nexport function actionHydrateState(payload: State) {\n return {\n skipActionQueue: false,\n type: ActionTypes.HYDRATE_STATE,\n payload\n };\n}\n\n// cspell:disable-next-line\nexport function actionSanitizeState(payload: SanitizableProperties) {\n return {\n skipActionQueue: true,\n type: ActionTypes.SANITIZE_STATE,\n payload\n };\n}\n\n/**\n * Returns the {@link ActionTypes.UPDATE_COLUMN_ORDER UPDATE_COLUMN_ORDER} action.\n * @param payload A field name tuple of the column.\n */\nexport function actionUpdateColumnOrder(payload: [string]) {\n return {\n type: ActionTypes.UPDATE_COLUMN_ORDER,\n payload\n };\n}\n\nexport function actionNewColumnOrder(payload: string[]) {\n return {\n type: ActionTypes.NEW_COLUMN_ORDER,\n payload\n };\n}\n\nexport function actionUpdateTableHeight(payload: View['bodyHeight']) {\n return {\n type: ActionTypes.UPDATE_TABLE_HEIGHT,\n payload\n };\n}\n\n/**\n * Returns personalization update action.\n * @param personalizationKey - The current personalization key\n * @param markAsDefault - Indicates whether the current personalization should be marked as default.\n * @param markAsAppDefault - Indicates whether the current personalization should be marked as app default.\n */\nexport function actionPersonalizationUpdate(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE,\n payload: {\n personalizationKey,\n markAsDefault,\n markAsAppDefault\n }\n };\n}\n\nexport function actionPersonalizationUpdateId(\n oldPersonalizationId: string,\n newPersonalizationId: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE_ID,\n payload: {\n oldPersonalizationId,\n newPersonalizationId\n }\n };\n}\n\nexport function actionPersonalizationUpdatePresetId(\n personalizationKey: string,\n oldPresetId: string,\n newPresetId: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID,\n payload: {\n oldPresetId,\n newPresetId,\n personalizationKey\n }\n };\n}\n\n/**\n * Returns an action that deletes the personalization\n * @param personalizationKey id of the personalization that needs to be deleted.\n * @param deletePresetPersonalizations If set to false indicates notification to be shown after deletion of personalization.\n */\nexport function actionPersonalizationDelete(\n personalizationKey: string,\n deletePresetPersonalizations?: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_DELETE,\n payload: {\n personalizationKey,\n deletePresetPersonalizations\n }\n };\n}\n\nexport function actionPersonalizationSetActive({\n id,\n isPreset\n}: {\n id: string;\n isPreset: boolean;\n}) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_ACTIVE,\n payload: {\n personalizationKey: id,\n isPreset\n }\n };\n}\n\n// TODO: remove template, presetId after Infinity'23 release branch is cut\nexport function actionPersonalizationCreate(\n personalizationName: string,\n markAsDefault: boolean,\n template?: string,\n presetId?: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_CREATE,\n payload: {\n personalizationKey: crypto.randomUUID(),\n personalizationName,\n markAsDefault,\n template,\n presetId\n }\n };\n}\n\nexport function actionPersonalizationEdit(\n personalizationKey: string,\n personalizationName: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n) {\n return {\n type: ActionTypes.PERSONALIZATION_EDIT,\n payload: {\n personalizationKey,\n personalizationName,\n markAsDefault,\n markAsAppDefault\n }\n };\n}\n\nexport function actionPersonalizationSetDefault(personalizationKey: string) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_DEFAULT,\n payload: {\n personalizationKey\n }\n };\n}\n\nexport function actionPersonalizationSetAppDefault(\n personalizationKey: string,\n personalizationName: string\n) {\n return {\n type: ActionTypes.PERSONALIZATION_SET_APP_DEFAULT,\n payload: {\n personalizationKey,\n personalizationName\n }\n };\n}\n\nexport function actionBootstrap() {\n return {\n type: ActionTypes.BOOTSTRAP\n };\n}\n\nexport function actionUpdateStateVersion() {\n return {\n type: ActionTypes.UPDATE_STATE_VERSION\n };\n}\n\nexport function actionUpdateAggregation(payload: UpdateAggregationPayload) {\n return {\n type: ActionTypes.UPDATE_AGGREGATION,\n payload\n };\n}\n\nexport function actionUpdateAggregations(payload: NonNullable<State['aggregationInfo']>) {\n return {\n type: ActionTypes.UPDATE_AGGREGATIONS,\n payload\n };\n}\n\nexport function actionUpdateRenderFormatter(payload: UpdateRenderFormatterPayload) {\n return {\n type: ActionTypes.CHANGE_RENDERER_FORMATTER,\n payload\n };\n}\n\nexport function actionRemoveRenderFormatter(payload: RemoveRenderFormatterPayload) {\n return {\n type: ActionTypes.REMOVE_RENDERER_FORMATTER,\n payload\n };\n}\n\nexport function actionUpdateDisplayMode(payload: HierarchicalInfo) {\n return {\n type: ActionTypes.COLUMN_DISPLAY_CHANGE,\n payload\n };\n}\n\nexport function actionChangeLabel(payload: ChangeLabelActionPayload) {\n return {\n type: ActionTypes.CHANGE_LABEL,\n payload\n };\n}\n\nexport function actionReplaceLabels(payload: ApplyAliasesActionPayload) {\n return {\n type: ActionTypes.REPLACE_LABELS,\n payload\n };\n}\n\nexport function actionShowHeaderIcons(showHeaderIcons: boolean) {\n return {\n type: ActionTypes.SHOW_HEADER_ICONS,\n payload: showHeaderIcons\n };\n}\n\n/**\n *\n * @param instantRender skip the action queue and update the state immediately\n * @param forceUpdateFeatures if instantRender is false, push feature identifying name in state.forceUpdateFeatures to render in next execution\n */\nexport function actionForceUpdate(\n instantRender = true,\n forceUpdateFeatures: State['forceUpdateFeatures'] = {}\n) {\n return {\n instantRender,\n type: ActionTypes.FORCE_UPDATE,\n payload: {\n forceUpdateFeatures\n }\n };\n}\n\nexport function actionForceRefresh(\n flushState: { [key: string]: boolean } = {},\n featuresToAvoid: string[] = []\n) {\n let stateToReset = {};\n if (Object.keys(flushState).length > 0) {\n stateToReset = SUPPORTED_FLUSH_KEYS.reduce((acc: { [k: string]: undefined }, k: string) => {\n if (flushState[k] === true) {\n acc[k] = undefined;\n }\n return acc;\n }, {});\n }\n\n const featuresToNotRun: string[] = [];\n featuresToAvoid.forEach(item => {\n if (SUPPORTED_AVOIDABLE_FEATURES.includes(item)) {\n featuresToNotRun.push(item);\n }\n });\n\n const payload = {\n stateToReset,\n featuresToAvoid: featuresToNotRun\n };\n\n return {\n type: ActionTypes.FORCE_REFRESH,\n payload\n };\n}\n\nexport function showConfirmationAction() {\n return {\n type: ActionTypes.USER_CONFIRMATION_ACTION,\n instantRender: true\n };\n}\n\nexport function completeConfirmationAction() {\n return {\n type: ActionTypes.COMPLETE_USER_CONFIRMATION_ACTION,\n instantRender: true\n };\n}\n\nexport function setDataErrors(payload: Errors['dataErrors']) {\n return {\n type: ActionTypes.SET_DATA_ERROR,\n payload\n };\n}\n\nexport function setDomContainerResponsiveBreakpoints(payload: {\n breakpoint: string;\n value: boolean;\n}) {\n return {\n type: ActionTypes.SET_DOM_CONTAINER_BREAKPOINTS,\n payload\n };\n}\n\n// External state should set instantly without executing action queue.\nexport function setExternalState(payload: NonNullable<State['externalState']>) {\n return {\n type: ActionTypes.SET_IN_EXTERNAL_STATE,\n payload\n };\n}\n\nexport function updateColumnsVisibility(payload: { [key: FieldDef['id']]: boolean }) {\n return {\n type: ActionTypes.UPDATE_COLUMNS_VISIBILITY,\n payload\n };\n}\n\nexport function setConditionalStyleFormats(payload: ConditionalStyleFormat[]) {\n return {\n type: ActionTypes.SET_CONDITIONAL_STYLE_FORMATS,\n payload\n };\n}\n"]}
@@ -5,6 +5,7 @@ import type { FeatureProps } from '../features/featureFactory';
5
5
  import type Column from '../generators/ColumnGenerator';
6
6
  import type { RowData } from '../generators/RowGenerator.types';
7
7
  import type View from '../generators/ViewGenerator';
8
+ import type RsStore from '../RsStore';
8
9
  import ActionTypes from './actionConstants';
9
10
  import * as Actions from './actions';
10
11
  /** A Type function utility that accepts an object of methods and returns a union of return type of all the methods. Used in case of actions functions. */
@@ -80,7 +81,7 @@ export interface UpdateRowSelectionStatusPayload {
80
81
  status: typeof STATE.IN_PROGRESS;
81
82
  mode: NonNullable<Meta['selectionMode']>;
82
83
  }
83
- export type SearchGlobalActionAsFunction = (dispatch: FeatureProps['dispatch'], getState: FeatureProps['getState'], meta: Meta) => void;
84
+ export type SearchGlobalActionAsFunction = (dispatch: FeatureProps['dispatch'], getState: FeatureProps['getState'], meta: Meta, getRsStore: () => RsStore) => void;
84
85
  export interface SearchGlobalAction {
85
86
  type: typeof ActionTypes.SEARCH;
86
87
  payload: {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.types.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/actions.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.types.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/actions.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.types.js","sourceRoot":"","sources":["../../../../src/core/actions/actions.types.ts"],"names":[],"mappings":"AAQA,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AA6LrC,2EAA2E;AAC3E,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC","sourcesContent":["import type { FieldDef, Meta } from '../../../types/Meta.types';\nimport type { AggregationType, Group, Sort, State } from '../../../types/State.types';\nimport type { STATE } from '../constants';\nimport type { FeatureProps } from '../features/featureFactory';\nimport type Column from '../generators/ColumnGenerator';\nimport type { RowData } from '../generators/RowGenerator.types';\nimport type View from '../generators/ViewGenerator';\n\nimport ActionTypes from './actionConstants';\nimport * as Actions from './actions';\n\n/** A Type function utility that accepts an object of methods and returns a union of return type of all the methods. Used in case of actions functions. */\ntype GenerateActionType<T extends { [key: string]: (...args: any[]) => any }> = {\n [K in keyof T]: ReturnType<T[K]>;\n}[keyof T];\n\nexport interface ActionMeta {\n /**\n * Instantly dispatches a render by calling the external store reference's dispatch method.\n * This action bypasses the usual waiting for actions, features, or side effects to complete.\n */\n instantRender?: boolean;\n /** Indicates to skip the action queue and directly call reducer. */\n skipActionQueue?: boolean;\n /** Indicates to take latest action from the action queue if multiple actions of same type are present. */\n takeLatestAction?: boolean;\n}\n\nexport interface ColumnFilteringActionPayload {\n filterExp: NonNullable<State['filterExpression']>;\n}\n\nexport interface ApplyAliasesActionPayload {\n aliases: NonNullable<State['columnAlias']>;\n}\nexport interface ColumnSortPayload {\n id: FieldDef['id'];\n flushState: boolean;\n sortOrderId: Sort['order'];\n}\n\nexport interface PaginationPayload {\n id: string;\n startIndex: number;\n endIndex: number;\n}\n\nexport interface PaginateAction extends ActionMeta {\n payload: PaginationPayload;\n type: typeof ActionTypes.PAGINATE;\n}\n\nexport interface ColumnResizePayload {\n data: { [fieldId: string]: number };\n}\n\nexport interface ColumnDragDropAction {\n payload: {\n sourceColId: string;\n targetColId: string;\n };\n type: typeof ActionTypes.COLUMN_DRAG_DROP;\n}\n\nexport interface ExpandCollapsePayload {\n groupHeader?: NonNullable<View['groupHeaders']>[number];\n groups?: Group[];\n}\n\nexport interface MoveRecordKeysUpdatePayload {\n sourceKey?: string;\n destinationKey?: string;\n}\n\nexport interface RowSelectionUpdatePayload {\n key: string;\n selected: boolean;\n data: RowData;\n status: typeof STATE.NOT_STARTED;\n mode: Meta['selectionMode'];\n}\n\nexport interface RowSelectionItemsUpdatePayload {\n selectedRows: string[];\n mode: NonNullable<Meta['selectionMode']>;\n}\n\nexport interface UpdateRowSelectionStatusPayload {\n keys: string[];\n status: typeof STATE.IN_PROGRESS;\n mode: NonNullable<Meta['selectionMode']>;\n}\n\nexport type SearchGlobalActionAsFunction = (\n dispatch: FeatureProps['dispatch'],\n getState: FeatureProps['getState'],\n meta: Meta\n) => void;\n\nexport interface SearchGlobalAction {\n type: typeof ActionTypes.SEARCH;\n payload: { query: string; fields: string[] };\n}\n\nexport interface MergeColumnsPayload {\n sourceId: string;\n targetId: string;\n title: string;\n templateName: string;\n bHideColumns: boolean;\n uniqueID: string;\n hideColumns?: [string, string];\n}\n\nexport interface DeleteCustomColumnPayload {\n columnId: FieldDef['id'] | FieldDef['id'][];\n}\n\n// cSpell:disable-next-line\nexport type SanitizableProperties = Pick<\n State,\n | 'sortingOrder'\n | 'freezeColumns'\n | 'hiddenColumns'\n | 'columnWidths'\n | 'colOrder'\n | 'aggregationInfo'\n | 'groups'\n | 'customFields'\n | 'filterExpression'\n | 'hierarchicalGroup'\n | 'renderFormatter'\n | 'visibleColumns'\n>;\nexport interface UpdateAggregationPayload {\n columnId: FieldDef['id'];\n type: AggregationType;\n}\n\nexport interface UpdateRenderFormatterPayload {\n columnId: FieldDef['id'];\n formatter: Column['formatterConfig'];\n}\n\nexport interface RemoveRenderFormatterPayload {\n columnId: FieldDef['id'];\n}\n\nexport interface ChangeLabelActionPayload {\n columnId: FieldDef['id'];\n label: Column['label'];\n}\n\nexport interface SubmitChangeSetPayload {\n key: string;\n name: string;\n newValue: string | number | Date | boolean;\n oldValue: string | number | Date | boolean;\n status: string;\n}\n\n// Personalization Actions.\nexport type PersonalizationCreateAction = ReturnType<typeof Actions.actionPersonalizationCreate>;\nexport type PersonalizationDeleteAction = ReturnType<typeof Actions.actionPersonalizationDelete>;\nexport type PersonalizationEditAction = ReturnType<typeof Actions.actionPersonalizationEdit>;\nexport type PersonalizationSetActiveAction = ReturnType<\n typeof Actions.actionPersonalizationSetActive\n>;\nexport type PersonalizationSetAppDefaultAction = ReturnType<\n typeof Actions.actionPersonalizationSetAppDefault\n>;\nexport type PersonalizationSetDefaultAction = ReturnType<\n typeof Actions.actionPersonalizationSetDefault\n>;\nexport type PersonalizationUpdateAction = ReturnType<typeof Actions.actionPersonalizationUpdate>;\nexport type PersonalizationUpdateIdAction = ReturnType<\n typeof Actions.actionPersonalizationUpdateId\n>;\nexport type PersonalizationUpdatePresetIdAction = ReturnType<\n typeof Actions.actionPersonalizationUpdatePresetId\n>;\nexport type GetPersonalizationsAction = ReturnType<typeof Actions.actionGetPersonalizations>;\nexport type PersonalizationActions =\n | PersonalizationCreateAction\n | PersonalizationDeleteAction\n | PersonalizationEditAction\n | PersonalizationSetActiveAction\n | PersonalizationSetAppDefaultAction\n | PersonalizationSetDefaultAction\n | PersonalizationUpdateAction\n | PersonalizationUpdateIdAction\n | PersonalizationUpdatePresetIdAction\n | GetPersonalizationsAction;\n\n// TODO: Remove Action as function.The logic for Search global action function can be move to reducer.\n// Needs further refactor, but it is required to remove the Actions as function usecase in reducer.\nexport type ActionAsFunction = SearchGlobalActionAsFunction;\n\n// All Actions of type object with signature {type: TYPE: payload: PAYLOAD}\nconst { actionSearchGlobal, ...objectActions } = Actions;\nexport type Action = GenerateActionType<typeof objectActions> | SearchGlobalAction;\n\n// Generic Action that represents Actions as object and Action as function.\n// TODO Action as function should be removed, only one use case is present as of today which can be migrated to Action as object.\nexport type BaseAction = Action | ActionAsFunction;\n"]}
1
+ {"version":3,"file":"actions.types.js","sourceRoot":"","sources":["../../../../src/core/actions/actions.types.ts"],"names":[],"mappings":"AASA,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AA8LrC,2EAA2E;AAC3E,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC","sourcesContent":["import type { FieldDef, Meta } from '../../../types/Meta.types';\nimport type { AggregationType, Group, Sort, State } from '../../../types/State.types';\nimport type { STATE } from '../constants';\nimport type { FeatureProps } from '../features/featureFactory';\nimport type Column from '../generators/ColumnGenerator';\nimport type { RowData } from '../generators/RowGenerator.types';\nimport type View from '../generators/ViewGenerator';\nimport type RsStore from '../RsStore';\n\nimport ActionTypes from './actionConstants';\nimport * as Actions from './actions';\n\n/** A Type function utility that accepts an object of methods and returns a union of return type of all the methods. Used in case of actions functions. */\ntype GenerateActionType<T extends { [key: string]: (...args: any[]) => any }> = {\n [K in keyof T]: ReturnType<T[K]>;\n}[keyof T];\n\nexport interface ActionMeta {\n /**\n * Instantly dispatches a render by calling the external store reference's dispatch method.\n * This action bypasses the usual waiting for actions, features, or side effects to complete.\n */\n instantRender?: boolean;\n /** Indicates to skip the action queue and directly call reducer. */\n skipActionQueue?: boolean;\n /** Indicates to take latest action from the action queue if multiple actions of same type are present. */\n takeLatestAction?: boolean;\n}\n\nexport interface ColumnFilteringActionPayload {\n filterExp: NonNullable<State['filterExpression']>;\n}\n\nexport interface ApplyAliasesActionPayload {\n aliases: NonNullable<State['columnAlias']>;\n}\nexport interface ColumnSortPayload {\n id: FieldDef['id'];\n flushState: boolean;\n sortOrderId: Sort['order'];\n}\n\nexport interface PaginationPayload {\n id: string;\n startIndex: number;\n endIndex: number;\n}\n\nexport interface PaginateAction extends ActionMeta {\n payload: PaginationPayload;\n type: typeof ActionTypes.PAGINATE;\n}\n\nexport interface ColumnResizePayload {\n data: { [fieldId: string]: number };\n}\n\nexport interface ColumnDragDropAction {\n payload: {\n sourceColId: string;\n targetColId: string;\n };\n type: typeof ActionTypes.COLUMN_DRAG_DROP;\n}\n\nexport interface ExpandCollapsePayload {\n groupHeader?: NonNullable<View['groupHeaders']>[number];\n groups?: Group[];\n}\n\nexport interface MoveRecordKeysUpdatePayload {\n sourceKey?: string;\n destinationKey?: string;\n}\n\nexport interface RowSelectionUpdatePayload {\n key: string;\n selected: boolean;\n data: RowData;\n status: typeof STATE.NOT_STARTED;\n mode: Meta['selectionMode'];\n}\n\nexport interface RowSelectionItemsUpdatePayload {\n selectedRows: string[];\n mode: NonNullable<Meta['selectionMode']>;\n}\n\nexport interface UpdateRowSelectionStatusPayload {\n keys: string[];\n status: typeof STATE.IN_PROGRESS;\n mode: NonNullable<Meta['selectionMode']>;\n}\n\nexport type SearchGlobalActionAsFunction = (\n dispatch: FeatureProps['dispatch'],\n getState: FeatureProps['getState'],\n meta: Meta,\n getRsStore: () => RsStore\n) => void;\n\nexport interface SearchGlobalAction {\n type: typeof ActionTypes.SEARCH;\n payload: { query: string; fields: string[] };\n}\n\nexport interface MergeColumnsPayload {\n sourceId: string;\n targetId: string;\n title: string;\n templateName: string;\n bHideColumns: boolean;\n uniqueID: string;\n hideColumns?: [string, string];\n}\n\nexport interface DeleteCustomColumnPayload {\n columnId: FieldDef['id'] | FieldDef['id'][];\n}\n\n// cSpell:disable-next-line\nexport type SanitizableProperties = Pick<\n State,\n | 'sortingOrder'\n | 'freezeColumns'\n | 'hiddenColumns'\n | 'columnWidths'\n | 'colOrder'\n | 'aggregationInfo'\n | 'groups'\n | 'customFields'\n | 'filterExpression'\n | 'hierarchicalGroup'\n | 'renderFormatter'\n | 'visibleColumns'\n>;\nexport interface UpdateAggregationPayload {\n columnId: FieldDef['id'];\n type: AggregationType;\n}\n\nexport interface UpdateRenderFormatterPayload {\n columnId: FieldDef['id'];\n formatter: Column['formatterConfig'];\n}\n\nexport interface RemoveRenderFormatterPayload {\n columnId: FieldDef['id'];\n}\n\nexport interface ChangeLabelActionPayload {\n columnId: FieldDef['id'];\n label: Column['label'];\n}\n\nexport interface SubmitChangeSetPayload {\n key: string;\n name: string;\n newValue: string | number | Date | boolean;\n oldValue: string | number | Date | boolean;\n status: string;\n}\n\n// Personalization Actions.\nexport type PersonalizationCreateAction = ReturnType<typeof Actions.actionPersonalizationCreate>;\nexport type PersonalizationDeleteAction = ReturnType<typeof Actions.actionPersonalizationDelete>;\nexport type PersonalizationEditAction = ReturnType<typeof Actions.actionPersonalizationEdit>;\nexport type PersonalizationSetActiveAction = ReturnType<\n typeof Actions.actionPersonalizationSetActive\n>;\nexport type PersonalizationSetAppDefaultAction = ReturnType<\n typeof Actions.actionPersonalizationSetAppDefault\n>;\nexport type PersonalizationSetDefaultAction = ReturnType<\n typeof Actions.actionPersonalizationSetDefault\n>;\nexport type PersonalizationUpdateAction = ReturnType<typeof Actions.actionPersonalizationUpdate>;\nexport type PersonalizationUpdateIdAction = ReturnType<\n typeof Actions.actionPersonalizationUpdateId\n>;\nexport type PersonalizationUpdatePresetIdAction = ReturnType<\n typeof Actions.actionPersonalizationUpdatePresetId\n>;\nexport type GetPersonalizationsAction = ReturnType<typeof Actions.actionGetPersonalizations>;\nexport type PersonalizationActions =\n | PersonalizationCreateAction\n | PersonalizationDeleteAction\n | PersonalizationEditAction\n | PersonalizationSetActiveAction\n | PersonalizationSetAppDefaultAction\n | PersonalizationSetDefaultAction\n | PersonalizationUpdateAction\n | PersonalizationUpdateIdAction\n | PersonalizationUpdatePresetIdAction\n | GetPersonalizationsAction;\n\n// TODO: Remove Action as function.The logic for Search global action function can be move to reducer.\n// Needs further refactor, but it is required to remove the Actions as function usecase in reducer.\nexport type ActionAsFunction = SearchGlobalActionAsFunction;\n\n// All Actions of type object with signature {type: TYPE: payload: PAYLOAD}\nconst { actionSearchGlobal, ...objectActions } = Actions;\nexport type Action = GenerateActionType<typeof objectActions> | SearchGlobalAction;\n\n// Generic Action that represents Actions as object and Action as function.\n// TODO Action as function should be removed, only one use case is present as of today which can be migrated to Action as object.\nexport type BaseAction = Action | ActionAsFunction;\n"]}
@@ -521,9 +521,9 @@ const prepareDefaultFieldConfig = (defaultFieldConfig, field) => {
521
521
  if (key === 'aggregation') {
522
522
  value = field.type === FieldType.NUMBER || field.type === FieldType.CURRENCY;
523
523
  }
524
- // By default, only text type fields are searchable via global search
524
+ // By default, only text and URL type fields are searchable via global search.
525
525
  if (key === 'searchable') {
526
- value = field.type === FieldType.TEXT;
526
+ value = field.type === FieldType.TEXT || field.type === FieldType.URL;
527
527
  }
528
528
  return [key, value];
529
529
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/core/utils/util.ts"],"names":[],"mappings":"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","sourcesContent":["import fastDeepEqual from 'fast-deep-equal/es6';\n\nimport {\n splitConditionTree,\n type Condition,\n type LeafCondition\n} from '@pega/cosmos-react-condition-builder';\nimport { hasProp, type ExcludeStrict } from '@pega/cosmos-react-core';\n\nimport { filterParams, comparatorMap, type FilterConfig } from '../config/filterConfig';\nimport {\n EXTERNAL_FILTERS,\n rowActionColumnMeta,\n rowDeleteColumnMeta,\n rowDragDropColumnMeta,\n rowErrorColumnMeta,\n rowSelectColumnMeta,\n SELECTION_MODES,\n TEMPLATES\n} from '../constants';\nimport ActionTypes, { type ActionType } from '../actions/actionConstants';\nimport type View from '../generators/ViewGenerator';\nimport type { State, Group, Personalization, CustomField } from '../../../types/State.types';\nimport type { Action, PaginateAction, PaginationPayload } from '../actions/actions.types';\nimport {\n FieldType,\n REPEATING_STRUCTURE_TEMPLATES,\n ActionColumnPlacement,\n type FieldDef,\n type Meta,\n type StyleFormat\n} from '../../../types/Meta.types';\nimport type {\n SupportedConsumerPayloads,\n SupportedConsumerActionType,\n RefreshNotificationForConsumer\n} from '../generators/viewUtilityMethods';\nimport type { DefaultConfigType } from '../config/config';\nimport type { RowData } from '../generators/RowGenerator.types';\nimport type Column from '../generators/ColumnGenerator';\nimport type RsInternal from '../RsInternal';\nimport defaultTranslations from '../defaultTranslations';\n\nimport evaluateConditionLocally from './condition-utils';\nimport type {\n FeatureMap,\n FilterInfo,\n FilterInitializers,\n AddFilterParams,\n GenericObject,\n DefaultConfigKeys,\n DefaultFieldDefKeys,\n PassablePromise,\n DeepNonNullableArray,\n MemoizedFunctionParameters,\n FunctionToBeMemoized,\n MemoizedFunction\n} from './util.types';\n\nexport const EXCLUDED_NUMERIC_TYPES = ['Currency'];\nexport const OOTB_COLUMNS = [\n rowDragDropColumnMeta.field.id,\n rowErrorColumnMeta.field.id,\n rowActionColumnMeta.field.id,\n rowSelectColumnMeta.field.id,\n rowDeleteColumnMeta.field.id\n];\n\nconst groupBySeparator = '||'; // To avoid any ambiguities\n\nconst UNSUPPORTED_OBJECT_TYPE_FIELD_ANALYTICAL_FEATURES = ['sort', 'filter', 'grouping'];\n\n/**\n * Creates an object mapping for each property in `propertiesArr` to a boolean flag indicating whether the feature is enabled.\n * The flag is derived from `fieldDefs`.\n * The flag is `true` if in any `fieldDef` the value of the property is true; otherwise, it is `false`.\n * @param propertiesArr Array of features which needs to be checked in the fieldDefs\n * @param fieldDefs Array of {@link FieldDef}.\n * @returns An object containing the key as feature from `propertiesArr` and value as boolean indicating the feature is enabled or not.\n */\nfunction getEnabledFeatures(propertiesArr: (keyof FieldDef)[], fieldDefs: FieldDef[]): FeatureMap {\n const featuresMap = {} as FeatureMap;\n propertiesArr.forEach(prop => {\n for (const element of fieldDefs) {\n const value = element[prop];\n if (value) {\n featuresMap[prop] = true;\n break;\n }\n }\n });\n return featuresMap;\n}\n\n/**\n * Memoizes a function, returning a memoized version that caches the result based on dependencies.\n *\n * The memoized function accepts two arguments: [arguments], [dependencies].\n * If dependencies are not provided explicitly, arguments are defaulted to dependencies.\n * If a compare function is passed as the last argument, it decides whether to return a memoized value or not.\n *\n * @param fn - The function to memoize.\n * @returns The memoized function.\n */\nexport function withMemoization<P extends any[], R>(\n fn: FunctionToBeMemoized<P, R>\n): MemoizedFunction<P, R> {\n let value: R;\n let before: any[];\n const sameAsBefore = (v: any, index: number) => {\n return v === before[index];\n };\n return function inner(\n this: ThisParameterType<FunctionToBeMemoized<P, R>>,\n ...args: MemoizedFunctionParameters<P>\n ) {\n // accepts two arguments ([arguments], [dependencies])\n // if dependencies are not provided explicitly, arguments are defaulted to dependencies\n const deps = args && (args[1] && typeof args[1] !== 'function' ? [...args[1]] : [...args[0]]);\n\n // if compare function is passed through, that will decide whether return a memoized value or not.\n const compareFunc = args && args[args.length - 1];\n if (compareFunc && typeof compareFunc === 'function') {\n if (!before || !compareFunc(before, deps)) value = fn.apply(this, [args[0]]);\n before = deps;\n } else if ((!deps || !deps.length) && !before) {\n before = [];\n value = fn.apply(this, [args[0]]);\n } else if (!before || deps.length !== before.length || !deps.every(sameAsBefore)) {\n before = deps;\n value = fn.apply(this, [args[0]]);\n }\n return value;\n };\n}\n\n/**\n * Picks specific properties from an object and returns a new object containing only those properties.\n * If the object is null or undefined, it returns undefined.\n *\n * @param obj - The source object from which properties are picked.\n * @param props - An array of property names to be picked from the object.\n * @returns A new object with only the picked properties, or `undefined` if the source object is null or undefined.\n */\nexport function pickProperties<T extends object, K extends keyof T>(\n obj: T | null | undefined,\n props: K[]\n): Pick<T, K> | undefined {\n if (!obj) {\n return undefined;\n }\n\n return props.reduce(\n (accumulator, prop) => {\n if (obj[prop] !== undefined) {\n accumulator[prop] = obj[prop];\n }\n return accumulator;\n },\n {} as Pick<T, K>\n );\n}\n\n// Storing the caching at module level so that all consumers of this function will get the cached values.\n// Since this function attaches the element on the document, it's assumed that the scrollbars styling is same on the document.\nlet previousWindowHeight = window.innerHeight;\nlet previousWindowWidth = window.innerWidth;\nlet cachedScrollBarWidth: number;\n\n/**\n * Returns the scrollbar width for a given browser/application.\n * @returns The scrollbar width in number.\n */\nexport function getScrollbarWidth(): number {\n if (\n previousWindowHeight === window.innerHeight &&\n previousWindowWidth === window.innerWidth &&\n cachedScrollBarWidth\n ) {\n return cachedScrollBarWidth;\n }\n\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n outer.parentNode?.removeChild(outer);\n\n previousWindowHeight = window.innerHeight;\n previousWindowWidth = window.innerWidth;\n\n cachedScrollBarWidth = scrollbarWidth;\n return scrollbarWidth;\n}\n\n/**\n * Performs a deep comparison between two values to determine if they are equal.\n * A wrapper on fast-deep-equal\n *\n * @param x - First item to compare\n * @param y - Second item to compare\n * @returns Deep comparison result\n */\nexport function deepEqual(x: any, y: any): boolean {\n return fastDeepEqual(x, y);\n}\n\n/**\n * Creates a deep copy of an object or array.\n *\n * This function recursively copies all properties and elements from the source object or array to a new object or array.\n *\n * @param oldObj - The object or array to be copied.\n * @returns A deep copy of the input object or array.\n */\nexport function deepCopy<T>(oldObj: T): T {\n let newObj = oldObj;\n if (oldObj && typeof oldObj === 'object') {\n newObj = Array.isArray(oldObj) ? ([] as unknown as T) : ({} as T);\n Object.keys(oldObj).forEach(i => {\n (newObj as any)[i] = deepCopy((oldObj as any)[i]);\n });\n }\n return newObj;\n}\n\n/**\n * Checks if the provided value is a function.\n *\n * @param obj - The value to be checked.\n * @returns `true` if the value is a function, `false` otherwise.\n */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/**\n * Checks if the provided value is a plain object.\n *\n * This function returns `true` if the value is an object that is not a function or an array.\n *\n * @param obj - The value to be checked.\n * @returns - `true` if the value is a plain object, `false` otherwise.\n */\nexport function isObject(obj: unknown): boolean {\n return obj === Object(obj) && !(isFunction(obj) || Array.isArray(obj));\n}\n\n/**\n * Checks if the provided value is empty.\n *\n * The value is considered empty if it is:\n * - `null` or `undefined`\n * - An array or string with length 0\n * - An object with no own properties.\n *\n * @param value - The value to be checked.\n * @returns - `true` if the value is empty, `false` otherwise.\n */\nexport function isEmpty(value: any): boolean {\n return (\n // null or undefined\n value === null ||\n value === undefined ||\n ((Array.isArray(value) || typeof value === 'string') && value.length === 0) ||\n // is an Object and has no keys\n (value.constructor === Object && Object.keys(value).length === 0)\n );\n}\n\n/**\n * Removes empty values from an array.\n *\n * This function recursively filters out empty values from the array. Empty values include:\n * - `null` or `undefined`\n * - Empty strings or arrays\n * - Empty objects\n *\n * @param arr - The array on which the empty values needs to be removed.\n * @returns - A new array with empty values removed.\n */\nexport function removeEmptyValues<T>(arr: T[]): DeepNonNullableArray<T>[] {\n return arr\n .map(item => (Array.isArray(item) ? removeEmptyValues(item) : item))\n .filter(\n t => (Array.isArray(t) && t.length) || (!Array.isArray(t) && t)\n ) as DeepNonNullableArray<T>[];\n}\n\n/* Start : APIs specific to condition builder */\n\n/**\n * Retrieves an array of fields on which a filter is applied. If a comparator is provided, the function returns only the fields that have the specified comparator applied in the `filterExpression`.\n *\n * @param params - The parameters for the method.\n * @param params.filterExpression - The filter expression used to determine which fields are included. For more details, see {@link State.filterExpression}.\n * @param params.comparator - An optional comparator. If provided, the function will filter fields that have this comparator in the filter expression.\n *\n * @returns An array of field names on which the filter is applied. If a comparator is specified, it returns only the fields that use that comparator.\n */\nexport function getFilters({ filterExpression, comparator = null }: FilterInfo): string[] {\n const filters: string[] = [];\n const { conditions } = splitConditionTree(filterExpression);\n Object.keys(conditions).forEach(key => {\n if (comparator) {\n /* If comparator is given find field with that comparator */\n if (conditions[key].comparator === comparator) {\n filters.push(conditions[key].lhs.field);\n }\n } else {\n filters.push(conditions[key].lhs.field);\n }\n });\n return filters;\n}\n\n/**\n * Retrieves all filter conditions from the provided `filterExpression`. If a `comparator` is provided,\n * only the filter conditions that match the given comparator will be collected.\n *\n * @param params Method arguments object.\n * @param params.filterExpression The filterExpression.\n * @param params.comparator An optional comparator to filter conditions by. If not provided, all conditions will be collected.\n *\n * @returns An array of filter conditions that match the specified criteria.\n */\nexport function getFilterConditions({ filterExpression, comparator = null }: FilterInfo) {\n const filters: LeafCondition[] = [];\n const { conditions } = splitConditionTree(filterExpression);\n Object.keys(conditions).forEach(key => {\n if (comparator) {\n /* If comparator is given find field with that comparator */\n if (conditions[key].comparator === comparator) {\n filters.push(conditions[key]);\n }\n } else {\n filters.push(conditions[key]);\n }\n });\n return filters;\n}\n\n/**\n Retrieves the filter properties for a specified column from the {@link State.filterExpression filterExpression} state as an array.\n * The returned array includes:\n * - The input values associated with the filter for the specified column.\n * - The comparator configured for the filter of that column.\n * - The leaf condition for that column within the {@link State.filterExpression filterExpression}.\n * - The entire {@link State.filterExpression filterExpression} object from the state.\n * @param column The column for which filter information is to be retrieved.\n */\n// returning filter initializer values for any type of filter\nexport function getFilterInitializers(column: Column): FilterInitializers | [] {\n if (!column) return [];\n const filterExpression = column?.getFilterProperties()?.filterExpression!;\n const filters = getFilterConditions({ filterExpression });\n const filter = filters.find(f => f.lhs?.field === column.field.name);\n const fInput = filter\n ? (\n filter.rhs as {\n value: string | number;\n }\n )?.value || (filter.rhs as { values: string[] | number[] })?.values\n : [];\n const fValue = filter\n ? (Object.keys(comparatorMap) as (keyof FilterConfig['comparatorMap'])[]).find(\n key => comparatorMap[key] === filter.comparator\n )\n : null;\n return [fInput, fValue, filter, filterExpression];\n}\n\n/**\n * Determines if filter is applied on the given `column` in the given `filterExpression`.\n * @param column\n * @param filterExpression\n * @returns true if filter is applied; otherwise false.\n */\nexport function isFilterApplied(column: Column, filterExpression: Condition): boolean {\n if (!column.field.id) {\n return false;\n }\n\n const fields = getFilters({\n filterExpression\n });\n return fields.includes(column.field.name);\n}\n\n/* AND condition with filter expression */\n/**\n * Prepares a filter expression for a given `column`, `comparator`, and `input`.\n * Returns the same filter expression or appends it to the given `filterExpression`.\n *\n * @param param - Method argument object.\n * @param param.filterExpression - Existing filter expression to which the new condition may be appended.\n * @param param.column - Column on which the filter is to be applied.\n * @param param.comparator - Comparator for the filter expression (e.g., equals, greater than).\n * @param param.input - List of possible values for the column on which the filter expression should be prepared. It can be a single value, an array of values, or null.\n * @returns A new filter expression or the modified existing filter expression. Returns null if the input is invalid based on the comparator.\n */\nexport function addFilter({\n filterExpression,\n column,\n comparator,\n input\n}: AddFilterParams): Condition | null {\n const filter: { condition: LeafCondition } = {} as { condition: LeafCondition };\n\n // We might need to refactor the way we are managing filters with comparators\n // Comparator needs to categorized based on no of operand and type of operand it needs\n // Making this fix to resolve BUG-640981\n if (\n (input === '' ||\n input === undefined ||\n input === null ||\n Number.isNaN(input) ||\n (Array.isArray(input) && !input.length)) &&\n comparator !== comparatorMap.isNull &&\n comparator !== comparatorMap.isNotNull &&\n comparator !== comparatorMap.isTrue &&\n comparator !== comparatorMap.isFalse\n ) {\n return null;\n }\n\n if (input === null || input === undefined) {\n filter.condition = {\n comparator,\n lhs: { field: column.field.name }\n };\n } else {\n const rhsFieldName = Array.isArray(input) ? 'values' : 'value';\n filter.condition = {\n comparator,\n lhs: { field: column.field.name },\n rhs: { [rhsFieldName]: input } as { value: string | number } | { values: string[] | number[] }\n };\n }\n\n /* if filter expression has conditions or operators */\n if (filterExpression && Object.keys(filterExpression).length > 0) {\n return { AND: [filter, filterExpression] };\n }\n return filter;\n}\n\n/* End : APIs specific to condition builder */\n\n/**\n * Retrieves the visible fields in the current view by considering the visible columns state.\n * This function also accounts for source columns from visible custom fields.\n *\n * @param fieldDefs - The {@link Meta.fieldDefs fieldDefs}.\n * @param visibleColumns - The list of {@link State.visibleColumns visibleColumns}.\n * @param customFields - The {@link State.customFields customFields}.\n * @returns The list of visible fields.\n */\nexport const getVisibileFields = (\n fieldDefs: FieldDef[] = [],\n visibleColumns: State['visibleColumns'] = [],\n customFields: State['customFields'] = []\n): FieldDef[] => {\n const fieldMap = fieldDefs.reduce<{ [key: string]: FieldDef }>((acc, field) => {\n acc[field.id] = field;\n return acc;\n }, {});\n const visibleFields = fieldDefs.filter(({ id }) => visibleColumns.includes(id));\n const fieldIdsFromCustomField = (customField: CustomField): string[] =>\n customField?.expression.filter(item => !Array.isArray(item)) as string[]; // taking all non template items\n const visibleUnderCustomFields = [\n ...new Set(\n customFields\n .filter(({ id }) => visibleColumns.includes(id)) // Only visible custom fields\n .map(field => fieldIdsFromCustomField(field))\n .flat() // flat the multiple custom field fieldIds\n ) // Getting unique fieldIds\n ]\n .filter(fieldId => !visibleColumns.includes(fieldId)) // taking only fields that are not already visible to avoid duplicates\n .map(fieldId => fieldMap[fieldId])\n .filter(field => Boolean(field));\n return [...visibleFields, ...visibleUnderCustomFields];\n};\n\n/**\n * Retrieves the data of the closest row to the `targetElement` from the view {@link View.data data}.\n *\n * This function is useful for scenarios where you need to determine the row data related to a specific DOM element.\n * It searches through the provided data and pagination options to find the row that is closest to the given target element.\n *\n * @param data - The data of the view containing all row entries.\n * @param paginationOptions - The {@link State.paginationOptions pagination options}\n * @param targetElement - The target element for which the closest row data is required.\n *\n * @returns - The data of the closest row element to the target element.\n */\nexport const getRowContextData = (\n data: RowData[],\n paginationOptions: NonNullable<State['paginationOptions']>,\n targetElement: HTMLElement\n): RowData => {\n // get nearest row to target element.\n const row = targetElement.closest('[role=\"row\"]');\n // use aria-rowindex as data-index is added for group header as well\n // which is misaligned with the data object indexes.\n const ariaRowIndex = Number(row?.getAttribute('aria-rowindex')) - 1;\n\n // get starting index in pagination option\n // TODO why reduce is required with initial value as null. This can be refactored.\n const offset = Object.values(paginationOptions).reduce<null | number>((acc, { startIndex }) => {\n if (acc === null || acc < startIndex) {\n return startIndex;\n }\n return acc;\n }, null);\n return data[ariaRowIndex - offset!];\n};\n\n/**\n * Compares two objects to determine if they are equal based on the specified properties.\n * If no properties are specified, it compares all properties.\n *\n * @param t1 - The first object to compare.\n * @param t2 - The second object to compare.\n * @param props - An optional array of property names to compare. If null, all properties are compared.\n * @returns A boolean indicating whether the objects are equal.\n */\nexport function compareObjects<T extends { [key in keyof T]: unknown }>(\n t1: T,\n t2: T,\n props: (keyof T)[] | null = null\n): boolean {\n if (!props && Object.keys(t1).length !== Object.keys(t2).length) return false;\n return (props || Object.keys(t1)).every(k => {\n const key = k as keyof T;\n const ty1 = Object.prototype.toString.call(t1[key]);\n const ty2 = Object.prototype.toString.call(t2[key]);\n if (ty1 !== ty2) return false;\n\n if (ty1 === '[object Array]')\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return compareArray(t1[key] as unknown[], t2[key] as unknown[], null);\n if (ty1 === '[object Object]') return compareObjects(t1[key], t2[key], null);\n return t2[key] === t1[key];\n });\n}\n\n/**\n * Compares two arrays for equality, considering nested arrays and objects.\n * If both arrays are equal, it returns true; otherwise, it returns false.\n *\n * @param t1 - The first array to compare.\n * @param t2 - The second array to compare.\n * @param props - Additional properties for comparison (currently unused).\n * @returns `true` if the arrays are equal, `false` otherwise.\n */\n// TODO props is never used.\nexport function compareArray<T extends unknown>(t1: T[], t2: T[], props = null): boolean {\n if (t1 === t2) return true;\n if (t1?.length !== t2?.length) return false;\n return t1?.every((val, i) => {\n const ty1 = Object.prototype.toString.call(val);\n const ty2 = Object.prototype.toString.call(t2?.[i]);\n if (ty1 === ty2) {\n if (ty1 === '[object Array]') return compareArray(val as any[], t2?.[i] as any[], props);\n if (ty1 === '[object Object]') return compareObjects(val, t2?.[i], props);\n return val === t2?.[i];\n }\n return false;\n });\n}\n\n/**\n * calculates the hash for the given string\n * @param string for which hash to be calculated\n * @returns calculated hash\n */\nexport function generateHash(string: string): number {\n let hash = 0;\n for (let charIdx = 0; charIdx < string.length; charIdx += 1) {\n // eslint-disable-next-line no-bitwise\n hash = (Math.imul(31, hash) + string.charCodeAt(charIdx)) | 0;\n }\n return hash;\n}\n\n/**\n * Updates the Meta settings based on the provided field definitions and default configuration.\n *\n * This function performs the following operations:\n *\n * - Computes the value for feature flags such as {@link Meta.freezeFields freezeFields} and {@link Meta.editable editable}\n * based on the values in `FieldDef`. If any of the `FieldDef` entries have the flag enabled, the flag is enabled for `Meta` as well.\n * - Sets the {@link Meta.locale locale} in `Meta` from the document's language attribute.\n * - Sets the values of other keys in `Meta` using {@link defaultConfig}, if they are not already set.\n *\n * @param meta - The RS meta object.\n * @param defaultConfig - The default configuration object used to set default values in `Meta`.\n */\nfunction updateMetaSettings(meta: Meta, defaultConfig: DefaultConfigType): void {\n // Deduce freezeField global setting from within the fields\n const featureMap = getEnabledFeatures(['freeze', 'editable'], meta.fieldDefs);\n if (featureMap.freeze) {\n meta.freezeFields = true;\n }\n\n if (featureMap.editable) {\n meta.editable = true;\n }\n\n // Setting locale value for localisation\n if (!meta.locale) {\n const htmlLang = document.documentElement.lang;\n meta.locale = htmlLang.split('-')[1] ? htmlLang : defaultConfig.locale;\n }\n const properties: DefaultConfigKeys[] = Object.keys(defaultConfig) as DefaultConfigKeys[];\n properties.forEach(key => {\n if (meta[key] === undefined || meta[key] === null) {\n // is null check required or consumers want that?\n // @ts-expect-error\n meta[key] = defaultConfig[key];\n }\n });\n}\n\nconst prepareDefaultFieldConfig = (\n defaultFieldConfig: NonNullable<DefaultConfigType['defaultFieldDef']>,\n field: FieldDef\n) => {\n return Object.fromEntries(\n Object.entries(defaultFieldConfig).map(([key, value]) => {\n // By default, sorting, filtering and grouping should be disabled for object type fields.\n if (UNSUPPORTED_OBJECT_TYPE_FIELD_ANALYTICAL_FEATURES.includes(key)) {\n value = field.type !== FieldType.OBJECT;\n }\n\n // By default, aggregation is supported only for number and currency type fields\n if (key === 'aggregation') {\n value = field.type === FieldType.NUMBER || field.type === FieldType.CURRENCY;\n }\n\n // By default, only text type fields are searchable via global search\n if (key === 'searchable') {\n value = field.type === FieldType.TEXT;\n }\n\n return [key, value];\n })\n );\n};\n\nexport function isCustomGroupingSupported(\n fieldType: FieldDef['type'] | undefined,\n customGrouping: FieldDef['customGrouping'] | Group['customFunction'],\n template?: Meta['template']\n): boolean {\n const isTextCustomGrouping =\n fieldType === FieldType.TEXT && customGrouping?.type === 'TEXT_GROUPING';\n const isNumericCustomGrouping =\n (fieldType === FieldType.NUMBER || fieldType === FieldType.CURRENCY) &&\n (customGrouping?.type === 'RANGE_GROUPING' || customGrouping?.type === 'INTERVAL_GROUPING');\n\n return (\n isTextCustomGrouping ||\n (template !== REPEATING_STRUCTURE_TEMPLATES.KANBAN && isNumericCustomGrouping)\n );\n}\n\nfunction sanitizeFieldDef(field: FieldDef, template?: Meta['template']): void {\n if (\n field.customGrouping &&\n !isCustomGroupingSupported(field.type, field.customGrouping, template)\n ) {\n delete field.customGrouping;\n }\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.KANBAN) {\n delete field.groupedDateFunction;\n delete field.groupedAdditionalFields;\n }\n}\n\n/**\n * Normalizes the {@link FieldDef} with {@link defaultFieldDef defaultFieldDef config} if not already set.\n *\n * @param field The fieldDef object\n * @param defaultFieldDef The default config of the FieldDef.\n *\n * @returns The normalized fieldDef object with the updated configurations.\n */\nexport function normalizeFieldDef(\n field: FieldDef,\n defaultFieldDef: NonNullable<DefaultConfigType['defaultFieldDef']>,\n template?: Meta['template']\n): void {\n const properties: DefaultFieldDefKeys[] = Object.keys(defaultFieldDef) as DefaultFieldDefKeys[];\n field.idHash = generateHash(field.id);\n\n properties.forEach((prop: DefaultFieldDefKeys) => {\n // @ts-expect-error Type 'number | boolean' is not assignable to type 'undefined'. Type 'number' is not assignable to type 'undefined'. Check this.\n field[prop] = field[prop] ?? defaultFieldDef[prop];\n if (prop === 'autosize' && field.width) {\n field[prop] = false;\n }\n });\n\n // Assign filters to each field based on their types\n if (field.filterPickList) {\n field.filterParams = structuredClone(filterParams.pickList);\n // @ts-expect-error Property 'Date' does not exist on type filterParams. Even if there is a check ```field.type in filterParams```, typescript is still complaining.\n } else if (field.type in filterParams && filterParams[field.type]) {\n // @ts-expect-error Property 'Date' does not exist on type filterParams. Even if there is a check ```field.type in filterParams```, typescript is still complaining.\n field.filterParams = structuredClone(filterParams[field.type]);\n } else {\n field.filterParams = undefined;\n }\n\n sanitizeFieldDef(field, template);\n}\n\n/**\n * Normalizes the RS meta with the {@link defaultConfig default configuration} if not already set:\n * - Updates the {@link Meta.minheight minHeight} option from the {@link defaultConfig}.\n * - Adds a comparatorMap to the meta.\n * - Updates keys of individual FieldDef with {@link DefaultConfigType.defaultFieldDef defaultFieldDef} from {@link defaultConfig}.\n * - Enables/Disables feature flags (e.g. {@link Meta.freezeFields freezeFields} and {@link Meta.editable editable}) in RS meta by considering the values of feature flags from fieldDef or its values in defaultConfig.\n *\n * @param _meta - The RS meta object.\n * @param defaultConfig - The default configuration object containing the default settings to be used.\n * @returns The normalized RS meta object with the updated configurations.\n */\nexport function normalizeMeta(\n _meta: Meta & { isPreset?: boolean },\n defaultConfig: DefaultConfigType\n): Meta {\n const { height, ...restMeta } = _meta;\n const meta = deepCopy<Meta>(restMeta);\n meta.height = { ...height };\n meta.comparatorMap = comparatorMap;\n meta.height.minHeight = meta.height.minHeight ?? defaultConfig.height.minHeight;\n\n // Handle if fieldDefs is null or undefined\n meta.fieldDefs = meta.fieldDefs ?? [];\n meta.fieldDefs.forEach((column: FieldDef) => {\n normalizeFieldDef(\n column,\n {\n ...prepareDefaultFieldConfig(defaultConfig.defaultFieldDef, column),\n /*\n TODO: Deprecation - The defaultFieldDef in meta is no longer necessary and is not utilized by any consumers.\n - Consumers should provide the exact fieldDef configuration instead of relying on explicit defaults in meta.\n - Only the in-house defaultFieldDef from `defaultConfig.defaultFieldDef` will be honored.\n */\n ...meta.defaultFieldDef\n },\n meta.template\n );\n });\n updateMetaSettings(meta, defaultConfig);\n return meta;\n}\n\n/**\n * Removes entries from the given object that have null, undefined, or empty object as values.\n * This function mutates the original object by deleting properties that are either null, undefined,\n * or objects with does not have own properties.\n *\n * @param obj - The object from which empty entries should be removed.\n * @returns void\n */\nexport function removeEmptyValuesFromObject(obj: GenericObject): void {\n if (!obj) return;\n const propNames = Object.getOwnPropertyNames(obj);\n for (const element of propNames) {\n const propName = element;\n if (\n obj[propName] === null ||\n obj[propName] === undefined ||\n !Object.keys(obj[propName] as GenericObject).length\n ) {\n delete obj[propName];\n }\n }\n}\n\n/**\n * Retrieves the scrollable element of the virtualizer, i.e. parent container.\n * from the {@link View.virtualizeElements virtualizeElements} property of the provided {@link view} and,\n * if available, returns the parent container of the root virtualizer.\n * @param view The {@link View} object.\n * @returns The scrollable element, if it exists. Otherwise, returns undefined.\n */\nexport const getScrollerElem = (view: View): HTMLElement | undefined => {\n const { virtualizeElements } = view;\n let scrollerElem;\n if (virtualizeElements && !isEmpty(virtualizeElements?.rootVirtualiser)) {\n scrollerElem = virtualizeElements?.rootVirtualiser?.getParentContainer?.();\n }\n return scrollerElem;\n};\n\nexport const dateFunctionLabels = {\n YEARS: 'Year',\n QUARTERS: 'Quarter',\n MONTHS: 'Month',\n WEEKS: 'Week',\n DAYS: 'Day',\n HOURS: 'Hour',\n MINUTES: 'Minute',\n SECONDS: 'Second',\n MONTHS_OF_YEAR: 'Month of year',\n DAYS_OF_MONTH: 'Day of month',\n DAYS_OF_WEEK: 'Day of week',\n HOURS_OF_DAY: 'Hour of day'\n};\n\n/**\n * Retrieves the valid externalState keys from RS {@link Meta}.\n *\n * Supported external state keys:\n * - Value of {@link Meta.externalFilters externalFilters} in Meta.\n *\n * @param tableMeta RS Meta\n * @returns Array of valid externalState keys.\n */\nexport function getExternalStateKeys(tableMeta: Meta): string[] {\n const externalStateKeys: string[] = [];\n if (tableMeta[EXTERNAL_FILTERS]) {\n externalStateKeys.push(tableMeta[EXTERNAL_FILTERS]);\n }\n return externalStateKeys;\n}\n\n/**\n * Validates the payload for {@link ActionTypes.SET_IN_EXTERNAL_STATE setInExternalState} action.\n *\n * @param payload The payload for {@link ActionTypes.SET_IN_EXTERNAL_STATE setInExternalState} action.\n * @param externalStateKeys An array of valid {@link State.externalState external state} keys.\n *\n * @returns void\n *\n * @throws {Error} if validation fails.\n */\nfunction validateExternalStateAction(\n payload: NonNullable<State['externalState']>,\n externalStateKeys?: string[]\n): void {\n if (!isObject(payload)) {\n throw Error(\n `payload for action ${ActionTypes.SET_IN_EXTERNAL_STATE} should be of object type only.`\n );\n }\n const payloadKeys = Object.keys(payload);\n if (payloadKeys.length !== 1) {\n throw Error(\n `payload object for action ${ActionTypes.SET_IN_EXTERNAL_STATE} should contain exactly one key.`\n );\n }\n if (!externalStateKeys?.includes(payloadKeys[0])) {\n throw Error(\n `The key '${payloadKeys[0]}' in the payload object for action ${ActionTypes.SET_IN_EXTERNAL_STATE} is invalid.`\n );\n }\n}\n\nconst validateRefreshNotificationAction = (payload: RefreshNotificationForConsumer) => {\n const isValidPayload =\n isObject(payload) && hasProp(payload, 'message') && hasProp(payload, 'refreshActionLabel');\n\n if (!isValidPayload) {\n throw Error(\n `payload for action ${ActionTypes.NOTIFY_DATA_REFRESH} should be an object with 'message' and 'refreshActionLabel' properties.`\n );\n }\n};\n\n/**\n * Validates an action by ensuring that the provided payload is supported for the given action type.\n * This function checks if the action and payload match the supported actions.\n *\n * @param action - The action to be validated.\n * @param payload - The payload associated with the action. The payload must confirm to the expected structure for the given action.\n * @param externalStateKeys - An array of valid {@link State.externalState external state} keys.\n *\n * @returns void\n *\n * @throws {Error} if validation fails.\n */\nexport function validateAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T],\n externalStateKeys?: string[]\n): void {\n switch (action) {\n case ActionTypes.UPDATE_DEBUG_INFO:\n case ActionTypes.TOGGLE_REQUIRED:\n case ActionTypes.USER_CONFIRMATION_ACTION:\n if (!isObject(payload)) {\n throw Error(`payload for action ${action} should be of object type only!`);\n }\n break;\n\n case ActionTypes.TOGGLE_DISABLE_SELECTION:\n if (typeof payload !== 'boolean')\n throw Error(`payload for action ${action} should be of type boolean only!`);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n validateRefreshNotificationAction(payload as RefreshNotificationForConsumer);\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n if (typeof payload !== 'undefined') {\n throw Error(`No payload is required for action ${action}`);\n }\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n validateExternalStateAction(\n payload as NonNullable<State['externalState']>,\n externalStateKeys\n );\n break;\n case ActionTypes.SET_WARNING_MESSAGES:\n break;\n default:\n throw Error(`Action ${action} is not supported!`);\n }\n}\n\n/**\n * Retrieves the default preset ID from all personalizations.\n * @param stateAllPersonalization\n * @returns The id of the default preset if found, otherwise `undefined`.\n */\nexport function getDefaultPresetIdFromStatePersonalisation(\n stateAllPersonalization: Personalization['allPersonalizations'] = {}\n): string | undefined {\n return Object.keys(stateAllPersonalization).find(\n item => stateAllPersonalization[item].isDefaultPreset\n );\n}\n\n/** Determines if the given {@link array} contains any duplicate elements.\n * @param array The array to be checked for duplicate elements.\n * @returns Returns `true` if duplicates are found, otherwise returns `false`.\n */\nexport function hasDuplicates<T>(array?: T[]): boolean {\n return !!(array && new Set<T>(array).size !== array.length);\n}\n\n/**\n * Creates a passable promise, which is an array containing a promise object, and its corresponding resolve and reject functions.\n *\n * @returns An array where:\n * - The first element is the created promise.\n * - The second element is the resolve function for the promise.\n * - The third element is the reject function for the promise.\n */\nexport function passablePromise<T>(): PassablePromise<T> {\n let resolveRef!: PassablePromise<T>[1];\n let rejectRef!: PassablePromise<T>[2];\n const promise = new Promise<T>((resolve, reject) => {\n resolveRef = resolve;\n rejectRef = reject;\n });\n return [promise, resolveRef, rejectRef];\n}\n\n/**\n * Determines if the filter criteria has changed in the latest state compared to the previous state.\n *\n * This function checks the following state keys to determine changes:\n * - {@link State.filterExpression filterExpression}\n * - {@link State.search search}\n * - The value of {@link Meta.externalFilters external filters} in {@link State.externalState externalState}\n *\n * @param meta - The RS meta object.\n * @param previousState - The previous state object to compare against.\n * @param latestState - The latest state object to check for changes.\n * @returns Returns true if the filter criteria has changed; otherwise, returns false.\n */\nexport function isFilterCriteriaChanged(\n meta: Meta,\n previousState: State,\n latestState: State\n): boolean {\n const { filterExpression, search: { query } = {}, externalState } = latestState;\n const {\n filterExpression: previousFilterExpression,\n search: { query: previousQuery } = {},\n externalState: previousExternalState\n } = previousState;\n\n const searchChanged = () => query !== previousQuery;\n const filterExpressionChanged = () => !deepEqual(previousFilterExpression, filterExpression);\n const externalFilterChanged = () =>\n meta?.externalFilters &&\n !deepEqual(\n previousExternalState?.[meta?.externalFilters],\n externalState?.[meta?.externalFilters]\n );\n\n return !!(searchChanged() || filterExpressionChanged() || externalFilterChanged());\n}\n\n/**\n * Calculates the overlapping area from given {@link previousIndexes} and {@link newIndexes}.\n * @param previousIndexes\n * @param newIndexes\n * @returns A number indicating the overlapping area.\n */\nexport function getOverlappingIndexes(\n previousIndexes: PaginationPayload = {} as PaginationPayload,\n newIndexes: PaginationPayload = {} as PaginationPayload\n): number {\n const { startIndex: previousStartIndex, endIndex: previousEndIndex } = previousIndexes;\n const { startIndex: latestStartIndex, endIndex: latestEndIndex } = newIndexes;\n\n if (previousEndIndex < latestStartIndex || latestEndIndex < previousStartIndex) {\n return 0;\n }\n\n const overlapStartIndex = Math.max(previousStartIndex, latestStartIndex);\n const overlapEndIndex = Math.min(previousEndIndex, latestEndIndex);\n const overlapArea = overlapEndIndex - overlapStartIndex;\n\n if (overlapArea <= 0) {\n return 0;\n }\n\n return overlapArea;\n}\n\n/**\n * Determines whether the given {@link action} already exists in {@link latestActions} by comparing its type and payload.\n * @param action\n * @param latestActions\n * @returns true if the {@link action} exists in the {@link latestActions} otherwise false.\n */\n// TODO This is some what same as isStaleAction. Revisit both the methods.\nexport function isSameActionPresent(\n action: Action,\n latestActions: Map<ActionType, Action>\n): boolean {\n const { type: actionType } = action;\n const existingAction = latestActions.get(actionType);\n return (\n !!existingAction &&\n 'payload' in action &&\n 'payload' in existingAction &&\n deepEqual(existingAction.payload, action.payload)\n );\n}\n\n/**\n * Removes actions from the {@link latestActions} that have already been executed and are present in the {@link executedActionsQueue}.\n * This function ensures that only pending actions remain in the {@link latestActions}.\n * @param latestActions\n * @param executedActionsQueue\n */\nexport function clearProcessedActionsFromLatestActions(\n latestActions: Map<ActionType, Action>,\n executedActionsQueue: Action[]\n): void {\n executedActionsQueue.forEach(executedAction => {\n if (isSameActionPresent(executedAction, latestActions)) {\n latestActions.delete(executedAction.type);\n }\n });\n}\n\n/**\n * Determines whether the given {@link action} already exists in {@link latestActions} by comparing its type and payload.\n * @returns\n * - false if {@link action} does not already exists.\n * - false if {@link action} already exists and payload matches\n * - true if {@link action} already exists but payload does not match.\n */\n// TODO revisit this method again. It is not checking only for stale actions.\nexport function isStaleAction(action: Action, latestActions: Map<ActionType, Action>): boolean {\n const { type: actionType } = action;\n const existingAction = latestActions.get(actionType);\n return (\n !!existingAction &&\n 'payload' in action &&\n 'payload' in existingAction &&\n // TODO why ! is added in front of deepEqual. Ideally for an existing action if the payload is exactly same then it should be marked as stale.\n !deepEqual(existingAction.payload, action.payload)\n );\n}\n\n/**\n * Determines if the overlapping area of pagination indexes between the old and new pagination payloads in current queue is less than 50%.\n * This function helps determine if a significant portion of the pagination area has changed due to recent actions.\n *\n * For detailed usage and examples, refer [pagination-action-optimizations.md](../../../docs/pagination-action-optimizations.md).\n * @param latestActions - A map of the latest actions being executed in the queue, which may include pagination actions.\n * @param previousExecutedActionQueue - The queue of previously executed actions.\n * @returns Returns true if the overlapping area is less than 50%, otherwise returns false.\n */\nexport function isSignificantPaginationOverlap(\n latestActions: Map<ActionType, Action>,\n previousExecutedActionQueue: Action[]\n): boolean {\n const lastExecutedPaginationActionIndex = previousExecutedActionQueue\n .map(action => action.type)\n .lastIndexOf(ActionTypes.PAGINATE);\n if (!latestActions.has(ActionTypes.PAGINATE) || lastExecutedPaginationActionIndex < 0)\n return false;\n\n const lastExecutedPaginationPayload = (\n previousExecutedActionQueue[lastExecutedPaginationActionIndex] as PaginateAction\n ).payload;\n const latestPaginatePayload = (latestActions.get(ActionTypes.PAGINATE) as PaginateAction).payload;\n\n const overlappingIndexes = getOverlappingIndexes(\n lastExecutedPaginationPayload,\n latestPaginatePayload\n );\n const { startIndex, endIndex } = latestPaginatePayload;\n // if the api response matches at least 50% with the latest pagination size, we can use that to display some rows until the next set of rows arrive\n return !(overlappingIndexes >= (endIndex - startIndex) * 0.5);\n}\n\n/**\n * Returns a unique key for a given group.\n * @param group\n */\nexport const getGroupKey = (group: Group): string => {\n if (group.dateFunction) {\n return `${group.columnId}${groupBySeparator}${group.dateFunction}`;\n }\n\n if (group.customFunction) {\n return `${group.columnId}${groupBySeparator}${group.customFunction.type}${groupBySeparator}${group.customFunction.id}`;\n }\n return group.columnId;\n};\n\n/**\n * Returns {@link Group group information} from {@link Group groups} based on {@link groupBy} key\n * @param groupBy - unique key for a given group\n * @param groups - groups info from table state\n * @returns matched group\n */\nexport const getGroupFromKey = (groupBy: string, groups: State['groups']): Group | undefined => {\n return groups?.find(group => {\n return getGroupKey(group) === groupBy;\n });\n};\n\n/**\n * Determines whether the view uses the Kanban template (its level-0 group is the board lane).\n * The lane's presence at runtime is checked separately via `state.groups[0]`, so this predicate\n * intentionally reads only the template — it must stay valid before hydration seeds the lane.\n * @param meta - View metadata.\n * @returns Whether the view is a Kanban board.\n */\nexport const isKanbanTemplate = (meta: Meta | undefined): boolean => {\n return meta?.template === REPEATING_STRUCTURE_TEMPLATES.KANBAN;\n};\n\n/**\n * Checks if the column widths have been calculated.\n *\n * @returns True if the column widths have been calculated; otherwise, false.\n */\nexport const areColumnWidthsCalculated = (columnWidths: State['columnWidths']): boolean => {\n if (!columnWidths || isEmpty(columnWidths)) return false;\n const keys = Object.keys(columnWidths);\n // TODO why only rowDragDropcolumn is excluded from OOTB columns set, why not other OOTB columns ?\n return !(keys.length === 1 && keys[0] === rowDragDropColumnMeta.field.id);\n};\n\n// TODO: temporary method, till meta.dragHandle is completely removed(currently deprecated).\nexport const isRowReorderFieldEnabled = (meta: Meta): boolean => {\n return meta.dragHandle || !!meta.rowReorderField;\n};\n\n/**\n * Determines whether the row reorder field is visible.\n *\n * @param meta - View meta containing row reorder field configuration.\n * @returns `true` if the row reorder field is visible; otherwise falls back to the deprecated `dragHandle`.\n */\nexport const isRowReorderFieldVisible = (meta: Meta): boolean => {\n return meta.rowReorderField ? !!meta.rowReorderField.show : !!meta.dragHandle;\n};\n\n/**\n * Determines whether the row error field is visible.\n *\n * @param meta - View meta containing row error field configuration.\n * @returns `true` if the row error field is visible; otherwise falls back to the deprecated `showErrorField`.\n */\nexport const isRowErrorFieldVisible = (meta: Meta): boolean => {\n return meta.rowErrorField ? !!meta.rowErrorField.show : !!meta.showErrorField;\n};\n\n// TODO: temporary method, till meta.showErrorField is completely removed(currently deprecated).\nexport const isRowErrorFieldEnabled = (meta: Meta): boolean => {\n return meta.showErrorField || !!meta.rowErrorField;\n};\n\n/**\n * Returns the {@link StyleFormat} for a given {@link styleFormatId} from {@link View.styleFormats}\n * @param styleFormatId\n * @param styleFormats\n * @returns StyleFormat or `undefined`\n */\nconst getStyleFormat = (\n styleFormatId: string,\n styleFormats: NonNullable<View['styleFormats']>\n): StyleFormat | undefined => {\n return styleFormats.find(styleFormat => styleFormat.id === styleFormatId);\n};\n\n/**\n * Evaluates the style format applicable to a cell based on {@link Column.getExecutionContext current execution context} and {@link Column.conditionalStyleFormats conditionalStyleFormats}\n * @param column Column on which styles need to be evaluated.\n * @param rsInternal RsInternal object\n * @returns - {@link StyleFormat} or `undefined\n */\nexport const evaluateStyleFormatForCell = (\n column: Column,\n rsInternal: RsInternal\n): StyleFormat | undefined => {\n const { conditionalStyleFormats } = column;\n const { getRsProps, getRsStateResolver, getView } = rsInternal;\n const { apiContext } = getRsProps();\n const { meta } = getView();\n const { getState } = getRsStateResolver();\n const data = column.getExecutionContext()?.getValue?.();\n\n if (!data || !conditionalStyleFormats) return;\n\n const firstMatchingStyleFormat = conditionalStyleFormats.find(({ condition }) =>\n apiContext.evaluateCondition\n ? apiContext.evaluateCondition(getState(), meta, { condition, data })\n : evaluateConditionLocally(meta, { condition, data })\n );\n\n return (\n firstMatchingStyleFormat &&\n getStyleFormat(firstMatchingStyleFormat.styleFormatId, column.parent.styleFormats!)\n );\n};\n\nexport const isRowSelectFieldEnabled = (meta: Meta): boolean => {\n const { selectionMode, template } = meta;\n return !!(\n selectionMode &&\n SELECTION_MODES[selectionMode] &&\n !(template === TEMPLATES.GALLERY && selectionMode === SELECTION_MODES.multi_on_hover) &&\n template !== TEMPLATES.TIMELINE\n );\n};\n\nexport const isActionConfig = (\n action: Meta['editing'] | Meta['deleting']\n): action is NonNullable<ExcludeStrict<Meta['editing'] | Meta['deleting'], boolean>> => {\n return !!action && typeof action === 'object' && 'placement' in action;\n};\n\nexport const isDeletingColumnPlacement = (meta: Meta): boolean => {\n if (isActionConfig(meta.deleting)) {\n return meta.deleting.placement === ActionColumnPlacement.COLUMN;\n }\n return false;\n};\n\nexport const isRowDeleteFieldEnabled = (meta: Meta): boolean => {\n return !!meta.deleting && isDeletingColumnPlacement(meta);\n};\n\nexport const isRowDeleteFieldVisible = (meta: Meta): boolean => {\n if (isActionConfig(meta.deleting)) {\n return meta.deleting.placement === ActionColumnPlacement.COLUMN && !!meta.deleting.show;\n }\n\n return !!meta.deleting;\n};\n\n// Compatibility alias for existing call sites.\nexport const isRowActionFieldEnabled = (meta: Meta): boolean => {\n const isEditingEnabled = isActionConfig(meta.editing)\n ? meta.editing.placement === ActionColumnPlacement.MENU\n : !!meta.editing;\n const isDeletingEnabled = isActionConfig(meta.deleting)\n ? meta.deleting.placement === ActionColumnPlacement.MENU\n : false;\n return isEditingEnabled || isDeletingEnabled;\n};\n\nexport const isFreezingEnabled = (meta: Meta): boolean => {\n return (\n meta.freezeFields ||\n isRowErrorFieldEnabled(meta) ||\n isRowReorderFieldEnabled(meta) ||\n isRowSelectFieldEnabled(meta)\n );\n};\n\n/**\n * Derives visible column IDs from fieldDefs by excluding hidden columns.\n *\n * @param meta - View meta containing fieldDefs.\n * @param hiddenColumns - Array of hidden column IDs.\n * @returns Array of visible column IDs.\n */\nexport function getVisibleColumnsFromHidden(\n meta: Meta,\n hiddenColumns: State['hiddenColumns']\n): string[] {\n return meta.fieldDefs\n .filter(fieldDef => !hiddenColumns?.includes(fieldDef.id))\n .map(fieldDef => fieldDef.id);\n}\n\n/**\n * Derives hidden column IDs from fieldDefs by excluding visible columns.\n *\n * @param meta - View meta containing fieldDefs.\n * @param visibleColumns - Array of visible column IDs.\n * @returns Array of hidden column IDs.\n */\nexport function getHiddenColumnsFromVisible(\n meta: Meta,\n visibleColumns: State['visibleColumns'] = [],\n hiddenColumns: State['hiddenColumns'] = []\n): string[] {\n const fieldDefIds = new Set(meta.fieldDefs.map(({ id }) => id));\n const hiddenColumnsOutsideMeta = hiddenColumns.filter(\n id => !fieldDefIds.has(id) && !visibleColumns.includes(id)\n );\n return [\n ...hiddenColumnsOutsideMeta,\n ...meta.fieldDefs\n .filter(fieldDef => !visibleColumns.includes(fieldDef.id))\n .map(fieldDef => fieldDef.id)\n ];\n}\n\n/**\n * Derives visible column IDs from fieldDefs where show is true.\n *\n * @param meta - View meta containing fieldDefs.\n * @returns Array of visible column IDs.\n */\nexport function getVisibleColumnsFromFieldDefs(meta: Meta): string[] {\n return meta.fieldDefs.filter(fieldDef => fieldDef.show).map(fieldDef => fieldDef.id);\n}\n\nexport const isTranslationKey = (key: string): key is keyof typeof defaultTranslations =>\n key in defaultTranslations;\n\n/**\n * Translates a label if it is a known translation key, otherwise returns it as-is.\n *\n * @param label - The label string to translate.\n * @param translate - The translation function from the RS store.\n */\nexport const translateLabel = (\n label: string,\n translate: (key: keyof typeof defaultTranslations) => string\n): string => (isTranslationKey(label) ? translate(label) : label);\n\n/**\n * Returns true if a column should still be created for the given fieldDef\n * even when the field is not visible (`show = false`).\n *\n * This happens when the field is required by the current template configuration\n * (e.g., Timeline, Gallery, Map) or when it is marked as a row header.\n *\n * TODO: Refactor, move template-field resolution into the RS layer (e.g. `useRepeat`).\n */\nexport const shouldCreateColumnForField = (meta: Meta, fieldDef: FieldDef): boolean => {\n if (fieldDef.show || fieldDef.isRowHeader) return true;\n\n const template = meta.template;\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE) {\n const { timelineFields = {} } = meta;\n\n const referenceNames = [\n timelineFields.title?.name,\n timelineFields.date?.name,\n timelineFields.content?.name,\n timelineFields.status?.name,\n timelineFields.icon?.name\n ].filter(Boolean);\n\n return referenceNames.includes(fieldDef.name);\n }\n\n if (\n template === REPEATING_STRUCTURE_TEMPLATES.GALLERY ||\n template === REPEATING_STRUCTURE_TEMPLATES.KANBAN\n ) {\n const cardConfig =\n template === REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ? { ...meta.galleryConfig, ...meta.cardConfig }\n : meta.cardConfig ?? {};\n\n const referenceIds = [\n cardConfig.header?.field,\n cardConfig.heroImage?.source?.field,\n cardConfig.heroImage?.altText && 'field' in cardConfig.heroImage.altText\n ? cardConfig.heroImage.altText.field\n : undefined,\n cardConfig.tile?.foregroundColor?.field,\n cardConfig.tile?.backgroundColor?.field,\n cardConfig.tile?.iconName?.field,\n cardConfig.tile?.text?.field,\n ...(cardConfig.subHeadings?.map(({ field }) => field) ?? [])\n ].filter(Boolean);\n\n return referenceIds.includes(fieldDef.id);\n }\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.MAP) {\n const { mapFieldIds = {} } = meta;\n\n const referenceIds = [mapFieldIds.location, mapFieldIds.label, mapFieldIds.content].filter(\n Boolean\n );\n\n return referenceIds.includes(fieldDef.id);\n }\n\n return false;\n};\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/core/utils/util.ts"],"names":[],"mappings":"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","sourcesContent":["import fastDeepEqual from 'fast-deep-equal/es6';\n\nimport {\n splitConditionTree,\n type Condition,\n type LeafCondition\n} from '@pega/cosmos-react-condition-builder';\nimport { hasProp, type ExcludeStrict } from '@pega/cosmos-react-core';\n\nimport { filterParams, comparatorMap, type FilterConfig } from '../config/filterConfig';\nimport {\n EXTERNAL_FILTERS,\n rowActionColumnMeta,\n rowDeleteColumnMeta,\n rowDragDropColumnMeta,\n rowErrorColumnMeta,\n rowSelectColumnMeta,\n SELECTION_MODES,\n TEMPLATES\n} from '../constants';\nimport ActionTypes, { type ActionType } from '../actions/actionConstants';\nimport type View from '../generators/ViewGenerator';\nimport type { State, Group, Personalization, CustomField } from '../../../types/State.types';\nimport type { Action, PaginateAction, PaginationPayload } from '../actions/actions.types';\nimport {\n FieldType,\n REPEATING_STRUCTURE_TEMPLATES,\n ActionColumnPlacement,\n type FieldDef,\n type Meta,\n type StyleFormat\n} from '../../../types/Meta.types';\nimport type {\n SupportedConsumerPayloads,\n SupportedConsumerActionType,\n RefreshNotificationForConsumer\n} from '../generators/viewUtilityMethods';\nimport type { DefaultConfigType } from '../config/config';\nimport type { RowData } from '../generators/RowGenerator.types';\nimport type Column from '../generators/ColumnGenerator';\nimport type RsInternal from '../RsInternal';\nimport defaultTranslations from '../defaultTranslations';\n\nimport evaluateConditionLocally from './condition-utils';\nimport type {\n FeatureMap,\n FilterInfo,\n FilterInitializers,\n AddFilterParams,\n GenericObject,\n DefaultConfigKeys,\n DefaultFieldDefKeys,\n PassablePromise,\n DeepNonNullableArray,\n MemoizedFunctionParameters,\n FunctionToBeMemoized,\n MemoizedFunction\n} from './util.types';\n\nexport const EXCLUDED_NUMERIC_TYPES = ['Currency'];\nexport const OOTB_COLUMNS = [\n rowDragDropColumnMeta.field.id,\n rowErrorColumnMeta.field.id,\n rowActionColumnMeta.field.id,\n rowSelectColumnMeta.field.id,\n rowDeleteColumnMeta.field.id\n];\n\nconst groupBySeparator = '||'; // To avoid any ambiguities\n\nconst UNSUPPORTED_OBJECT_TYPE_FIELD_ANALYTICAL_FEATURES = ['sort', 'filter', 'grouping'];\n\n/**\n * Creates an object mapping for each property in `propertiesArr` to a boolean flag indicating whether the feature is enabled.\n * The flag is derived from `fieldDefs`.\n * The flag is `true` if in any `fieldDef` the value of the property is true; otherwise, it is `false`.\n * @param propertiesArr Array of features which needs to be checked in the fieldDefs\n * @param fieldDefs Array of {@link FieldDef}.\n * @returns An object containing the key as feature from `propertiesArr` and value as boolean indicating the feature is enabled or not.\n */\nfunction getEnabledFeatures(propertiesArr: (keyof FieldDef)[], fieldDefs: FieldDef[]): FeatureMap {\n const featuresMap = {} as FeatureMap;\n propertiesArr.forEach(prop => {\n for (const element of fieldDefs) {\n const value = element[prop];\n if (value) {\n featuresMap[prop] = true;\n break;\n }\n }\n });\n return featuresMap;\n}\n\n/**\n * Memoizes a function, returning a memoized version that caches the result based on dependencies.\n *\n * The memoized function accepts two arguments: [arguments], [dependencies].\n * If dependencies are not provided explicitly, arguments are defaulted to dependencies.\n * If a compare function is passed as the last argument, it decides whether to return a memoized value or not.\n *\n * @param fn - The function to memoize.\n * @returns The memoized function.\n */\nexport function withMemoization<P extends any[], R>(\n fn: FunctionToBeMemoized<P, R>\n): MemoizedFunction<P, R> {\n let value: R;\n let before: any[];\n const sameAsBefore = (v: any, index: number) => {\n return v === before[index];\n };\n return function inner(\n this: ThisParameterType<FunctionToBeMemoized<P, R>>,\n ...args: MemoizedFunctionParameters<P>\n ) {\n // accepts two arguments ([arguments], [dependencies])\n // if dependencies are not provided explicitly, arguments are defaulted to dependencies\n const deps = args && (args[1] && typeof args[1] !== 'function' ? [...args[1]] : [...args[0]]);\n\n // if compare function is passed through, that will decide whether return a memoized value or not.\n const compareFunc = args && args[args.length - 1];\n if (compareFunc && typeof compareFunc === 'function') {\n if (!before || !compareFunc(before, deps)) value = fn.apply(this, [args[0]]);\n before = deps;\n } else if ((!deps || !deps.length) && !before) {\n before = [];\n value = fn.apply(this, [args[0]]);\n } else if (!before || deps.length !== before.length || !deps.every(sameAsBefore)) {\n before = deps;\n value = fn.apply(this, [args[0]]);\n }\n return value;\n };\n}\n\n/**\n * Picks specific properties from an object and returns a new object containing only those properties.\n * If the object is null or undefined, it returns undefined.\n *\n * @param obj - The source object from which properties are picked.\n * @param props - An array of property names to be picked from the object.\n * @returns A new object with only the picked properties, or `undefined` if the source object is null or undefined.\n */\nexport function pickProperties<T extends object, K extends keyof T>(\n obj: T | null | undefined,\n props: K[]\n): Pick<T, K> | undefined {\n if (!obj) {\n return undefined;\n }\n\n return props.reduce(\n (accumulator, prop) => {\n if (obj[prop] !== undefined) {\n accumulator[prop] = obj[prop];\n }\n return accumulator;\n },\n {} as Pick<T, K>\n );\n}\n\n// Storing the caching at module level so that all consumers of this function will get the cached values.\n// Since this function attaches the element on the document, it's assumed that the scrollbars styling is same on the document.\nlet previousWindowHeight = window.innerHeight;\nlet previousWindowWidth = window.innerWidth;\nlet cachedScrollBarWidth: number;\n\n/**\n * Returns the scrollbar width for a given browser/application.\n * @returns The scrollbar width in number.\n */\nexport function getScrollbarWidth(): number {\n if (\n previousWindowHeight === window.innerHeight &&\n previousWindowWidth === window.innerWidth &&\n cachedScrollBarWidth\n ) {\n return cachedScrollBarWidth;\n }\n\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n outer.parentNode?.removeChild(outer);\n\n previousWindowHeight = window.innerHeight;\n previousWindowWidth = window.innerWidth;\n\n cachedScrollBarWidth = scrollbarWidth;\n return scrollbarWidth;\n}\n\n/**\n * Performs a deep comparison between two values to determine if they are equal.\n * A wrapper on fast-deep-equal\n *\n * @param x - First item to compare\n * @param y - Second item to compare\n * @returns Deep comparison result\n */\nexport function deepEqual(x: any, y: any): boolean {\n return fastDeepEqual(x, y);\n}\n\n/**\n * Creates a deep copy of an object or array.\n *\n * This function recursively copies all properties and elements from the source object or array to a new object or array.\n *\n * @param oldObj - The object or array to be copied.\n * @returns A deep copy of the input object or array.\n */\nexport function deepCopy<T>(oldObj: T): T {\n let newObj = oldObj;\n if (oldObj && typeof oldObj === 'object') {\n newObj = Array.isArray(oldObj) ? ([] as unknown as T) : ({} as T);\n Object.keys(oldObj).forEach(i => {\n (newObj as any)[i] = deepCopy((oldObj as any)[i]);\n });\n }\n return newObj;\n}\n\n/**\n * Checks if the provided value is a function.\n *\n * @param obj - The value to be checked.\n * @returns `true` if the value is a function, `false` otherwise.\n */\nexport function isFunction(obj: any): boolean {\n return typeof obj === 'function';\n}\n\n/**\n * Checks if the provided value is a plain object.\n *\n * This function returns `true` if the value is an object that is not a function or an array.\n *\n * @param obj - The value to be checked.\n * @returns - `true` if the value is a plain object, `false` otherwise.\n */\nexport function isObject(obj: unknown): boolean {\n return obj === Object(obj) && !(isFunction(obj) || Array.isArray(obj));\n}\n\n/**\n * Checks if the provided value is empty.\n *\n * The value is considered empty if it is:\n * - `null` or `undefined`\n * - An array or string with length 0\n * - An object with no own properties.\n *\n * @param value - The value to be checked.\n * @returns - `true` if the value is empty, `false` otherwise.\n */\nexport function isEmpty(value: any): boolean {\n return (\n // null or undefined\n value === null ||\n value === undefined ||\n ((Array.isArray(value) || typeof value === 'string') && value.length === 0) ||\n // is an Object and has no keys\n (value.constructor === Object && Object.keys(value).length === 0)\n );\n}\n\n/**\n * Removes empty values from an array.\n *\n * This function recursively filters out empty values from the array. Empty values include:\n * - `null` or `undefined`\n * - Empty strings or arrays\n * - Empty objects\n *\n * @param arr - The array on which the empty values needs to be removed.\n * @returns - A new array with empty values removed.\n */\nexport function removeEmptyValues<T>(arr: T[]): DeepNonNullableArray<T>[] {\n return arr\n .map(item => (Array.isArray(item) ? removeEmptyValues(item) : item))\n .filter(\n t => (Array.isArray(t) && t.length) || (!Array.isArray(t) && t)\n ) as DeepNonNullableArray<T>[];\n}\n\n/* Start : APIs specific to condition builder */\n\n/**\n * Retrieves an array of fields on which a filter is applied. If a comparator is provided, the function returns only the fields that have the specified comparator applied in the `filterExpression`.\n *\n * @param params - The parameters for the method.\n * @param params.filterExpression - The filter expression used to determine which fields are included. For more details, see {@link State.filterExpression}.\n * @param params.comparator - An optional comparator. If provided, the function will filter fields that have this comparator in the filter expression.\n *\n * @returns An array of field names on which the filter is applied. If a comparator is specified, it returns only the fields that use that comparator.\n */\nexport function getFilters({ filterExpression, comparator = null }: FilterInfo): string[] {\n const filters: string[] = [];\n const { conditions } = splitConditionTree(filterExpression);\n Object.keys(conditions).forEach(key => {\n if (comparator) {\n /* If comparator is given find field with that comparator */\n if (conditions[key].comparator === comparator) {\n filters.push(conditions[key].lhs.field);\n }\n } else {\n filters.push(conditions[key].lhs.field);\n }\n });\n return filters;\n}\n\n/**\n * Retrieves all filter conditions from the provided `filterExpression`. If a `comparator` is provided,\n * only the filter conditions that match the given comparator will be collected.\n *\n * @param params Method arguments object.\n * @param params.filterExpression The filterExpression.\n * @param params.comparator An optional comparator to filter conditions by. If not provided, all conditions will be collected.\n *\n * @returns An array of filter conditions that match the specified criteria.\n */\nexport function getFilterConditions({ filterExpression, comparator = null }: FilterInfo) {\n const filters: LeafCondition[] = [];\n const { conditions } = splitConditionTree(filterExpression);\n Object.keys(conditions).forEach(key => {\n if (comparator) {\n /* If comparator is given find field with that comparator */\n if (conditions[key].comparator === comparator) {\n filters.push(conditions[key]);\n }\n } else {\n filters.push(conditions[key]);\n }\n });\n return filters;\n}\n\n/**\n Retrieves the filter properties for a specified column from the {@link State.filterExpression filterExpression} state as an array.\n * The returned array includes:\n * - The input values associated with the filter for the specified column.\n * - The comparator configured for the filter of that column.\n * - The leaf condition for that column within the {@link State.filterExpression filterExpression}.\n * - The entire {@link State.filterExpression filterExpression} object from the state.\n * @param column The column for which filter information is to be retrieved.\n */\n// returning filter initializer values for any type of filter\nexport function getFilterInitializers(column: Column): FilterInitializers | [] {\n if (!column) return [];\n const filterExpression = column?.getFilterProperties()?.filterExpression!;\n const filters = getFilterConditions({ filterExpression });\n const filter = filters.find(f => f.lhs?.field === column.field.name);\n const fInput = filter\n ? (\n filter.rhs as {\n value: string | number;\n }\n )?.value || (filter.rhs as { values: string[] | number[] })?.values\n : [];\n const fValue = filter\n ? (Object.keys(comparatorMap) as (keyof FilterConfig['comparatorMap'])[]).find(\n key => comparatorMap[key] === filter.comparator\n )\n : null;\n return [fInput, fValue, filter, filterExpression];\n}\n\n/**\n * Determines if filter is applied on the given `column` in the given `filterExpression`.\n * @param column\n * @param filterExpression\n * @returns true if filter is applied; otherwise false.\n */\nexport function isFilterApplied(column: Column, filterExpression: Condition): boolean {\n if (!column.field.id) {\n return false;\n }\n\n const fields = getFilters({\n filterExpression\n });\n return fields.includes(column.field.name);\n}\n\n/* AND condition with filter expression */\n/**\n * Prepares a filter expression for a given `column`, `comparator`, and `input`.\n * Returns the same filter expression or appends it to the given `filterExpression`.\n *\n * @param param - Method argument object.\n * @param param.filterExpression - Existing filter expression to which the new condition may be appended.\n * @param param.column - Column on which the filter is to be applied.\n * @param param.comparator - Comparator for the filter expression (e.g., equals, greater than).\n * @param param.input - List of possible values for the column on which the filter expression should be prepared. It can be a single value, an array of values, or null.\n * @returns A new filter expression or the modified existing filter expression. Returns null if the input is invalid based on the comparator.\n */\nexport function addFilter({\n filterExpression,\n column,\n comparator,\n input\n}: AddFilterParams): Condition | null {\n const filter: { condition: LeafCondition } = {} as { condition: LeafCondition };\n\n // We might need to refactor the way we are managing filters with comparators\n // Comparator needs to categorized based on no of operand and type of operand it needs\n // Making this fix to resolve BUG-640981\n if (\n (input === '' ||\n input === undefined ||\n input === null ||\n Number.isNaN(input) ||\n (Array.isArray(input) && !input.length)) &&\n comparator !== comparatorMap.isNull &&\n comparator !== comparatorMap.isNotNull &&\n comparator !== comparatorMap.isTrue &&\n comparator !== comparatorMap.isFalse\n ) {\n return null;\n }\n\n if (input === null || input === undefined) {\n filter.condition = {\n comparator,\n lhs: { field: column.field.name }\n };\n } else {\n const rhsFieldName = Array.isArray(input) ? 'values' : 'value';\n filter.condition = {\n comparator,\n lhs: { field: column.field.name },\n rhs: { [rhsFieldName]: input } as { value: string | number } | { values: string[] | number[] }\n };\n }\n\n /* if filter expression has conditions or operators */\n if (filterExpression && Object.keys(filterExpression).length > 0) {\n return { AND: [filter, filterExpression] };\n }\n return filter;\n}\n\n/* End : APIs specific to condition builder */\n\n/**\n * Retrieves the visible fields in the current view by considering the visible columns state.\n * This function also accounts for source columns from visible custom fields.\n *\n * @param fieldDefs - The {@link Meta.fieldDefs fieldDefs}.\n * @param visibleColumns - The list of {@link State.visibleColumns visibleColumns}.\n * @param customFields - The {@link State.customFields customFields}.\n * @returns The list of visible fields.\n */\nexport const getVisibileFields = (\n fieldDefs: FieldDef[] = [],\n visibleColumns: State['visibleColumns'] = [],\n customFields: State['customFields'] = []\n): FieldDef[] => {\n const fieldMap = fieldDefs.reduce<{ [key: string]: FieldDef }>((acc, field) => {\n acc[field.id] = field;\n return acc;\n }, {});\n const visibleFields = fieldDefs.filter(({ id }) => visibleColumns.includes(id));\n const fieldIdsFromCustomField = (customField: CustomField): string[] =>\n customField?.expression.filter(item => !Array.isArray(item)) as string[]; // taking all non template items\n const visibleUnderCustomFields = [\n ...new Set(\n customFields\n .filter(({ id }) => visibleColumns.includes(id)) // Only visible custom fields\n .map(field => fieldIdsFromCustomField(field))\n .flat() // flat the multiple custom field fieldIds\n ) // Getting unique fieldIds\n ]\n .filter(fieldId => !visibleColumns.includes(fieldId)) // taking only fields that are not already visible to avoid duplicates\n .map(fieldId => fieldMap[fieldId])\n .filter(field => Boolean(field));\n return [...visibleFields, ...visibleUnderCustomFields];\n};\n\n/**\n * Retrieves the data of the closest row to the `targetElement` from the view {@link View.data data}.\n *\n * This function is useful for scenarios where you need to determine the row data related to a specific DOM element.\n * It searches through the provided data and pagination options to find the row that is closest to the given target element.\n *\n * @param data - The data of the view containing all row entries.\n * @param paginationOptions - The {@link State.paginationOptions pagination options}\n * @param targetElement - The target element for which the closest row data is required.\n *\n * @returns - The data of the closest row element to the target element.\n */\nexport const getRowContextData = (\n data: RowData[],\n paginationOptions: NonNullable<State['paginationOptions']>,\n targetElement: HTMLElement\n): RowData => {\n // get nearest row to target element.\n const row = targetElement.closest('[role=\"row\"]');\n // use aria-rowindex as data-index is added for group header as well\n // which is misaligned with the data object indexes.\n const ariaRowIndex = Number(row?.getAttribute('aria-rowindex')) - 1;\n\n // get starting index in pagination option\n // TODO why reduce is required with initial value as null. This can be refactored.\n const offset = Object.values(paginationOptions).reduce<null | number>((acc, { startIndex }) => {\n if (acc === null || acc < startIndex) {\n return startIndex;\n }\n return acc;\n }, null);\n return data[ariaRowIndex - offset!];\n};\n\n/**\n * Compares two objects to determine if they are equal based on the specified properties.\n * If no properties are specified, it compares all properties.\n *\n * @param t1 - The first object to compare.\n * @param t2 - The second object to compare.\n * @param props - An optional array of property names to compare. If null, all properties are compared.\n * @returns A boolean indicating whether the objects are equal.\n */\nexport function compareObjects<T extends { [key in keyof T]: unknown }>(\n t1: T,\n t2: T,\n props: (keyof T)[] | null = null\n): boolean {\n if (!props && Object.keys(t1).length !== Object.keys(t2).length) return false;\n return (props || Object.keys(t1)).every(k => {\n const key = k as keyof T;\n const ty1 = Object.prototype.toString.call(t1[key]);\n const ty2 = Object.prototype.toString.call(t2[key]);\n if (ty1 !== ty2) return false;\n\n if (ty1 === '[object Array]')\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return compareArray(t1[key] as unknown[], t2[key] as unknown[], null);\n if (ty1 === '[object Object]') return compareObjects(t1[key], t2[key], null);\n return t2[key] === t1[key];\n });\n}\n\n/**\n * Compares two arrays for equality, considering nested arrays and objects.\n * If both arrays are equal, it returns true; otherwise, it returns false.\n *\n * @param t1 - The first array to compare.\n * @param t2 - The second array to compare.\n * @param props - Additional properties for comparison (currently unused).\n * @returns `true` if the arrays are equal, `false` otherwise.\n */\n// TODO props is never used.\nexport function compareArray<T extends unknown>(t1: T[], t2: T[], props = null): boolean {\n if (t1 === t2) return true;\n if (t1?.length !== t2?.length) return false;\n return t1?.every((val, i) => {\n const ty1 = Object.prototype.toString.call(val);\n const ty2 = Object.prototype.toString.call(t2?.[i]);\n if (ty1 === ty2) {\n if (ty1 === '[object Array]') return compareArray(val as any[], t2?.[i] as any[], props);\n if (ty1 === '[object Object]') return compareObjects(val, t2?.[i], props);\n return val === t2?.[i];\n }\n return false;\n });\n}\n\n/**\n * calculates the hash for the given string\n * @param string for which hash to be calculated\n * @returns calculated hash\n */\nexport function generateHash(string: string): number {\n let hash = 0;\n for (let charIdx = 0; charIdx < string.length; charIdx += 1) {\n // eslint-disable-next-line no-bitwise\n hash = (Math.imul(31, hash) + string.charCodeAt(charIdx)) | 0;\n }\n return hash;\n}\n\n/**\n * Updates the Meta settings based on the provided field definitions and default configuration.\n *\n * This function performs the following operations:\n *\n * - Computes the value for feature flags such as {@link Meta.freezeFields freezeFields} and {@link Meta.editable editable}\n * based on the values in `FieldDef`. If any of the `FieldDef` entries have the flag enabled, the flag is enabled for `Meta` as well.\n * - Sets the {@link Meta.locale locale} in `Meta` from the document's language attribute.\n * - Sets the values of other keys in `Meta` using {@link defaultConfig}, if they are not already set.\n *\n * @param meta - The RS meta object.\n * @param defaultConfig - The default configuration object used to set default values in `Meta`.\n */\nfunction updateMetaSettings(meta: Meta, defaultConfig: DefaultConfigType): void {\n // Deduce freezeField global setting from within the fields\n const featureMap = getEnabledFeatures(['freeze', 'editable'], meta.fieldDefs);\n if (featureMap.freeze) {\n meta.freezeFields = true;\n }\n\n if (featureMap.editable) {\n meta.editable = true;\n }\n\n // Setting locale value for localisation\n if (!meta.locale) {\n const htmlLang = document.documentElement.lang;\n meta.locale = htmlLang.split('-')[1] ? htmlLang : defaultConfig.locale;\n }\n const properties: DefaultConfigKeys[] = Object.keys(defaultConfig) as DefaultConfigKeys[];\n properties.forEach(key => {\n if (meta[key] === undefined || meta[key] === null) {\n // is null check required or consumers want that?\n // @ts-expect-error\n meta[key] = defaultConfig[key];\n }\n });\n}\n\nconst prepareDefaultFieldConfig = (\n defaultFieldConfig: NonNullable<DefaultConfigType['defaultFieldDef']>,\n field: FieldDef\n) => {\n return Object.fromEntries(\n Object.entries(defaultFieldConfig).map(([key, value]) => {\n // By default, sorting, filtering and grouping should be disabled for object type fields.\n if (UNSUPPORTED_OBJECT_TYPE_FIELD_ANALYTICAL_FEATURES.includes(key)) {\n value = field.type !== FieldType.OBJECT;\n }\n\n // By default, aggregation is supported only for number and currency type fields\n if (key === 'aggregation') {\n value = field.type === FieldType.NUMBER || field.type === FieldType.CURRENCY;\n }\n\n // By default, only text and URL type fields are searchable via global search.\n if (key === 'searchable') {\n value = field.type === FieldType.TEXT || field.type === FieldType.URL;\n }\n\n return [key, value];\n })\n );\n};\n\nexport function isCustomGroupingSupported(\n fieldType: FieldDef['type'] | undefined,\n customGrouping: FieldDef['customGrouping'] | Group['customFunction'],\n template?: Meta['template']\n): boolean {\n const isTextCustomGrouping =\n fieldType === FieldType.TEXT && customGrouping?.type === 'TEXT_GROUPING';\n const isNumericCustomGrouping =\n (fieldType === FieldType.NUMBER || fieldType === FieldType.CURRENCY) &&\n (customGrouping?.type === 'RANGE_GROUPING' || customGrouping?.type === 'INTERVAL_GROUPING');\n\n return (\n isTextCustomGrouping ||\n (template !== REPEATING_STRUCTURE_TEMPLATES.KANBAN && isNumericCustomGrouping)\n );\n}\n\nfunction sanitizeFieldDef(field: FieldDef, template?: Meta['template']): void {\n if (\n field.customGrouping &&\n !isCustomGroupingSupported(field.type, field.customGrouping, template)\n ) {\n delete field.customGrouping;\n }\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.KANBAN) {\n delete field.groupedDateFunction;\n delete field.groupedAdditionalFields;\n }\n}\n\n/**\n * Normalizes the {@link FieldDef} with {@link defaultFieldDef defaultFieldDef config} if not already set.\n *\n * @param field The fieldDef object\n * @param defaultFieldDef The default config of the FieldDef.\n *\n * @returns The normalized fieldDef object with the updated configurations.\n */\nexport function normalizeFieldDef(\n field: FieldDef,\n defaultFieldDef: NonNullable<DefaultConfigType['defaultFieldDef']>,\n template?: Meta['template']\n): void {\n const properties: DefaultFieldDefKeys[] = Object.keys(defaultFieldDef) as DefaultFieldDefKeys[];\n field.idHash = generateHash(field.id);\n\n properties.forEach((prop: DefaultFieldDefKeys) => {\n // @ts-expect-error Type 'number | boolean' is not assignable to type 'undefined'. Type 'number' is not assignable to type 'undefined'. Check this.\n field[prop] = field[prop] ?? defaultFieldDef[prop];\n if (prop === 'autosize' && field.width) {\n field[prop] = false;\n }\n });\n\n // Assign filters to each field based on their types\n if (field.filterPickList) {\n field.filterParams = structuredClone(filterParams.pickList);\n // @ts-expect-error Property 'Date' does not exist on type filterParams. Even if there is a check ```field.type in filterParams```, typescript is still complaining.\n } else if (field.type in filterParams && filterParams[field.type]) {\n // @ts-expect-error Property 'Date' does not exist on type filterParams. Even if there is a check ```field.type in filterParams```, typescript is still complaining.\n field.filterParams = structuredClone(filterParams[field.type]);\n } else {\n field.filterParams = undefined;\n }\n\n sanitizeFieldDef(field, template);\n}\n\n/**\n * Normalizes the RS meta with the {@link defaultConfig default configuration} if not already set:\n * - Updates the {@link Meta.minheight minHeight} option from the {@link defaultConfig}.\n * - Adds a comparatorMap to the meta.\n * - Updates keys of individual FieldDef with {@link DefaultConfigType.defaultFieldDef defaultFieldDef} from {@link defaultConfig}.\n * - Enables/Disables feature flags (e.g. {@link Meta.freezeFields freezeFields} and {@link Meta.editable editable}) in RS meta by considering the values of feature flags from fieldDef or its values in defaultConfig.\n *\n * @param _meta - The RS meta object.\n * @param defaultConfig - The default configuration object containing the default settings to be used.\n * @returns The normalized RS meta object with the updated configurations.\n */\nexport function normalizeMeta(\n _meta: Meta & { isPreset?: boolean },\n defaultConfig: DefaultConfigType\n): Meta {\n const { height, ...restMeta } = _meta;\n const meta = deepCopy<Meta>(restMeta);\n meta.height = { ...height };\n meta.comparatorMap = comparatorMap;\n meta.height.minHeight = meta.height.minHeight ?? defaultConfig.height.minHeight;\n\n // Handle if fieldDefs is null or undefined\n meta.fieldDefs = meta.fieldDefs ?? [];\n meta.fieldDefs.forEach((column: FieldDef) => {\n normalizeFieldDef(\n column,\n {\n ...prepareDefaultFieldConfig(defaultConfig.defaultFieldDef, column),\n /*\n TODO: Deprecation - The defaultFieldDef in meta is no longer necessary and is not utilized by any consumers.\n - Consumers should provide the exact fieldDef configuration instead of relying on explicit defaults in meta.\n - Only the in-house defaultFieldDef from `defaultConfig.defaultFieldDef` will be honored.\n */\n ...meta.defaultFieldDef\n },\n meta.template\n );\n });\n updateMetaSettings(meta, defaultConfig);\n return meta;\n}\n\n/**\n * Removes entries from the given object that have null, undefined, or empty object as values.\n * This function mutates the original object by deleting properties that are either null, undefined,\n * or objects with does not have own properties.\n *\n * @param obj - The object from which empty entries should be removed.\n * @returns void\n */\nexport function removeEmptyValuesFromObject(obj: GenericObject): void {\n if (!obj) return;\n const propNames = Object.getOwnPropertyNames(obj);\n for (const element of propNames) {\n const propName = element;\n if (\n obj[propName] === null ||\n obj[propName] === undefined ||\n !Object.keys(obj[propName] as GenericObject).length\n ) {\n delete obj[propName];\n }\n }\n}\n\n/**\n * Retrieves the scrollable element of the virtualizer, i.e. parent container.\n * from the {@link View.virtualizeElements virtualizeElements} property of the provided {@link view} and,\n * if available, returns the parent container of the root virtualizer.\n * @param view The {@link View} object.\n * @returns The scrollable element, if it exists. Otherwise, returns undefined.\n */\nexport const getScrollerElem = (view: View): HTMLElement | undefined => {\n const { virtualizeElements } = view;\n let scrollerElem;\n if (virtualizeElements && !isEmpty(virtualizeElements?.rootVirtualiser)) {\n scrollerElem = virtualizeElements?.rootVirtualiser?.getParentContainer?.();\n }\n return scrollerElem;\n};\n\nexport const dateFunctionLabels = {\n YEARS: 'Year',\n QUARTERS: 'Quarter',\n MONTHS: 'Month',\n WEEKS: 'Week',\n DAYS: 'Day',\n HOURS: 'Hour',\n MINUTES: 'Minute',\n SECONDS: 'Second',\n MONTHS_OF_YEAR: 'Month of year',\n DAYS_OF_MONTH: 'Day of month',\n DAYS_OF_WEEK: 'Day of week',\n HOURS_OF_DAY: 'Hour of day'\n};\n\n/**\n * Retrieves the valid externalState keys from RS {@link Meta}.\n *\n * Supported external state keys:\n * - Value of {@link Meta.externalFilters externalFilters} in Meta.\n *\n * @param tableMeta RS Meta\n * @returns Array of valid externalState keys.\n */\nexport function getExternalStateKeys(tableMeta: Meta): string[] {\n const externalStateKeys: string[] = [];\n if (tableMeta[EXTERNAL_FILTERS]) {\n externalStateKeys.push(tableMeta[EXTERNAL_FILTERS]);\n }\n return externalStateKeys;\n}\n\n/**\n * Validates the payload for {@link ActionTypes.SET_IN_EXTERNAL_STATE setInExternalState} action.\n *\n * @param payload The payload for {@link ActionTypes.SET_IN_EXTERNAL_STATE setInExternalState} action.\n * @param externalStateKeys An array of valid {@link State.externalState external state} keys.\n *\n * @returns void\n *\n * @throws {Error} if validation fails.\n */\nfunction validateExternalStateAction(\n payload: NonNullable<State['externalState']>,\n externalStateKeys?: string[]\n): void {\n if (!isObject(payload)) {\n throw Error(\n `payload for action ${ActionTypes.SET_IN_EXTERNAL_STATE} should be of object type only.`\n );\n }\n const payloadKeys = Object.keys(payload);\n if (payloadKeys.length !== 1) {\n throw Error(\n `payload object for action ${ActionTypes.SET_IN_EXTERNAL_STATE} should contain exactly one key.`\n );\n }\n if (!externalStateKeys?.includes(payloadKeys[0])) {\n throw Error(\n `The key '${payloadKeys[0]}' in the payload object for action ${ActionTypes.SET_IN_EXTERNAL_STATE} is invalid.`\n );\n }\n}\n\nconst validateRefreshNotificationAction = (payload: RefreshNotificationForConsumer) => {\n const isValidPayload =\n isObject(payload) && hasProp(payload, 'message') && hasProp(payload, 'refreshActionLabel');\n\n if (!isValidPayload) {\n throw Error(\n `payload for action ${ActionTypes.NOTIFY_DATA_REFRESH} should be an object with 'message' and 'refreshActionLabel' properties.`\n );\n }\n};\n\n/**\n * Validates an action by ensuring that the provided payload is supported for the given action type.\n * This function checks if the action and payload match the supported actions.\n *\n * @param action - The action to be validated.\n * @param payload - The payload associated with the action. The payload must confirm to the expected structure for the given action.\n * @param externalStateKeys - An array of valid {@link State.externalState external state} keys.\n *\n * @returns void\n *\n * @throws {Error} if validation fails.\n */\nexport function validateAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T],\n externalStateKeys?: string[]\n): void {\n switch (action) {\n case ActionTypes.UPDATE_DEBUG_INFO:\n case ActionTypes.TOGGLE_REQUIRED:\n case ActionTypes.USER_CONFIRMATION_ACTION:\n if (!isObject(payload)) {\n throw Error(`payload for action ${action} should be of object type only!`);\n }\n break;\n\n case ActionTypes.TOGGLE_DISABLE_SELECTION:\n if (typeof payload !== 'boolean')\n throw Error(`payload for action ${action} should be of type boolean only!`);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n validateRefreshNotificationAction(payload as RefreshNotificationForConsumer);\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n if (typeof payload !== 'undefined') {\n throw Error(`No payload is required for action ${action}`);\n }\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n validateExternalStateAction(\n payload as NonNullable<State['externalState']>,\n externalStateKeys\n );\n break;\n case ActionTypes.SET_WARNING_MESSAGES:\n break;\n default:\n throw Error(`Action ${action} is not supported!`);\n }\n}\n\n/**\n * Retrieves the default preset ID from all personalizations.\n * @param stateAllPersonalization\n * @returns The id of the default preset if found, otherwise `undefined`.\n */\nexport function getDefaultPresetIdFromStatePersonalisation(\n stateAllPersonalization: Personalization['allPersonalizations'] = {}\n): string | undefined {\n return Object.keys(stateAllPersonalization).find(\n item => stateAllPersonalization[item].isDefaultPreset\n );\n}\n\n/** Determines if the given {@link array} contains any duplicate elements.\n * @param array The array to be checked for duplicate elements.\n * @returns Returns `true` if duplicates are found, otherwise returns `false`.\n */\nexport function hasDuplicates<T>(array?: T[]): boolean {\n return !!(array && new Set<T>(array).size !== array.length);\n}\n\n/**\n * Creates a passable promise, which is an array containing a promise object, and its corresponding resolve and reject functions.\n *\n * @returns An array where:\n * - The first element is the created promise.\n * - The second element is the resolve function for the promise.\n * - The third element is the reject function for the promise.\n */\nexport function passablePromise<T>(): PassablePromise<T> {\n let resolveRef!: PassablePromise<T>[1];\n let rejectRef!: PassablePromise<T>[2];\n const promise = new Promise<T>((resolve, reject) => {\n resolveRef = resolve;\n rejectRef = reject;\n });\n return [promise, resolveRef, rejectRef];\n}\n\n/**\n * Determines if the filter criteria has changed in the latest state compared to the previous state.\n *\n * This function checks the following state keys to determine changes:\n * - {@link State.filterExpression filterExpression}\n * - {@link State.search search}\n * - The value of {@link Meta.externalFilters external filters} in {@link State.externalState externalState}\n *\n * @param meta - The RS meta object.\n * @param previousState - The previous state object to compare against.\n * @param latestState - The latest state object to check for changes.\n * @returns Returns true if the filter criteria has changed; otherwise, returns false.\n */\nexport function isFilterCriteriaChanged(\n meta: Meta,\n previousState: State,\n latestState: State\n): boolean {\n const { filterExpression, search: { query } = {}, externalState } = latestState;\n const {\n filterExpression: previousFilterExpression,\n search: { query: previousQuery } = {},\n externalState: previousExternalState\n } = previousState;\n\n const searchChanged = () => query !== previousQuery;\n const filterExpressionChanged = () => !deepEqual(previousFilterExpression, filterExpression);\n const externalFilterChanged = () =>\n meta?.externalFilters &&\n !deepEqual(\n previousExternalState?.[meta?.externalFilters],\n externalState?.[meta?.externalFilters]\n );\n\n return !!(searchChanged() || filterExpressionChanged() || externalFilterChanged());\n}\n\n/**\n * Calculates the overlapping area from given {@link previousIndexes} and {@link newIndexes}.\n * @param previousIndexes\n * @param newIndexes\n * @returns A number indicating the overlapping area.\n */\nexport function getOverlappingIndexes(\n previousIndexes: PaginationPayload = {} as PaginationPayload,\n newIndexes: PaginationPayload = {} as PaginationPayload\n): number {\n const { startIndex: previousStartIndex, endIndex: previousEndIndex } = previousIndexes;\n const { startIndex: latestStartIndex, endIndex: latestEndIndex } = newIndexes;\n\n if (previousEndIndex < latestStartIndex || latestEndIndex < previousStartIndex) {\n return 0;\n }\n\n const overlapStartIndex = Math.max(previousStartIndex, latestStartIndex);\n const overlapEndIndex = Math.min(previousEndIndex, latestEndIndex);\n const overlapArea = overlapEndIndex - overlapStartIndex;\n\n if (overlapArea <= 0) {\n return 0;\n }\n\n return overlapArea;\n}\n\n/**\n * Determines whether the given {@link action} already exists in {@link latestActions} by comparing its type and payload.\n * @param action\n * @param latestActions\n * @returns true if the {@link action} exists in the {@link latestActions} otherwise false.\n */\n// TODO This is some what same as isStaleAction. Revisit both the methods.\nexport function isSameActionPresent(\n action: Action,\n latestActions: Map<ActionType, Action>\n): boolean {\n const { type: actionType } = action;\n const existingAction = latestActions.get(actionType);\n return (\n !!existingAction &&\n 'payload' in action &&\n 'payload' in existingAction &&\n deepEqual(existingAction.payload, action.payload)\n );\n}\n\n/**\n * Removes actions from the {@link latestActions} that have already been executed and are present in the {@link executedActionsQueue}.\n * This function ensures that only pending actions remain in the {@link latestActions}.\n * @param latestActions\n * @param executedActionsQueue\n */\nexport function clearProcessedActionsFromLatestActions(\n latestActions: Map<ActionType, Action>,\n executedActionsQueue: Action[]\n): void {\n executedActionsQueue.forEach(executedAction => {\n if (isSameActionPresent(executedAction, latestActions)) {\n latestActions.delete(executedAction.type);\n }\n });\n}\n\n/**\n * Determines whether the given {@link action} already exists in {@link latestActions} by comparing its type and payload.\n * @returns\n * - false if {@link action} does not already exists.\n * - false if {@link action} already exists and payload matches\n * - true if {@link action} already exists but payload does not match.\n */\n// TODO revisit this method again. It is not checking only for stale actions.\nexport function isStaleAction(action: Action, latestActions: Map<ActionType, Action>): boolean {\n const { type: actionType } = action;\n const existingAction = latestActions.get(actionType);\n return (\n !!existingAction &&\n 'payload' in action &&\n 'payload' in existingAction &&\n // TODO why ! is added in front of deepEqual. Ideally for an existing action if the payload is exactly same then it should be marked as stale.\n !deepEqual(existingAction.payload, action.payload)\n );\n}\n\n/**\n * Determines if the overlapping area of pagination indexes between the old and new pagination payloads in current queue is less than 50%.\n * This function helps determine if a significant portion of the pagination area has changed due to recent actions.\n *\n * For detailed usage and examples, refer [pagination-action-optimizations.md](../../../docs/pagination-action-optimizations.md).\n * @param latestActions - A map of the latest actions being executed in the queue, which may include pagination actions.\n * @param previousExecutedActionQueue - The queue of previously executed actions.\n * @returns Returns true if the overlapping area is less than 50%, otherwise returns false.\n */\nexport function isSignificantPaginationOverlap(\n latestActions: Map<ActionType, Action>,\n previousExecutedActionQueue: Action[]\n): boolean {\n const lastExecutedPaginationActionIndex = previousExecutedActionQueue\n .map(action => action.type)\n .lastIndexOf(ActionTypes.PAGINATE);\n if (!latestActions.has(ActionTypes.PAGINATE) || lastExecutedPaginationActionIndex < 0)\n return false;\n\n const lastExecutedPaginationPayload = (\n previousExecutedActionQueue[lastExecutedPaginationActionIndex] as PaginateAction\n ).payload;\n const latestPaginatePayload = (latestActions.get(ActionTypes.PAGINATE) as PaginateAction).payload;\n\n const overlappingIndexes = getOverlappingIndexes(\n lastExecutedPaginationPayload,\n latestPaginatePayload\n );\n const { startIndex, endIndex } = latestPaginatePayload;\n // if the api response matches at least 50% with the latest pagination size, we can use that to display some rows until the next set of rows arrive\n return !(overlappingIndexes >= (endIndex - startIndex) * 0.5);\n}\n\n/**\n * Returns a unique key for a given group.\n * @param group\n */\nexport const getGroupKey = (group: Group): string => {\n if (group.dateFunction) {\n return `${group.columnId}${groupBySeparator}${group.dateFunction}`;\n }\n\n if (group.customFunction) {\n return `${group.columnId}${groupBySeparator}${group.customFunction.type}${groupBySeparator}${group.customFunction.id}`;\n }\n return group.columnId;\n};\n\n/**\n * Returns {@link Group group information} from {@link Group groups} based on {@link groupBy} key\n * @param groupBy - unique key for a given group\n * @param groups - groups info from table state\n * @returns matched group\n */\nexport const getGroupFromKey = (groupBy: string, groups: State['groups']): Group | undefined => {\n return groups?.find(group => {\n return getGroupKey(group) === groupBy;\n });\n};\n\n/**\n * Determines whether the view uses the Kanban template (its level-0 group is the board lane).\n * The lane's presence at runtime is checked separately via `state.groups[0]`, so this predicate\n * intentionally reads only the template — it must stay valid before hydration seeds the lane.\n * @param meta - View metadata.\n * @returns Whether the view is a Kanban board.\n */\nexport const isKanbanTemplate = (meta: Meta | undefined): boolean => {\n return meta?.template === REPEATING_STRUCTURE_TEMPLATES.KANBAN;\n};\n\n/**\n * Checks if the column widths have been calculated.\n *\n * @returns True if the column widths have been calculated; otherwise, false.\n */\nexport const areColumnWidthsCalculated = (columnWidths: State['columnWidths']): boolean => {\n if (!columnWidths || isEmpty(columnWidths)) return false;\n const keys = Object.keys(columnWidths);\n // TODO why only rowDragDropcolumn is excluded from OOTB columns set, why not other OOTB columns ?\n return !(keys.length === 1 && keys[0] === rowDragDropColumnMeta.field.id);\n};\n\n// TODO: temporary method, till meta.dragHandle is completely removed(currently deprecated).\nexport const isRowReorderFieldEnabled = (meta: Meta): boolean => {\n return meta.dragHandle || !!meta.rowReorderField;\n};\n\n/**\n * Determines whether the row reorder field is visible.\n *\n * @param meta - View meta containing row reorder field configuration.\n * @returns `true` if the row reorder field is visible; otherwise falls back to the deprecated `dragHandle`.\n */\nexport const isRowReorderFieldVisible = (meta: Meta): boolean => {\n return meta.rowReorderField ? !!meta.rowReorderField.show : !!meta.dragHandle;\n};\n\n/**\n * Determines whether the row error field is visible.\n *\n * @param meta - View meta containing row error field configuration.\n * @returns `true` if the row error field is visible; otherwise falls back to the deprecated `showErrorField`.\n */\nexport const isRowErrorFieldVisible = (meta: Meta): boolean => {\n return meta.rowErrorField ? !!meta.rowErrorField.show : !!meta.showErrorField;\n};\n\n// TODO: temporary method, till meta.showErrorField is completely removed(currently deprecated).\nexport const isRowErrorFieldEnabled = (meta: Meta): boolean => {\n return meta.showErrorField || !!meta.rowErrorField;\n};\n\n/**\n * Returns the {@link StyleFormat} for a given {@link styleFormatId} from {@link View.styleFormats}\n * @param styleFormatId\n * @param styleFormats\n * @returns StyleFormat or `undefined`\n */\nconst getStyleFormat = (\n styleFormatId: string,\n styleFormats: NonNullable<View['styleFormats']>\n): StyleFormat | undefined => {\n return styleFormats.find(styleFormat => styleFormat.id === styleFormatId);\n};\n\n/**\n * Evaluates the style format applicable to a cell based on {@link Column.getExecutionContext current execution context} and {@link Column.conditionalStyleFormats conditionalStyleFormats}\n * @param column Column on which styles need to be evaluated.\n * @param rsInternal RsInternal object\n * @returns - {@link StyleFormat} or `undefined\n */\nexport const evaluateStyleFormatForCell = (\n column: Column,\n rsInternal: RsInternal\n): StyleFormat | undefined => {\n const { conditionalStyleFormats } = column;\n const { getRsProps, getRsStateResolver, getView } = rsInternal;\n const { apiContext } = getRsProps();\n const { meta } = getView();\n const { getState } = getRsStateResolver();\n const data = column.getExecutionContext()?.getValue?.();\n\n if (!data || !conditionalStyleFormats) return;\n\n const firstMatchingStyleFormat = conditionalStyleFormats.find(({ condition }) =>\n apiContext.evaluateCondition\n ? apiContext.evaluateCondition(getState(), meta, { condition, data })\n : evaluateConditionLocally(meta, { condition, data })\n );\n\n return (\n firstMatchingStyleFormat &&\n getStyleFormat(firstMatchingStyleFormat.styleFormatId, column.parent.styleFormats!)\n );\n};\n\nexport const isRowSelectFieldEnabled = (meta: Meta): boolean => {\n const { selectionMode, template } = meta;\n return !!(\n selectionMode &&\n SELECTION_MODES[selectionMode] &&\n !(template === TEMPLATES.GALLERY && selectionMode === SELECTION_MODES.multi_on_hover) &&\n template !== TEMPLATES.TIMELINE\n );\n};\n\nexport const isActionConfig = (\n action: Meta['editing'] | Meta['deleting']\n): action is NonNullable<ExcludeStrict<Meta['editing'] | Meta['deleting'], boolean>> => {\n return !!action && typeof action === 'object' && 'placement' in action;\n};\n\nexport const isDeletingColumnPlacement = (meta: Meta): boolean => {\n if (isActionConfig(meta.deleting)) {\n return meta.deleting.placement === ActionColumnPlacement.COLUMN;\n }\n return false;\n};\n\nexport const isRowDeleteFieldEnabled = (meta: Meta): boolean => {\n return !!meta.deleting && isDeletingColumnPlacement(meta);\n};\n\nexport const isRowDeleteFieldVisible = (meta: Meta): boolean => {\n if (isActionConfig(meta.deleting)) {\n return meta.deleting.placement === ActionColumnPlacement.COLUMN && !!meta.deleting.show;\n }\n\n return !!meta.deleting;\n};\n\n// Compatibility alias for existing call sites.\nexport const isRowActionFieldEnabled = (meta: Meta): boolean => {\n const isEditingEnabled = isActionConfig(meta.editing)\n ? meta.editing.placement === ActionColumnPlacement.MENU\n : !!meta.editing;\n const isDeletingEnabled = isActionConfig(meta.deleting)\n ? meta.deleting.placement === ActionColumnPlacement.MENU\n : false;\n return isEditingEnabled || isDeletingEnabled;\n};\n\nexport const isFreezingEnabled = (meta: Meta): boolean => {\n return (\n meta.freezeFields ||\n isRowErrorFieldEnabled(meta) ||\n isRowReorderFieldEnabled(meta) ||\n isRowSelectFieldEnabled(meta)\n );\n};\n\n/**\n * Derives visible column IDs from fieldDefs by excluding hidden columns.\n *\n * @param meta - View meta containing fieldDefs.\n * @param hiddenColumns - Array of hidden column IDs.\n * @returns Array of visible column IDs.\n */\nexport function getVisibleColumnsFromHidden(\n meta: Meta,\n hiddenColumns: State['hiddenColumns']\n): string[] {\n return meta.fieldDefs\n .filter(fieldDef => !hiddenColumns?.includes(fieldDef.id))\n .map(fieldDef => fieldDef.id);\n}\n\n/**\n * Derives hidden column IDs from fieldDefs by excluding visible columns.\n *\n * @param meta - View meta containing fieldDefs.\n * @param visibleColumns - Array of visible column IDs.\n * @returns Array of hidden column IDs.\n */\nexport function getHiddenColumnsFromVisible(\n meta: Meta,\n visibleColumns: State['visibleColumns'] = [],\n hiddenColumns: State['hiddenColumns'] = []\n): string[] {\n const fieldDefIds = new Set(meta.fieldDefs.map(({ id }) => id));\n const hiddenColumnsOutsideMeta = hiddenColumns.filter(\n id => !fieldDefIds.has(id) && !visibleColumns.includes(id)\n );\n return [\n ...hiddenColumnsOutsideMeta,\n ...meta.fieldDefs\n .filter(fieldDef => !visibleColumns.includes(fieldDef.id))\n .map(fieldDef => fieldDef.id)\n ];\n}\n\n/**\n * Derives visible column IDs from fieldDefs where show is true.\n *\n * @param meta - View meta containing fieldDefs.\n * @returns Array of visible column IDs.\n */\nexport function getVisibleColumnsFromFieldDefs(meta: Meta): string[] {\n return meta.fieldDefs.filter(fieldDef => fieldDef.show).map(fieldDef => fieldDef.id);\n}\n\nexport const isTranslationKey = (key: string): key is keyof typeof defaultTranslations =>\n key in defaultTranslations;\n\n/**\n * Translates a label if it is a known translation key, otherwise returns it as-is.\n *\n * @param label - The label string to translate.\n * @param translate - The translation function from the RS store.\n */\nexport const translateLabel = (\n label: string,\n translate: (key: keyof typeof defaultTranslations) => string\n): string => (isTranslationKey(label) ? translate(label) : label);\n\n/**\n * Returns true if a column should still be created for the given fieldDef\n * even when the field is not visible (`show = false`).\n *\n * This happens when the field is required by the current template configuration\n * (e.g., Timeline, Gallery, Map) or when it is marked as a row header.\n *\n * TODO: Refactor, move template-field resolution into the RS layer (e.g. `useRepeat`).\n */\nexport const shouldCreateColumnForField = (meta: Meta, fieldDef: FieldDef): boolean => {\n if (fieldDef.show || fieldDef.isRowHeader) return true;\n\n const template = meta.template;\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE) {\n const { timelineFields = {} } = meta;\n\n const referenceNames = [\n timelineFields.title?.name,\n timelineFields.date?.name,\n timelineFields.content?.name,\n timelineFields.status?.name,\n timelineFields.icon?.name\n ].filter(Boolean);\n\n return referenceNames.includes(fieldDef.name);\n }\n\n if (\n template === REPEATING_STRUCTURE_TEMPLATES.GALLERY ||\n template === REPEATING_STRUCTURE_TEMPLATES.KANBAN\n ) {\n const cardConfig =\n template === REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ? { ...meta.galleryConfig, ...meta.cardConfig }\n : meta.cardConfig ?? {};\n\n const referenceIds = [\n cardConfig.header?.field,\n cardConfig.heroImage?.source?.field,\n cardConfig.heroImage?.altText && 'field' in cardConfig.heroImage.altText\n ? cardConfig.heroImage.altText.field\n : undefined,\n cardConfig.tile?.foregroundColor?.field,\n cardConfig.tile?.backgroundColor?.field,\n cardConfig.tile?.iconName?.field,\n cardConfig.tile?.text?.field,\n ...(cardConfig.subHeadings?.map(({ field }) => field) ?? [])\n ].filter(Boolean);\n\n return referenceIds.includes(fieldDef.id);\n }\n\n if (template === REPEATING_STRUCTURE_TEMPLATES.MAP) {\n const { mapFieldIds = {} } = meta;\n\n const referenceIds = [mapFieldIds.location, mapFieldIds.label, mapFieldIds.content].filter(\n Boolean\n );\n\n return referenceIds.includes(fieldDef.id);\n }\n\n return false;\n};\n"]}
@@ -382,6 +382,10 @@ export interface FieldDef {
382
382
  * @default false (except when the field type is "text", where it defaults to true)
383
383
  */
384
384
  searchable?: boolean;
385
+ /**
386
+ * Optional field whose property is used when matching this field against a global search query.
387
+ */
388
+ searchProperty?: FieldReference;
385
389
  }
386
390
  export declare const ROW_DENSITY: {
387
391
  readonly SHORT: "1";
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.types.d.ts","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Meta.types.d.ts","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.types.js","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAgDX,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,WAAW;IACtB,iEAAiE;IACjE,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAyDX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,EAAE,kBAAkB;CAC9B,CAAC;AAmQX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;CACT,CAAC;AAOX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,gBAAgB;CACxB,CAAC","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { Condition, DateFunctionsByType } from '@pega/cosmos-react-condition-builder';\nimport type { DateFunction } from '@pega/cosmos-react-condition-builder/lib/components/ConditionBuilder/core/types';\nimport type { HeadingTag, ImageSize, OmitStrict, StatusProps } from '@pega/cosmos-react-core';\n\nimport type { FilterConfig } from '../src/core/config/filterConfig';\nimport type Row from '../src/core/generators/RowGenerator';\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { ApiContext } from './ApiContext.types';\nimport type {\n AggregationType,\n GroupAdditionalField,\n IntervalGrouping,\n RangeGrouping,\n SortDirection,\n State,\n TextGrouping\n} from './State.types';\nimport type RsCoreBootArgs from './RsCoreBootArgs.types';\nimport type { RenderFormatterType } from './RsCoreBootArgs.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\ntype CSSVariable = `--${string}`;\n\nexport const ActionColumnPlacement = {\n COLUMN: 'column',\n MENU: 'menu'\n} as const;\n\nexport interface RowAction {\n /** A label to be displayed to end user for this action */\n text: string;\n /** An identifier to uniquely identify this action */\n id: string;\n /**\n * @param {RowData} rowContext - RowData where this row action is triggered.\n * @param refreshRow - A callback which can be used to trigger refreshRow\n * which will trigger 'fetchRowData' api of {@link ApiContext} to fetch latest data for a row, after action is completed.\n * @return {void} - void\n */\n onClick: (rowContext: RowData, refreshRow: () => void) => void;\n}\n\n// Meta and it's type START\ninterface Category {\n label: string;\n}\n\ninterface ContextMenuOption {\n id: string;\n icon?: string;\n label: string;\n onClick?: (target: HTMLElement) => void;\n}\n\nexport interface ActionConfig {\n /** Controls whether action column should be visible in table. */\n show: boolean;\n /** Controls whether action cell should be visible for a specific row. */\n isVisible: (rowContext: RowData) => boolean;\n /** Where action should be rendered. */\n placement: (typeof ActionColumnPlacement)[keyof typeof ActionColumnPlacement];\n /** Action to be invoked on click. */\n onClick: (rowContext: RowData, refreshRow?: () => void) => void;\n}\n\nexport interface HierarchicalInfo {\n parentId?: string;\n materializedPathId?: string;\n targetId?: string;\n sortById?: string;\n columnId?: string;\n mode?: string;\n}\n\nconst CellAlign = {\n LEFT: 'left',\n RIGHT: 'right',\n CENTER: 'center'\n} as const;\n\n// TODO: Look into expanding the types to accept more field types.\nexport const FieldType = {\n TEXT: 'text',\n NUMBER: 'number',\n BOOLEAN: 'boolean',\n DATE_TIME: 'datetime',\n DATE: 'date',\n TIME: 'time',\n DATE_TIMELINE: 'Date',\n DATE_ONLY: 'Date only',\n // TODO: URL as a type is not needed. It can be merged with TEXT.\n URL: 'URL',\n ACTION_FIELD_TYPE: 'action',\n CUSTOM: 'custom',\n CURRENCY: 'currency',\n OBJECT: 'object'\n} as const;\n\nexport interface StyleFormat {\n /** A unique identifier for the style format. */\n id: string;\n /** The display name of the style format. */\n label: string;\n /** A collection of style properties that defines how the format will be applied. */\n config: {\n /** Background color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n backgroundColor: string;\n /**\n * Foreground (text) color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** The name of icon. */\n name: string;\n /** The color of icon.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n color: string;\n };\n };\n}\n\n// For now, conditionalFormatting is exposed for fields only. In future, for rows the fieldName can be made optional.\nexport interface ConditionalStyleFormat {\n /** The condition that determines whether this style format should be applied. */\n condition: Condition;\n /** The ID of the style format, sourced from {@link RsCoreBootArgs.styleFormats}, that will be applied if the condition is met. */\n styleFormatId: StyleFormat['id'];\n /** The {@link FieldDef.name name of the fieldDef} to which this style format is applied. */\n fieldName: FieldDef['name'];\n}\n\nexport const cellUpdateTrigger = {\n ROW_DENSITY_CHANGE: 'rowDensityChange'\n} as const;\n\nexport interface FieldDef {\n /** Actual field name in data */\n name: string;\n /** The data type of the field. */\n type: (typeof FieldType)[keyof typeof FieldType];\n /** Persistent ID of the field, typically the same as the name */\n id: string;\n /** A display name of that field */\n label: string;\n /**\n * Represents the category hierarchy of a field, if the field is nested within a parent property. The format should be an array of objects\n * where each index represents a level of the category hierarchy.\n * This structure is used to display the hierarchy of the field wherever necessary.\n * @example\n * ```json\n * [{label: 'categoryName'}]\n * ```\n */\n category?: Category[];\n /** Show {@link category} in header label. The header will be displayed in format {categoryName}.{label} where categoryName will be all the category's labels combined with .(dot) notation */\n showCategoryInHeaderLabel?: boolean;\n /** Defines Field whose value needs to be shown as HelperText e.g tooltip: 'pzDescription' field value for pyID field */\n tooltip?: string;\n /** Enable/Disable tooltip on column */\n showTooltip?: boolean;\n /** Width of the field in px */\n width?: number;\n /** Maximum width of the field in px */\n maxWidth?: number;\n /** Minimum width in pixels, field width cannot be resized below this threshold\n * @default 90\n */\n minWidth?: number;\n /** Allow filtering on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n filter?: boolean;\n /** Filter popup presents a pick list to choose values from\n * @default false\n */\n filterPickList?: boolean;\n /** Allow sorting on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n sort?: boolean;\n /** Allows sorting on load. If this property is present, then sortPriority is mandatory */\n sortDirection?: (typeof SortDirection)[keyof typeof SortDirection];\n /** Sets the priority on filed for multi sorting(1 takes highest precedence). Allows sorting on load. If this property is present, then sortDirection is mandatory */\n sortPriority?: number;\n /** Allow grouping on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n grouping?: boolean;\n /** To set group order of the current field def */\n groupOrder?: number;\n /** To auto apply grouping on this field */\n grouped?: boolean;\n /**\n * Custom grouping applied when {@link grouped} is enabled. For custom grouping, the order is set to 'custom'.\n * - `TEXT_GROUPING` applies to {@link FieldType.TEXT text} fields.\n * - `RANGE_GROUPING` and `INTERVAL_GROUPING` apply to {@link FieldType.NUMBER number} and {@link FieldType.CURRENCY currency} fields.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} supports all compatible custom grouping types.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} supports only {@link TextGrouping}.\n *\n * Incompatible combinations are removed during meta normalization.\n */\n customGrouping?: TextGrouping | RangeGrouping | IntervalGrouping;\n /**\n * Choose a date function {@link DateFunction} to group by when `grouped` is enabled for a date/time field.\n * Falls back to grouping by equality when undefined.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support date-function grouping.\n */\n groupedDateFunction?: DateFunction;\n /**\n * Additional field configuration for the group.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support group additional fields.\n */\n groupedAdditionalFields?: GroupAdditionalField[];\n /** Allow resizing on this field\n * @default true\n */\n resize?: boolean;\n /** Allow reordering on this field\n * @default true\n */\n reorderFields?: boolean;\n /** Allow freezing of this field\n * @default true\n */\n freeze?: boolean;\n /** This field will resize to available excess width if set to true. Only first field definition will be honoured if configured on multiple fields. */\n fillAvailableSpace?: boolean;\n /** Force the field label and value to appear in a specific layout. If layoutMode is omitted, layout is auto.\n * Currently, only supported when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}.\n */\n layoutMode?: 'stacked' | 'inline';\n /** An asterisk will be added in the table header cell right after the label signifying it is required. */\n required?: boolean;\n /** Allow show/hide of this field\n * @default true\n */\n toggle?: boolean;\n /** Field shows in the view by default. Can be set to false to toggle it in later */\n show?: boolean;\n /** Show/hide field level Header action menu\n * @default true\n */\n showMenu?: boolean;\n /** Allow aggregation on this field\n * @default false (except when the field type is \"number\"/ \"currency\", where it defaults to true)\n */\n aggregation?: boolean;\n /** Allow combining of this field with other field\n * @default true\n */\n combineColumn?: boolean;\n /** Allow customizing column label and apply formatting\n * @default true\n */\n customizeColumn?: boolean;\n /** Disable context menu at cells of this field if set to true. Context menu is shown on right mouse click in the cell\n * @default false\n */\n noContextMenu?: boolean;\n /** This property extends options provided on right click in a cell context.\n * The default one's that the Repeating structures provide out of the box\n * are 'Copy Text', and 'Filter by this' */\n contextMenuOptions?: ContextMenuOption[];\n /** Optional name of a custom component to be rendered in the header cell of the column.\n * The custom component should be provided via the render factory.\n * If not specified, the default header cell renderer will be used. */\n headerCellRenderer?: string;\n /** Name of a custom component that is made available through the render factory. Check section on cellRenderer */\n cellRenderer?: string;\n /**\n * Configure additional events that explicitly trigger this field’s cell(s) to regenerate (re-render).\n * If omitted or empty, the cell will not update automatically on these events.\n *\n * These are *explicit* triggers that require the consumer to specify them for the cell to update.\n *\n *\n * Supported triggers include:\n * - `rowDensityChange`: when the row height or density changes.\n *\n * **Caution:** Using this may cause rendering overhead as the cells will be re-generated(re-rendered).\n *\n * @examples\n * ```json\n * cellUpdateTriggers: [\"rowDensityChange\"]\n * ```\n */\n cellUpdateTriggers?: (typeof cellUpdateTrigger)[keyof typeof cellUpdateTrigger][];\n\n /** Format on the basis of this field data should be formatted. The formatter should be present in {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}. */\n formatter?: string;\n /** To enable autosize on this field.\n * @default true\n */\n autosize?: boolean;\n // TODO: Remove this parentPath field. Consumer should handle the corresponding logic.\n /** If a field is of type pageList, parentpath should contain the path of the parent to traverse the field. */\n parentPath?: string;\n // TODO: Remove this isPageListField field. Consumer should handle the corresponding logic.\n /** Set if the field is of type pageList */\n isPageListField?: boolean;\n /** Enable 'Hierarchical' display mode on column if hierarchicalInfo exists. */\n hierarchicalInfo?: HierarchicalInfo;\n /** Align cell to left/right/center. Values accepted: 'left', 'right', 'center' */\n cellAlign?: (typeof CellAlign)[keyof typeof CellAlign];\n /** Column name label in group header will be hidden when set to 'true'\n * @default false\n */\n hideGroupColumnNameLabel?: boolean;\n // TODO this is exposed to consumer but is not being considered. Check this.\n /** Filter options for various field type\n * @example\n * [\n {\n value: 'Equals',\n key: 'equals'\n },\n {\n value: 'Not equals',\n key: 'notEquals'\n },\n {\n value: 'After',\n key: 'greaterThan'\n },\n {\n value: 'Before',\n key: 'lessThan'\n },\n {\n value: 'On or after',\n key: 'greaterThanEquals'\n },\n {\n value: 'On or before',\n key: 'lessThanEquals'\n }\n ]\n */\n filterParams?: {\n value: string;\n key: string;\n }[];\n /** To enable inline editing for a field. */\n editable?: boolean;\n /** A read only extra info related to field can be preserved in meta.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n meta?: { [key: string | number | symbol]: any };\n /** A read only extra info related to field can be preserved in this.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n customObject?: { [key: string | number | symbol]: any };\n /** Indicates if the field is used as rowHeader for A11y of the row */\n isRowHeader?: boolean;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A unique idHash.\n */\n idHash?: number;\n /** Indicates if this field is aggregated. If set to true, then first option from {@link Meta.aggregationType} will be picked as aggregation type for this field. */\n aggregated?: boolean;\n /** An array of conditional formats applied to the fieldDef.\n *\n * **Template support:** {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} only.\n *\n * @property {Condition} condition - The condition that determines whether the format should be applied.\n * @property {ConditionalStyleFormat} styleFormat - The {@link StyleFormat.id style format id} from `field` {@link RsCoreBootArgs.styleFormats styleFormats} applied to the cell if the condition evaluates to true.\n *\n * **Note**: *If the data satisfies multiple conditional style formats, the first matching conditional format will be used.*\n * */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n /** Disables formatting on the field using {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}\n * @default false\n */\n disableFormatting?: boolean;\n /**\n * Formatter options for this specific field.\n * If the field level formatters are provided then they will be given priority than RS level {@link RsCoreBootArgs.renderFormatterTypeMap formatters}.\n */\n formatters?: RenderFormatterType[];\n /** Indicates if the field is searchable via global search.\n * @default false (except when the field type is \"text\", where it defaults to true)\n */\n searchable?: boolean;\n}\n\nexport const ROW_DENSITY = {\n SHORT: '1',\n MEDIUM: '2',\n TALL: '3',\n WRAP_CONTENT: '4'\n} as const;\n\ntype DisplayDensity = {\n id: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n name: string;\n};\n\nexport const REPEATING_STRUCTURE_TEMPLATES = {\n TABLE: 'Table',\n GALLERY: 'Gallery',\n TIMELINE: 'Timeline',\n MAP: 'Map',\n KANBAN: 'Kanban'\n} as const;\n\nconst SELECTION_MODE = {\n SINGLE: 'single',\n MULTI: 'multi',\n MULTI_ON_HOVER: 'multi_on_hover'\n} as const;\n\ntype TimelineFieldDef = Partial<Pick<FieldDef, 'name' | 'label' | 'type' | 'meta'>>;\n\ntype DisplayFeature = {\n filter?: boolean;\n grouping?: boolean;\n sort?: boolean;\n};\n\n/** Represents a constant string value. */\nexport type ConstantValue = { value: string };\n\n/** Represents a reference to a field from {@link Meta.fieldDefs fieldDefs} by its {@link FieldDef.id id}. */\nexport type FieldReference = { field: FieldDef['id'] };\n\n/** Placement options for hero image */\nexport type HeroImagePlacement = 'left' | 'right' | 'top';\n\n/**\n * Configuration for a hero image displayed on gallery cards.\n *\n * @example\n * ```json\n * {\n * \"source\": { \"field\": \"ImageURL\" },\n * \"altText\": { \"field\": \"ImageDescription\" },\n * \"placement\": \"left\",\n * \"size\": \"flexible\"\n * }\n */\nexport type HeroImage = {\n /** Image source URL. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field} to get URL. */\n source: FieldReference;\n /** Alternative text for the image. Accepts either `{field: 'fieldId'}` to reference a {@link FieldDef field} or `{value: 'text'}` for a constant value. */\n altText?: ConstantValue | FieldReference;\n /**\n * Position of the hero image relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the hero image.\n * @default 'flexible'\n */\n size?: ImageSize;\n};\n\n/** Possible layout modes for the Gallery template. Extensible for future layouts (e.g. 'board'). */\nexport type GalleryLayout = 'cardgrid' | 'cardlist';\n\nexport interface CardTile {\n /** Field id whose value is the foreground colour (hex string). */\n foregroundColor: FieldReference;\n /** Field id whose value is the background CSS value (e.g. a linear-gradient string). */\n backgroundColor: FieldReference;\n /** Field id whose value is the registered icon name for the tile. */\n iconName?: FieldReference;\n /** Field id whose value is the text content for the tile. */\n text?: FieldReference;\n /**\n * Position of the tile relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the tile.\n * @default 'flexible'\n */\n size?: ImageSize;\n}\n\nexport interface CardConfig {\n /** Header of the card. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field}. */\n header?: FieldReference;\n /** Subheadings of the card. Accepts an array of `{field: 'fieldId'}` references to {@link FieldDef fields}. */\n subHeadings?: FieldReference[];\n /** Configuration for the hero image displayed on cards. */\n heroImage?: HeroImage;\n /** Configuration for a coloured tile shown in place of a hero image. */\n tile?: CardTile;\n /** Show field labels on cards.\n * @default true\n */\n showFieldLabels?: boolean;\n /** Optional render callback invoked for each card to produce footer content. */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n}\n\nexport interface GalleryConfig extends CardConfig {\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n header?: FieldReference;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n subHeadings?: FieldReference[];\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n heroImage?: HeroImage;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n tile?: CardTile;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n showFieldLabels?: boolean;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n /** Optional click handler called when a gallery card is clicked. Receives the raw row data. */\n onCardClick?: (rowData: RowData) => void;\n /** Layout mode for the gallery.\n * - `'cardgrid'` - multi-column grid layout (default)\n * - `'cardlist'` - single-column list layout\n * @default 'cardgrid'\n */\n layout?: GalleryLayout;\n /** Shows the toolbar toggle for switching between card grid and card list layouts.\n * @default true\n */\n showLayoutToggle?: boolean;\n}\n\n/** Meta input to RS */\nexport interface Meta {\n /** Metadata for fields */\n fieldDefs: FieldDef[];\n /** itemKey for data identification */\n itemKey: string;\n /** Preset id of the current preset/personalization. This will be used to uniquely identify the preset on which the current view is dervied from */\n id: string;\n /** Preset name of the current preset/personalization. This will be displayed to end user */\n name: string;\n /** Array of fields(extra) that should be included in the query prepared for different api's in {@link ApiContext}.\n * `lists-client-api` package implicitly appends this in `select` field while preparing the query.\n */\n patchQueryFields?: string[];\n /** Array denoting sort operation order.\n *\n * @default\n * ```json\n * ['asc', 'desc', null]\n * ```\n */\n sortOrder?: (string | null)[];\n /**\n * A collection of row density options that users can select to adjust the height of rows based on the chosen density.\n *\n * @default\n * ```json\n * [\n * { \"name\": \"Short\", \"id\": \"1\" },\n * { \"name\": \"Medium\", \"id\": \"2\" },\n * { \"name\": \"Tall\", \"id\": \"3\" },\n * { \"name\": \"Full content\", \"id\": \"4\" }\n * ]\n * ```\n */\n displayDensity?: DisplayDensity[];\n /**\n * Configuration for the height of the view.\n *\n * @default\n * ```json\n * {\n * minHeight: 600\n * }\n * ```\n */\n height?: {\n /** The minimum height in pixels for the view or 'auto' */\n minHeight?: number;\n /** Specifies an HTML element or a string query selector to which the view's height will be adjusted. If this property is used, the `height` property will be ignored */\n fitHeightToElement?: HTMLElement | string;\n /** Specifies an explicit height for the view. If set, the `fitHeightToElement` property will be ignored.\n * - `number` — explicit pixel height.\n * - CSS variable (e.g. `'--my-height'`) — height driven by a CSS custom property.\n * This takes precedence over `basicMode` height behavior.\n */\n height?: number | CSSVariable;\n /** A height adjustment value in pixels */\n deltaAdjustment?: number;\n /** If true, the height will be adjusted responsively on window resize, but only if `fitHeightToElement` is provided. */\n autoSize?: boolean;\n /** The maximum height for the view, specified in pixels or as a CSS variable (e.g., `--view-height`) */\n maxHeight?: number | string;\n /** CSS variable that defines the minimum threshold to be used in `maxHeight` calculations. If not provided, a default value of `25rem` will be used.\n *\n * Caution: Use carefully as setting this value too low can introduce usability issues on smaller screens.\n */\n maxHeightMinValueVariable?: CSSVariable;\n };\n /** Allow show/hide of fields\n *\n * @default true\n */\n toggleFieldVisibility?: boolean;\n /** Allow grouping on fields\n *\n * @default true\n */\n grouping?: boolean;\n /**\n * Determines the view of a Repeating Structure.\n *\n * @remarks\n * **Template-specific constraints:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} and {@link REPEATING_STRUCTURE_TEMPLATES.MAP Map} do not support grouping.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TIMELINE Timeline} supports only one grouping level.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} renders only the level-0 group as board lanes.\n * Configure the lane field through {@link Meta.fieldDefs fieldDefs} by setting\n * {@link FieldDef.grouping grouping} and {@link FieldDef.grouped grouped} to `true`,\n * with {@link FieldDef.groupOrder groupOrder} set to `0`.\n *\n * @default 'Table'\n */\n template?: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES];\n /** Configuration for card-based templates. Only applicable when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}. */\n cardConfig?: CardConfig;\n /** Allow editing on fields and if enabled then row actions are also enabled.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit edit behavior.\n *\n * @default false\n */\n editing?: boolean | ActionConfig;\n /** Allow deleting of rows.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit delete behavior.\n */\n deleting?: boolean | ActionConfig;\n /** Allow personalization views\n * @default true\n */\n personalization?: boolean;\n /** Enable app default personalization options in Toolbar action menu.\n * If a personalization is set as App Default then that will be used as default personalization in repeating structures.\n * @default false\n * */\n enableAppDefault?: boolean;\n /**\n * Name to be shown for non personalized view.\n * @default 'Initial view'\n */\n nonPersonalizationViewName?: string;\n /** Allow field (column) reordering through a drag and drop action.\n * @default true\n */\n reorderFields?: boolean;\n /** Allow row reordering through a drag and drop action.\n * @default false\n */\n reorderItems?: boolean;\n /**\n * Allow to add a column for drag handle\n * @default false\n * @deprecated Use {@link rowReorderField}\n */\n dragHandle?: boolean;\n /**\n * Enables row reorder column. By default if enabled, it will be visible. To override the default behavior set show as false.\n */\n rowReorderField?: {\n show: boolean;\n };\n /**\n * Brings in a search widget to allow searching across all text type fields.\n * @default true\n */\n globalSearch?: boolean;\n /** Display toolbar on the view.\n * @default true\n */\n toolbar?: boolean;\n /** Display count in toolbar.\n * @default true\n */\n showCount?: boolean;\n /**\n * Row density id value from the \"displayDensity\" options prop above.\n * @default {@link ROW_DENSITY.SHORT}\n */\n defaultRowHeight?: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n /**\n * Renders the 'Bulk actions' button in the table toolbar, which gets enabled on row selection.\n * Works only if the template is not set to timeline.\n * @default false\n */\n allowBulkActions?: boolean;\n /**\n * Denotes the page size being passed in the case of rest backed data page\n * #JSDOC\n */\n pageSize?: number;\n /** Enables date-functions like MONTHS/WEEKS/... during Grouping and Filtering. ([Object structure](https://git.pega.io/projects/PS/repos/cosmos/browse/packages/cosmos-condition-builder/src/components/ConditionBuilder/ConditionBuilder.types.ts?until=dfcf607851276bfeb877e9fb2c8f55d4396fd8b7&untilPath=packages%2Fcosmos-condition-builder%2Fsrc%2Fcomponents%2FConditionBuilder%2FConditionBuilder.types.ts#79-85)) */\n dateFunctions?: DateFunctionsByType;\n /** Enabled Relative Dates, such as \"Last 7 days\" (Or) \"Current Year\", in filtering for the DateTime or Date_Only values\".\n * @default false\n */\n relativeDates?: boolean;\n /** Display footer on the view.\n * @default true\n */\n footer?: boolean;\n /**\n * Templates for dynamic fields (or) columns which are used to combine two columns with a template.\n * @default\n * ```json\n * [\n * { name: 'Comma separated', value: 'comma',selected: true },\n * { name: 'Space separated', value: 'space' },\n * { name: 'Multi line', value: 'multiline' },\n * { name: 'Forward slash', value: 'forwardslash' }\n * ]\n * ```\n */\n dynamicFieldTemplates?: {\n name: string;\n value: string;\n selected?: boolean;\n }[];\n /** Repeating Structure Title\n * @default '<label not set>'\n */\n title?: string;\n /**\n * Override the heading tag used for the {@link Meta.title title} title in the toolbar.\n * @default 'h2'\n */\n headingTag?: HeadingTag;\n /**\n * Show the repeating structure title.\n * @default true\n */\n showTitle?: boolean;\n /** Repeating Structure Icon\n * @default 'picture'\n */\n icon?: string;\n /** Display Header Bar\n * @default false\n */\n headerBar?: boolean;\n /**\n * Display Respective Header Icons at field labels based on type\n * @default false\n */\n showHeaderIcons?: boolean;\n /** Indicates if freezing is allowed on Fields. */\n freezeFields?: boolean;\n /**\n * list of available static actions for an editable table with following properties\n * @example\n * ```json\n * [\n * {\n * text: 'Open in a new tab',\n * id: 'row-new-tab',\n * onClick: () => {}\n * }\n * ]\n * ```\n * @default\n * []\n */\n rowActions?: RowAction[];\n /** Decides type of row selection mode (radio for single/ checkbox for multi) possible values : single / multi / multi-on-hover */\n selectionMode?: (typeof SELECTION_MODE)[keyof typeof SELECTION_MODE];\n /** Displays select-all checkbox if selectionMode is multi-on-hover and the records count is not greater than threshold */\n selectionCountThreshold?: number;\n /** To Disable/Enable selection of rows */\n disableSelectionOnLoad?: boolean;\n /** To show asterisk(*) symbol on table header in case of Data Reference/Embedded views. (Note: This works perfectly if the personalization is off.) */\n requiredOnLoad?: boolean;\n /**\n * List of available static actions at table level (shown in toolbar/ headerbar) with following properties\n * [{ text: 'Add', tooltip: 'Add story', id: 'Add', onClick: () => {}}]\n */\n toolbarActions?: {\n text: string;\n id: string;\n onClick: () => void;\n tooltip: string;\n }[];\n /** Allow row reordering through a drag and drop action.\n * default value: false\n */\n moveListRecords?: boolean;\n\n /** Allow end user to refresh data of the repeating structures. Enabling this will show up `Refresh` action in repeating structures toolbar.\n * @default false\n */\n allowRefresh?: boolean;\n /** Allow switching between Table and Gallery templates at runtime via the toolbar.\n * Set to `false` for embedded tables where template switching is not supported.\n * @default true\n */\n allowSwitchTemplate?: boolean;\n\n /** The height of repeating structure is calculated on this parameter if provided. */\n numberOfRows?: number;\n /** Display views of repeating structures with full or condensed toolbar.\n * @default false\n * Default shows full toolbar.\n */\n basicMode?: boolean;\n /** Timezone which is passed to formatter\n * @default 'America/New_York'\n */\n timezone?: string;\n /** Locale which is passed to formatter function\n * @default 'en-US'\n */\n locale?: string;\n timelineFields?: {\n /** Timeline template title for display */\n title?: TimelineFieldDef;\n /** Timeline template date for display */\n date?: TimelineFieldDef;\n /** Timeline template status for display */\n status?: TimelineFieldDef & { getCustomContent?: (row: Row) => StatusProps };\n /** Timeline template icon for display */\n icon?: TimelineFieldDef;\n /** Timeline template content for display */\n content?: TimelineFieldDef;\n };\n /** Map template field ids for display */\n mapFieldIds?: {\n /** Map template location field id for display */\n location?: FieldDef['id'];\n /** Map template label field id for display */\n label?: FieldDef['id'];\n /** Map template content field id for display */\n content?: FieldDef['id'];\n };\n /**\n * Gallery-specific configuration. Card-content properties remain supported for backward\n * compatibility; use {@link Meta.cardConfig cardConfig} for new integrations.\n */\n galleryConfig?: GalleryConfig;\n // TODO: Narrow this type to a union of the known dx keys: `'PromotedFilters' | 'SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS' | 'ADVANCED_SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS'`.\n /** A unique key for injectable filters component.\n * This key will be sent to {@link RsCoreBootArgs.renderFactory renderFactory} as 'type' to get a renderer for the external filters.\n * The renderer will be shown between Repeating structures body and repeating structures toolbar.\n * This key should be used in {@link State.externalState externalState} to populate state related to externalFilters.\n */\n externalFilters?: string;\n /** This key is used to show the 'Import Data' action in the repeating structures toolbar. It will only work for Launchpad.\n * On click, it will call {@link ApiContext.importCSVData importCSVData} open a modal allowing the user to upload a file.\n */\n showImportDataOption?: boolean;\n /** This key is used to show 'Export to Excel' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file. */\n showExportToExcelOption?: boolean;\n /** This key is used to show 'Export to CSV' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportDataToCSV exportDataToCSV} api is called to export repeating structures data into CSV file. */\n showExportToCSVOption?: boolean;\n /** To enable 'Freeze columns' action in toolbar action menu. This action triggers freezing of columns.This toolbar action considers {@link FieldDef.freeze freeze} key in FieldDef too.\n * @default true\n */\n // TODO: meta.freezeFields and meta.enableFreezeColumns are checking the same thing. Evaluate if one can be removed.\n enableFreezeColumns?: boolean;\n /** To enable 'Auto size columns' action in toolbar action menu. This action triggers auto size of columns.\n * @default true\n */\n autoSizeColumns?: boolean;\n /** To enable 'Query info' action in toolbar action menu. This action shows query information.\n * @default false\n */\n showQueryInfo?: boolean;\n /** To enable 'Reset column widths' action in toolbar action menu. This action triggers reset of columns width to its default state.\n * @default true\n */\n resetColumnWidths?: boolean;\n /** To enable 'Row density' action in toolbar action menu. This action triggers a popover menu item to select row density.This toolbar action considers {@link Meta.displayDensity displayDensity} key in Meta too.\n * @default true\n */\n rowDensity?: boolean;\n /** Shows the row wrap toggle action in the toolbar.\n * Applicable only when {@link Meta.template template} is set to 'Table'.\n * @default true\n */\n showWrapAction?: boolean;\n /** To show/hide filter,sort,group action buttons from end user.\\\n * **Note**: Above features will still work, it is just not available to end user to trigger.\n * @default\n * ```json\n * {\n * filter: true,\n * grouping: true,\n * sort: true\n * }\n * ```\n */\n displayFeatures?: DisplayFeature;\n /** Enables error column. The column will be visible when dataErrors are present in {@link State.errors errors}.\n * @default false\n * @deprecated Use {@link rowErrorField}\n */\n showErrorField?: boolean;\n /**\n * Enables error column. By default if enabled, it will be hidden. To override the default behavior set show as true.\n * The column will be visible when dataErrors are present in {@link State.errors errors}.\n */\n rowErrorField?: {\n show: boolean;\n };\n /** Id of the custom renderer that should be used to display customized columns cells. */\n customFieldRenderer?: string;\n /** Id of the custom renderer that should be used to display header cells. */\n customHeaderRenderer?: string;\n /**\n * @deprecated Provide the exact fieldDef configuration in the {@link FieldDef}.\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * The default config of the FieldDef. This is used to normalize each {@link FieldDef} properties with its default value.\n */\n defaultFieldDef?: OmitStrict<FieldDef, 'name' | 'type' | 'id' | 'label'>;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A set of comparator map used for filter operation on columns. */\n comparatorMap?: FilterConfig['comparatorMap'];\n /**\n * @deprecated Use {@link Meta.editing editing} property\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * Indicates if editing is enabled on Repeating structures.\n */\n editable?: boolean;\n /** A set of aggregation options available for a column on which the data can be aggregated.\n *\n * @default\n * ```json\n * {\n * number: ['Sum', 'Min', 'Max', 'Avg']\n * }\n * ```\n */\n aggregateOptions?: {\n [fieldType: string]: AggregationType[];\n };\n /** An optional change action that will be called whenever the personalization is switched. */\n personalizationChangeAction?: () => void;\n /** Predefined filters that will be applied on load of repeating structures. */\n filterExpression?: Condition;\n}\n"]}
1
+ {"version":3,"file":"Meta.types.js","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAgDX,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,WAAW;IACtB,iEAAiE;IACjE,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAyDX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,EAAE,kBAAkB;CAC9B,CAAC;AAuQX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;CACT,CAAC;AAOX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,gBAAgB;CACxB,CAAC","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { Condition, DateFunctionsByType } from '@pega/cosmos-react-condition-builder';\nimport type { DateFunction } from '@pega/cosmos-react-condition-builder/lib/components/ConditionBuilder/core/types';\nimport type { HeadingTag, ImageSize, OmitStrict, StatusProps } from '@pega/cosmos-react-core';\n\nimport type { FilterConfig } from '../src/core/config/filterConfig';\nimport type Row from '../src/core/generators/RowGenerator';\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { ApiContext } from './ApiContext.types';\nimport type {\n AggregationType,\n GroupAdditionalField,\n IntervalGrouping,\n RangeGrouping,\n SortDirection,\n State,\n TextGrouping\n} from './State.types';\nimport type RsCoreBootArgs from './RsCoreBootArgs.types';\nimport type { RenderFormatterType } from './RsCoreBootArgs.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\ntype CSSVariable = `--${string}`;\n\nexport const ActionColumnPlacement = {\n COLUMN: 'column',\n MENU: 'menu'\n} as const;\n\nexport interface RowAction {\n /** A label to be displayed to end user for this action */\n text: string;\n /** An identifier to uniquely identify this action */\n id: string;\n /**\n * @param {RowData} rowContext - RowData where this row action is triggered.\n * @param refreshRow - A callback which can be used to trigger refreshRow\n * which will trigger 'fetchRowData' api of {@link ApiContext} to fetch latest data for a row, after action is completed.\n * @return {void} - void\n */\n onClick: (rowContext: RowData, refreshRow: () => void) => void;\n}\n\n// Meta and it's type START\ninterface Category {\n label: string;\n}\n\ninterface ContextMenuOption {\n id: string;\n icon?: string;\n label: string;\n onClick?: (target: HTMLElement) => void;\n}\n\nexport interface ActionConfig {\n /** Controls whether action column should be visible in table. */\n show: boolean;\n /** Controls whether action cell should be visible for a specific row. */\n isVisible: (rowContext: RowData) => boolean;\n /** Where action should be rendered. */\n placement: (typeof ActionColumnPlacement)[keyof typeof ActionColumnPlacement];\n /** Action to be invoked on click. */\n onClick: (rowContext: RowData, refreshRow?: () => void) => void;\n}\n\nexport interface HierarchicalInfo {\n parentId?: string;\n materializedPathId?: string;\n targetId?: string;\n sortById?: string;\n columnId?: string;\n mode?: string;\n}\n\nconst CellAlign = {\n LEFT: 'left',\n RIGHT: 'right',\n CENTER: 'center'\n} as const;\n\n// TODO: Look into expanding the types to accept more field types.\nexport const FieldType = {\n TEXT: 'text',\n NUMBER: 'number',\n BOOLEAN: 'boolean',\n DATE_TIME: 'datetime',\n DATE: 'date',\n TIME: 'time',\n DATE_TIMELINE: 'Date',\n DATE_ONLY: 'Date only',\n // TODO: URL as a type is not needed. It can be merged with TEXT.\n URL: 'URL',\n ACTION_FIELD_TYPE: 'action',\n CUSTOM: 'custom',\n CURRENCY: 'currency',\n OBJECT: 'object'\n} as const;\n\nexport interface StyleFormat {\n /** A unique identifier for the style format. */\n id: string;\n /** The display name of the style format. */\n label: string;\n /** A collection of style properties that defines how the format will be applied. */\n config: {\n /** Background color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n backgroundColor: string;\n /**\n * Foreground (text) color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** The name of icon. */\n name: string;\n /** The color of icon.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n color: string;\n };\n };\n}\n\n// For now, conditionalFormatting is exposed for fields only. In future, for rows the fieldName can be made optional.\nexport interface ConditionalStyleFormat {\n /** The condition that determines whether this style format should be applied. */\n condition: Condition;\n /** The ID of the style format, sourced from {@link RsCoreBootArgs.styleFormats}, that will be applied if the condition is met. */\n styleFormatId: StyleFormat['id'];\n /** The {@link FieldDef.name name of the fieldDef} to which this style format is applied. */\n fieldName: FieldDef['name'];\n}\n\nexport const cellUpdateTrigger = {\n ROW_DENSITY_CHANGE: 'rowDensityChange'\n} as const;\n\nexport interface FieldDef {\n /** Actual field name in data */\n name: string;\n /** The data type of the field. */\n type: (typeof FieldType)[keyof typeof FieldType];\n /** Persistent ID of the field, typically the same as the name */\n id: string;\n /** A display name of that field */\n label: string;\n /**\n * Represents the category hierarchy of a field, if the field is nested within a parent property. The format should be an array of objects\n * where each index represents a level of the category hierarchy.\n * This structure is used to display the hierarchy of the field wherever necessary.\n * @example\n * ```json\n * [{label: 'categoryName'}]\n * ```\n */\n category?: Category[];\n /** Show {@link category} in header label. The header will be displayed in format {categoryName}.{label} where categoryName will be all the category's labels combined with .(dot) notation */\n showCategoryInHeaderLabel?: boolean;\n /** Defines Field whose value needs to be shown as HelperText e.g tooltip: 'pzDescription' field value for pyID field */\n tooltip?: string;\n /** Enable/Disable tooltip on column */\n showTooltip?: boolean;\n /** Width of the field in px */\n width?: number;\n /** Maximum width of the field in px */\n maxWidth?: number;\n /** Minimum width in pixels, field width cannot be resized below this threshold\n * @default 90\n */\n minWidth?: number;\n /** Allow filtering on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n filter?: boolean;\n /** Filter popup presents a pick list to choose values from\n * @default false\n */\n filterPickList?: boolean;\n /** Allow sorting on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n sort?: boolean;\n /** Allows sorting on load. If this property is present, then sortPriority is mandatory */\n sortDirection?: (typeof SortDirection)[keyof typeof SortDirection];\n /** Sets the priority on filed for multi sorting(1 takes highest precedence). Allows sorting on load. If this property is present, then sortDirection is mandatory */\n sortPriority?: number;\n /** Allow grouping on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n grouping?: boolean;\n /** To set group order of the current field def */\n groupOrder?: number;\n /** To auto apply grouping on this field */\n grouped?: boolean;\n /**\n * Custom grouping applied when {@link grouped} is enabled. For custom grouping, the order is set to 'custom'.\n * - `TEXT_GROUPING` applies to {@link FieldType.TEXT text} fields.\n * - `RANGE_GROUPING` and `INTERVAL_GROUPING` apply to {@link FieldType.NUMBER number} and {@link FieldType.CURRENCY currency} fields.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} supports all compatible custom grouping types.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} supports only {@link TextGrouping}.\n *\n * Incompatible combinations are removed during meta normalization.\n */\n customGrouping?: TextGrouping | RangeGrouping | IntervalGrouping;\n /**\n * Choose a date function {@link DateFunction} to group by when `grouped` is enabled for a date/time field.\n * Falls back to grouping by equality when undefined.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support date-function grouping.\n */\n groupedDateFunction?: DateFunction;\n /**\n * Additional field configuration for the group.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support group additional fields.\n */\n groupedAdditionalFields?: GroupAdditionalField[];\n /** Allow resizing on this field\n * @default true\n */\n resize?: boolean;\n /** Allow reordering on this field\n * @default true\n */\n reorderFields?: boolean;\n /** Allow freezing of this field\n * @default true\n */\n freeze?: boolean;\n /** This field will resize to available excess width if set to true. Only first field definition will be honoured if configured on multiple fields. */\n fillAvailableSpace?: boolean;\n /** Force the field label and value to appear in a specific layout. If layoutMode is omitted, layout is auto.\n * Currently, only supported when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}.\n */\n layoutMode?: 'stacked' | 'inline';\n /** An asterisk will be added in the table header cell right after the label signifying it is required. */\n required?: boolean;\n /** Allow show/hide of this field\n * @default true\n */\n toggle?: boolean;\n /** Field shows in the view by default. Can be set to false to toggle it in later */\n show?: boolean;\n /** Show/hide field level Header action menu\n * @default true\n */\n showMenu?: boolean;\n /** Allow aggregation on this field\n * @default false (except when the field type is \"number\"/ \"currency\", where it defaults to true)\n */\n aggregation?: boolean;\n /** Allow combining of this field with other field\n * @default true\n */\n combineColumn?: boolean;\n /** Allow customizing column label and apply formatting\n * @default true\n */\n customizeColumn?: boolean;\n /** Disable context menu at cells of this field if set to true. Context menu is shown on right mouse click in the cell\n * @default false\n */\n noContextMenu?: boolean;\n /** This property extends options provided on right click in a cell context.\n * The default one's that the Repeating structures provide out of the box\n * are 'Copy Text', and 'Filter by this' */\n contextMenuOptions?: ContextMenuOption[];\n /** Optional name of a custom component to be rendered in the header cell of the column.\n * The custom component should be provided via the render factory.\n * If not specified, the default header cell renderer will be used. */\n headerCellRenderer?: string;\n /** Name of a custom component that is made available through the render factory. Check section on cellRenderer */\n cellRenderer?: string;\n /**\n * Configure additional events that explicitly trigger this field’s cell(s) to regenerate (re-render).\n * If omitted or empty, the cell will not update automatically on these events.\n *\n * These are *explicit* triggers that require the consumer to specify them for the cell to update.\n *\n *\n * Supported triggers include:\n * - `rowDensityChange`: when the row height or density changes.\n *\n * **Caution:** Using this may cause rendering overhead as the cells will be re-generated(re-rendered).\n *\n * @examples\n * ```json\n * cellUpdateTriggers: [\"rowDensityChange\"]\n * ```\n */\n cellUpdateTriggers?: (typeof cellUpdateTrigger)[keyof typeof cellUpdateTrigger][];\n\n /** Format on the basis of this field data should be formatted. The formatter should be present in {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}. */\n formatter?: string;\n /** To enable autosize on this field.\n * @default true\n */\n autosize?: boolean;\n // TODO: Remove this parentPath field. Consumer should handle the corresponding logic.\n /** If a field is of type pageList, parentpath should contain the path of the parent to traverse the field. */\n parentPath?: string;\n // TODO: Remove this isPageListField field. Consumer should handle the corresponding logic.\n /** Set if the field is of type pageList */\n isPageListField?: boolean;\n /** Enable 'Hierarchical' display mode on column if hierarchicalInfo exists. */\n hierarchicalInfo?: HierarchicalInfo;\n /** Align cell to left/right/center. Values accepted: 'left', 'right', 'center' */\n cellAlign?: (typeof CellAlign)[keyof typeof CellAlign];\n /** Column name label in group header will be hidden when set to 'true'\n * @default false\n */\n hideGroupColumnNameLabel?: boolean;\n // TODO this is exposed to consumer but is not being considered. Check this.\n /** Filter options for various field type\n * @example\n * [\n {\n value: 'Equals',\n key: 'equals'\n },\n {\n value: 'Not equals',\n key: 'notEquals'\n },\n {\n value: 'After',\n key: 'greaterThan'\n },\n {\n value: 'Before',\n key: 'lessThan'\n },\n {\n value: 'On or after',\n key: 'greaterThanEquals'\n },\n {\n value: 'On or before',\n key: 'lessThanEquals'\n }\n ]\n */\n filterParams?: {\n value: string;\n key: string;\n }[];\n /** To enable inline editing for a field. */\n editable?: boolean;\n /** A read only extra info related to field can be preserved in meta.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n meta?: { [key: string | number | symbol]: any };\n /** A read only extra info related to field can be preserved in this.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n customObject?: { [key: string | number | symbol]: any };\n /** Indicates if the field is used as rowHeader for A11y of the row */\n isRowHeader?: boolean;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A unique idHash.\n */\n idHash?: number;\n /** Indicates if this field is aggregated. If set to true, then first option from {@link Meta.aggregationType} will be picked as aggregation type for this field. */\n aggregated?: boolean;\n /** An array of conditional formats applied to the fieldDef.\n *\n * **Template support:** {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} only.\n *\n * @property {Condition} condition - The condition that determines whether the format should be applied.\n * @property {ConditionalStyleFormat} styleFormat - The {@link StyleFormat.id style format id} from `field` {@link RsCoreBootArgs.styleFormats styleFormats} applied to the cell if the condition evaluates to true.\n *\n * **Note**: *If the data satisfies multiple conditional style formats, the first matching conditional format will be used.*\n * */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n /** Disables formatting on the field using {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}\n * @default false\n */\n disableFormatting?: boolean;\n /**\n * Formatter options for this specific field.\n * If the field level formatters are provided then they will be given priority than RS level {@link RsCoreBootArgs.renderFormatterTypeMap formatters}.\n */\n formatters?: RenderFormatterType[];\n /** Indicates if the field is searchable via global search.\n * @default false (except when the field type is \"text\", where it defaults to true)\n */\n searchable?: boolean;\n /**\n * Optional field whose property is used when matching this field against a global search query.\n */\n searchProperty?: FieldReference;\n}\n\nexport const ROW_DENSITY = {\n SHORT: '1',\n MEDIUM: '2',\n TALL: '3',\n WRAP_CONTENT: '4'\n} as const;\n\ntype DisplayDensity = {\n id: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n name: string;\n};\n\nexport const REPEATING_STRUCTURE_TEMPLATES = {\n TABLE: 'Table',\n GALLERY: 'Gallery',\n TIMELINE: 'Timeline',\n MAP: 'Map',\n KANBAN: 'Kanban'\n} as const;\n\nconst SELECTION_MODE = {\n SINGLE: 'single',\n MULTI: 'multi',\n MULTI_ON_HOVER: 'multi_on_hover'\n} as const;\n\ntype TimelineFieldDef = Partial<Pick<FieldDef, 'name' | 'label' | 'type' | 'meta'>>;\n\ntype DisplayFeature = {\n filter?: boolean;\n grouping?: boolean;\n sort?: boolean;\n};\n\n/** Represents a constant string value. */\nexport type ConstantValue = { value: string };\n\n/** Represents a reference to a field from {@link Meta.fieldDefs fieldDefs} by its {@link FieldDef.id id}. */\nexport type FieldReference = { field: FieldDef['id'] };\n\n/** Placement options for hero image */\nexport type HeroImagePlacement = 'left' | 'right' | 'top';\n\n/**\n * Configuration for a hero image displayed on gallery cards.\n *\n * @example\n * ```json\n * {\n * \"source\": { \"field\": \"ImageURL\" },\n * \"altText\": { \"field\": \"ImageDescription\" },\n * \"placement\": \"left\",\n * \"size\": \"flexible\"\n * }\n */\nexport type HeroImage = {\n /** Image source URL. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field} to get URL. */\n source: FieldReference;\n /** Alternative text for the image. Accepts either `{field: 'fieldId'}` to reference a {@link FieldDef field} or `{value: 'text'}` for a constant value. */\n altText?: ConstantValue | FieldReference;\n /**\n * Position of the hero image relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the hero image.\n * @default 'flexible'\n */\n size?: ImageSize;\n};\n\n/** Possible layout modes for the Gallery template. Extensible for future layouts (e.g. 'board'). */\nexport type GalleryLayout = 'cardgrid' | 'cardlist';\n\nexport interface CardTile {\n /** Field id whose value is the foreground colour (hex string). */\n foregroundColor: FieldReference;\n /** Field id whose value is the background CSS value (e.g. a linear-gradient string). */\n backgroundColor: FieldReference;\n /** Field id whose value is the registered icon name for the tile. */\n iconName?: FieldReference;\n /** Field id whose value is the text content for the tile. */\n text?: FieldReference;\n /**\n * Position of the tile relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the tile.\n * @default 'flexible'\n */\n size?: ImageSize;\n}\n\nexport interface CardConfig {\n /** Header of the card. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field}. */\n header?: FieldReference;\n /** Subheadings of the card. Accepts an array of `{field: 'fieldId'}` references to {@link FieldDef fields}. */\n subHeadings?: FieldReference[];\n /** Configuration for the hero image displayed on cards. */\n heroImage?: HeroImage;\n /** Configuration for a coloured tile shown in place of a hero image. */\n tile?: CardTile;\n /** Show field labels on cards.\n * @default true\n */\n showFieldLabels?: boolean;\n /** Optional render callback invoked for each card to produce footer content. */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n}\n\nexport interface GalleryConfig extends CardConfig {\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n header?: FieldReference;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n subHeadings?: FieldReference[];\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n heroImage?: HeroImage;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n tile?: CardTile;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n showFieldLabels?: boolean;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n /** Optional click handler called when a gallery card is clicked. Receives the raw row data. */\n onCardClick?: (rowData: RowData) => void;\n /** Layout mode for the gallery.\n * - `'cardgrid'` - multi-column grid layout (default)\n * - `'cardlist'` - single-column list layout\n * @default 'cardgrid'\n */\n layout?: GalleryLayout;\n /** Shows the toolbar toggle for switching between card grid and card list layouts.\n * @default true\n */\n showLayoutToggle?: boolean;\n}\n\n/** Meta input to RS */\nexport interface Meta {\n /** Metadata for fields */\n fieldDefs: FieldDef[];\n /** itemKey for data identification */\n itemKey: string;\n /** Preset id of the current preset/personalization. This will be used to uniquely identify the preset on which the current view is dervied from */\n id: string;\n /** Preset name of the current preset/personalization. This will be displayed to end user */\n name: string;\n /** Array of fields(extra) that should be included in the query prepared for different api's in {@link ApiContext}.\n * `lists-client-api` package implicitly appends this in `select` field while preparing the query.\n */\n patchQueryFields?: string[];\n /** Array denoting sort operation order.\n *\n * @default\n * ```json\n * ['asc', 'desc', null]\n * ```\n */\n sortOrder?: (string | null)[];\n /**\n * A collection of row density options that users can select to adjust the height of rows based on the chosen density.\n *\n * @default\n * ```json\n * [\n * { \"name\": \"Short\", \"id\": \"1\" },\n * { \"name\": \"Medium\", \"id\": \"2\" },\n * { \"name\": \"Tall\", \"id\": \"3\" },\n * { \"name\": \"Full content\", \"id\": \"4\" }\n * ]\n * ```\n */\n displayDensity?: DisplayDensity[];\n /**\n * Configuration for the height of the view.\n *\n * @default\n * ```json\n * {\n * minHeight: 600\n * }\n * ```\n */\n height?: {\n /** The minimum height in pixels for the view or 'auto' */\n minHeight?: number;\n /** Specifies an HTML element or a string query selector to which the view's height will be adjusted. If this property is used, the `height` property will be ignored */\n fitHeightToElement?: HTMLElement | string;\n /** Specifies an explicit height for the view. If set, the `fitHeightToElement` property will be ignored.\n * - `number` — explicit pixel height.\n * - CSS variable (e.g. `'--my-height'`) — height driven by a CSS custom property.\n * This takes precedence over `basicMode` height behavior.\n */\n height?: number | CSSVariable;\n /** A height adjustment value in pixels */\n deltaAdjustment?: number;\n /** If true, the height will be adjusted responsively on window resize, but only if `fitHeightToElement` is provided. */\n autoSize?: boolean;\n /** The maximum height for the view, specified in pixels or as a CSS variable (e.g., `--view-height`) */\n maxHeight?: number | string;\n /** CSS variable that defines the minimum threshold to be used in `maxHeight` calculations. If not provided, a default value of `25rem` will be used.\n *\n * Caution: Use carefully as setting this value too low can introduce usability issues on smaller screens.\n */\n maxHeightMinValueVariable?: CSSVariable;\n };\n /** Allow show/hide of fields\n *\n * @default true\n */\n toggleFieldVisibility?: boolean;\n /** Allow grouping on fields\n *\n * @default true\n */\n grouping?: boolean;\n /**\n * Determines the view of a Repeating Structure.\n *\n * @remarks\n * **Template-specific constraints:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} and {@link REPEATING_STRUCTURE_TEMPLATES.MAP Map} do not support grouping.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TIMELINE Timeline} supports only one grouping level.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} renders only the level-0 group as board lanes.\n * Configure the lane field through {@link Meta.fieldDefs fieldDefs} by setting\n * {@link FieldDef.grouping grouping} and {@link FieldDef.grouped grouped} to `true`,\n * with {@link FieldDef.groupOrder groupOrder} set to `0`.\n *\n * @default 'Table'\n */\n template?: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES];\n /** Configuration for card-based templates. Only applicable when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}. */\n cardConfig?: CardConfig;\n /** Allow editing on fields and if enabled then row actions are also enabled.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit edit behavior.\n *\n * @default false\n */\n editing?: boolean | ActionConfig;\n /** Allow deleting of rows.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit delete behavior.\n */\n deleting?: boolean | ActionConfig;\n /** Allow personalization views\n * @default true\n */\n personalization?: boolean;\n /** Enable app default personalization options in Toolbar action menu.\n * If a personalization is set as App Default then that will be used as default personalization in repeating structures.\n * @default false\n * */\n enableAppDefault?: boolean;\n /**\n * Name to be shown for non personalized view.\n * @default 'Initial view'\n */\n nonPersonalizationViewName?: string;\n /** Allow field (column) reordering through a drag and drop action.\n * @default true\n */\n reorderFields?: boolean;\n /** Allow row reordering through a drag and drop action.\n * @default false\n */\n reorderItems?: boolean;\n /**\n * Allow to add a column for drag handle\n * @default false\n * @deprecated Use {@link rowReorderField}\n */\n dragHandle?: boolean;\n /**\n * Enables row reorder column. By default if enabled, it will be visible. To override the default behavior set show as false.\n */\n rowReorderField?: {\n show: boolean;\n };\n /**\n * Brings in a search widget to allow searching across all text type fields.\n * @default true\n */\n globalSearch?: boolean;\n /** Display toolbar on the view.\n * @default true\n */\n toolbar?: boolean;\n /** Display count in toolbar.\n * @default true\n */\n showCount?: boolean;\n /**\n * Row density id value from the \"displayDensity\" options prop above.\n * @default {@link ROW_DENSITY.SHORT}\n */\n defaultRowHeight?: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n /**\n * Renders the 'Bulk actions' button in the table toolbar, which gets enabled on row selection.\n * Works only if the template is not set to timeline.\n * @default false\n */\n allowBulkActions?: boolean;\n /**\n * Denotes the page size being passed in the case of rest backed data page\n * #JSDOC\n */\n pageSize?: number;\n /** Enables date-functions like MONTHS/WEEKS/... during Grouping and Filtering. ([Object structure](https://git.pega.io/projects/PS/repos/cosmos/browse/packages/cosmos-condition-builder/src/components/ConditionBuilder/ConditionBuilder.types.ts?until=dfcf607851276bfeb877e9fb2c8f55d4396fd8b7&untilPath=packages%2Fcosmos-condition-builder%2Fsrc%2Fcomponents%2FConditionBuilder%2FConditionBuilder.types.ts#79-85)) */\n dateFunctions?: DateFunctionsByType;\n /** Enabled Relative Dates, such as \"Last 7 days\" (Or) \"Current Year\", in filtering for the DateTime or Date_Only values\".\n * @default false\n */\n relativeDates?: boolean;\n /** Display footer on the view.\n * @default true\n */\n footer?: boolean;\n /**\n * Templates for dynamic fields (or) columns which are used to combine two columns with a template.\n * @default\n * ```json\n * [\n * { name: 'Comma separated', value: 'comma',selected: true },\n * { name: 'Space separated', value: 'space' },\n * { name: 'Multi line', value: 'multiline' },\n * { name: 'Forward slash', value: 'forwardslash' }\n * ]\n * ```\n */\n dynamicFieldTemplates?: {\n name: string;\n value: string;\n selected?: boolean;\n }[];\n /** Repeating Structure Title\n * @default '<label not set>'\n */\n title?: string;\n /**\n * Override the heading tag used for the {@link Meta.title title} title in the toolbar.\n * @default 'h2'\n */\n headingTag?: HeadingTag;\n /**\n * Show the repeating structure title.\n * @default true\n */\n showTitle?: boolean;\n /** Repeating Structure Icon\n * @default 'picture'\n */\n icon?: string;\n /** Display Header Bar\n * @default false\n */\n headerBar?: boolean;\n /**\n * Display Respective Header Icons at field labels based on type\n * @default false\n */\n showHeaderIcons?: boolean;\n /** Indicates if freezing is allowed on Fields. */\n freezeFields?: boolean;\n /**\n * list of available static actions for an editable table with following properties\n * @example\n * ```json\n * [\n * {\n * text: 'Open in a new tab',\n * id: 'row-new-tab',\n * onClick: () => {}\n * }\n * ]\n * ```\n * @default\n * []\n */\n rowActions?: RowAction[];\n /** Decides type of row selection mode (radio for single/ checkbox for multi) possible values : single / multi / multi-on-hover */\n selectionMode?: (typeof SELECTION_MODE)[keyof typeof SELECTION_MODE];\n /** Displays select-all checkbox if selectionMode is multi-on-hover and the records count is not greater than threshold */\n selectionCountThreshold?: number;\n /** To Disable/Enable selection of rows */\n disableSelectionOnLoad?: boolean;\n /** To show asterisk(*) symbol on table header in case of Data Reference/Embedded views. (Note: This works perfectly if the personalization is off.) */\n requiredOnLoad?: boolean;\n /**\n * List of available static actions at table level (shown in toolbar/ headerbar) with following properties\n * [{ text: 'Add', tooltip: 'Add story', id: 'Add', onClick: () => {}}]\n */\n toolbarActions?: {\n text: string;\n id: string;\n onClick: () => void;\n tooltip: string;\n }[];\n /** Allow row reordering through a drag and drop action.\n * default value: false\n */\n moveListRecords?: boolean;\n\n /** Allow end user to refresh data of the repeating structures. Enabling this will show up `Refresh` action in repeating structures toolbar.\n * @default false\n */\n allowRefresh?: boolean;\n /** Allow switching between Table and Gallery templates at runtime via the toolbar.\n * Set to `false` for embedded tables where template switching is not supported.\n * @default true\n */\n allowSwitchTemplate?: boolean;\n\n /** The height of repeating structure is calculated on this parameter if provided. */\n numberOfRows?: number;\n /** Display views of repeating structures with full or condensed toolbar.\n * @default false\n * Default shows full toolbar.\n */\n basicMode?: boolean;\n /** Timezone which is passed to formatter\n * @default 'America/New_York'\n */\n timezone?: string;\n /** Locale which is passed to formatter function\n * @default 'en-US'\n */\n locale?: string;\n timelineFields?: {\n /** Timeline template title for display */\n title?: TimelineFieldDef;\n /** Timeline template date for display */\n date?: TimelineFieldDef;\n /** Timeline template status for display */\n status?: TimelineFieldDef & { getCustomContent?: (row: Row) => StatusProps };\n /** Timeline template icon for display */\n icon?: TimelineFieldDef;\n /** Timeline template content for display */\n content?: TimelineFieldDef;\n };\n /** Map template field ids for display */\n mapFieldIds?: {\n /** Map template location field id for display */\n location?: FieldDef['id'];\n /** Map template label field id for display */\n label?: FieldDef['id'];\n /** Map template content field id for display */\n content?: FieldDef['id'];\n };\n /**\n * Gallery-specific configuration. Card-content properties remain supported for backward\n * compatibility; use {@link Meta.cardConfig cardConfig} for new integrations.\n */\n galleryConfig?: GalleryConfig;\n // TODO: Narrow this type to a union of the known dx keys: `'PromotedFilters' | 'SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS' | 'ADVANCED_SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS'`.\n /** A unique key for injectable filters component.\n * This key will be sent to {@link RsCoreBootArgs.renderFactory renderFactory} as 'type' to get a renderer for the external filters.\n * The renderer will be shown between Repeating structures body and repeating structures toolbar.\n * This key should be used in {@link State.externalState externalState} to populate state related to externalFilters.\n */\n externalFilters?: string;\n /** This key is used to show the 'Import Data' action in the repeating structures toolbar. It will only work for Launchpad.\n * On click, it will call {@link ApiContext.importCSVData importCSVData} open a modal allowing the user to upload a file.\n */\n showImportDataOption?: boolean;\n /** This key is used to show 'Export to Excel' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file. */\n showExportToExcelOption?: boolean;\n /** This key is used to show 'Export to CSV' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportDataToCSV exportDataToCSV} api is called to export repeating structures data into CSV file. */\n showExportToCSVOption?: boolean;\n /** To enable 'Freeze columns' action in toolbar action menu. This action triggers freezing of columns.This toolbar action considers {@link FieldDef.freeze freeze} key in FieldDef too.\n * @default true\n */\n // TODO: meta.freezeFields and meta.enableFreezeColumns are checking the same thing. Evaluate if one can be removed.\n enableFreezeColumns?: boolean;\n /** To enable 'Auto size columns' action in toolbar action menu. This action triggers auto size of columns.\n * @default true\n */\n autoSizeColumns?: boolean;\n /** To enable 'Query info' action in toolbar action menu. This action shows query information.\n * @default false\n */\n showQueryInfo?: boolean;\n /** To enable 'Reset column widths' action in toolbar action menu. This action triggers reset of columns width to its default state.\n * @default true\n */\n resetColumnWidths?: boolean;\n /** To enable 'Row density' action in toolbar action menu. This action triggers a popover menu item to select row density.This toolbar action considers {@link Meta.displayDensity displayDensity} key in Meta too.\n * @default true\n */\n rowDensity?: boolean;\n /** Shows the row wrap toggle action in the toolbar.\n * Applicable only when {@link Meta.template template} is set to 'Table'.\n * @default true\n */\n showWrapAction?: boolean;\n /** To show/hide filter,sort,group action buttons from end user.\\\n * **Note**: Above features will still work, it is just not available to end user to trigger.\n * @default\n * ```json\n * {\n * filter: true,\n * grouping: true,\n * sort: true\n * }\n * ```\n */\n displayFeatures?: DisplayFeature;\n /** Enables error column. The column will be visible when dataErrors are present in {@link State.errors errors}.\n * @default false\n * @deprecated Use {@link rowErrorField}\n */\n showErrorField?: boolean;\n /**\n * Enables error column. By default if enabled, it will be hidden. To override the default behavior set show as true.\n * The column will be visible when dataErrors are present in {@link State.errors errors}.\n */\n rowErrorField?: {\n show: boolean;\n };\n /** Id of the custom renderer that should be used to display customized columns cells. */\n customFieldRenderer?: string;\n /** Id of the custom renderer that should be used to display header cells. */\n customHeaderRenderer?: string;\n /**\n * @deprecated Provide the exact fieldDef configuration in the {@link FieldDef}.\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * The default config of the FieldDef. This is used to normalize each {@link FieldDef} properties with its default value.\n */\n defaultFieldDef?: OmitStrict<FieldDef, 'name' | 'type' | 'id' | 'label'>;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A set of comparator map used for filter operation on columns. */\n comparatorMap?: FilterConfig['comparatorMap'];\n /**\n * @deprecated Use {@link Meta.editing editing} property\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * Indicates if editing is enabled on Repeating structures.\n */\n editable?: boolean;\n /** A set of aggregation options available for a column on which the data can be aggregated.\n *\n * @default\n * ```json\n * {\n * number: ['Sum', 'Min', 'Max', 'Avg']\n * }\n * ```\n */\n aggregateOptions?: {\n [fieldType: string]: AggregationType[];\n };\n /** An optional change action that will be called whenever the personalization is switched. */\n personalizationChangeAction?: () => void;\n /** Predefined filters that will be applied on load of repeating structures. */\n filterExpression?: Condition;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/lists-core",
3
- "version": "10.0.0-build.5.14",
3
+ "version": "10.0.0-build.5.16",
4
4
  "description": "Core headless UI library that the users can use to write their own UI and create repeating structures like table, gallery, timeline etc.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pegasystems",
@@ -14,8 +14,8 @@
14
14
  "build": "tsc -b tsconfig.build.json"
15
15
  },
16
16
  "dependencies": {
17
- "@pega/cosmos-react-condition-builder": "10.0.0-build.5.14",
18
- "@pega/cosmos-react-core": "10.0.0-build.5.14",
17
+ "@pega/cosmos-react-condition-builder": "10.0.0-build.5.16",
18
+ "@pega/cosmos-react-core": "10.0.0-build.5.16",
19
19
  "@types/lodash-es": "^4.17.12",
20
20
  "dayjs": "^1.11.13",
21
21
  "fast-deep-equal": "^3.1.3",