@pega/lists-core 8.20.0 → 8.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/src/core/actions/actionConstants.d.ts +1 -0
- package/lib/src/core/actions/actionConstants.d.ts.map +1 -1
- package/lib/src/core/actions/actionConstants.js +1 -0
- package/lib/src/core/actions/actionConstants.js.map +1 -1
- package/lib/src/core/actions/actions.d.ts +5 -0
- package/lib/src/core/actions/actions.d.ts.map +1 -1
- package/lib/src/core/actions/actions.js +6 -0
- package/lib/src/core/actions/actions.js.map +1 -1
- package/lib/src/core/actions/actions.types.d.ts +4 -0
- package/lib/src/core/actions/actions.types.d.ts.map +1 -1
- package/lib/src/core/generators/ViewGenerator.d.ts +10 -1
- package/lib/src/core/generators/ViewGenerator.d.ts.map +1 -1
- package/lib/src/core/generators/ViewGenerator.js +20 -3
- package/lib/src/core/generators/ViewGenerator.js.map +1 -1
- package/lib/src/core/generators/ViewGenerator.types.d.ts +11 -1
- package/lib/src/core/generators/ViewGenerator.types.d.ts.map +1 -1
- package/lib/src/core/generators/ViewGenerator.types.js.map +1 -1
- package/lib/src/core/generators/__tests__/viewUtilityMockSetup.d.ts.map +1 -1
- package/lib/src/core/generators/viewUtilityMethods.d.ts +2 -1
- package/lib/src/core/generators/viewUtilityMethods.d.ts.map +1 -1
- package/lib/src/core/generators/viewUtilityMethods.js +8 -1
- package/lib/src/core/generators/viewUtilityMethods.js.map +1 -1
- package/lib/src/core/utils/util.d.ts.map +1 -1
- package/lib/src/core/utils/util.js +2 -0
- package/lib/src/core/utils/util.js.map +1 -1
- package/lib/types.d.ts +2 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewUtilityMethods.js","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\nimport type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\n\nimport type RsInternal from '../RsInternal';\nimport ActionTypes from '../actions/actionConstants';\nimport * as actions from '../actions/actions';\nimport { rowSelectColumnMeta } from '../constants';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport { validateAction, passablePromise, deepCopy } from '../utils/util';\nimport type { Errors, State } from '../../../types/State.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions } from '../../../types/ApiContext.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { FieldDef, Meta, ROW_DENSITY } from '../../../types/Meta.types';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ColumnFilteringActionPayload,\n ExpandCollapsePayload,\n PaginationPayload\n} from '../actions/actions.types';\n\nimport type View from './ViewGenerator';\nimport type { RowData } from './RowGenerator.types';\nimport type { DebugInfo, RefreshNotification, RequiredDefinition } from './ViewGenerator.types';\n\nexport type RefreshNotificationForConsumer = OmitStrict<RefreshNotification, 'id'>;\n\nexport type SupportedConsumerPayloads = {\n [ActionTypes.USER_CONFIRMATION_ACTION]: OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >;\n [ActionTypes.UPDATE_DEBUG_INFO]: DebugInfo;\n [ActionTypes.TOGGLE_DISABLE_SELECTION]: boolean;\n [ActionTypes.TOGGLE_REQUIRED]: RequiredDefinition;\n [ActionTypes.NOTIFY_DATA_REFRESH]: RefreshNotificationForConsumer;\n [ActionTypes.SET_IN_EXTERNAL_STATE]: NonNullable<State['externalState']>;\n [ActionTypes.UPDATE_SELECTED_ROWS]: undefined;\n};\n\nexport type SupportedConsumerActionType = keyof SupportedConsumerPayloads;\n\nfunction syncData(key: string, sourceArray: RowData[], modifiedArray: RowData[]) {\n return sourceArray.map(item => {\n const item2 = modifiedArray.find(i2 => i2[key] === item[key]);\n return item2 || item;\n });\n}\n\nexport default function viewUtilityMethods(rsInternal: RsInternal) {\n const { getRsProps, getRsStateResolver, getView, getRsStore } = rsInternal;\n\n const utilMethods = {\n /**\n * Dispatches an action that creates a new state object without any internal modifications.\n *\n * If {@link instantRender} is false and {@link forceUpdateFeatures} are provided,\n * it updates the {@link State.forceUpdateFeatures forceUpdateFeatures} slice in the state.\n *\n * @param instantRender - Determines if the render should happen instantly.\n * @param forceUpdateFeatures - The features to force update in the state on next render cycle.\n */\n forceUpdate(instantRender?: boolean, forceUpdateFeatures?: State['forceUpdateFeatures']) {\n getRsStateResolver().dispatch(actions.actionForceUpdate(instantRender, forceUpdateFeatures));\n },\n\n /**\n * Handles the reordering of rows.\n *\n * If {@link Meta.moveListRecords moveListRecords} is set to true in Meta, it dispatches an action\n * that updates the keys of the {@link sourceKey source} row and the {@link destinationKey destination} row\n * in the {@link State.sourceKey sourceKey} and {@link State.destinationKey destinationKey} state slices, respectively.\n *\n * Otherwise, it calls {@link ApiContext.applyRowReorder applyRowReorder} from the apiContext and triggers\n * a {@link utilMethods.forceRefresh forceRefresh} on the state.\n *\n * @param sourceKey - The itemKey for the row being dragged.\n * @param destinationKey - The itemKey for the row on which it is dropped.\n * @returns\n */\n handleRowReorder(sourceKey: string, destinationKey: string) {\n if (getView()?.meta?.moveListRecords) {\n getRsStateResolver().dispatch(\n actions.actionMoveRecordKeysUpdate({\n sourceKey,\n destinationKey\n })\n );\n return;\n }\n getRsProps()\n .apiContext.applyRowReorder?.(sourceKey, destinationKey)\n .then(() => {\n utilMethods.forceRefresh();\n });\n },\n\n /**\n * Sets the count-related information onto the {@link View view} via {@link View.setProp setProp} and triggers {@link utilMethods.forceUpdate forceUpdate}.\n *\n * @param args - The count information object.\n * @param args.count - The total record count of the view, including group headers.\n * @param args.hasMoreResults - Indicates if the view has more records.\n * @param args.selectedRecordsCount - The total count of selected records.\n * @param args._countGeneratedInternally - Indicates if the count is generated internally. This is used for RS core internal purposes. Setting this from apiContext might lead to erroneous behavior.\n * @returns void\n */\n setRecordCount({\n count,\n hasMoreResults,\n selectedRecordsCount,\n _countGeneratedInternally,\n announce\n }: {\n count?: View['resultsCount'];\n hasMoreResults?: View['hasMoreResults'];\n selectedRecordsCount?: View['selectedRecordsCount'];\n _countGeneratedInternally?: View['countGeneratedInternally'];\n announce?: View['announceCount'];\n }) {\n // NOTE: setRecordCount can be called with partial props. So while doing setProp we need to make sure to check the existence of incoming prop value.\n // If incoming prop is undefined then it should have a fallback otherwise it will override existing value on view to undefined.\n getView().setProp({\n countGeneratedInternally: !!_countGeneratedInternally,\n hasMoreResults: hasMoreResults ?? false,\n resultsCount: count,\n selectedRecordsCount: selectedRecordsCount ?? getView().selectedRecordsCount,\n showCount: !Number.isFinite(count) ? false : !_countGeneratedInternally,\n announceCount: announce\n });\n // If count is not finite then do instantRender as we want to hide the count immediately and don't want the StateResolver queue to be empty.\n // Else the count will be displayed after the StateResolver queue becomes empty.\n const instantRender = !Number.isFinite(count);\n utilMethods.forceUpdate(instantRender);\n },\n\n /**\n * Dispatches an action to interact with repeating structures, allowing consumers\n * to perform operations using standard actions and payloads.\n *\n * @param action The action to be dispatched.\n * @param payload The payload associated with the action.\n * @returns The return value after the action has been processed by the repeating structure.\n */\n // TODO Refactor- this method to have only one parameter action object that contains type and payload. Maintenance of it will be easy.\n // TODO Make it generic specific.\n dispatchAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T]\n ): Promise<any> | undefined {\n const { dispatch } = getRsStateResolver();\n validateAction(action, payload, getView().externalStateKeys);\n\n let actionReturnValue;\n switch (action) {\n case ActionTypes.USER_CONFIRMATION_ACTION:\n // eslint-disable-next-line no-case-declarations\n const [promise, onSubmit, onCancel] = passablePromise<any>();\n getView().setProp({\n confirmationActionDetails: {\n onSubmit,\n onCancel,\n ...(payload as OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >)\n }\n });\n dispatch(actions.showConfirmationAction());\n actionReturnValue = promise;\n break;\n case ActionTypes.UPDATE_DEBUG_INFO:\n getView().setProp({ debugInfo: [payload as DebugInfo] });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.TOGGLE_DISABLE_SELECTION: {\n let rowSelectColumn = getView().columns?.find(\n column => column.field.name === rowSelectColumnMeta.field.name\n );\n if (rowSelectColumn) {\n rowSelectColumn = rowSelectColumn.setProp({\n disableSelection: payload as boolean\n });\n utilMethods.forceUpdate(false);\n }\n break;\n }\n case ActionTypes.TOGGLE_REQUIRED:\n getView().setProp({ requiredDef: payload as RequiredDefinition });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n getView().setProp('refreshNotification', {\n id: Date.now(),\n ...(payload as RefreshNotificationForConsumer)\n });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n dispatch(actions.setExternalState(payload as NonNullable<State['externalState']>));\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n utilMethods.forceUpdate(false, {\n updateSelectedRows: new Date().getTime()\n });\n break;\n\n default:\n }\n return actionReturnValue;\n },\n\n /** Returns the Html events required for reordering a column. */\n getFieldReorderProps() {\n return getRsStore().getFieldReorderProps?.();\n },\n\n // TODO: this should be moved to group generator instance.\n /**\n * Triggers the expand or collapse action for a group header.\n * Dispatches an action to update the {@link State.groupToggle groupToggle} slices in the state.\n *\n * @param payload The data related to the groups.\n */\n toggleGroupExpansion(payload: OmitStrict<ExpandCollapsePayload, 'groups'>) {\n getRsStateResolver().dispatch(actions.actionToggleExpandCollpase(payload));\n },\n\n /**\n * Clears hierarchical groups by dispatching an action to reset the {@link State.hierarchicalGroup hierarchicalGroup} slice in the state.\n */\n clearHierarchicalGroup() {\n getRsStore().groupingInfo = [];\n getRsStateResolver().dispatch(actions.actionUpdateDisplayMode({}));\n },\n\n /**\n * Dispatches a pagination action to update {@link State.paginationOptions paginationOptions} in the state slice.\n *\n * @param payload - The pagination options to update.\n * @param actionMeta - The action metadata.\n */\n onPaginate(payload: PaginationPayload, actionMeta?: ActionMeta) {\n getRsStateResolver().dispatch(actions.actionPaginate(payload, actionMeta));\n },\n\n /**\n * Removes a notification message.\n * Dispatches an action to update the {@link State.notifications notifications} slice in the state.\n *\n * @param payload The notification messages to be removed.\n */\n removeNotification(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNotificationRemove(payload));\n },\n\n /**\n * Applies a filter to the repeating structures.\n * Dispatches an action that updates the {@link State.filterExpression filterExpression} in the state.\n *\n * @param params The filter expression to apply.\n */\n applyFilter(params: ColumnFilteringActionPayload) {\n getRsStateResolver().dispatch(actions.actionColumnFiltering(params));\n },\n\n /**\n * Dispatches an action to replace the {@link State.columnAlias columnAlias} slice in the state.\n *\n * @param params - Parameters for the action. Specify the necessary details.\n */\n applyAliases(params: ApplyAliasesActionPayload) {\n getRsStateResolver().dispatch(actions.actionReplaceLabels(params));\n },\n\n /**\n * Clears filters for the specified {@link columnId}.\n * Dispatches an action to update the {@link State.clearColFilter clearColFilter} slice in the state.\n * @param columnId - The column on which the filter should be cleared.\n */\n clearFilter(columnId: string) {\n getRsStateResolver().dispatch(actions.actionClearFiltering(columnId));\n },\n\n /**\n * Applies grouping to repeating structures.\n * Dispatches an action that adds {@link State.groups groups} in the state.\n * @param payload\n */\n applyGrouping(payload: NonNullable<State['groups']>) {\n getRsStateResolver().dispatch(actions.actionAddGroups(payload));\n },\n\n /**\n * Applies sorting the repeating structures.\n * Dispatches an action that adds {@link State.sortingOrder sortingOrder} in state.\n * @param payload\n */\n applySorting(payload: NonNullable<State['sortingOrder']>) {\n getRsStateResolver().dispatch(actions.actionUpdateSort(payload));\n },\n\n /**\n * Toggles the visibility of header icons.\n * Dispatches an action to update {@link State.showHeaderIcons} in the state.\n *\n * @param status The status indicating whether to show or hide header icons.\n */\n updateHeaderIconsVisibility(status: NonNullable<State['showHeaderIcons']>) {\n getRsStateResolver().dispatch(actions.actionShowHeaderIcons(status));\n },\n\n /**\n * Applies freezing to a set of columns.\n * Dispatches an action to update {@link State.freezeColumns freezeColumns} in the state.\n *\n * @param payload The payload containing information about the columns to freeze.\n */\n applyFreeze(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnPin(payload));\n },\n\n /**\n * Toggles the visibility of columns.\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n * @param payload\n */\n applyToggleVisibility(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnToggle(payload));\n },\n\n /**\n * Sets the {@link State.hiddenColumns hiddenColumns} in the state, including out-of-the-box columns like dragHandle.\n *\n * @param payload - The payload containing columns to hide.\n * @param ootbColumns - The out-of-the-box columns to include in {@link State.hiddenColumns hiddenColumns}.\n */\n applyHiddenColumns(payload: string[], ootbColumns?: { dragHandle?: boolean }) {\n getRsStateResolver().dispatch(actions.actionHiddenColumnUpdate(payload, ootbColumns));\n },\n\n /**\n * Dispatches an action that replace {@link State.aggregationInfo aggregationInfo} slice in the state with the given {@link payload}.\n * @param payload\n */\n applyAggregations(payload: NonNullable<State['aggregationInfo']>) {\n getRsStateResolver().dispatch(actions.actionUpdateAggregations(payload));\n },\n\n /**\n * Applies order to columns of a repeatings structure with the given {@link payload}.\n * Dispatches an action that sets {@link State.colOrder columnOrder} in the state with the given {@link payload}.\n * @param payload\n */\n applyOrder(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNewColumnOrder(payload));\n },\n\n /**\n * Saves the current personalization state.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization} to persist the changes.\n *\n * @param personalizationKey The key representing the current personalization.\n * @param markAsDefault Whether to mark the current personalization as default.\n * @param markAsAppDefault Whether to mark the current personalization as app default.\n */\n updatePersonalization(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationUpdate(personalizationKey, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Sets the selected personalization state as the current state of the repeating structures.\n * Dispatches an action to update the {@link State} of the repeating structures with the selected personalization state,\n * and updates the active personalization in the {@link State.personalization personalization} state slice.\n *\n * @param args Method arguments.\n * @param args.id ID of the personalization to be set active.\n * @param args.isPreset Indicates if the personalization is preset.\n */\n applyActivePersonalization({ id, isPreset = false }: { id: string; isPreset: boolean }) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetActive({\n id,\n isPreset\n })\n );\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Creates a new personalization in the state.\n * Dispatches an action that calls {@link ApiContext.createPersonalization createPersonalization} API to create\n * a new personalization with the provided name and saves it in the {@link State.personalization personalization}.\n *\n * @param name The name of the personalization.\n * @param markAsDefault Indicates whether the new personalization should be marked as default.\n */\n createPersonalization(name: string, markAsDefault: boolean) {\n getRsStateResolver().dispatch(actions.actionPersonalizationCreate(name, markAsDefault));\n },\n\n /**\n * Updates the name, markAsDefault, and markAsAppDefault flags of the current personalization.\n *\n * @param active The current active personalization key.\n * @param name The updated name.\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 */\n editPersonalization(\n active: string,\n name: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationEdit(active, name, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Deletes the current personalization identified by the given key.\n * Dispatches an action that calls {@link ApiContext.deletePersonalization deletePersonalization} API\n * and updates the {@link State.personalization personalization} state by removing the deleted personalization.\n *\n * @param personalizationKey - The key or ID of the personalization to be deleted.\n */\n deletePersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationDelete(personalizationKey));\n },\n\n /**\n * Sets the current personalization key as the default personalization.\n * Dispatches an action to update `defaultPersonalization` in the `personalization` state slice\n * and calls {@link ApiContext.updatePersonalization updatePersonalization} API.\n *\n * @param personalizationKey - The key identifying the personalization to set as default.\n */\n setDefaultPersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationSetDefault(personalizationKey));\n },\n\n /**\n * Sets the current {@link personalizationKey} as the app's default personalization.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization updatePersonalization} api with markAsAppDefault=true for the current personalization.\n *\n * @param personalizationKey The key of the personalization to set as default.\n * @param trimmedName The name of the personalization to update.\n */\n setAppDefaultPersonalization(personalizationKey: string, trimmedName: string) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetAppDefault(personalizationKey, trimmedName)\n );\n },\n\n /**\n * Applies the provided search value as a filter expression in the state,\n * using an OR condition with a contains clause.\n *\n * @param value The search value to apply.\n */\n\n applySearch(value: string) {\n getRsStateResolver().dispatch(actions.actionSearchGlobal(value));\n },\n\n /**\n * Applies the given row density in {@link State.selectedHeightOption selectedHeightOption} state slice.\n *\n * @param payload the row density id.\n */\n applyRowHeight(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n getRsStateResolver().dispatch(actions.actionRowHeightChange(payload));\n },\n\n /**\n * Sets the {@link State.bootstrap bootstrap} status of repeating structures and update the {@link State.version version}in state.\n */\n doBootstrap() {\n getRsStateResolver().dispatch(actions.actionBootstrap());\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Triggers a refresh of data in repeating structures.\n * Dispatches an action that injects {@link State.refresh refresh} flag in the state.\n * @param flushState The state slice that needs to be reset on refresh. See {@link SUPPORTED_AVOIDABLE_FEATURES}.\n * @param featuresToAvoid The features that should not run as part of refresh. See {@link SUPPORTED_FLUSH_KEYS}.\n */\n forceRefresh(flushState: { [k: string]: boolean } = {}, featuresToAvoid: string[] = []) {\n // If a refresh is in progress, don't trigger another refresh.\n if (getRsStore().refreshInProgress) return;\n\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n\n getRsStateResolver().dispatch(actions.actionForceRefresh(flushState, featuresToAvoid));\n },\n\n /**\n * Fetches actions for the {@link selectedItems} using {@link ApiContext.fetchActions fetchActions} api.\n * @param selectedItems\n * @returns\n */\n fetchActions(selectedItems: string[]) {\n return getRsProps().apiContext.fetchActions?.(selectedItems);\n },\n\n /**\n * This resets the selection and refreshes the {@link rows} data.\n * @param rows\n */\n async clearSelectionAndRefreshRows(rows: string[]) {\n await Promise.allSettled([utilMethods.selectAllRows(false), utilMethods.refreshRows(rows)]);\n },\n\n /**\n * This removes {@link State.showConfirmationAction confirmationAction} from the state.\n */\n completeConfirmationAction() {\n getRsStateResolver().dispatch(actions.completeConfirmationAction());\n },\n\n /**\n * This sets the {@link State.errors errors} in the state.\n * @param payload\n */\n setErrors(payload: Errors) {\n if (payload.dataErrors) {\n getRsStateResolver().dispatch(actions.setDataErrors(payload.dataErrors));\n }\n },\n\n /**\n * Dispatches the dom container responsive breakpoints to state.\n * @param {*} breakpoint\n * @param {*} value\n */\n setDomContainerResponsiveBreakpoints(breakpoint: string, value: boolean) {\n const payload = { breakpoint, value };\n getRsStateResolver().dispatch(actions.setDomContainerResponsiveBreakpoints(payload));\n },\n\n /**\n * Refreshes the {@link View.data data} for {@link rows} by calling {@link ApiContext.fetchRowsData fetchRowsData} api.\n * It also calls {@link utilMethods.forceUpdate forceUpdate } to trigger state change for re-rendering.\n * @param rows\n * @returns\n */\n async refreshRows(rows: string[] = []) {\n const rsProps = getRsProps();\n if (rows.length === 0) {\n return;\n }\n const state = getRsStateResolver().getState();\n const { fetchRowsData } = rsProps.apiContext;\n const response = await fetchRowsData?.(\n deepCopy(state),\n getView().meta,\n rows,\n getView().meta.itemKey,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n );\n\n const data = syncData(getView().meta.itemKey, getView().data!, response!);\n getView().setProp({\n data: [...data]\n });\n utilMethods.forceUpdate(false, { forceRenderOnNextRun: true });\n },\n\n /**\n * Select/Deselect all rows(all pages in case of paginated data) by calling {@link ApiContext.setSelectedRows setSelectedRows}/ {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * It also updates the selected rows received from {@link ApiContext.getSelectedRows getSelectedRows} api in {@link State.selectedRows selectedRows} state slice.\n * @param isSelected\n */\n async selectAllRows(isSelected: boolean) {\n const rsProps = getRsProps();\n let selectedRows: (RowData & { $selected: boolean })[] = [];\n if (isSelected) {\n const response = await rsProps.apiContext.fetchData(\n {\n ...getRsStateResolver().getState(),\n paginationOptions: {\n rootVirtualiser: {\n startIndex: 0,\n endIndex: getView().resultsCount! - 1\n }\n },\n // passing groups as null to get all rows irrespective of groupfilters\n // @ts-expect-error Why groups is set to null? it should be set as undefined.\n groups: null\n },\n getView().meta,\n {}\n );\n if (response) {\n const { data = [] } = response;\n selectedRows = data.map(item => ({ ...item, $selected: true })) || [];\n }\n try {\n await rsProps.apiContext.setSelectedRows?.(selectedRows);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('setSelectedRows api resulting into error.', e);\n }\n } else {\n // clear all selections when selectAll is unchecked\n await rsProps.apiContext.clearSelectedRows?.();\n }\n\n const rows = await rsProps.apiContext.getSelectedRows?.();\n\n if (rows)\n getRsStateResolver().dispatch(\n actions.actionRowSelectionItemsUpdate({\n selectedRows: rows,\n mode: getView().meta.selectionMode!\n })\n );\n },\n\n /**\n * Triggers {@link ApiContext.importCSVData importCSVData} api.\n * @param create\n * @returns\n */\n importCSVData(create: ModalManagerContextValue['create']) {\n return getRsProps()\n .apiContext.importCSVData?.(create)\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportData exportData} api.\n * @returns\n */\n exportToExcel() {\n return getRsProps()\n .apiContext.exportData?.(deepCopy(getView().state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportDataToCSV exportDataToCSV} api.\n * @returns\n */\n exportToCSV() {\n return getRsProps()\n .apiContext.exportDataToCSV?.(deepCopy(getView().state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Updates the visibility of columns by modifying {@link State.hiddenColumns}.\n * @param columns - An object mapping column IDs to their visibility status. `true` indicates the column is visible, and `false` means it is hidden.\n */\n updateColumnsVisibility(columns: { [key: FieldDef['id']]: boolean }) {\n getRsStateResolver().dispatch(actions.updateColumnsVisibility(columns));\n },\n\n setConditionalStyleFormats(\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) {\n getRsStateResolver().dispatch(actions.setConditionalStyleFormats(conditionalStyleFormats));\n }\n };\n return utilMethods;\n}\nexport type UtilityFunctions = ReturnType<typeof viewUtilityMethods>;\n"]}
|
|
1
|
+
{"version":3,"file":"viewUtilityMethods.js","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\nimport type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\n\nimport type RsInternal from '../RsInternal';\nimport ActionTypes from '../actions/actionConstants';\nimport * as actions from '../actions/actions';\nimport { rowSelectColumnMeta } from '../constants';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport { validateAction, passablePromise, deepCopy, deepEqual } from '../utils/util';\nimport type { Errors, State } from '../../../types/State.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions } from '../../../types/ApiContext.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { FieldDef, Meta, ROW_DENSITY } from '../../../types/Meta.types';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ColumnFilteringActionPayload,\n ExpandCollapsePayload,\n PaginationPayload\n} from '../actions/actions.types';\n\nimport type View from './ViewGenerator';\nimport type { RowData } from './RowGenerator.types';\nimport type {\n DebugInfo,\n RefreshNotification,\n RequiredDefinition,\n WarningDetail\n} from './ViewGenerator.types';\n\nexport type RefreshNotificationForConsumer = OmitStrict<RefreshNotification, 'id'>;\n\nexport type SupportedConsumerPayloads = {\n [ActionTypes.USER_CONFIRMATION_ACTION]: OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >;\n [ActionTypes.UPDATE_DEBUG_INFO]: DebugInfo;\n [ActionTypes.TOGGLE_DISABLE_SELECTION]: boolean;\n [ActionTypes.TOGGLE_REQUIRED]: RequiredDefinition;\n [ActionTypes.NOTIFY_DATA_REFRESH]: RefreshNotificationForConsumer;\n [ActionTypes.SET_IN_EXTERNAL_STATE]: NonNullable<State['externalState']>;\n [ActionTypes.UPDATE_SELECTED_ROWS]: undefined;\n [ActionTypes.SET_WARNING_MESSAGES]: WarningDetail[];\n};\n\nexport type SupportedConsumerActionType = keyof SupportedConsumerPayloads;\n\nfunction syncData(key: string, sourceArray: RowData[], modifiedArray: RowData[]) {\n return sourceArray.map(item => {\n const item2 = modifiedArray.find(i2 => i2[key] === item[key]);\n return item2 || item;\n });\n}\n\nexport default function viewUtilityMethods(rsInternal: RsInternal) {\n const { getRsProps, getRsStateResolver, getView, getRsStore } = rsInternal;\n\n const utilMethods = {\n /**\n * Dispatches an action that creates a new state object without any internal modifications.\n *\n * If {@link instantRender} is false and {@link forceUpdateFeatures} are provided,\n * it updates the {@link State.forceUpdateFeatures forceUpdateFeatures} slice in the state.\n *\n * @param instantRender - Determines if the render should happen instantly.\n * @param forceUpdateFeatures - The features to force update in the state on next render cycle.\n */\n forceUpdate(instantRender?: boolean, forceUpdateFeatures?: State['forceUpdateFeatures']) {\n getRsStateResolver().dispatch(actions.actionForceUpdate(instantRender, forceUpdateFeatures));\n },\n\n /**\n * Handles the reordering of rows.\n *\n * If {@link Meta.moveListRecords moveListRecords} is set to true in Meta, it dispatches an action\n * that updates the keys of the {@link sourceKey source} row and the {@link destinationKey destination} row\n * in the {@link State.sourceKey sourceKey} and {@link State.destinationKey destinationKey} state slices, respectively.\n *\n * Otherwise, it calls {@link ApiContext.applyRowReorder applyRowReorder} from the apiContext and triggers\n * a {@link utilMethods.forceRefresh forceRefresh} on the state.\n *\n * @param sourceKey - The itemKey for the row being dragged.\n * @param destinationKey - The itemKey for the row on which it is dropped.\n * @returns\n */\n handleRowReorder(sourceKey: string, destinationKey: string) {\n if (getView()?.meta?.moveListRecords) {\n getRsStateResolver().dispatch(\n actions.actionMoveRecordKeysUpdate({\n sourceKey,\n destinationKey\n })\n );\n return;\n }\n getRsProps()\n .apiContext.applyRowReorder?.(sourceKey, destinationKey)\n .then(() => {\n utilMethods.forceRefresh();\n });\n },\n\n /**\n * Sets the count-related information onto the {@link View view} via {@link View.setProp setProp} and triggers {@link utilMethods.forceUpdate forceUpdate}.\n *\n * @param args - The count information object.\n * @param args.count - The total record count of the view, including group headers.\n * @param args.hasMoreResults - Indicates if the view has more records.\n * @param args.selectedRecordsCount - The total count of selected records.\n * @param args._countGeneratedInternally - Indicates if the count is generated internally. This is used for RS core internal purposes. Setting this from apiContext might lead to erroneous behavior.\n * @returns void\n */\n setRecordCount({\n count,\n hasMoreResults,\n selectedRecordsCount,\n _countGeneratedInternally,\n announce\n }: {\n count?: View['resultsCount'];\n hasMoreResults?: View['hasMoreResults'];\n selectedRecordsCount?: View['selectedRecordsCount'];\n _countGeneratedInternally?: View['countGeneratedInternally'];\n announce?: View['announceCount'];\n }) {\n // NOTE: setRecordCount can be called with partial props. So while doing setProp we need to make sure to check the existence of incoming prop value.\n // If incoming prop is undefined then it should have a fallback otherwise it will override existing value on view to undefined.\n getView().setProp({\n countGeneratedInternally: !!_countGeneratedInternally,\n hasMoreResults: hasMoreResults ?? false,\n resultsCount: count,\n selectedRecordsCount: selectedRecordsCount ?? getView().selectedRecordsCount,\n showCount: !Number.isFinite(count) ? false : !_countGeneratedInternally,\n announceCount: announce\n });\n // If count is not finite then do instantRender as we want to hide the count immediately and don't want the StateResolver queue to be empty.\n // Else the count will be displayed after the StateResolver queue becomes empty.\n const instantRender = !Number.isFinite(count);\n utilMethods.forceUpdate(instantRender);\n },\n\n /**\n * Dispatches an action to interact with repeating structures, allowing consumers\n * to perform operations using standard actions and payloads.\n *\n * @param action The action to be dispatched.\n * @param payload The payload associated with the action.\n * @returns The return value after the action has been processed by the repeating structure.\n */\n // TODO Refactor- this method to have only one parameter action object that contains type and payload. Maintenance of it will be easy.\n // TODO Make it generic specific.\n dispatchAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T]\n ): Promise<any> | undefined {\n const { dispatch } = getRsStateResolver();\n validateAction(action, payload, getView().externalStateKeys);\n\n let actionReturnValue;\n switch (action) {\n case ActionTypes.USER_CONFIRMATION_ACTION:\n // eslint-disable-next-line no-case-declarations\n const [promise, onSubmit, onCancel] = passablePromise<any>();\n getView().setProp({\n confirmationActionDetails: {\n onSubmit,\n onCancel,\n ...(payload as OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >)\n }\n });\n dispatch(actions.showConfirmationAction());\n actionReturnValue = promise;\n break;\n case ActionTypes.UPDATE_DEBUG_INFO:\n getView().setProp({ debugInfo: [payload as DebugInfo] });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.TOGGLE_DISABLE_SELECTION: {\n let rowSelectColumn = getView().columns?.find(\n column => column.field.name === rowSelectColumnMeta.field.name\n );\n if (rowSelectColumn) {\n rowSelectColumn = rowSelectColumn.setProp({\n disableSelection: payload as boolean\n });\n utilMethods.forceUpdate(false);\n }\n break;\n }\n case ActionTypes.TOGGLE_REQUIRED:\n getView().setProp({ requiredDef: payload as RequiredDefinition });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n getView().setProp('refreshNotification', {\n id: Date.now(),\n ...(payload as RefreshNotificationForConsumer)\n });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n dispatch(actions.setExternalState(payload as NonNullable<State['externalState']>));\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n utilMethods.forceUpdate(false, {\n updateSelectedRows: new Date().getTime()\n });\n break;\n case ActionTypes.SET_WARNING_MESSAGES:\n if (!deepEqual(getView().getWarningMessages(), payload)) {\n // Type assertion safe: payload type is narrowed by action type in switch case\n getView().setProp({ warningMessages: payload as WarningDetail[] });\n utilMethods.forceUpdate(false);\n }\n break;\n default:\n }\n return actionReturnValue;\n },\n\n /** Returns the Html events required for reordering a column. */\n getFieldReorderProps() {\n return getRsStore().getFieldReorderProps?.();\n },\n\n // TODO: this should be moved to group generator instance.\n /**\n * Triggers the expand or collapse action for a group header.\n * Dispatches an action to update the {@link State.groupToggle groupToggle} slices in the state.\n *\n * @param payload The data related to the groups.\n */\n toggleGroupExpansion(payload: OmitStrict<ExpandCollapsePayload, 'groups'>) {\n getRsStateResolver().dispatch(actions.actionToggleExpandCollpase(payload));\n },\n\n /**\n * Clears hierarchical groups by dispatching an action to reset the {@link State.hierarchicalGroup hierarchicalGroup} slice in the state.\n */\n clearHierarchicalGroup() {\n getRsStore().groupingInfo = [];\n getRsStateResolver().dispatch(actions.actionUpdateDisplayMode({}));\n },\n\n /**\n * Dispatches a pagination action to update {@link State.paginationOptions paginationOptions} in the state slice.\n *\n * @param payload - The pagination options to update.\n * @param actionMeta - The action metadata.\n */\n onPaginate(payload: PaginationPayload, actionMeta?: ActionMeta) {\n getRsStateResolver().dispatch(actions.actionPaginate(payload, actionMeta));\n },\n\n /**\n * Removes a notification message.\n * Dispatches an action to update the {@link State.notifications notifications} slice in the state.\n *\n * @param payload The notification messages to be removed.\n */\n removeNotification(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNotificationRemove(payload));\n },\n\n /**\n * Applies a filter to the repeating structures.\n * Dispatches an action that updates the {@link State.filterExpression filterExpression} in the state.\n *\n * @param params The filter expression to apply.\n */\n applyFilter(params: ColumnFilteringActionPayload) {\n getRsStateResolver().dispatch(actions.actionColumnFiltering(params));\n },\n\n /**\n * Dispatches an action to replace the {@link State.columnAlias columnAlias} slice in the state.\n *\n * @param params - Parameters for the action. Specify the necessary details.\n */\n applyAliases(params: ApplyAliasesActionPayload) {\n getRsStateResolver().dispatch(actions.actionReplaceLabels(params));\n },\n\n /**\n * Clears filters for the specified {@link columnId}.\n * Dispatches an action to update the {@link State.clearColFilter clearColFilter} slice in the state.\n * @param columnId - The column on which the filter should be cleared.\n */\n clearFilter(columnId: string) {\n getRsStateResolver().dispatch(actions.actionClearFiltering(columnId));\n },\n\n /**\n * Applies grouping to repeating structures.\n * Dispatches an action that adds {@link State.groups groups} in the state.\n * @param payload\n */\n applyGrouping(payload: NonNullable<State['groups']>) {\n getRsStateResolver().dispatch(actions.actionAddGroups(payload));\n },\n\n /**\n * Applies sorting the repeating structures.\n * Dispatches an action that adds {@link State.sortingOrder sortingOrder} in state.\n * @param payload\n */\n applySorting(payload: NonNullable<State['sortingOrder']>) {\n getRsStateResolver().dispatch(actions.actionUpdateSort(payload));\n },\n\n /**\n * Toggles the visibility of header icons.\n * Dispatches an action to update {@link State.showHeaderIcons} in the state.\n *\n * @param status The status indicating whether to show or hide header icons.\n */\n updateHeaderIconsVisibility(status: NonNullable<State['showHeaderIcons']>) {\n getRsStateResolver().dispatch(actions.actionShowHeaderIcons(status));\n },\n\n /**\n * Applies freezing to a set of columns.\n * Dispatches an action to update {@link State.freezeColumns freezeColumns} in the state.\n *\n * @param payload The payload containing information about the columns to freeze.\n */\n applyFreeze(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnPin(payload));\n },\n\n /**\n * Toggles the visibility of columns.\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n * @param payload\n */\n applyToggleVisibility(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnToggle(payload));\n },\n\n /**\n * Sets the {@link State.hiddenColumns hiddenColumns} in the state, including out-of-the-box columns like dragHandle.\n *\n * @param payload - The payload containing columns to hide.\n * @param ootbColumns - The out-of-the-box columns to include in {@link State.hiddenColumns hiddenColumns}.\n */\n applyHiddenColumns(payload: string[], ootbColumns?: { dragHandle?: boolean }) {\n getRsStateResolver().dispatch(actions.actionHiddenColumnUpdate(payload, ootbColumns));\n },\n\n /**\n * Dispatches an action that replace {@link State.aggregationInfo aggregationInfo} slice in the state with the given {@link payload}.\n * @param payload\n */\n applyAggregations(payload: NonNullable<State['aggregationInfo']>) {\n getRsStateResolver().dispatch(actions.actionUpdateAggregations(payload));\n },\n\n /**\n * Applies order to columns of a repeatings structure with the given {@link payload}.\n * Dispatches an action that sets {@link State.colOrder columnOrder} in the state with the given {@link payload}.\n * @param payload\n */\n applyOrder(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNewColumnOrder(payload));\n },\n\n /**\n * Saves the current personalization state.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization} to persist the changes.\n *\n * @param personalizationKey The key representing the current personalization.\n * @param markAsDefault Whether to mark the current personalization as default.\n * @param markAsAppDefault Whether to mark the current personalization as app default.\n */\n updatePersonalization(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationUpdate(personalizationKey, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Sets the selected personalization state as the current state of the repeating structures.\n * Dispatches an action to update the {@link State} of the repeating structures with the selected personalization state,\n * and updates the active personalization in the {@link State.personalization personalization} state slice.\n *\n * @param args Method arguments.\n * @param args.id ID of the personalization to be set active.\n * @param args.isPreset Indicates if the personalization is preset.\n */\n applyActivePersonalization({ id, isPreset = false }: { id: string; isPreset: boolean }) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetActive({\n id,\n isPreset\n })\n );\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Creates a new personalization in the state.\n * Dispatches an action that calls {@link ApiContext.createPersonalization createPersonalization} API to create\n * a new personalization with the provided name and saves it in the {@link State.personalization personalization}.\n *\n * @param name The name of the personalization.\n * @param markAsDefault Indicates whether the new personalization should be marked as default.\n */\n createPersonalization(name: string, markAsDefault: boolean) {\n getRsStateResolver().dispatch(actions.actionPersonalizationCreate(name, markAsDefault));\n },\n\n /**\n * Updates the name, markAsDefault, and markAsAppDefault flags of the current personalization.\n *\n * @param active The current active personalization key.\n * @param name The updated name.\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 */\n editPersonalization(\n active: string,\n name: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationEdit(active, name, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Deletes the current personalization identified by the given key.\n * Dispatches an action that calls {@link ApiContext.deletePersonalization deletePersonalization} API\n * and updates the {@link State.personalization personalization} state by removing the deleted personalization.\n *\n * @param personalizationKey - The key or ID of the personalization to be deleted.\n */\n deletePersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationDelete(personalizationKey));\n },\n\n /**\n * Sets the current personalization key as the default personalization.\n * Dispatches an action to update `defaultPersonalization` in the `personalization` state slice\n * and calls {@link ApiContext.updatePersonalization updatePersonalization} API.\n *\n * @param personalizationKey - The key identifying the personalization to set as default.\n */\n setDefaultPersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationSetDefault(personalizationKey));\n },\n\n /**\n * Sets the current {@link personalizationKey} as the app's default personalization.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization updatePersonalization} api with markAsAppDefault=true for the current personalization.\n *\n * @param personalizationKey The key of the personalization to set as default.\n * @param trimmedName The name of the personalization to update.\n */\n setAppDefaultPersonalization(personalizationKey: string, trimmedName: string) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetAppDefault(personalizationKey, trimmedName)\n );\n },\n\n /**\n * Applies the provided search value as a filter expression in the state,\n * using an OR condition with a contains clause.\n *\n * @param value The search value to apply.\n */\n\n applySearch(value: string) {\n getRsStateResolver().dispatch(actions.actionSearchGlobal(value));\n },\n\n /**\n * Applies the given row density in {@link State.selectedHeightOption selectedHeightOption} state slice.\n *\n * @param payload the row density id.\n */\n applyRowHeight(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n getRsStateResolver().dispatch(actions.actionRowHeightChange(payload));\n },\n\n /**\n * Sets the {@link State.bootstrap bootstrap} status of repeating structures and update the {@link State.version version}in state.\n */\n doBootstrap() {\n getRsStateResolver().dispatch(actions.actionBootstrap());\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Triggers a refresh of data in repeating structures.\n * Dispatches an action that injects {@link State.refresh refresh} flag in the state.\n * @param flushState The state slice that needs to be reset on refresh. See {@link SUPPORTED_AVOIDABLE_FEATURES}.\n * @param featuresToAvoid The features that should not run as part of refresh. See {@link SUPPORTED_FLUSH_KEYS}.\n */\n forceRefresh(flushState: { [k: string]: boolean } = {}, featuresToAvoid: string[] = []) {\n // If a refresh is in progress, don't trigger another refresh.\n if (getRsStore().refreshInProgress) return;\n\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n\n getRsStateResolver().dispatch(actions.actionForceRefresh(flushState, featuresToAvoid));\n },\n\n /**\n * Fetches actions for the {@link selectedItems} using {@link ApiContext.fetchActions fetchActions} api.\n * @param selectedItems\n * @returns\n */\n fetchActions(selectedItems: string[]) {\n return getRsProps().apiContext.fetchActions?.(selectedItems);\n },\n\n /**\n * This resets the selection and refreshes the {@link rows} data.\n * @param rows\n */\n async clearSelectionAndRefreshRows(rows: string[]) {\n await Promise.allSettled([utilMethods.selectAllRows(false), utilMethods.refreshRows(rows)]);\n },\n\n /**\n * This removes {@link State.showConfirmationAction confirmationAction} from the state.\n */\n completeConfirmationAction() {\n getRsStateResolver().dispatch(actions.completeConfirmationAction());\n },\n\n /**\n * This sets the {@link State.errors errors} in the state.\n * @param payload\n */\n setErrors(payload: Errors) {\n if (payload.dataErrors) {\n getRsStateResolver().dispatch(actions.setDataErrors(payload.dataErrors));\n }\n },\n /**\n * Dispatches the dom container responsive breakpoints to state.\n * @param {*} breakpoint\n * @param {*} value\n */\n setDomContainerResponsiveBreakpoints(breakpoint: string, value: boolean) {\n const payload = { breakpoint, value };\n getRsStateResolver().dispatch(actions.setDomContainerResponsiveBreakpoints(payload));\n },\n\n /**\n * Refreshes the {@link View.data data} for {@link rows} by calling {@link ApiContext.fetchRowsData fetchRowsData} api.\n * It also calls {@link utilMethods.forceUpdate forceUpdate } to trigger state change for re-rendering.\n * @param rows\n * @returns\n */\n async refreshRows(rows: string[] = []) {\n const rsProps = getRsProps();\n if (rows.length === 0) {\n return;\n }\n const state = getRsStateResolver().getState();\n const { fetchRowsData } = rsProps.apiContext;\n const response = await fetchRowsData?.(\n deepCopy(state),\n getView().meta,\n rows,\n getView().meta.itemKey,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n );\n\n const data = syncData(getView().meta.itemKey, getView().data!, response!);\n getView().setProp({\n data: [...data]\n });\n utilMethods.forceUpdate(false, { forceRenderOnNextRun: true });\n },\n\n /**\n * Select/Deselect all rows(all pages in case of paginated data) by calling {@link ApiContext.setSelectedRows setSelectedRows}/ {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * It also updates the selected rows received from {@link ApiContext.getSelectedRows getSelectedRows} api in {@link State.selectedRows selectedRows} state slice.\n * @param isSelected\n */\n async selectAllRows(isSelected: boolean) {\n const rsProps = getRsProps();\n let selectedRows: (RowData & { $selected: boolean })[] = [];\n if (isSelected) {\n const response = await rsProps.apiContext.fetchData(\n {\n ...getRsStateResolver().getState(),\n paginationOptions: {\n rootVirtualiser: {\n startIndex: 0,\n endIndex: getView().resultsCount! - 1\n }\n },\n // passing groups as null to get all rows irrespective of groupfilters\n // @ts-expect-error Why groups is set to null? it should be set as undefined.\n groups: null\n },\n getView().meta,\n {}\n );\n if (response) {\n const { data = [] } = response;\n selectedRows = data.map(item => ({ ...item, $selected: true })) || [];\n }\n try {\n await rsProps.apiContext.setSelectedRows?.(selectedRows);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('setSelectedRows api resulting into error.', e);\n }\n } else {\n // clear all selections when selectAll is unchecked\n await rsProps.apiContext.clearSelectedRows?.();\n }\n\n const rows = await rsProps.apiContext.getSelectedRows?.();\n\n if (rows)\n getRsStateResolver().dispatch(\n actions.actionRowSelectionItemsUpdate({\n selectedRows: rows,\n mode: getView().meta.selectionMode!\n })\n );\n },\n\n /**\n * Triggers {@link ApiContext.importCSVData importCSVData} api.\n * @param create\n * @returns\n */\n importCSVData(create: ModalManagerContextValue['create']) {\n return getRsProps()\n .apiContext.importCSVData?.(create)\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportData exportData} api.\n * @returns\n */\n exportToExcel() {\n return getRsProps()\n .apiContext.exportData?.(deepCopy(getView().state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportDataToCSV exportDataToCSV} api.\n * @returns\n */\n exportToCSV() {\n return getRsProps()\n .apiContext.exportDataToCSV?.(deepCopy(getView().state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Updates the visibility of columns by modifying {@link State.hiddenColumns}.\n * @param columns - An object mapping column IDs to their visibility status. `true` indicates the column is visible, and `false` means it is hidden.\n */\n updateColumnsVisibility(columns: { [key: FieldDef['id']]: boolean }) {\n getRsStateResolver().dispatch(actions.updateColumnsVisibility(columns));\n },\n\n setConditionalStyleFormats(\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) {\n getRsStateResolver().dispatch(actions.setConditionalStyleFormats(conditionalStyleFormats));\n }\n };\n return utilMethods;\n}\nexport type UtilityFunctions = ReturnType<typeof viewUtilityMethods>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -686,6 +686,8 @@ export function validateAction(action, payload, externalStateKeys) {
|
|
|
686
686
|
case ActionTypes.SET_IN_EXTERNAL_STATE:
|
|
687
687
|
validateExternalStateAction(payload, externalStateKeys);
|
|
688
688
|
break;
|
|
689
|
+
case ActionTypes.SET_WARNING_MESSAGES:
|
|
690
|
+
break;
|
|
689
691
|
default:
|
|
690
692
|
throw Error(`Action ${action} is not supported!`);
|
|
691
693
|
}
|
|
@@ -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 } from '@pega/cosmos-react-core';\n\nimport { filterParams, comparatorMap, type FilterConfig } from '../config/filterConfig';\nimport { EXTERNAL_FILTERS, rowDragDropColumnMeta, SELECTION_MODES, TEMPLATES } 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 type { FieldDef, Meta, StyleFormat } 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';\n\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';\nimport evaluateConditionLocally from './condition-utils';\n\nexport const EXCLUDED_NUMERIC_TYPES = ['Currency'];\nconst groupBySeparator = '||'; // To avoid any ambiguities\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 * 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=null] - 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 hidden columns state.\n * This function also accounts for columns from custom fields that are visible.\n *\n * @param fieldDefs - The {@link Meta.fieldDefs fieldDefs}.\n * @param hiddenColumns - The list of {@link State.hiddenColumns hiddenColumns}.\n * @param customFields - The {@link State.customFields customFields}.\n * @returns The list of visible fields.\n */\nexport const getVisibileFields = (\n fieldDefs: FieldDef[] = [],\n hiddenColumns: State['hiddenColumns'] = [],\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 }) => !hiddenColumns.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 }) => !hiddenColumns.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 => hiddenColumns.includes(fieldId)) // taking only, which are hidden in state to avoid duplicates\n .map(fieldId => fieldMap[fieldId]);\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\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): 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\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 meta.defaultFieldDef = { ...defaultConfig.defaultFieldDef, ...meta.defaultFieldDef };\n\n // Handle if fieldDefs is null or undefined\n meta.fieldDefs = meta.fieldDefs ?? [];\n meta.fieldDefs.forEach((column: FieldDef) => {\n normalizeFieldDef(column, meta.defaultFieldDef!);\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 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 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 * Logs the given {@link cleanedUpFieldIds invalid column ids} to console as warning.\n * @param cleanedUpFieldIds invalid column ids.\n *\n */\nexport function logInvalidFields(cleanedUpFieldIds: string[]): void {\n // eslint-disable-next-line no-console\n if (cleanedUpFieldIds.length !== 0 && console?.warn) {\n // eslint-disable-next-line no-console\n console.warn(\n `Columns with following id are not found. \\n ${[...new Set(cleanedUpFieldIds)].join(\n ', '\n )}\\n Resulting outcome might not be correct. Please check the configuration.`\n );\n }\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} 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 * 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// 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 isFreezingEnabled = (meta: Meta): boolean => {\n return (\n meta.freezeFields ||\n isRowErrorFieldEnabled(meta) ||\n isRowReorderFieldEnabled(meta) ||\n isRowSelectFieldEnabled(meta)\n );\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 } from '@pega/cosmos-react-core';\n\nimport { filterParams, comparatorMap, type FilterConfig } from '../config/filterConfig';\nimport { EXTERNAL_FILTERS, rowDragDropColumnMeta, SELECTION_MODES, TEMPLATES } 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 type { FieldDef, Meta, StyleFormat } 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';\n\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';\nimport evaluateConditionLocally from './condition-utils';\n\nexport const EXCLUDED_NUMERIC_TYPES = ['Currency'];\nconst groupBySeparator = '||'; // To avoid any ambiguities\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 * 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=null] - 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 hidden columns state.\n * This function also accounts for columns from custom fields that are visible.\n *\n * @param fieldDefs - The {@link Meta.fieldDefs fieldDefs}.\n * @param hiddenColumns - The list of {@link State.hiddenColumns hiddenColumns}.\n * @param customFields - The {@link State.customFields customFields}.\n * @returns The list of visible fields.\n */\nexport const getVisibileFields = (\n fieldDefs: FieldDef[] = [],\n hiddenColumns: State['hiddenColumns'] = [],\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 }) => !hiddenColumns.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 }) => !hiddenColumns.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 => hiddenColumns.includes(fieldId)) // taking only, which are hidden in state to avoid duplicates\n .map(fieldId => fieldMap[fieldId]);\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\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): 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\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 meta.defaultFieldDef = { ...defaultConfig.defaultFieldDef, ...meta.defaultFieldDef };\n\n // Handle if fieldDefs is null or undefined\n meta.fieldDefs = meta.fieldDefs ?? [];\n meta.fieldDefs.forEach((column: FieldDef) => {\n normalizeFieldDef(column, meta.defaultFieldDef!);\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 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 * Logs the given {@link cleanedUpFieldIds invalid column ids} to console as warning.\n * @param cleanedUpFieldIds invalid column ids.\n *\n */\nexport function logInvalidFields(cleanedUpFieldIds: string[]): void {\n // eslint-disable-next-line no-console\n if (cleanedUpFieldIds.length !== 0 && console?.warn) {\n // eslint-disable-next-line no-console\n console.warn(\n `Columns with following id are not found. \\n ${[...new Set(cleanedUpFieldIds)].join(\n ', '\n )}\\n Resulting outcome might not be correct. Please check the configuration.`\n );\n }\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} 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 * 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// 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 isFreezingEnabled = (meta: Meta): boolean => {\n return (\n meta.freezeFields ||\n isRowErrorFieldEnabled(meta) ||\n isRowReorderFieldEnabled(meta) ||\n isRowSelectFieldEnabled(meta)\n );\n};\n"]}
|
package/lib/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { State as StateType, Group as GroupType, PersonalizedState as Perso
|
|
|
5
5
|
import type { RowData as RowDataType } from './src/core/generators/RowGenerator.types';
|
|
6
6
|
import type RowType from './src/core/generators/RowGenerator';
|
|
7
7
|
import type ViewType from './src/core/generators/ViewGenerator';
|
|
8
|
+
import type { WarningDetail as WarningDetailType } from './src/core/generators/ViewGenerator.types';
|
|
8
9
|
import type { ColumnRenderingEngineProps as ColumnRenderingEnginePropsType } from './src/core/generators/ColumnGenerator.types';
|
|
9
10
|
import type ColumnType from './src/core/generators/ColumnGenerator';
|
|
10
11
|
import type RsCoreBootArgs from './types/RsCoreBootArgs.types';
|
|
@@ -27,5 +28,6 @@ export declare namespace RsCoreTypes {
|
|
|
27
28
|
type View = ViewType;
|
|
28
29
|
type RowData = RowDataType;
|
|
29
30
|
type Errors = StateErrors;
|
|
31
|
+
type WarningDetail = WarningDetailType;
|
|
30
32
|
}
|
|
31
33
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EACV,KAAK,IAAI,SAAS,EAClB,KAAK,IAAI,SAAS,EAClB,iBAAiB,IAAI,qBAAqB,EAC1C,MAAM,IAAI,WAAW,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,IAAI,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAChI,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEzG,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,6CAA6C;IAC7C,KAAY,UAAU,GAAG,cAAc,CAAC;IACxC,KAAY,IAAI,GAAG,QAAQ,CAAC;IAC5B,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,iBAAiB,GAAG,qBAAqB,CAAC;IACtD,KAAY,QAAQ,GAAG,YAAY,CAAC;IACpC,KAAY,sBAAsB,GAAG,0BAA0B,CAAC;IAChE,KAAY,0BAA0B,GAAG,8BAA8B,CAAC;IACxE,KAAY,cAAc,GAAG,cAAc,CAAC;IAC5C,KAAY,KAAK,GAAG,SAAS,CAAC;IAE9B,KAAY,MAAM,GAAG,WAAW,CAAC;IAEjC,KAAY,MAAM,GAAG,UAAU,CAAC;IAChC,KAAY,GAAG,GAAG,OAAO,CAAC;IAC1B,KAAY,IAAI,GAAG,QAAQ,CAAC;IAC5B,KAAY,OAAO,GAAG,WAAW,CAAC;IAClC,KAAY,MAAM,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EACV,KAAK,IAAI,SAAS,EAClB,KAAK,IAAI,SAAS,EAClB,iBAAiB,IAAI,qBAAqB,EAC1C,MAAM,IAAI,WAAW,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,OAAO,MAAM,oCAAoC,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACpG,OAAO,KAAK,EAAE,0BAA0B,IAAI,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAChI,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEzG,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,6CAA6C;IAC7C,KAAY,UAAU,GAAG,cAAc,CAAC;IACxC,KAAY,IAAI,GAAG,QAAQ,CAAC;IAC5B,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,iBAAiB,GAAG,qBAAqB,CAAC;IACtD,KAAY,QAAQ,GAAG,YAAY,CAAC;IACpC,KAAY,sBAAsB,GAAG,0BAA0B,CAAC;IAChE,KAAY,0BAA0B,GAAG,8BAA8B,CAAC;IACxE,KAAY,cAAc,GAAG,cAAc,CAAC;IAC5C,KAAY,KAAK,GAAG,SAAS,CAAC;IAE9B,KAAY,MAAM,GAAG,WAAW,CAAC;IAEjC,KAAY,MAAM,GAAG,UAAU,CAAC;IAChC,KAAY,GAAG,GAAG,OAAO,CAAC;IAC1B,KAAY,IAAI,GAAG,QAAQ,CAAC;IAC5B,KAAY,OAAO,GAAG,WAAW,CAAC;IAClC,KAAY,MAAM,GAAG,WAAW,CAAC;IACjC,KAAY,aAAa,GAAG,iBAAiB,CAAC;CAC/C"}
|