@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
36 lines (35 loc) • 1.39 kB
JavaScript
import { MathOperation } from '../../AdaptableState/Common/Enums';
import NumberExtensions from '../../Utilities/Extensions/NumberExtensions';
export const shortcutOperationList = [
MathOperation.Add,
MathOperation.Subtract,
MathOperation.Multiply,
MathOperation.Divide,
];
export const SHORTCUT_PREVIEW_EXAMPLE_VALUE = 100;
const shortcutOperationSymbols = {
[MathOperation.Add]: '+',
[MathOperation.Subtract]: '−',
[MathOperation.Multiply]: '×',
[MathOperation.Divide]: '÷',
};
export function getShortcutOperationSymbol(operation) {
return shortcutOperationSymbols[operation];
}
export function calculateShortcutResult(cellValue, shortcutValue, operation) {
if (operation === MathOperation.Divide && shortcutValue === 0) {
return null;
}
switch (operation) {
case MathOperation.Add:
return NumberExtensions.avoidJavascriptPrecisionIssues(cellValue + shortcutValue);
case MathOperation.Subtract:
return NumberExtensions.avoidJavascriptPrecisionIssues(cellValue - shortcutValue);
case MathOperation.Multiply:
return NumberExtensions.avoidJavascriptPrecisionIssues(cellValue * shortcutValue);
case MathOperation.Divide:
return NumberExtensions.avoidJavascriptPrecisionIssues(cellValue / shortcutValue);
default:
return null;
}
}