@lowentry/mui 1.2.10 → 1.2.12
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/DatePicker/index.js +3 -2
- package/DatePicker/index.js.map +1 -1
- package/NumericTextField/index.js +52 -54
- package/NumericTextField/index.js.map +1 -1
- package/RemovableNumericTextField/index.js +5 -5
- package/RemovableNumericTextField/index.js.map +1 -1
- package/package.json +2 -1
- package/src/components/DatePicker.jsx +2 -2
- package/src/components/NumericTextField.jsx +64 -66
- package/src/components/RemovableNumericTextField.jsx +1 -1
package/DatePicker/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { s as styleInject } from '../style-inject.es-1f59c1d0.js';
|
|
|
15
15
|
var css_248z = ".lowentry-mui--date-picker{padding:.5rem}.lowentry-mui--date-picker .lowentry-mui--date-picker--arrow-button{min-width:0;padding:6px 12px}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield{cursor:pointer!important;max-width:150px}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield .MuiInputBase-input{padding:10px 0;text-align:center}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield .MuiOutlinedInput-notchedOutline{border:0!important}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield *{cursor:pointer!important}";
|
|
16
16
|
styleInject(css_248z);
|
|
17
17
|
|
|
18
|
-
var _excluded = ["dateFormat", "value", "className"],
|
|
18
|
+
var _excluded = ["dateFormat", "value", "className", "children"],
|
|
19
19
|
_excluded2 = ["value", "dateFormat", "onChange", "className", "children"];
|
|
20
20
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
21
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -27,6 +27,7 @@ var DatePickerTextField = LeRed.memo(function (_ref) {
|
|
|
27
27
|
var dateFormat = _ref.dateFormat,
|
|
28
28
|
value = _ref.value,
|
|
29
29
|
className = _ref.className,
|
|
30
|
+
children = _ref.children,
|
|
30
31
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
31
32
|
var onClick = LeRed.useMemo(function () {
|
|
32
33
|
var _props$ownerState, _props$InputProps;
|
|
@@ -88,7 +89,7 @@ var DatePickerTextField = LeRed.memo(function (_ref) {
|
|
|
88
89
|
onTouchStart: onSelect,
|
|
89
90
|
onTouchMove: onSelect
|
|
90
91
|
})
|
|
91
|
-
}))));
|
|
92
|
+
}), children)));
|
|
92
93
|
});
|
|
93
94
|
var DatePicker = LeRed.memo(function (_ref2) {
|
|
94
95
|
var value = _ref2.value,
|
package/DatePicker/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/DatePicker.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {IS_ARRAY} from '@lowentry/utils';\nimport Dayjs from 'dayjs';\nimport {Button, Stack, TextField} from '@mui/material';\nimport {DatePicker as MuiDatePicker} from '@mui/x-date-pickers';\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\nimport './DatePicker.less';\n\n\nconst DatePickerTextField = LeRed.memo(({dateFormat, value, className, ...props}) =>\n{\n\tconst onClick = LeRed.useMemo(() =>\n\t{\n\t\tif(props?.ownerState?.open)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tlet propsLoop = props?.InputProps?.endAdornment?.props;\n\t\twhile(propsLoop)\n\t\t{\n\t\t\tif(propsLoop.onClick)\n\t\t\t{\n\t\t\t\treturn propsLoop.onClick;\n\t\t\t}\n\t\t\tif(propsLoop?.children)\n\t\t\t{\n\t\t\t\tpropsLoop = propsLoop.children;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif(IS_ARRAY(propsLoop))\n\t\t\t{\n\t\t\t\tlet continueLoop = false;\n\t\t\t\tfor(const propsLoopItem of propsLoop)\n\t\t\t\t{\n\t\t\t\t\tif(propsLoopItem?.props)\n\t\t\t\t\t{\n\t\t\t\t\t\tpropsLoop = propsLoopItem.props;\n\t\t\t\t\t\tcontinueLoop = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(continueLoop)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpropsLoop = propsLoop?.props;\n\t\t}\n\t\treturn null;\n\t}, [props?.ownerState?.open, props?.InputProps?.endAdornment?.props]);\n\t\n\t\n\tconst onSelect = LeRed.useCallback((event) =>\n\t{\n\t\tevent.target.selectionStart = event.target.selectionEnd;\n\t\tevent.preventDefault();\n\t}, []);\n\t\n\t\n\treturn (<>\n\t\t<Button variant=\"outlined\" onClick={onClick}>\n\t\t\t<TextField {...props} className={'lowentry-mui--date-picker--textfield ' + (className ?? '')} variant=\"outlined\" value={Dayjs(value).format(dateFormat)} InputProps={{...(props.InputProps ?? {}), readOnly:true, endAdornment:null, onSelect:onSelect, onSelectCapture:onSelect, onMouseDown:onSelect, onTouchStart:onSelect, onTouchMove:onSelect}}/>\n\t\t</Button>\n\t</>);\n});\n\n\nconst DatePicker = LeRed.memo(({value, dateFormat, onChange, className, children, ...props}) =>\n{\n\tif(!dateFormat)\n\t{\n\t\tdateFormat = 'ddd, D MMM YYYY';\n\t}\n\t\n\tconst [datepickerOpen, openDatepicker, closeDatepicker] = LeRed.useHistoryState(false);\n\t\n\t\n\tconst onChanged = LeRed.useCallback((...args) =>\n\t{\n\t\tif(onChange)\n\t\t{\n\t\t\tonChange(...args);\n\t\t}\n\t}, [onChange]);\n\t\n\t\n\treturn (<>\n\t\t<Stack className={'lowentry-mui--date-picker ' + (className ?? '')} direction=\"row\" justifyContent=\"space-between\" spacing={1} {...props}>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).subtract(1, 'day'))}><ArrowBackIosNewIcon/></Button>\n\t\t\t<MuiDatePicker\n\t\t\t\topen={datepickerOpen}\n\t\t\t\tonOpen={openDatepicker}\n\t\t\t\tonClose={closeDatepicker}\n\t\t\t\tshowDaysOutsideCurrentMonth={true}\n\t\t\t\tviews={['day']}\n\t\t\t\tformat=\"YYYY-MM-DD\"\n\t\t\t\tlabel=\"\"\n\t\t\t\tisRequired={true}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tslots={{\n\t\t\t\t\ttextField:DatePickerTextField,\n\t\t\t\t\ttoolbar: (props) => null,\n\t\t\t\t}}\n\t\t\t\tslotProps={{\n\t\t\t\t\ttextField:{dateFormat},\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).add(1, 'day'))}><ArrowForwardIosIcon/></Button>\n\t\t</Stack>\n\t</>);\n});\nexport default DatePicker;\n"],"names":["DatePickerTextField","LeRed","memo","_ref","_props$ownerState2","_props$InputProps2","_props$InputProps3","dateFormat","value","className","props","_objectWithoutProperties","_excluded","onClick","useMemo","_props$ownerState","_props$InputProps","ownerState","open","propsLoop","InputProps","endAdornment","_propsLoop","_propsLoop2","children","IS_ARRAY","continueLoop","_iterator","_createForOfIteratorHelper","_step","s","n","done","propsLoopItem","err","e","f","onSelect","useCallback","event","target","selectionStart","selectionEnd","preventDefault","React","createElement","Fragment","Button","variant","TextField","_extends","Dayjs","format","_objectSpread","readOnly","onSelectCapture","onMouseDown","onTouchStart","onTouchMove","DatePicker","_ref2","onChange","_excluded2","_LeRed$useHistoryStat","useHistoryState","_LeRed$useHistoryStat2","_slicedToArray","datepickerOpen","openDatepicker","closeDatepicker","onChanged","apply","arguments","Stack","direction","justifyContent","spacing","color","subtract","ArrowBackIosNewIcon","MuiDatePicker","onOpen","onClose","showDaysOutsideCurrentMonth","views","label","isRequired","slots","textField","toolbar","slotProps","add","ArrowForwardIosIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/DatePicker.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {IS_ARRAY} from '@lowentry/utils';\nimport Dayjs from 'dayjs';\nimport {Button, Stack, TextField} from '@mui/material';\nimport {DatePicker as MuiDatePicker} from '@mui/x-date-pickers';\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\nimport './DatePicker.less';\n\n\nconst DatePickerTextField = LeRed.memo(({dateFormat, value, className, children, ...props}) =>\n{\n\tconst onClick = LeRed.useMemo(() =>\n\t{\n\t\tif(props?.ownerState?.open)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tlet propsLoop = props?.InputProps?.endAdornment?.props;\n\t\twhile(propsLoop)\n\t\t{\n\t\t\tif(propsLoop.onClick)\n\t\t\t{\n\t\t\t\treturn propsLoop.onClick;\n\t\t\t}\n\t\t\tif(propsLoop?.children)\n\t\t\t{\n\t\t\t\tpropsLoop = propsLoop.children;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif(IS_ARRAY(propsLoop))\n\t\t\t{\n\t\t\t\tlet continueLoop = false;\n\t\t\t\tfor(const propsLoopItem of propsLoop)\n\t\t\t\t{\n\t\t\t\t\tif(propsLoopItem?.props)\n\t\t\t\t\t{\n\t\t\t\t\t\tpropsLoop = propsLoopItem.props;\n\t\t\t\t\t\tcontinueLoop = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(continueLoop)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpropsLoop = propsLoop?.props;\n\t\t}\n\t\treturn null;\n\t}, [props?.ownerState?.open, props?.InputProps?.endAdornment?.props]);\n\t\n\t\n\tconst onSelect = LeRed.useCallback((event) =>\n\t{\n\t\tevent.target.selectionStart = event.target.selectionEnd;\n\t\tevent.preventDefault();\n\t}, []);\n\t\n\t\n\treturn (<>\n\t\t<Button variant=\"outlined\" onClick={onClick}>\n\t\t\t<TextField {...props} className={'lowentry-mui--date-picker--textfield ' + (className ?? '')} variant=\"outlined\" value={Dayjs(value).format(dateFormat)} InputProps={{...(props.InputProps ?? {}), readOnly:true, endAdornment:null, onSelect:onSelect, onSelectCapture:onSelect, onMouseDown:onSelect, onTouchStart:onSelect, onTouchMove:onSelect}}>{children}</TextField>\n\t\t</Button>\n\t</>);\n});\n\n\nconst DatePicker = LeRed.memo(({value, dateFormat, onChange, className, children, ...props}) =>\n{\n\tif(!dateFormat)\n\t{\n\t\tdateFormat = 'ddd, D MMM YYYY';\n\t}\n\t\n\tconst [datepickerOpen, openDatepicker, closeDatepicker] = LeRed.useHistoryState(false);\n\t\n\t\n\tconst onChanged = LeRed.useCallback((...args) =>\n\t{\n\t\tif(onChange)\n\t\t{\n\t\t\tonChange(...args);\n\t\t}\n\t}, [onChange]);\n\t\n\t\n\treturn (<>\n\t\t<Stack className={'lowentry-mui--date-picker ' + (className ?? '')} direction=\"row\" justifyContent=\"space-between\" spacing={1} {...props}>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).subtract(1, 'day'))}><ArrowBackIosNewIcon/></Button>\n\t\t\t<MuiDatePicker\n\t\t\t\topen={datepickerOpen}\n\t\t\t\tonOpen={openDatepicker}\n\t\t\t\tonClose={closeDatepicker}\n\t\t\t\tshowDaysOutsideCurrentMonth={true}\n\t\t\t\tviews={['day']}\n\t\t\t\tformat=\"YYYY-MM-DD\"\n\t\t\t\tlabel=\"\"\n\t\t\t\tisRequired={true}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tslots={{\n\t\t\t\t\ttextField:DatePickerTextField,\n\t\t\t\t\ttoolbar: (props) => null,\n\t\t\t\t}}\n\t\t\t\tslotProps={{\n\t\t\t\t\ttextField:{dateFormat},\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).add(1, 'day'))}><ArrowForwardIosIcon/></Button>\n\t\t</Stack>\n\t</>);\n});\nexport default DatePicker;\n"],"names":["DatePickerTextField","LeRed","memo","_ref","_props$ownerState2","_props$InputProps2","_props$InputProps3","dateFormat","value","className","children","props","_objectWithoutProperties","_excluded","onClick","useMemo","_props$ownerState","_props$InputProps","ownerState","open","propsLoop","InputProps","endAdornment","_propsLoop","_propsLoop2","IS_ARRAY","continueLoop","_iterator","_createForOfIteratorHelper","_step","s","n","done","propsLoopItem","err","e","f","onSelect","useCallback","event","target","selectionStart","selectionEnd","preventDefault","React","createElement","Fragment","Button","variant","TextField","_extends","Dayjs","format","_objectSpread","readOnly","onSelectCapture","onMouseDown","onTouchStart","onTouchMove","DatePicker","_ref2","onChange","_excluded2","_LeRed$useHistoryStat","useHistoryState","_LeRed$useHistoryStat2","_slicedToArray","datepickerOpen","openDatepicker","closeDatepicker","onChanged","apply","arguments","Stack","direction","justifyContent","spacing","color","subtract","ArrowBackIosNewIcon","MuiDatePicker","onOpen","onClose","showDaysOutsideCurrentMonth","views","label","isRequired","slots","textField","toolbar","slotProps","add","ArrowForwardIosIcon"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
4
4
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { LeRed } from '@lowentry/react-redux';
|
|
7
|
-
import { INT_LAX_ANY, FLOAT_LAX,
|
|
7
|
+
import { INT_LAX_ANY, FLOAT_LAX, STRING } from '@lowentry/utils';
|
|
8
8
|
import { L as LeMuiUtils } from '../LeMuiUtils-c46ed1cc.js';
|
|
9
9
|
import TextField from '../TextField/index.js';
|
|
10
10
|
import '@mui/material';
|
|
@@ -13,6 +13,42 @@ import '../style-inject.es-1f59c1d0.js';
|
|
|
13
13
|
var _excluded = ["decimals", "allowZero", "allowNegative", "value", "onChange", "onRenderValue", "className", "inputProps", "children"];
|
|
14
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
15
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
var getProcessedValue = function getProcessedValue(value, decimals, allowZero, allowNegative) {
|
|
17
|
+
var text = LeMuiUtils.purgePrependedHiddenChar(STRING(value));
|
|
18
|
+
var val = 0;
|
|
19
|
+
var negative = text.includes('-');
|
|
20
|
+
text = text.replace(',', '.').replace(/[^0-9.]/g, '');
|
|
21
|
+
if (text !== '') {
|
|
22
|
+
var stringVal = Math.abs(FLOAT_LAX(text)).toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)
|
|
23
|
+
stringVal = stringVal.substring(0, stringVal.length - 1);
|
|
24
|
+
var textDotCount = text.split('.').length - 1;
|
|
25
|
+
if (textDotCount <= 0 || decimals <= 0) {
|
|
26
|
+
text = stringVal.split('.')[0];
|
|
27
|
+
} else if (textDotCount === 1 && text.endsWith('.')) {
|
|
28
|
+
text = stringVal.split('.')[0] + '.';
|
|
29
|
+
} else {
|
|
30
|
+
text = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));
|
|
31
|
+
}
|
|
32
|
+
if (!allowZero && text === '0') {
|
|
33
|
+
text = '';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (allowNegative && negative) {
|
|
37
|
+
text = '-' + text;
|
|
38
|
+
}
|
|
39
|
+
val = FLOAT_LAX(text);
|
|
40
|
+
if (val !== 0) {
|
|
41
|
+
if (decimals > 0) {
|
|
42
|
+
val = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);
|
|
43
|
+
} else {
|
|
44
|
+
val = Math.round(val);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
text: text,
|
|
49
|
+
val: val
|
|
50
|
+
};
|
|
51
|
+
};
|
|
16
52
|
var NumericTextField = LeRed.memo(function (_ref) {
|
|
17
53
|
var decimals = _ref.decimals,
|
|
18
54
|
allowZero = _ref.allowZero,
|
|
@@ -24,67 +60,29 @@ var NumericTextField = LeRed.memo(function (_ref) {
|
|
|
24
60
|
inputProps = _ref.inputProps,
|
|
25
61
|
children = _ref.children,
|
|
26
62
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
decimals = INT_LAX_ANY(decimals, 2);
|
|
34
|
-
var getVisualValue = function getVisualValue(value) {
|
|
35
|
-
var text = FLOAT_LAX(LeMuiUtils.purgePrependedHiddenChar(value));
|
|
36
|
-
if (!allowNegative) {
|
|
37
|
-
text = Math.abs(text);
|
|
38
|
-
}
|
|
39
|
-
text = text.toFixed(decimals); // rounds it
|
|
40
|
-
text = LeUtils.trimEnd(LeUtils.trimEnd(text, '0'), '.');
|
|
41
|
-
if (!allowZero && text === '0') {
|
|
42
|
-
text = '';
|
|
43
|
-
}
|
|
44
|
-
return text;
|
|
45
|
-
};
|
|
63
|
+
allowZero = !!allowZero;
|
|
64
|
+
allowNegative = !!allowNegative;
|
|
65
|
+
decimals = INT_LAX_ANY(decimals, 0);
|
|
66
|
+
var getVisualValue = LeRed.useCallback(function (value) {
|
|
67
|
+
return getProcessedValue(value, decimals, allowZero, allowNegative).text;
|
|
68
|
+
}, [decimals, allowZero, allowNegative]);
|
|
46
69
|
var _LeRed$useState = LeRed.useState(getVisualValue(value)),
|
|
47
70
|
_LeRed$useState2 = _slicedToArray(_LeRed$useState, 2),
|
|
48
71
|
visualValue = _LeRed$useState2[0],
|
|
49
72
|
setVisualValue = _LeRed$useState2[1];
|
|
50
73
|
LeRed.useEffect(function () {
|
|
51
|
-
|
|
52
|
-
|
|
74
|
+
var newVisualValue = getVisualValue(value);
|
|
75
|
+
if (FLOAT_LAX(visualValue) !== FLOAT_LAX(newVisualValue)) {
|
|
76
|
+
setVisualValue(newVisualValue);
|
|
77
|
+
}
|
|
78
|
+
}, [value, getVisualValue]);
|
|
53
79
|
var onChanged = LeRed.useCallback(function (event) {
|
|
54
80
|
var originalTargetValue = event.target.value;
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// visual >>
|
|
60
|
-
var minus = text.includes('-');
|
|
61
|
-
text = text.replace(',', '.').replace(/[^0-9.]/g, '');
|
|
62
|
-
if (text !== '') {
|
|
63
|
-
val = Math.abs(FLOAT_LAX(text));
|
|
64
|
-
if (allowNegative && minus) {
|
|
65
|
-
val = -val;
|
|
66
|
-
}
|
|
67
|
-
var stringVal = val.toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)
|
|
68
|
-
stringVal = stringVal.substring(0, stringVal.length - 1);
|
|
69
|
-
if (!text.includes('.') || decimals <= 0) {
|
|
70
|
-
text = stringVal.split('.')[0];
|
|
71
|
-
} else if (text.endsWith('.')) {
|
|
72
|
-
text = stringVal.split('.')[0] + '.';
|
|
73
|
-
} else {
|
|
74
|
-
text = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));
|
|
75
|
-
}
|
|
76
|
-
setVisualValue(text);
|
|
77
|
-
}
|
|
78
|
-
} // visual <<
|
|
79
|
-
|
|
81
|
+
var _getProcessedValue = getProcessedValue(originalTargetValue, decimals, allowZero, allowNegative),
|
|
82
|
+
text = _getProcessedValue.text,
|
|
83
|
+
val = _getProcessedValue.val;
|
|
84
|
+
setVisualValue(text);
|
|
80
85
|
if (onChange) {
|
|
81
|
-
if (val !== 0) {
|
|
82
|
-
if (decimals > 0) {
|
|
83
|
-
val = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);
|
|
84
|
-
} else {
|
|
85
|
-
val = Math.round(val);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
86
|
var newEvent = _objectSpread(_objectSpread({}, event), {}, {
|
|
89
87
|
target: _objectSpread(_objectSpread({}, event.target), {}, {
|
|
90
88
|
value: val,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/NumericTextField.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/NumericTextField.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {FLOAT_LAX, INT_LAX_ANY, STRING} from '@lowentry/utils';\nimport {LeMuiUtils} from '../LeMuiUtils.js';\nimport TextField from './TextField.jsx';\n\n\nconst getProcessedValue = (value, decimals, allowZero, allowNegative) =>\n{\n\tlet text = LeMuiUtils.purgePrependedHiddenChar(STRING(value));\n\tlet val = 0;\n\t\n\tconst negative = text.includes('-');\n\t\n\ttext = text.replace(',', '.').replace(/[^0-9.]/g, '');\n\tif(text !== '')\n\t{\n\t\tlet stringVal = Math.abs(FLOAT_LAX(text)).toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)\n\t\tstringVal = stringVal.substring(0, stringVal.length - 1);\n\t\t\n\t\tconst textDotCount = text.split('.').length - 1;\n\t\tif((textDotCount <= 0) || (decimals <= 0))\n\t\t{\n\t\t\ttext = stringVal.split('.')[0];\n\t\t}\n\t\telse if((textDotCount === 1) && text.endsWith('.'))\n\t\t{\n\t\t\ttext = stringVal.split('.')[0] + '.';\n\t\t}\n\t\telse\n\t\t{\n\t\t\ttext = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));\n\t\t}\n\t\t\n\t\tif(!allowZero && (text === '0'))\n\t\t{\n\t\t\ttext = '';\n\t\t}\n\t}\n\t\n\tif(allowNegative && negative)\n\t{\n\t\ttext = '-' + text;\n\t}\n\t\n\tval = FLOAT_LAX(text);\n\tif(val !== 0)\n\t{\n\t\tif(decimals > 0)\n\t\t{\n\t\t\tval = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tval = Math.round(val);\n\t\t}\n\t}\n\t\n\treturn {text, val};\n};\n\n\nconst NumericTextField = LeRed.memo(({decimals, allowZero, allowNegative, value, onChange, onRenderValue, className, inputProps, children, ...props}) =>\n{\n\tallowZero = !!allowZero;\n\tallowNegative = !!allowNegative;\n\tdecimals = INT_LAX_ANY(decimals, 0);\n\t\n\t\n\tconst getVisualValue = LeRed.useCallback((value) =>\n\t{\n\t\treturn getProcessedValue(value, decimals, allowZero, allowNegative).text;\n\t}, [decimals, allowZero, allowNegative]);\n\t\n\t\n\tconst [visualValue, setVisualValue] = LeRed.useState(getVisualValue(value));\n\t\n\tLeRed.useEffect(() =>\n\t{\n\t\tconst newVisualValue = getVisualValue(value);\n\t\tif(FLOAT_LAX(visualValue) !== FLOAT_LAX(newVisualValue))\n\t\t{\n\t\t\tsetVisualValue(newVisualValue);\n\t\t}\n\t}, [value, getVisualValue]);\n\t\n\t\n\tconst onChanged = LeRed.useCallback((event) =>\n\t{\n\t\tconst originalTargetValue = event.target.value;\n\t\tconst {text, val} = getProcessedValue(originalTargetValue, decimals, allowZero, allowNegative);\n\t\t\n\t\tsetVisualValue(text);\n\t\t\n\t\tif(onChange)\n\t\t{\n\t\t\tconst newEvent = {\n\t\t\t\t...event,\n\t\t\t\ttarget:{\n\t\t\t\t\t...event.target,\n\t\t\t\t\tvalue: val,\n\t\t\t\t\tvalueText:text,\n\t\t\t\t\tvalueRaw: originalTargetValue,\n\t\t\t\t},\n\t\t\t};\n\t\t\tonChange(newEvent);\n\t\t}\n\t}, [onChange]);\n\t\n\t\n\treturn (<>\n\t\t<TextField className={'lowentry-mui--numeric-textfield ' + (className ?? '')} type=\"text\" inputProps={{inputMode:'decimal', ...(inputProps ?? {})}} value={!!onRenderValue ? onRenderValue(visualValue) : visualValue} onChange={onChanged} {...props}>{children}</TextField>\n\t</>);\n});\nexport default NumericTextField;\n"],"names":["getProcessedValue","value","decimals","allowZero","allowNegative","text","LeMuiUtils","purgePrependedHiddenChar","STRING","val","negative","includes","replace","stringVal","Math","abs","FLOAT_LAX","toFixed","substring","length","textDotCount","split","endsWith","max","round","pow","NumericTextField","LeRed","memo","_ref","onChange","onRenderValue","className","inputProps","children","props","_objectWithoutProperties","_excluded","INT_LAX_ANY","getVisualValue","useCallback","_LeRed$useState","useState","_LeRed$useState2","_slicedToArray","visualValue","setVisualValue","useEffect","newVisualValue","onChanged","event","originalTargetValue","target","_getProcessedValue","newEvent","_objectSpread","valueText","valueRaw","React","createElement","Fragment","TextField","_extends","type","inputMode"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import _extends from '@babel/runtime/helpers/extends';
|
|
1
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { LeRed } from '@lowentry/react-redux';
|
|
4
5
|
import { L as LeMuiUtils } from '../LeMuiUtils-c46ed1cc.js';
|
|
5
6
|
import NumericTextField from '../NumericTextField/index.js';
|
|
6
7
|
import '@lowentry/utils';
|
|
7
|
-
import '@babel/runtime/helpers/extends';
|
|
8
8
|
import '@babel/runtime/helpers/defineProperty';
|
|
9
9
|
import '@babel/runtime/helpers/slicedToArray';
|
|
10
10
|
import '../TextField/index.js';
|
|
@@ -17,8 +17,8 @@ var RemovableNumericTextField = LeRed.memo(function (_ref) {
|
|
|
17
17
|
onChange = _ref.onChange,
|
|
18
18
|
onSelect = _ref.onSelect,
|
|
19
19
|
className = _ref.className,
|
|
20
|
-
children = _ref.children
|
|
21
|
-
_objectWithoutProperties(_ref, _excluded);
|
|
20
|
+
children = _ref.children,
|
|
21
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
22
22
|
var onChanged = LeRed.useCallback(function (event) {
|
|
23
23
|
if (event.target.valueRaw === '') {
|
|
24
24
|
if (onRemove) {
|
|
@@ -36,12 +36,12 @@ var RemovableNumericTextField = LeRed.memo(function (_ref) {
|
|
|
36
36
|
onSelect(event);
|
|
37
37
|
}
|
|
38
38
|
}, [onSelect]);
|
|
39
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NumericTextField, {
|
|
39
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NumericTextField, _extends({
|
|
40
40
|
className: 'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className !== null && className !== void 0 ? className : ''),
|
|
41
41
|
onRenderValue: LeMuiUtils.prependHiddenChar,
|
|
42
42
|
onChange: onChanged,
|
|
43
43
|
onSelect: onSelected
|
|
44
|
-
}, children));
|
|
44
|
+
}, props), children));
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
export { RemovableNumericTextField as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/RemovableNumericTextField.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {LeMuiUtils} from '../LeMuiUtils';\nimport NumericTextField from './NumericTextField.jsx';\n\n\nconst RemovableNumericTextField = LeRed.memo(({onRemove, onChange, onSelect, className, children, ...props}) =>\n{\n\tconst onChanged = LeRed.useCallback((event) =>\n\t{\n\t\tif(event.target.valueRaw === '')\n\t\t{\n\t\t\tif(onRemove)\n\t\t\t{\n\t\t\t\tonRemove(event);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif(onChange)\n\t\t{\n\t\t\tonChange(event);\n\t\t}\n\t}, [onRemove, onChange]);\n\t\n\t\n\tconst onSelected = LeRed.useCallback((event) =>\n\t{\n\t\tLeMuiUtils.onSelectEnsureMinimumOffset(1)(event);\n\t\tif(onSelect)\n\t\t{\n\t\t\tonSelect(event);\n\t\t}\n\t}, [onSelect]);\n\t\n\t\n\treturn (<>\n\t\t<NumericTextField className={'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className ?? '')} onRenderValue={LeMuiUtils.prependHiddenChar} onChange={onChanged} onSelect={onSelected}>{children}</NumericTextField>\n\t</>);\n});\nexport default RemovableNumericTextField;\n"],"names":["RemovableNumericTextField","LeRed","memo","_ref","onRemove","onChange","onSelect","className","children","props","_objectWithoutProperties","_excluded","onChanged","useCallback","event","target","valueRaw","onSelected","LeMuiUtils","onSelectEnsureMinimumOffset","React","createElement","Fragment","NumericTextField","onRenderValue","prependHiddenChar"],"mappings":";;;;;;;;;;;;;;AAMMA,IAAAA,yBAAyB,GAAGC,KAAK,CAACC,IAAI,CAAC,UAAAC,IAAA,EAC7C;AAAA,EAAA,IAD+CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/RemovableNumericTextField.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {LeMuiUtils} from '../LeMuiUtils';\nimport NumericTextField from './NumericTextField.jsx';\n\n\nconst RemovableNumericTextField = LeRed.memo(({onRemove, onChange, onSelect, className, children, ...props}) =>\n{\n\tconst onChanged = LeRed.useCallback((event) =>\n\t{\n\t\tif(event.target.valueRaw === '')\n\t\t{\n\t\t\tif(onRemove)\n\t\t\t{\n\t\t\t\tonRemove(event);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif(onChange)\n\t\t{\n\t\t\tonChange(event);\n\t\t}\n\t}, [onRemove, onChange]);\n\t\n\t\n\tconst onSelected = LeRed.useCallback((event) =>\n\t{\n\t\tLeMuiUtils.onSelectEnsureMinimumOffset(1)(event);\n\t\tif(onSelect)\n\t\t{\n\t\t\tonSelect(event);\n\t\t}\n\t}, [onSelect]);\n\t\n\t\n\treturn (<>\n\t\t<NumericTextField className={'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className ?? '')} onRenderValue={LeMuiUtils.prependHiddenChar} onChange={onChanged} onSelect={onSelected} {...props}>{children}</NumericTextField>\n\t</>);\n});\nexport default RemovableNumericTextField;\n"],"names":["RemovableNumericTextField","LeRed","memo","_ref","onRemove","onChange","onSelect","className","children","props","_objectWithoutProperties","_excluded","onChanged","useCallback","event","target","valueRaw","onSelected","LeMuiUtils","onSelectEnsureMinimumOffset","React","createElement","Fragment","NumericTextField","_extends","onRenderValue","prependHiddenChar"],"mappings":";;;;;;;;;;;;;;AAMMA,IAAAA,yBAAyB,GAAGC,KAAK,CAACC,IAAI,CAAC,UAAAC,IAAA,EAC7C;AAAA,EAAA,IAD+CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;EAEzG,IAAMC,SAAS,GAAGX,KAAK,CAACY,WAAW,CAAC,UAACC,KAAK,EAC1C;AACC,IAAA,IAAGA,KAAK,CAACC,MAAM,CAACC,QAAQ,KAAK,EAAE,EAC/B;AACC,MAAA,IAAGZ,QAAQ,EACX;QACCA,QAAQ,CAACU,KAAK,CAAC,CAAA;AAChB,OAAA;AACA,MAAA,OAAA;AACD,KAAA;AAEA,IAAA,IAAGT,QAAQ,EACX;MACCA,QAAQ,CAACS,KAAK,CAAC,CAAA;AAChB,KAAA;AACD,GAAC,EAAE,CAACV,QAAQ,EAAEC,QAAQ,CAAC,CAAC,CAAA;EAGxB,IAAMY,UAAU,GAAGhB,KAAK,CAACY,WAAW,CAAC,UAACC,KAAK,EAC3C;AACCI,IAAAA,UAAU,CAACC,2BAA2B,CAAC,CAAC,CAAC,CAACL,KAAK,CAAC,CAAA;AAChD,IAAA,IAAGR,QAAQ,EACX;MACCA,QAAQ,CAACQ,KAAK,CAAC,CAAA;AAChB,KAAA;AACD,GAAC,EAAE,CAACR,QAAQ,CAAC,CAAC,CAAA;AAGd,EAAA,oBAAQc,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACPF,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACE,gBAAgB,EAAAC,QAAA,CAAA;IAACjB,SAAS,EAAE,8EAA8E,IAAIA,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAE;IAACkB,aAAa,EAAEP,UAAU,CAACQ,iBAAkB;AAACrB,IAAAA,QAAQ,EAAEO,SAAU;AAACN,IAAAA,QAAQ,EAAEW,UAAAA;AAAW,GAAA,EAAKR,KAAK,CAAA,EAAGD,QAA2B,CAC/P,CAAC,CAAA;AACJ,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
|
|
|
9
9
|
import './DatePicker.less';
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
const DatePickerTextField = LeRed.memo(({dateFormat, value, className, ...props}) =>
|
|
12
|
+
const DatePickerTextField = LeRed.memo(({dateFormat, value, className, children, ...props}) =>
|
|
13
13
|
{
|
|
14
14
|
const onClick = LeRed.useMemo(() =>
|
|
15
15
|
{
|
|
@@ -60,7 +60,7 @@ const DatePickerTextField = LeRed.memo(({dateFormat, value, className, ...props}
|
|
|
60
60
|
|
|
61
61
|
return (<>
|
|
62
62
|
<Button variant="outlined" onClick={onClick}>
|
|
63
|
-
<TextField {...props} className={'lowentry-mui--date-picker--textfield ' + (className ?? '')} variant="outlined" value={Dayjs(value).format(dateFormat)} InputProps={{...(props.InputProps ?? {}), readOnly:true, endAdornment:null, onSelect:onSelect, onSelectCapture:onSelect, onMouseDown:onSelect, onTouchStart:onSelect, onTouchMove:onSelect}}
|
|
63
|
+
<TextField {...props} className={'lowentry-mui--date-picker--textfield ' + (className ?? '')} variant="outlined" value={Dayjs(value).format(dateFormat)} InputProps={{...(props.InputProps ?? {}), readOnly:true, endAdornment:null, onSelect:onSelect, onSelectCapture:onSelect, onMouseDown:onSelect, onTouchStart:onSelect, onTouchMove:onSelect}}>{children}</TextField>
|
|
64
64
|
</Button>
|
|
65
65
|
</>);
|
|
66
66
|
});
|
|
@@ -1,101 +1,99 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import {LeRed} from '@lowentry/react-redux';
|
|
3
|
-
import {
|
|
3
|
+
import {FLOAT_LAX, INT_LAX_ANY, STRING} from '@lowentry/utils';
|
|
4
4
|
import {LeMuiUtils} from '../LeMuiUtils.js';
|
|
5
5
|
import TextField from './TextField.jsx';
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const getProcessedValue = (value, decimals, allowZero, allowNegative) =>
|
|
9
9
|
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
allowZero = true;
|
|
13
|
-
}
|
|
14
|
-
if(typeof allowNegative === 'undefined')
|
|
15
|
-
{
|
|
16
|
-
allowNegative = true;
|
|
17
|
-
}
|
|
18
|
-
decimals = INT_LAX_ANY(decimals, 2);
|
|
10
|
+
let text = LeMuiUtils.purgePrependedHiddenChar(STRING(value));
|
|
11
|
+
let val = 0;
|
|
19
12
|
|
|
13
|
+
const negative = text.includes('-');
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
text = text.replace(',', '.').replace(/[^0-9.]/g, '');
|
|
16
|
+
if(text !== '')
|
|
22
17
|
{
|
|
23
|
-
let
|
|
24
|
-
|
|
18
|
+
let stringVal = Math.abs(FLOAT_LAX(text)).toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)
|
|
19
|
+
stringVal = stringVal.substring(0, stringVal.length - 1);
|
|
20
|
+
|
|
21
|
+
const textDotCount = text.split('.').length - 1;
|
|
22
|
+
if((textDotCount <= 0) || (decimals <= 0))
|
|
23
|
+
{
|
|
24
|
+
text = stringVal.split('.')[0];
|
|
25
|
+
}
|
|
26
|
+
else if((textDotCount === 1) && text.endsWith('.'))
|
|
25
27
|
{
|
|
26
|
-
text =
|
|
28
|
+
text = stringVal.split('.')[0] + '.';
|
|
29
|
+
}
|
|
30
|
+
else
|
|
31
|
+
{
|
|
32
|
+
text = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));
|
|
27
33
|
}
|
|
28
34
|
|
|
29
|
-
text = text.toFixed(decimals); // rounds it
|
|
30
|
-
text = LeUtils.trimEnd(LeUtils.trimEnd(text, '0'), '.');
|
|
31
35
|
if(!allowZero && (text === '0'))
|
|
32
36
|
{
|
|
33
37
|
text = '';
|
|
34
38
|
}
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if(allowNegative && negative)
|
|
42
|
+
{
|
|
43
|
+
text = '-' + text;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
val = FLOAT_LAX(text);
|
|
47
|
+
if(val !== 0)
|
|
48
|
+
{
|
|
49
|
+
if(decimals > 0)
|
|
50
|
+
{
|
|
51
|
+
val = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);
|
|
52
|
+
}
|
|
53
|
+
else
|
|
54
|
+
{
|
|
55
|
+
val = Math.round(val);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {text, val};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
const NumericTextField = LeRed.memo(({decimals, allowZero, allowNegative, value, onChange, onRenderValue, className, inputProps, children, ...props}) =>
|
|
64
|
+
{
|
|
65
|
+
allowZero = !!allowZero;
|
|
66
|
+
allowNegative = !!allowNegative;
|
|
67
|
+
decimals = INT_LAX_ANY(decimals, 0);
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
const getVisualValue = LeRed.useCallback((value) =>
|
|
71
|
+
{
|
|
72
|
+
return getProcessedValue(value, decimals, allowZero, allowNegative).text;
|
|
73
|
+
}, [decimals, allowZero, allowNegative]);
|
|
37
74
|
|
|
38
75
|
|
|
39
76
|
const [visualValue, setVisualValue] = LeRed.useState(getVisualValue(value));
|
|
40
77
|
|
|
41
78
|
LeRed.useEffect(() =>
|
|
42
79
|
{
|
|
43
|
-
|
|
44
|
-
|
|
80
|
+
const newVisualValue = getVisualValue(value);
|
|
81
|
+
if(FLOAT_LAX(visualValue) !== FLOAT_LAX(newVisualValue))
|
|
82
|
+
{
|
|
83
|
+
setVisualValue(newVisualValue);
|
|
84
|
+
}
|
|
85
|
+
}, [value, getVisualValue]);
|
|
45
86
|
|
|
46
87
|
|
|
47
88
|
const onChanged = LeRed.useCallback((event) =>
|
|
48
89
|
{
|
|
49
90
|
const originalTargetValue = event.target.value;
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
let text = targetValue;
|
|
53
|
-
let val = 0;
|
|
91
|
+
const {text, val} = getProcessedValue(originalTargetValue, decimals, allowZero, allowNegative);
|
|
54
92
|
|
|
55
|
-
|
|
56
|
-
const minus = text.includes('-');
|
|
57
|
-
text = text.replace(',', '.').replace(/[^0-9.]/g, '');
|
|
58
|
-
if(text !== '')
|
|
59
|
-
{
|
|
60
|
-
val = Math.abs(FLOAT_LAX(text));
|
|
61
|
-
if(allowNegative && minus)
|
|
62
|
-
{
|
|
63
|
-
val = -val;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
let stringVal = val.toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)
|
|
67
|
-
stringVal = stringVal.substring(0, stringVal.length - 1);
|
|
68
|
-
|
|
69
|
-
if(!text.includes('.') || (decimals <= 0))
|
|
70
|
-
{
|
|
71
|
-
text = stringVal.split('.')[0];
|
|
72
|
-
}
|
|
73
|
-
else if(text.endsWith('.'))
|
|
74
|
-
{
|
|
75
|
-
text = stringVal.split('.')[0] + '.';
|
|
76
|
-
}
|
|
77
|
-
else
|
|
78
|
-
{
|
|
79
|
-
text = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));
|
|
80
|
-
}
|
|
81
|
-
setVisualValue(text);
|
|
82
|
-
}
|
|
83
|
-
}// visual <<
|
|
93
|
+
setVisualValue(text);
|
|
84
94
|
|
|
85
95
|
if(onChange)
|
|
86
96
|
{
|
|
87
|
-
if(val !== 0)
|
|
88
|
-
{
|
|
89
|
-
if(decimals > 0)
|
|
90
|
-
{
|
|
91
|
-
val = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);
|
|
92
|
-
}
|
|
93
|
-
else
|
|
94
|
-
{
|
|
95
|
-
val = Math.round(val);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
97
|
const newEvent = {
|
|
100
98
|
...event,
|
|
101
99
|
target:{
|
|
@@ -35,7 +35,7 @@ const RemovableNumericTextField = LeRed.memo(({onRemove, onChange, onSelect, cla
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
return (<>
|
|
38
|
-
<NumericTextField className={'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className ?? '')} onRenderValue={LeMuiUtils.prependHiddenChar} onChange={onChanged} onSelect={onSelected}>{children}</NumericTextField>
|
|
38
|
+
<NumericTextField className={'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className ?? '')} onRenderValue={LeMuiUtils.prependHiddenChar} onChange={onChanged} onSelect={onSelected} {...props}>{children}</NumericTextField>
|
|
39
39
|
</>);
|
|
40
40
|
});
|
|
41
41
|
export default RemovableNumericTextField;
|