UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

83 lines (82 loc) 4.09 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from 'react'; import { OnePageAdaptableWizard, OnePageWizardSummary, } from '../../../View/Wizard/OnePageAdaptableWizard'; import { renderScopeSummary, isScopeValid } from '../../Components/NewScopeComponent'; import { PlusMinusScopeWizardSection } from './PlusMinusScopeWizardSection'; import { PlusMinusSettingsWizardSection, PlusMinusSettingsSummary, isSettingsValid, } from './PlusMinusSettingsWizardSection'; import { PlusMinusRuleWizardSection, PlusMinusRuleStepSummary, isRuleValid, } from './PlusMinusRuleWizardSection'; import ObjectFactory from '../../../Utilities/ObjectFactory'; import { useDispatch } from 'react-redux'; import * as PlusMinusRedux from '../../../Redux/ActionsReducers/PlusMinusRedux'; import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection'; import { Box } from '../../../components/Flex'; export const PlusMinusWizard = (props) => { const [plusMinus, doSetPlusMinus] = React.useState(() => { const newPlusMinus = { ...(props.data ? props.data : ObjectFactory.CreateEmptyPlusMinusNudge()), Scope: props?.data?.Scope ?? { All: true }, NudgeValue: props?.data?.NudgeValue ?? 20, }; if (props?.popupParams?.column) { newPlusMinus.Scope = { ColumnIds: [props.popupParams.column.columnId], }; } return newPlusMinus; }); const setPlusMinus = React.useCallback((data) => { doSetPlusMinus(data); }, []); const dispatch = useDispatch(); const handleFinish = () => { if (props.data) { dispatch(PlusMinusRedux.PlusMinusNudgeEdit(plusMinus)); } else { dispatch(PlusMinusRedux.PlusMinusNudgeAdd(plusMinus)); } props.onFinishWizard(plusMinus); }; return (_jsx(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: plusMinus, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [ { title: 'Settings', details: 'Provide details of the Plus/Minus Nudge', isValid: isSettingsValid, renderSummary: () => _jsx(PlusMinusSettingsSummary, {}), render: () => _jsx(PlusMinusSettingsWizardSection, { onChange: setPlusMinus }), }, { title: 'Rule', details: 'Choose when the nudge should be applied', isValid: isRuleValid, renderSummary: () => _jsx(PlusMinusRuleStepSummary, {}), render: () => (_jsx(PlusMinusRuleWizardSection, { defaultPredicateId: "NonBlanks", onChange: setPlusMinus })), }, { title: 'Target', isValid: isScopeValid, details: 'Specify where Plus/Minus should be applied', renderSummary: () => renderScopeSummary(plusMinus.Scope, { scopeWholeRow: 'Plus/Minus is applied for matching rows', scopeColumns: 'Plus/Minus is applied in cells in selected columns', scopeDataTypes: '', }), render: () => _jsx(PlusMinusScopeWizardSection, { onChange: setPlusMinus }), }, { details: 'Select Plus/Minus Tags', title: 'Tags', isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(), render: () => (_jsx(Box, { className: "twa:p-2", children: _jsx(ObjectTagsWizardSection, { onChange: setPlusMinus }) })), renderSummary: renderObjectTagsSummary, }, '-', { details: 'Review the Plus/Minus Nudge', render: () => { return (_jsx(Box, { className: "twa:p-2", children: _jsx(OnePageWizardSummary, {}) })); }, title: 'Summary', }, ] })); };