@pega/lists-core 9.28.1 → 9.29.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/src/core/actions/actionConstants.d.ts +2 -0
- package/lib/src/core/actions/actionConstants.d.ts.map +1 -1
- package/lib/src/core/actions/actionConstants.js +3 -1
- package/lib/src/core/actions/actionConstants.js.map +1 -1
- package/lib/src/core/actions/actions.d.ts +8 -1
- package/lib/src/core/actions/actions.d.ts.map +1 -1
- package/lib/src/core/actions/actions.js +11 -0
- package/lib/src/core/actions/actions.js.map +1 -1
- package/lib/src/core/actions/actions.types.d.ts +10 -0
- package/lib/src/core/actions/actions.types.d.ts.map +1 -1
- package/lib/src/core/actions/actions.types.js.map +1 -1
- package/lib/src/core/features/featureFactory.d.ts.map +1 -1
- package/lib/src/core/features/featureFactory.js +2 -0
- package/lib/src/core/features/featureFactory.js.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.d.ts.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.js +5 -2
- package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.js.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/masterDetail.d.ts +11 -0
- package/lib/src/core/features/uIFeatures/beforeRender/masterDetail.d.ts.map +1 -0
- package/lib/src/core/features/uIFeatures/beforeRender/masterDetail.js +97 -0
- package/lib/src/core/features/uIFeatures/beforeRender/masterDetail.js.map +1 -0
- package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.d.ts.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.js +1 -0
- package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.js.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/refresh.d.ts.map +1 -1
- package/lib/src/core/features/uIFeatures/beforeRender/refresh.js +2 -0
- package/lib/src/core/features/uIFeatures/beforeRender/refresh.js.map +1 -1
- package/lib/src/core/features/uIFeatures/index.d.ts +2 -0
- package/lib/src/core/features/uIFeatures/index.d.ts.map +1 -1
- package/lib/src/core/features/uIFeatures/index.js +2 -0
- package/lib/src/core/features/uIFeatures/index.js.map +1 -1
- package/lib/src/core/generators/RowGenerator.d.ts +11 -1
- package/lib/src/core/generators/RowGenerator.d.ts.map +1 -1
- package/lib/src/core/generators/RowGenerator.js +36 -2
- package/lib/src/core/generators/RowGenerator.js.map +1 -1
- package/lib/src/core/generators/RowGenerator.types.d.ts +13 -1
- package/lib/src/core/generators/RowGenerator.types.d.ts.map +1 -1
- package/lib/src/core/generators/RowGenerator.types.js.map +1 -1
- package/lib/src/core/generators/ViewGenerator.d.ts +3 -1
- package/lib/src/core/generators/ViewGenerator.d.ts.map +1 -1
- package/lib/src/core/generators/ViewGenerator.js +7 -1
- package/lib/src/core/generators/ViewGenerator.js.map +1 -1
- package/lib/src/core/generators/ViewGenerator.types.d.ts +21 -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 +5 -0
- package/lib/src/core/generators/__tests__/viewUtilityMockSetup.d.ts.map +1 -1
- package/lib/src/core/generators/viewUtilityMethods.d.ts +18 -0
- package/lib/src/core/generators/viewUtilityMethods.d.ts.map +1 -1
- package/lib/src/core/generators/viewUtilityMethods.js +91 -0
- package/lib/src/core/generators/viewUtilityMethods.js.map +1 -1
- package/lib/src/core/reducers/error.d.ts +1 -0
- package/lib/src/core/reducers/error.d.ts.map +1 -1
- package/lib/src/core/reducers/index.d.ts +1 -0
- package/lib/src/core/reducers/index.d.ts.map +1 -1
- package/lib/src/core/reducers/index.js +3 -1
- package/lib/src/core/reducers/index.js.map +1 -1
- package/lib/src/core/reducers/masterDetail.d.ts +4 -0
- package/lib/src/core/reducers/masterDetail.d.ts.map +1 -0
- package/lib/src/core/reducers/masterDetail.js +23 -0
- package/lib/src/core/reducers/masterDetail.js.map +1 -0
- package/lib/src/core/reducers/personalizationReducer.d.ts +1 -1
- package/lib/src/core/utils/masterDetail.d.ts +8 -0
- package/lib/src/core/utils/masterDetail.d.ts.map +1 -0
- package/lib/src/core/utils/masterDetail.js +25 -0
- package/lib/src/core/utils/masterDetail.js.map +1 -0
- package/lib/src/core/utils/util.d.ts.map +1 -1
- package/lib/src/core/utils/util.js +3 -0
- package/lib/src/core/utils/util.js.map +1 -1
- package/lib/types/Meta.types.d.ts +21 -3
- package/lib/types/Meta.types.d.ts.map +1 -1
- package/lib/types/Meta.types.js.map +1 -1
- package/lib/types/State.types.d.ts +9 -0
- package/lib/types/State.types.d.ts.map +1 -1
- package/lib/types/State.types.js.map +1 -1
- package/lib/types.d.ts +9 -4
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,7 @@ import ActionTypes from '../actions/actionConstants';
|
|
|
2
2
|
import * as actions from '../actions/actions';
|
|
3
3
|
import { rowSelectColumnMeta } from '../constants';
|
|
4
4
|
import { validateAction, passablePromise, deepCopy, deepEqual } from '../utils/util';
|
|
5
|
+
import getMasterDetailSelection, { isMasterDetailSupported } from '../utils/masterDetail';
|
|
5
6
|
function syncData(key, sourceArray, modifiedArray) {
|
|
6
7
|
return sourceArray.map(item => {
|
|
7
8
|
const item2 = modifiedArray.find(i2 => i2[key] === item[key]);
|
|
@@ -472,6 +473,8 @@ export default function viewUtilityMethods(rsInternal) {
|
|
|
472
473
|
getView().setProp({
|
|
473
474
|
data: [...data]
|
|
474
475
|
});
|
|
476
|
+
// Refresh the active detail as it may be stale even when the refreshed table row data is unchanged.
|
|
477
|
+
utilMethods.refreshMasterDetail(rows);
|
|
475
478
|
utilMethods.forceUpdate(false, { forceRenderOnNextRun: true });
|
|
476
479
|
},
|
|
477
480
|
/**
|
|
@@ -585,6 +588,94 @@ export default function viewUtilityMethods(rsInternal) {
|
|
|
585
588
|
setConditionalStyleFormats(conditionalStyleFormats) {
|
|
586
589
|
getRsStateResolver().dispatch(actions.setConditionalStyleFormats(conditionalStyleFormats));
|
|
587
590
|
},
|
|
591
|
+
/**
|
|
592
|
+
* Opens a currently generated row in Master Detail.
|
|
593
|
+
* Semantic Link supplies `nestedTarget` for nested navigation, while View-in-Modal supplies
|
|
594
|
+
* `viewName` for a custom root view; these overrides are mutually exclusive.
|
|
595
|
+
*
|
|
596
|
+
* @param rowKey - Key of the row to open from the current generated row window.
|
|
597
|
+
* @param nestedTarget - Semantic Link target to open within the selected row's detail panel.
|
|
598
|
+
* @param viewName - View-in-Modal view to render as the selected row's root detail.
|
|
599
|
+
*/
|
|
600
|
+
openMasterDetail(rowKey, nestedTarget, viewName) {
|
|
601
|
+
if (!isMasterDetailSupported(getView())) {
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
604
|
+
const matchingRows = getView().rows?.filter(row => row.key === rowKey) ?? [];
|
|
605
|
+
if (matchingRows.length !== 1) {
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
// The feature that resolves State into View.masterDetail runs asynchronously after dispatch,
|
|
609
|
+
// so nestedTarget/viewName must be set on the View before dispatching, not after.
|
|
610
|
+
// Every outer open starts a new selection and clears navigation metadata omitted by the caller.
|
|
611
|
+
// TODO: Nested target(Semantic link) && viewName(ViewInModal) handling should not be part of RS core, its DX/RS semantics. Can simplify?
|
|
612
|
+
const view = getView();
|
|
613
|
+
const selection = getMasterDetailSelection(view, { masterDetail: { rowKey } });
|
|
614
|
+
if (selection) {
|
|
615
|
+
view.setProp({
|
|
616
|
+
masterDetail: {
|
|
617
|
+
...selection,
|
|
618
|
+
nestedTarget: viewName ? undefined : nestedTarget,
|
|
619
|
+
viewName: nestedTarget ? undefined : viewName
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey }));
|
|
624
|
+
},
|
|
625
|
+
/** Closes the active Master Detail item. */
|
|
626
|
+
closeMasterDetail() {
|
|
627
|
+
getRsStateResolver().dispatch(actions.actionCloseMasterDetail());
|
|
628
|
+
},
|
|
629
|
+
/** Clears the nested target on the active Master Detail selection for the given row, without closing it. */
|
|
630
|
+
clearMasterDetailNestedTarget(rowKey) {
|
|
631
|
+
const view = getView();
|
|
632
|
+
if (view.masterDetail?.rowKey !== rowKey || !view.masterDetail.nestedTarget) {
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
635
|
+
view.setProp({ masterDetail: { ...view.masterDetail, nestedTarget: undefined } });
|
|
636
|
+
},
|
|
637
|
+
/** Refreshes the active Master Detail when no row keys, or its row key, is supplied. */
|
|
638
|
+
refreshMasterDetail(rowKeys) {
|
|
639
|
+
const view = getView();
|
|
640
|
+
const { masterDetail } = view;
|
|
641
|
+
if (!masterDetail || (rowKeys && !rowKeys.includes(masterDetail.rowKey))) {
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
view.setProp({
|
|
645
|
+
masterDetail: { ...masterDetail, refreshKey: crypto.randomUUID() }
|
|
646
|
+
});
|
|
647
|
+
},
|
|
648
|
+
/** Navigates within the current loaded Master Detail row window. */
|
|
649
|
+
navigateMasterDetail(direction) {
|
|
650
|
+
const view = getView();
|
|
651
|
+
if (!isMasterDetailSupported(view)) {
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
const selection = view.masterDetail;
|
|
655
|
+
const rows = view.rows ?? [];
|
|
656
|
+
if (!selection) {
|
|
657
|
+
return;
|
|
658
|
+
}
|
|
659
|
+
const currentIndex = rows.findIndex(row => row.key === selection.rowKey);
|
|
660
|
+
if (currentIndex === -1) {
|
|
661
|
+
return;
|
|
662
|
+
}
|
|
663
|
+
const offset = direction === 'previous' ? -1 : 1;
|
|
664
|
+
const nextRow = rows[currentIndex + offset];
|
|
665
|
+
if (!nextRow) {
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
const nextSelection = getMasterDetailSelection(view, {
|
|
669
|
+
masterDetail: { rowKey: nextRow.key }
|
|
670
|
+
});
|
|
671
|
+
if (nextSelection) {
|
|
672
|
+
// Set same view that was there previously
|
|
673
|
+
view.setProp({
|
|
674
|
+
masterDetail: { ...nextSelection, viewName: selection.viewName }
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey: nextRow.key }));
|
|
678
|
+
},
|
|
588
679
|
/**
|
|
589
680
|
* Switches the active template for the view at runtime
|
|
590
681
|
* (e.g. when the user toggles between Table and Gallery from the toolbar).
|
|
@@ -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, 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, GalleryLayout, 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';\nimport type Column from './ColumnGenerator';\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 */\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.id === rowSelectColumnMeta.field.id\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 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 * Sets the {@link State.visibleColumns visibleColumns} in the state.\n * @param columnId - A single column ID or an array of column IDs to make visible.\n */\n applyVisibleColumns(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionVisibleColumnUpdate(payload));\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 * Applies gallery layout on the current view.\n *\n * @param layout - Gallery layout mode.\n */\n applyGalleryLayout(layout: GalleryLayout) {\n getRsStateResolver().dispatch(actions.actionGalleryLayoutChange(layout));\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 // Communicate forceRefresh to apiContext via ApiOptions.\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n // Communicate forceRefresh to apiContext via callback.\n getRsProps().apiContext.onBeforeRefresh?.();\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 */\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 */\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 and groupFilters as undefined to get all rows\n groups: undefined,\n groupFilters: undefined\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 */\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 */\n exportToExcel() {\n function getVisibleColumnFormatters() {\n const visibleColumns = getView().getVisibleColumns();\n const formatters: Record<string, Column['formatterConfig']> = {};\n visibleColumns?.forEach(column => {\n if (column.formatterConfig) {\n formatters[column.field.id] = column.formatterConfig;\n }\n });\n return formatters;\n }\n return getRsProps()\n .apiContext.exportData?.(\n deepCopy(getView().state),\n getView().meta,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n },\n getVisibleColumnFormatters()\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 */\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 /**\n * Switches the active template for the view at runtime\n * (e.g. when the user toggles between Table and Gallery from the toolbar).\n *\n * @param template The target template to switch to.\n */\n changeTemplate(template: NonNullable<View['template']>) {\n if (getView().meta.allowSwitchTemplate === false) return;\n getRsStateResolver().dispatch(actions.actionChangeTemplate(template));\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 getMasterDetailSelection, { isMasterDetailSupported } from '../utils/masterDetail';\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';\nimport type { FieldDef, GalleryLayout, 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 { RowData } from './RowGenerator.types';\nimport type View from './ViewGenerator';\nimport type {\n DebugInfo,\n RefreshNotification,\n RequiredDefinition,\n WarningDetail\n} from './ViewGenerator.types';\nimport type Column from './ColumnGenerator';\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 */\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.id === rowSelectColumnMeta.field.id\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 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 * Sets the {@link State.visibleColumns visibleColumns} in the state.\n * @param columnId - A single column ID or an array of column IDs to make visible.\n */\n applyVisibleColumns(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionVisibleColumnUpdate(payload));\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 * Applies gallery layout on the current view.\n *\n * @param layout - Gallery layout mode.\n */\n applyGalleryLayout(layout: GalleryLayout) {\n getRsStateResolver().dispatch(actions.actionGalleryLayoutChange(layout));\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 // Communicate forceRefresh to apiContext via ApiOptions.\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n // Communicate forceRefresh to apiContext via callback.\n getRsProps().apiContext.onBeforeRefresh?.();\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 */\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 */\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\n // Refresh the active detail as it may be stale even when the refreshed table row data is unchanged.\n utilMethods.refreshMasterDetail(rows);\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 and groupFilters as undefined to get all rows\n groups: undefined,\n groupFilters: undefined\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 */\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 */\n exportToExcel() {\n function getVisibleColumnFormatters() {\n const visibleColumns = getView().getVisibleColumns();\n const formatters: Record<string, Column['formatterConfig']> = {};\n visibleColumns?.forEach(column => {\n if (column.formatterConfig) {\n formatters[column.field.id] = column.formatterConfig;\n }\n });\n return formatters;\n }\n return getRsProps()\n .apiContext.exportData?.(\n deepCopy(getView().state),\n getView().meta,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n },\n getVisibleColumnFormatters()\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 */\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 /**\n * Opens a currently generated row in Master Detail.\n * Semantic Link supplies `nestedTarget` for nested navigation, while View-in-Modal supplies\n * `viewName` for a custom root view; these overrides are mutually exclusive.\n *\n * @param rowKey - Key of the row to open from the current generated row window.\n * @param nestedTarget - Semantic Link target to open within the selected row's detail panel.\n * @param viewName - View-in-Modal view to render as the selected row's root detail.\n */\n openMasterDetail(rowKey: string, nestedTarget?: Record<string, unknown>, viewName?: string) {\n if (!isMasterDetailSupported(getView())) {\n return;\n }\n\n const matchingRows = getView().rows?.filter(row => row.key === rowKey) ?? [];\n if (matchingRows.length !== 1) {\n return;\n }\n\n // The feature that resolves State into View.masterDetail runs asynchronously after dispatch,\n // so nestedTarget/viewName must be set on the View before dispatching, not after.\n // Every outer open starts a new selection and clears navigation metadata omitted by the caller.\n // TODO: Nested target(Semantic link) && viewName(ViewInModal) handling should not be part of RS core, its DX/RS semantics. Can simplify?\n const view = getView();\n const selection = getMasterDetailSelection(view, { masterDetail: { rowKey } });\n if (selection) {\n view.setProp({\n masterDetail: {\n ...selection,\n nestedTarget: viewName ? undefined : nestedTarget,\n viewName: nestedTarget ? undefined : viewName\n }\n });\n }\n\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey }));\n },\n\n /** Closes the active Master Detail item. */\n closeMasterDetail() {\n getRsStateResolver().dispatch(actions.actionCloseMasterDetail());\n },\n\n /** Clears the nested target on the active Master Detail selection for the given row, without closing it. */\n clearMasterDetailNestedTarget(rowKey: string) {\n const view = getView();\n if (view.masterDetail?.rowKey !== rowKey || !view.masterDetail.nestedTarget) {\n return;\n }\n view.setProp({ masterDetail: { ...view.masterDetail, nestedTarget: undefined } });\n },\n\n /** Refreshes the active Master Detail when no row keys, or its row key, is supplied. */\n refreshMasterDetail(rowKeys?: string[]) {\n const view = getView();\n const { masterDetail } = view;\n if (!masterDetail || (rowKeys && !rowKeys.includes(masterDetail.rowKey))) {\n return;\n }\n view.setProp({\n masterDetail: { ...masterDetail, refreshKey: crypto.randomUUID() }\n });\n },\n\n /** Navigates within the current loaded Master Detail row window. */\n navigateMasterDetail(direction: 'previous' | 'next') {\n const view = getView();\n if (!isMasterDetailSupported(view)) {\n return;\n }\n\n const selection = view.masterDetail;\n const rows = view.rows ?? [];\n if (!selection) {\n return;\n }\n\n const currentIndex = rows.findIndex(row => row.key === selection.rowKey);\n if (currentIndex === -1) {\n return;\n }\n const offset = direction === 'previous' ? -1 : 1;\n const nextRow = rows[currentIndex + offset];\n if (!nextRow) {\n return;\n }\n\n const nextSelection = getMasterDetailSelection(view, {\n masterDetail: { rowKey: nextRow.key }\n });\n if (nextSelection) {\n // Set same view that was there previously\n view.setProp({\n masterDetail: { ...nextSelection, viewName: selection.viewName }\n });\n }\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey: nextRow.key }));\n },\n\n /**\n * Switches the active template for the view at runtime\n * (e.g. when the user toggles between Table and Gallery from the toolbar).\n *\n * @param template The target template to switch to.\n */\n changeTemplate(template: NonNullable<View['template']>) {\n if (getView().meta.allowSwitchTemplate === false) return;\n getRsStateResolver().dispatch(actions.actionChangeTemplate(template));\n }\n };\n return utilMethods;\n}\nexport type UtilityFunctions = ReturnType<typeof viewUtilityMethods>;\n"]}
|
|
@@ -32,6 +32,7 @@ declare const _default: (state: State, action: Action) => State | {
|
|
|
32
32
|
updateSelectedRows?: number;
|
|
33
33
|
};
|
|
34
34
|
selectedRows?: string[];
|
|
35
|
+
masterDetail?: import("../../../types/State.types").MasterDetailState;
|
|
35
36
|
template?: string;
|
|
36
37
|
currentTemplate?: import("../../../types/Meta.types").Meta["template"];
|
|
37
38
|
presetId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/core/reducers/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;yBAEvC,OAAO,KAAK,EAAE,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/core/reducers/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;yBAEvC,OAAO,KAAK,EAAE,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAmBm/U,CAAC;+BAAkI,CAAC;0BAAmJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnBvzV,wBAkBE"}
|
|
@@ -33,6 +33,7 @@ export default function initializeReducers({ getRsProps }: RsInternal): (state:
|
|
|
33
33
|
updateSelectedRows?: number;
|
|
34
34
|
};
|
|
35
35
|
selectedRows?: string[];
|
|
36
|
+
masterDetail?: import("../../../types/State.types").MasterDetailState;
|
|
36
37
|
template?: string;
|
|
37
38
|
currentTemplate?: import("../../../types/Meta.types").Meta["template"];
|
|
38
39
|
presetId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/reducers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/reducers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAoExD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,IAC3D,OAAO,KAAK,EAAE,QAAQ,MAAM,EAAE,YAAY,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAe2hR,CAAC;+BAAkI,CAAC;0BAAmJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EADh3R"}
|
|
@@ -27,6 +27,7 @@ import error from './error';
|
|
|
27
27
|
import smallScreen from './smallScreen';
|
|
28
28
|
import conditionalStyleFormat from './conditionalStyleFormat';
|
|
29
29
|
import changeTemplate from './changeTemplate';
|
|
30
|
+
import masterDetail from './masterDetail';
|
|
30
31
|
// Please ensure that personalizationReducer is at the last in the queue...
|
|
31
32
|
// we can restructure these reducer calls to be composition too if required
|
|
32
33
|
const AllReducers = [
|
|
@@ -58,7 +59,8 @@ const AllReducers = [
|
|
|
58
59
|
externalState,
|
|
59
60
|
error,
|
|
60
61
|
conditionalStyleFormat,
|
|
61
|
-
changeTemplate
|
|
62
|
+
changeTemplate,
|
|
63
|
+
masterDetail
|
|
62
64
|
];
|
|
63
65
|
export default function initializeReducers({ getRsProps }) {
|
|
64
66
|
return (state, action, rsInternal) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/reducers/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,sBAAsB,MAAM,mBAAmB,CAAC;AACvD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,cAAc,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/reducers/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,sBAAsB,MAAM,mBAAmB,CAAC;AACvD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,2EAA2E;AAC3E,2EAA2E;AAC3E,MAAM,WAAW,GAAG;IAClB,UAAU;IACV,WAAW;IACX,eAAe;IACf,WAAW;IACX,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;IACR,WAAW;IACX,MAAM;IACN,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,UAAU;IACV,mBAAmB;IACnB,sBAAsB;IACtB,WAAW;IACX,sBAAsB;IACtB,2BAA2B;IAC3B,SAAS;IACT,WAAW;IACX,WAAW;IACX,aAAa;IACb,KAAK;IACL,sBAAsB;IACtB,cAAc;IACd,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,UAAU,EAAc;IACnE,OAAO,CAAC,KAAY,EAAE,MAAc,EAAE,UAAsB,EAAE,EAAE;QAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE;YACnE,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAEhB,IAAI,UAAU,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,+BAA+B;YAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE9B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAC1C,8BAA8B;QAChC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type RsInternal from '../RsInternal';\nimport type { Action } from '../actions/actions.types';\nimport type { State } from '../../../types/State.types';\n\nimport aggregation from './aggregation';\nimport bootstrap from './bootstrap';\nimport customColumn from './customColumn';\nimport dragDrop from './dragDrop';\nimport filter from './filter';\nimport freeze from './freeze';\nimport galleryView from './galleryView';\nimport grouping from './grouping';\nimport paginations from './paginations';\nimport resize from './resize';\nimport sanitize from './sanitize';\nimport search from './search';\nimport sort from './sort';\nimport visibility from './visibility';\nimport showHeaderIcons from './showHeaderIcons';\nimport personalizationReducer from './personalizationReducer';\nimport personalizationDirtyReducer from './personalizationDirtyReducer';\nimport notificationReducer from './notificationsReducer';\nimport renderFormatterReducer from './renderFormatter';\nimport columnAlias from './columnAlias';\nimport forceUpdate from './forceUpdate';\nimport versioning from './versioning';\nimport rowSelect from './rowSelect';\nimport moveRecords from './moveRecords';\nimport externalState from './externalState';\nimport error from './error';\nimport smallScreen from './smallScreen';\nimport conditionalStyleFormat from './conditionalStyleFormat';\nimport changeTemplate from './changeTemplate';\nimport masterDetail from './masterDetail';\n\n// Please ensure that personalizationReducer is at the last in the queue...\n// we can restructure these reducer calls to be composition too if required\nconst AllReducers = [\n versioning,\n forceUpdate,\n showHeaderIcons,\n aggregation,\n bootstrap,\n customColumn,\n dragDrop,\n filter,\n freeze,\n galleryView,\n grouping,\n paginations,\n resize,\n sanitize,\n search,\n sort,\n visibility,\n notificationReducer,\n renderFormatterReducer,\n columnAlias,\n personalizationReducer,\n personalizationDirtyReducer,\n rowSelect,\n smallScreen,\n moveRecords,\n externalState,\n error,\n conditionalStyleFormat,\n changeTemplate,\n masterDetail\n];\n\nexport default function initializeReducers({ getRsProps }: RsInternal) {\n return (state: State, action: Action, rsInternal: RsInternal) => {\n const reducedstate = AllReducers.reduce((accState, currentReducer) => {\n return currentReducer(accState, action, rsInternal);\n }, state || {});\n\n if (getRsProps().mode === 'debug') {\n /* eslint-disable no-console */\n console.log('action', action);\n\n console.log('reducedstate', reducedstate);\n /* eslint-enable no-console */\n }\n return reducedstate;\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterDetail.d.ts","sourceRoot":"","sources":["../../../../src/core/reducers/masterDetail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAoBxE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import ActionTypes from '../actions/actionConstants';
|
|
2
|
+
export default function masterDetail(state, action) {
|
|
3
|
+
switch (action.type) {
|
|
4
|
+
case ActionTypes.OPEN_MASTER_DETAIL:
|
|
5
|
+
return {
|
|
6
|
+
...state,
|
|
7
|
+
masterDetail: {
|
|
8
|
+
rowKey: action.payload.rowKey
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
case ActionTypes.CLOSE_MASTER_DETAIL:
|
|
12
|
+
if (!state.masterDetail) {
|
|
13
|
+
return state;
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
...state,
|
|
17
|
+
masterDetail: undefined
|
|
18
|
+
};
|
|
19
|
+
default:
|
|
20
|
+
return state;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=masterDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterDetail.js","sourceRoot":"","sources":["../../../../src/core/reducers/masterDetail.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAY,EAAE,MAAc;IAC/D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW,CAAC,kBAAkB;YACjC,OAAO;gBACL,GAAG,KAAK;gBACR,YAAY,EAAE;oBACZ,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;iBAC9B;aACF,CAAC;QACJ,KAAK,WAAW,CAAC,mBAAmB;YAClC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO;gBACL,GAAG,KAAK;gBACR,YAAY,EAAE,SAAS;aACxB,CAAC;QACJ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC","sourcesContent":["import type { State } from '../../../types/State.types';\nimport ActionTypes from '../actions/actionConstants';\nimport type { Action } from '../actions/actions.types';\n\nexport default function masterDetail(state: State, action: Action): State {\n switch (action.type) {\n case ActionTypes.OPEN_MASTER_DETAIL:\n return {\n ...state,\n masterDetail: {\n rowKey: action.payload.rowKey\n }\n };\n case ActionTypes.CLOSE_MASTER_DETAIL:\n if (!state.masterDetail) {\n return state;\n }\n return {\n ...state,\n masterDetail: undefined\n };\n default:\n return state;\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { State } from '../../../types/State.types';
|
|
2
2
|
import type { Action } from '../actions/actions.types';
|
|
3
3
|
import type RsInternal from '../RsInternal';
|
|
4
|
-
export declare const personalizationProps: ("template" | "version" | "groups" | "showHeaderIcons" | "filterExpression" | "visibleColumns" | "customFields" | "externalState" | "sortingOrder" | "freezeColumns" | "hiddenColumns" | "columnWidths" | "colOrder" | "aggregationInfo" | "hierarchicalGroup" | "renderFormatter" | "
|
|
4
|
+
export declare const personalizationProps: ("template" | "version" | "groups" | "showHeaderIcons" | "filterExpression" | "visibleColumns" | "customFields" | "externalState" | "sortingOrder" | "freezeColumns" | "hiddenColumns" | "columnWidths" | "colOrder" | "aggregationInfo" | "hierarchicalGroup" | "renderFormatter" | "presetId" | "selectedHeightOption" | "galleryLayout" | "_groupsSnapshot" | "columnAlias" | "allGroupsExpanded")[];
|
|
5
5
|
export default function personalizationReducer(state: State, action: Action, { getView }: RsInternal): State;
|
|
6
6
|
//# sourceMappingURL=personalizationReducer.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { State } from '../../../types/State.types';
|
|
2
|
+
import type View from '../generators/ViewGenerator';
|
|
3
|
+
import type { MasterDetailSelection } from '../generators/ViewGenerator.types';
|
|
4
|
+
/** Returns whether the active view supports Master Detail interaction. */
|
|
5
|
+
export declare function isMasterDetailSupported(view: View): boolean;
|
|
6
|
+
/** Resolves the current Master Detail state against the generated rows in a View. */
|
|
7
|
+
export default function getMasterDetailSelection(view: View, state: State): MasterDetailSelection | undefined;
|
|
8
|
+
//# sourceMappingURL=masterDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterDetail.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/masterDetail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,IAAI,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAE3D;AAED,qFAAqF;AACrF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,GACX,qBAAqB,GAAG,SAAS,CAqBnC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { REPEATING_STRUCTURE_TEMPLATES } from '../../../types/Meta.types';
|
|
2
|
+
/** Returns whether the active view supports Master Detail interaction. */
|
|
3
|
+
export function isMasterDetailSupported(view) {
|
|
4
|
+
return view.template === REPEATING_STRUCTURE_TEMPLATES.TABLE && Boolean(view.meta.masterDetail);
|
|
5
|
+
}
|
|
6
|
+
/** Resolves the current Master Detail state against the generated rows in a View. */
|
|
7
|
+
export default function getMasterDetailSelection(view, state) {
|
|
8
|
+
const rowKey = state.masterDetail?.rowKey;
|
|
9
|
+
const rows = view.rows ?? [];
|
|
10
|
+
if (!rowKey || !rows.length) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const matchingRows = rows.filter(row => row.key === rowKey);
|
|
14
|
+
if (matchingRows.length !== 1) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const rowIndex = rows.findIndex(row => row.key === rowKey);
|
|
18
|
+
return {
|
|
19
|
+
rowKey,
|
|
20
|
+
row: rows[rowIndex],
|
|
21
|
+
hasPrevious: rowIndex > 0,
|
|
22
|
+
hasNext: rowIndex < rows.length - 1
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=masterDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterDetail.js","sourceRoot":"","sources":["../../../../src/core/utils/masterDetail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAI1E,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB,CAAC,IAAU;IAChD,OAAO,IAAI,CAAC,QAAQ,KAAK,6BAA6B,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClG,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,IAAU,EACV,KAAY;IAEZ,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAC5D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAE3D,OAAO;QACL,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;QACnB,WAAW,EAAE,QAAQ,GAAG,CAAC;QACzB,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;KACpC,CAAC;AACJ,CAAC","sourcesContent":["import type { State } from '../../../types/State.types';\nimport { REPEATING_STRUCTURE_TEMPLATES } from '../../../types/Meta.types';\nimport type View from '../generators/ViewGenerator';\nimport type { MasterDetailSelection } from '../generators/ViewGenerator.types';\n\n/** Returns whether the active view supports Master Detail interaction. */\nexport function isMasterDetailSupported(view: View): boolean {\n return view.template === REPEATING_STRUCTURE_TEMPLATES.TABLE && Boolean(view.meta.masterDetail);\n}\n\n/** Resolves the current Master Detail state against the generated rows in a View. */\nexport default function getMasterDetailSelection(\n view: View,\n state: State\n): MasterDetailSelection | undefined {\n const rowKey = state.masterDetail?.rowKey;\n const rows = view.rows ?? [];\n\n if (!rowKey || !rows.length) {\n return undefined;\n }\n\n const matchingRows = rows.filter(row => row.key === rowKey);\n if (matchingRows.length !== 1) {\n return undefined;\n }\n\n const rowIndex = rows.findIndex(row => row.key === rowKey);\n\n return {\n rowKey,\n row: rows[rowIndex],\n hasPrevious: rowIndex > 0,\n hasNext: rowIndex < rows.length - 1\n };\n}\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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"}
|