@pie-lib/config-ui 9.0.3-next.2 → 10.0.0-beta.1
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/CHANGELOG.json +605 -0
- package/CHANGELOG.md +976 -328
- package/lib/alert-dialog.js +44 -0
- package/lib/alert-dialog.js.map +1 -0
- package/lib/checkbox.js +5 -5
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/feedback-menu.js +42 -54
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +102 -86
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +9 -7
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/feedback-selector.js +45 -49
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +13 -13
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +57 -56
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +19 -15
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +31 -38
- package/lib/help.js.map +1 -1
- package/lib/index.js +73 -52
- package/lib/index.js.map +1 -1
- package/lib/input.js +36 -41
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +42 -29
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +38 -46
- package/lib/langs.js.map +1 -1
- package/lib/layout/config-layout.js +36 -42
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +3 -3
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +35 -35
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +29 -40
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +4 -4
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +364 -0
- package/lib/number-text-field-custom.js.map +1 -0
- package/lib/number-text-field.js +46 -46
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +5 -5
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +12 -10
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +81 -14
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +297 -79
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +43 -0
- package/lib/settings/settings-radio-label.js.map +1 -0
- package/lib/settings/toggle.js +9 -7
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +29 -36
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/index.js +33 -41
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +46 -50
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +24 -31
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +9 -7
- package/src/alert-dialog.jsx +43 -0
- package/src/checkbox.jsx +63 -0
- package/src/choice-configuration/feedback-menu.jsx +103 -0
- package/src/choice-configuration/index.jsx +319 -0
- package/src/choice-utils.js +30 -0
- package/src/feedback-config/feedback-selector.jsx +116 -0
- package/src/feedback-config/group.jsx +54 -0
- package/src/feedback-config/index.jsx +98 -0
- package/src/form-section.jsx +23 -0
- package/src/help.jsx +88 -0
- package/src/index.js +58 -0
- package/src/input.jsx +72 -0
- package/src/inputs.jsx +96 -0
- package/src/langs.jsx +122 -0
- package/src/layout/config-layout.jsx +64 -0
- package/src/layout/index.js +4 -0
- package/src/layout/layout-contents.jsx +60 -0
- package/src/layout/settings-box.jsx +31 -0
- package/src/mui-box/index.jsx +64 -0
- package/src/number-text-field-custom.jsx +276 -0
- package/src/number-text-field.jsx +196 -0
- package/src/radio-with-label.jsx +18 -0
- package/src/settings/display-size.jsx +52 -0
- package/src/settings/index.js +75 -0
- package/src/settings/panel.jsx +297 -0
- package/src/settings/settings-radio-label.jsx +20 -0
- package/src/settings/toggle.jsx +31 -0
- package/src/tabs/index.jsx +51 -0
- package/src/tags-input/index.jsx +121 -0
- package/src/two-choice.jsx +94 -0
- package/src/with-stateful-model.jsx +36 -0
- package/NEXT.CHANGELOG.json +0 -1
- package/__mocks__/@pie-lib/editable-html.jsx +0 -3
- package/lib/input-container.js +0 -59
- package/lib/input-container.js.map +0 -1
package/lib/mui-box/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","MuiBox","withStyles","theme","light","palette","type","bottomLineColor","primary","muiBox","paddingTop","spacing","unit","paddingBottom","position","left","right","bottom","height","content","transition","pointerEvents","backgroundColor","transform","focused","children","classes","names","classNames","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool"],"sources":["../../src/mui-box/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nconst log = debug('pie-elements:config-ui:mui-box');\n\nconst MuiBox = withStyles(theme => {\n const light = theme.palette.type === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n log(theme.palette.primary[theme.palette.type || 'light']);\n\n return {\n muiBox: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n position: 'relative',\n '&:before': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: bottomLineColor\n },\n '&:hover:before': {\n height: '2px'\n },\n '&:after': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: theme.palette.primary[theme.palette.type] //'#304ffe'\n }\n },\n focused: {\n '&:after': {\n transform: 'scaleX(1)'\n }\n }\n };\n})(({ children, classes, focused }) => {\n const names = classNames(classes.muiBox, focused && classes.focused);\n\n return <div className={names}>{children}</div>;\n});\n\nMuiBox.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n focused: PropTypes.bool.isRequired\n};\n\nexport default MuiBox;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,gCAAN,CAAZ;AAEA,IAAMC,MAAM,GAAG,IAAAC,kBAAA,EAAW,UAAAC,KAAK,EAAI;EACjC,IAAMC,KAAK,GAAGD,KAAK,CAACE,OAAN,CAAcC,IAAd,KAAuB,OAArC;EACA,IAAMC,eAAe,GAAGH,KAAK,GAAG,qBAAH,GAA2B,0BAAxD;EAEAL,GAAG,CAACI,KAAK,CAACE,OAAN,CAAcG,OAAd,CAAsBL,KAAK,CAACE,OAAN,CAAcC,IAAd,IAAsB,OAA5C,CAAD,CAAH;EAEA,OAAO;IACLG,MAAM,EAAE;MACNC,UAAU,EAAEP,KAAK,CAACQ,OAAN,CAAcC,IADpB;MAENC,aAAa,EAAEV,KAAK,CAACQ,OAAN,CAAcC,IAFvB;MAGNE,QAAQ,EAAE,UAHJ;MAIN,YAAY;QACVC,IAAI,EAAE,CADI;QAEVC,KAAK,EAAE,CAFG;QAGVC,MAAM,EAAE,CAHE;QAIVC,MAAM,EAAE,KAJE;QAKVC,OAAO,EAAE,IALC;QAMVL,QAAQ,EAAE,UANA;QAOVM,UAAU,EAAE,yDAPF;QAQVC,aAAa,EAAE,MARL;QASVC,eAAe,EAAEf;MATP,CAJN;MAeN,kBAAkB;QAChBW,MAAM,EAAE;MADQ,CAfZ;MAkBN,WAAW;QACTH,IAAI,EAAE,CADG;QAETC,KAAK,EAAE,CAFE;QAGTC,MAAM,EAAE,CAHC;QAITC,MAAM,EAAE,KAJC;QAKTC,OAAO,EAAE,IALA;QAMTL,QAAQ,EAAE,UAND;QAOTS,SAAS,EAAE,WAPF;QAQTH,UAAU,EAAE,kDARH;QASTC,aAAa,EAAE,MATN;QAUTC,eAAe,EAAEnB,KAAK,CAACE,OAAN,CAAcG,OAAd,CAAsBL,KAAK,CAACE,OAAN,CAAcC,IAApC,CAVR,CAUkD;;MAVlD;IAlBL,CADH;IAgCLkB,OAAO,EAAE;MACP,WAAW;QACTD,SAAS,EAAE;MADF;IADJ;EAhCJ,CAAP;AAsCD,CA5Cc,EA4CZ,gBAAoC;EAAA,IAAjCE,QAAiC,QAAjCA,QAAiC;EAAA,IAAvBC,OAAuB,QAAvBA,OAAuB;EAAA,IAAdF,OAAc,QAAdA,OAAc;EACrC,IAAMG,KAAK,GAAG,IAAAC,sBAAA,EAAWF,OAAO,CAACjB,MAAnB,EAA2Be,OAAO,IAAIE,OAAO,CAACF,OAA9C,CAAd;EAEA,oBAAO;IAAK,SAAS,EAAEG;EAAhB,GAAwBF,QAAxB,CAAP;AACD,CAhDc,CAAf;AAkDAxB,MAAM,CAAC4B,SAAP,GAAmB;EACjBJ,QAAQ,EAAEK,qBAAA,CAAUC,SAAV,CAAoB,CAACD,qBAAA,CAAUE,OAAV,CAAkBF,qBAAA,CAAUG,IAA5B,CAAD,EAAoCH,qBAAA,CAAUG,IAA9C,CAApB,EAAyEC,UADlE;EAEjBV,OAAO,EAAEM,qBAAA,CAAUK,IAAV,CAAeD;AAFP,CAAnB;eAKejC,M"}
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.NumberTextFieldCustom = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
26
|
+
var _react = _interopRequireDefault(require("react"));
|
|
27
|
+
|
|
28
|
+
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
29
|
+
|
|
30
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
+
|
|
32
|
+
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
34
|
+
var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
|
|
35
|
+
|
|
36
|
+
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
37
|
+
|
|
38
|
+
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
|
|
39
|
+
|
|
40
|
+
var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
|
|
41
|
+
|
|
42
|
+
var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
|
|
43
|
+
|
|
44
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
|
+
|
|
46
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
+
|
|
48
|
+
var styles = function styles(theme) {
|
|
49
|
+
return {
|
|
50
|
+
input: {
|
|
51
|
+
'& input[type=number]': {
|
|
52
|
+
'-moz-appearance': 'textfield'
|
|
53
|
+
},
|
|
54
|
+
'& input[type=number]::-webkit-outer-spin-button': {
|
|
55
|
+
'-webkit-appearance': 'none',
|
|
56
|
+
margin: 0
|
|
57
|
+
},
|
|
58
|
+
'& input[type=number]::-webkit-inner-spin-button': {
|
|
59
|
+
'-webkit-appearance': 'none',
|
|
60
|
+
margin: 0
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
iconButton: {
|
|
64
|
+
padding: '2px'
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var fallbackNumber = function fallbackNumber(min, max) {
|
|
70
|
+
if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
|
|
75
|
+
return max;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if ((0, _isFinite["default"])(min)) {
|
|
79
|
+
return min;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
84
|
+
(0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
|
|
85
|
+
|
|
86
|
+
var _super = _createSuper(NumberTextFieldCustom);
|
|
87
|
+
|
|
88
|
+
function NumberTextFieldCustom(props) {
|
|
89
|
+
var _this;
|
|
90
|
+
|
|
91
|
+
(0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
|
|
92
|
+
_this = _super.call(this, props);
|
|
93
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number) {
|
|
94
|
+
var value = _this.clamp(number);
|
|
95
|
+
|
|
96
|
+
var currentIndex = (customValues || []).findIndex(function (val) {
|
|
97
|
+
return val === value;
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
if ((customValues || []).length > 0 && currentIndex === -1) {
|
|
101
|
+
var closestValue = _this.getClosestValue(customValues, value);
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
value: closestValue.value,
|
|
105
|
+
currentIndex: closestValue.index
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
value: value,
|
|
111
|
+
currentIndex: currentIndex
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestValue", function (customValues, number) {
|
|
115
|
+
return customValues.reduce(function (closest, value, index) {
|
|
116
|
+
return Math.abs(value - number) < Math.abs(closest.value - number) ? {
|
|
117
|
+
value: value,
|
|
118
|
+
index: index
|
|
119
|
+
} : closest;
|
|
120
|
+
}, {
|
|
121
|
+
value: customValues[0],
|
|
122
|
+
index: 0
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
|
|
126
|
+
var _this$props = _this.props,
|
|
127
|
+
customValues = _this$props.customValues,
|
|
128
|
+
onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
|
|
129
|
+
var value = event.target.value;
|
|
130
|
+
var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
|
|
131
|
+
|
|
132
|
+
var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
|
|
133
|
+
number = _this$normalizeValueA.value,
|
|
134
|
+
currentIndex = _this$normalizeValueA.currentIndex;
|
|
135
|
+
|
|
136
|
+
if (number !== _this.state.value) {
|
|
137
|
+
_this.setState({
|
|
138
|
+
value: number.toString(),
|
|
139
|
+
currentIndex: currentIndex
|
|
140
|
+
}, function () {
|
|
141
|
+
return _this.props.onChange(event, number);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
|
|
147
|
+
_value = _this$normalizeValueA2.value,
|
|
148
|
+
_currentIndex = _this$normalizeValueA2.currentIndex;
|
|
149
|
+
|
|
150
|
+
_this.state = {
|
|
151
|
+
value: _value,
|
|
152
|
+
currentIndex: _currentIndex
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
if (_value !== props.value) {
|
|
156
|
+
_this.props.onChange({}, _value);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
_this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
|
|
160
|
+
return _this;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
(0, _createClass2["default"])(NumberTextFieldCustom, [{
|
|
164
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
165
|
+
value: function UNSAFE_componentWillReceiveProps(props) {
|
|
166
|
+
var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value),
|
|
167
|
+
value = _this$normalizeValueA3.value,
|
|
168
|
+
currentIndex = _this$normalizeValueA3.currentIndex;
|
|
169
|
+
|
|
170
|
+
this.setState({
|
|
171
|
+
value: value,
|
|
172
|
+
currentIndex: currentIndex
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
key: "clamp",
|
|
177
|
+
value: function clamp(value) {
|
|
178
|
+
var _this$props2 = this.props,
|
|
179
|
+
min = _this$props2.min,
|
|
180
|
+
max = _this$props2.max,
|
|
181
|
+
customValues = _this$props2.customValues;
|
|
182
|
+
|
|
183
|
+
if ((customValues || []).length > 0) {
|
|
184
|
+
return value;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (!(0, _isFinite["default"])(value)) {
|
|
188
|
+
return fallbackNumber(min, max);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if ((0, _isFinite["default"])(max)) {
|
|
192
|
+
value = Math.min(value, max);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if ((0, _isFinite["default"])(min)) {
|
|
196
|
+
value = Math.max(value, min);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return value;
|
|
200
|
+
}
|
|
201
|
+
}, {
|
|
202
|
+
key: "onChange",
|
|
203
|
+
value: function onChange(event) {
|
|
204
|
+
var value = event.target.value;
|
|
205
|
+
this.setState({
|
|
206
|
+
value: value
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}, {
|
|
210
|
+
key: "changeValue",
|
|
211
|
+
value: function changeValue(event) {
|
|
212
|
+
var sign = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
213
|
+
var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
214
|
+
event.preventDefault();
|
|
215
|
+
var _this$props3 = this.props,
|
|
216
|
+
customValues = _this$props3.customValues,
|
|
217
|
+
step = _this$props3.step,
|
|
218
|
+
onlyIntegersAllowed = _this$props3.onlyIntegersAllowed,
|
|
219
|
+
onChange = _this$props3.onChange;
|
|
220
|
+
var _this$state = this.state,
|
|
221
|
+
currentIndex = _this$state.currentIndex,
|
|
222
|
+
value = _this$state.value;
|
|
223
|
+
var updatedIndex = currentIndex + sign * 1;
|
|
224
|
+
var number;
|
|
225
|
+
|
|
226
|
+
if (customValues.length > 0) {
|
|
227
|
+
if (updatedIndex < 0 || updatedIndex >= customValues.length) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
number = customValues[updatedIndex];
|
|
232
|
+
} else {
|
|
233
|
+
var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
|
|
234
|
+
var updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;
|
|
235
|
+
number = this.clamp(updatedValue);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
this.setState({
|
|
239
|
+
value: number.toString(),
|
|
240
|
+
currentIndex: updatedIndex
|
|
241
|
+
}, function () {
|
|
242
|
+
if (shouldUpdate) {
|
|
243
|
+
onChange(event, number);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
key: "render",
|
|
249
|
+
value: function render() {
|
|
250
|
+
var _this2 = this;
|
|
251
|
+
|
|
252
|
+
var _this$props4 = this.props,
|
|
253
|
+
className = _this$props4.className,
|
|
254
|
+
classes = _this$props4.classes,
|
|
255
|
+
label = _this$props4.label,
|
|
256
|
+
disabled = _this$props4.disabled,
|
|
257
|
+
error = _this$props4.error,
|
|
258
|
+
min = _this$props4.min,
|
|
259
|
+
max = _this$props4.max,
|
|
260
|
+
inputClassName = _this$props4.inputClassName,
|
|
261
|
+
disableUnderline = _this$props4.disableUnderline,
|
|
262
|
+
helperText = _this$props4.helperText,
|
|
263
|
+
variant = _this$props4.variant,
|
|
264
|
+
textAlign = _this$props4.textAlign;
|
|
265
|
+
var value = this.state.value;
|
|
266
|
+
var names = (0, _classnames["default"])(className, classes.input);
|
|
267
|
+
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
268
|
+
variant: variant,
|
|
269
|
+
inputRef: function inputRef(ref) {
|
|
270
|
+
return _this2.inputRef = ref;
|
|
271
|
+
},
|
|
272
|
+
disabled: disabled,
|
|
273
|
+
label: label,
|
|
274
|
+
value: value,
|
|
275
|
+
error: error,
|
|
276
|
+
helperText: helperText,
|
|
277
|
+
onChange: this.onChange,
|
|
278
|
+
onBlur: this.onBlur,
|
|
279
|
+
onKeyPress: function onKeyPress(e) {
|
|
280
|
+
// once the Enter key is pressed, we force input blur
|
|
281
|
+
if (e.key === 'Enter' && _this2.inputRef) {
|
|
282
|
+
_this2.inputRef.blur();
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
onKeyDown: function onKeyDown(e) {
|
|
286
|
+
if (e.key === 'ArrowUp') {
|
|
287
|
+
_this2.changeValue(e);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (e.key === 'ArrowDown') {
|
|
291
|
+
_this2.changeValue(e, -1);
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
type: "number",
|
|
295
|
+
className: names,
|
|
296
|
+
InputProps: {
|
|
297
|
+
className: inputClassName,
|
|
298
|
+
disableUnderline: disableUnderline,
|
|
299
|
+
startAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
|
|
300
|
+
position: "start"
|
|
301
|
+
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
302
|
+
className: classes.iconButton,
|
|
303
|
+
disabled: disabled,
|
|
304
|
+
onClick: function onClick(e) {
|
|
305
|
+
return _this2.changeValue(e, -1, true);
|
|
306
|
+
}
|
|
307
|
+
}, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
|
|
308
|
+
fontSize: "small"
|
|
309
|
+
}))),
|
|
310
|
+
endAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
|
|
311
|
+
position: "end"
|
|
312
|
+
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
313
|
+
className: classes.iconButton,
|
|
314
|
+
disabled: disabled,
|
|
315
|
+
onClick: function onClick(e) {
|
|
316
|
+
return _this2.changeValue(e, 1, true);
|
|
317
|
+
}
|
|
318
|
+
}, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
|
|
319
|
+
fontSize: "small"
|
|
320
|
+
})))
|
|
321
|
+
},
|
|
322
|
+
inputProps: {
|
|
323
|
+
style: {
|
|
324
|
+
textAlign: textAlign
|
|
325
|
+
},
|
|
326
|
+
min: min,
|
|
327
|
+
max: max
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
}]);
|
|
332
|
+
return NumberTextFieldCustom;
|
|
333
|
+
}(_react["default"].Component);
|
|
334
|
+
|
|
335
|
+
exports.NumberTextFieldCustom = NumberTextFieldCustom;
|
|
336
|
+
(0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
|
|
337
|
+
classes: _propTypes["default"].object.isRequired,
|
|
338
|
+
className: _propTypes["default"].string,
|
|
339
|
+
customValues: _propTypes["default"].array,
|
|
340
|
+
disabled: _propTypes["default"].bool,
|
|
341
|
+
error: _propTypes["default"].bool,
|
|
342
|
+
inputClassName: _propTypes["default"].string,
|
|
343
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
344
|
+
onlyIntegersAllowed: _propTypes["default"].bool,
|
|
345
|
+
value: _propTypes["default"].number,
|
|
346
|
+
min: _propTypes["default"].number,
|
|
347
|
+
max: _propTypes["default"].number,
|
|
348
|
+
step: _propTypes["default"].number,
|
|
349
|
+
label: _propTypes["default"].string,
|
|
350
|
+
disableUnderline: _propTypes["default"].bool,
|
|
351
|
+
variant: _propTypes["default"].string
|
|
352
|
+
});
|
|
353
|
+
(0, _defineProperty2["default"])(NumberTextFieldCustom, "defaultProps", {
|
|
354
|
+
step: 1,
|
|
355
|
+
customValues: [],
|
|
356
|
+
textAlign: 'center',
|
|
357
|
+
variant: 'standard',
|
|
358
|
+
onlyIntegersAllowed: false
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
|
|
362
|
+
|
|
363
|
+
exports["default"] = _default;
|
|
364
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZXMiLCJ0aGVtZSIsImlucHV0IiwibWFyZ2luIiwiaWNvbkJ1dHRvbiIsInBhZGRpbmciLCJmYWxsYmFja051bWJlciIsIm1pbiIsIm1heCIsImlzRmluaXRlIiwiTnVtYmVyVGV4dEZpZWxkQ3VzdG9tIiwicHJvcHMiLCJjdXN0b21WYWx1ZXMiLCJudW1iZXIiLCJ2YWx1ZSIsImNsYW1wIiwiY3VycmVudEluZGV4IiwiZmluZEluZGV4IiwidmFsIiwibGVuZ3RoIiwiY2xvc2VzdFZhbHVlIiwiZ2V0Q2xvc2VzdFZhbHVlIiwiaW5kZXgiLCJyZWR1Y2UiLCJjbG9zZXN0IiwiTWF0aCIsImFicyIsImV2ZW50Iiwib25seUludGVnZXJzQWxsb3dlZCIsInRhcmdldCIsInJhd051bWJlciIsInBhcnNlSW50IiwicGFyc2VGbG9hdCIsIm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgiLCJzdGF0ZSIsInNldFN0YXRlIiwidG9TdHJpbmciLCJvbkNoYW5nZSIsImJpbmQiLCJzaWduIiwic2hvdWxkVXBkYXRlIiwicHJldmVudERlZmF1bHQiLCJzdGVwIiwidXBkYXRlZEluZGV4IiwidXBkYXRlZFZhbHVlIiwiY2xhc3NOYW1lIiwiY2xhc3NlcyIsImxhYmVsIiwiZGlzYWJsZWQiLCJlcnJvciIsImlucHV0Q2xhc3NOYW1lIiwiZGlzYWJsZVVuZGVybGluZSIsImhlbHBlclRleHQiLCJ2YXJpYW50IiwidGV4dEFsaWduIiwibmFtZXMiLCJjbGFzc05hbWVzIiwicmVmIiwiaW5wdXRSZWYiLCJvbkJsdXIiLCJlIiwia2V5IiwiYmx1ciIsImNoYW5nZVZhbHVlIiwic3RhcnRBZG9ybm1lbnQiLCJlbmRBZG9ybm1lbnQiLCJzdHlsZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImFycmF5IiwiYm9vbCIsImZ1bmMiLCJ3aXRoU3R5bGVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL251bWJlci10ZXh0LWZpZWxkLWN1c3RvbS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1RleHRGaWVsZCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IGlzRmluaXRlIGZyb20gJ2xvZGFzaC9pc0Zpbml0ZSc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dEFkb3JubWVudCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JbnB1dEFkb3JubWVudCc7XG5pbXBvcnQgUmVtb3ZlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9SZW1vdmUnO1xuaW1wb3J0IEFkZCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQWRkJztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgaW5wdXQ6IHtcbiAgICAnJiBpbnB1dFt0eXBlPW51bWJlcl0nOiB7XG4gICAgICAnLW1vei1hcHBlYXJhbmNlJzogJ3RleHRmaWVsZCdcbiAgICB9LFxuICAgICcmIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbic6IHtcbiAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDBcbiAgICB9LFxuICAgICcmIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbic6IHtcbiAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDBcbiAgICB9XG4gIH0sXG4gIGljb25CdXR0b246IHtcbiAgICBwYWRkaW5nOiAnMnB4J1xuICB9XG59KTtcblxuY29uc3QgZmFsbGJhY2tOdW1iZXIgPSAobWluLCBtYXgpID0+IHtcbiAgaWYgKCFpc0Zpbml0ZShtaW4pICYmICFpc0Zpbml0ZShtYXgpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAoIWlzRmluaXRlKG1pbikgJiYgaXNGaW5pdGUobWF4KSkge1xuICAgIHJldHVybiBtYXg7XG4gIH1cblxuICBpZiAoaXNGaW5pdGUobWluKSkge1xuICAgIHJldHVybiBtaW47XG4gIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJUZXh0RmllbGRDdXN0b20gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY3VzdG9tVmFsdWVzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGVycm9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbnB1dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbmx5SW50ZWdlcnNBbGxvd2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICBtaW46IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbWF4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHN0ZXA6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzYWJsZVVuZGVybGluZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgdmFyaWFudDogUHJvcFR5cGVzLnN0cmluZ1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgc3RlcDogMSxcbiAgICBjdXN0b21WYWx1ZXM6IFtdLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgdmFyaWFudDogJ3N0YW5kYXJkJyxcbiAgICBvbmx5SW50ZWdlcnNBbGxvd2VkOiBmYWxzZVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgY29uc3QgeyB2YWx1ZSwgY3VycmVudEluZGV4IH0gPSB0aGlzLm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgocHJvcHMuY3VzdG9tVmFsdWVzLCBwcm9wcy52YWx1ZSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdmFsdWUsXG4gICAgICBjdXJyZW50SW5kZXhcbiAgICB9O1xuXG4gICAgaWYgKHZhbHVlICE9PSBwcm9wcy52YWx1ZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7fSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wcykge1xuICAgIGNvbnN0IHsgdmFsdWUsIGN1cnJlbnRJbmRleCB9ID0gdGhpcy5ub3JtYWxpemVWYWx1ZUFuZEluZGV4KHByb3BzLmN1c3RvbVZhbHVlcywgcHJvcHMudmFsdWUpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlLCBjdXJyZW50SW5kZXggfSk7XG4gIH1cblxuICBjbGFtcCh2YWx1ZSkge1xuICAgIGNvbnN0IHsgbWluLCBtYXgsIGN1c3RvbVZhbHVlcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICgoY3VzdG9tVmFsdWVzIHx8IFtdKS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxsYmFja051bWJlcihtaW4sIG1heCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmluaXRlKG1heCkpIHtcbiAgICAgIHZhbHVlID0gTWF0aC5taW4odmFsdWUsIG1heCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmluaXRlKG1pbikpIHtcbiAgICAgIHZhbHVlID0gTWF0aC5tYXgodmFsdWUsIG1pbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbm9ybWFsaXplVmFsdWVBbmRJbmRleCA9IChjdXN0b21WYWx1ZXMsIG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jbGFtcChudW1iZXIpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IChjdXN0b21WYWx1ZXMgfHwgW10pLmZpbmRJbmRleCh2YWwgPT4gdmFsID09PSB2YWx1ZSk7XG5cbiAgICBpZiAoKGN1c3RvbVZhbHVlcyB8fCBbXSkubGVuZ3RoID4gMCAmJiBjdXJyZW50SW5kZXggPT09IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZXN0VmFsdWUgPSB0aGlzLmdldENsb3Nlc3RWYWx1ZShjdXN0b21WYWx1ZXMsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIHsgdmFsdWU6IGNsb3Nlc3RWYWx1ZS52YWx1ZSwgY3VycmVudEluZGV4OiBjbG9zZXN0VmFsdWUuaW5kZXggfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB2YWx1ZSwgY3VycmVudEluZGV4IH07XG4gIH07XG5cbiAgZ2V0Q2xvc2VzdFZhbHVlID0gKGN1c3RvbVZhbHVlcywgbnVtYmVyKSA9PlxuICAgIGN1c3RvbVZhbHVlcy5yZWR1Y2UoXG4gICAgICAoY2xvc2VzdCwgdmFsdWUsIGluZGV4KSA9PlxuICAgICAgICBNYXRoLmFicyh2YWx1ZSAtIG51bWJlcikgPCBNYXRoLmFicyhjbG9zZXN0LnZhbHVlIC0gbnVtYmVyKSA/IHsgdmFsdWUsIGluZGV4IH0gOiBjbG9zZXN0LFxuICAgICAgeyB2YWx1ZTogY3VzdG9tVmFsdWVzWzBdLCBpbmRleDogMCB9XG4gICAgKTtcblxuICBvbkJsdXIgPSBldmVudCA9PiB7XG4gICAgY29uc3QgeyBjdXN0b21WYWx1ZXMsIG9ubHlJbnRlZ2Vyc0FsbG93ZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHJhd051bWJlciA9IG9ubHlJbnRlZ2Vyc0FsbG93ZWQgPyBwYXJzZUludCh2YWx1ZSkgOiBwYXJzZUZsb2F0KHZhbHVlKTtcblxuICAgIGNvbnN0IHsgdmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4IH0gPSB0aGlzLm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgoY3VzdG9tVmFsdWVzLCByYXdOdW1iZXIpO1xuXG4gICAgaWYgKG51bWJlciAhPT0gdGhpcy5zdGF0ZS52YWx1ZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBudW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICBjdXJyZW50SW5kZXhcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZShldmVudCwgbnVtYmVyKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgb25DaGFuZ2UoZXZlbnQpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWUgfSk7XG4gIH1cblxuICBjaGFuZ2VWYWx1ZShldmVudCwgc2lnbiA9IDEsIHNob3VsZFVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHsgY3VzdG9tVmFsdWVzLCBzdGVwLCBvbmx5SW50ZWdlcnNBbGxvd2VkLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGN1cnJlbnRJbmRleCwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgdXBkYXRlZEluZGV4ID0gY3VycmVudEluZGV4ICsgc2lnbiAqIDE7XG4gICAgbGV0IG51bWJlcjtcblxuICAgIGlmIChjdXN0b21WYWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHVwZGF0ZWRJbmRleCA8IDAgfHwgdXBkYXRlZEluZGV4ID49IGN1c3RvbVZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBudW1iZXIgPSBjdXN0b21WYWx1ZXNbdXBkYXRlZEluZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmF3TnVtYmVyID0gb25seUludGVnZXJzQWxsb3dlZCA/IHBhcnNlSW50KHZhbHVlKSA6IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gKHJhd051bWJlciAqIDEwMDAwICsgc3RlcCAqIHNpZ24gKiAxMDAwMCkgLyAxMDAwMDtcbiAgICAgIG51bWJlciA9IHRoaXMuY2xhbXAodXBkYXRlZFZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogbnVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgIGN1cnJlbnRJbmRleDogdXBkYXRlZEluZGV4XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgICAgICAgb25DaGFuZ2UoZXZlbnQsIG51bWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNsYXNzZXMsXG4gICAgICBsYWJlbCxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZXJyb3IsXG4gICAgICBtaW4sXG4gICAgICBtYXgsXG4gICAgICBpbnB1dENsYXNzTmFtZSxcbiAgICAgIGRpc2FibGVVbmRlcmxpbmUsXG4gICAgICBoZWxwZXJUZXh0LFxuICAgICAgdmFyaWFudCxcbiAgICAgIHRleHRBbGlnblxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgbmFtZXMgPSBjbGFzc05hbWVzKGNsYXNzTmFtZSwgY2xhc3Nlcy5pbnB1dCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRleHRGaWVsZFxuICAgICAgICB2YXJpYW50PXt2YXJpYW50fVxuICAgICAgICBpbnB1dFJlZj17cmVmID0+ICh0aGlzLmlucHV0UmVmID0gcmVmKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICBoZWxwZXJUZXh0PXtoZWxwZXJUZXh0fVxuICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgb25CbHVyPXt0aGlzLm9uQmx1cn1cbiAgICAgICAgb25LZXlQcmVzcz17ZSA9PiB7XG4gICAgICAgICAgLy8gb25jZSB0aGUgRW50ZXIga2V5IGlzIHByZXNzZWQsIHdlIGZvcmNlIGlucHV0IGJsdXJcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy5pbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbktleURvd249e2UgPT4ge1xuICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUoZSwgLTEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIGNsYXNzTmFtZT17bmFtZXN9XG4gICAgICAgIElucHV0UHJvcHM9e3tcbiAgICAgICAgICBjbGFzc05hbWU6IGlucHV0Q2xhc3NOYW1lLFxuICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmU6IGRpc2FibGVVbmRlcmxpbmUsXG4gICAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IChcbiAgICAgICAgICAgIDxJbnB1dEFkb3JubWVudCBwb3NpdGlvbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmljb25CdXR0b259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5jaGFuZ2VWYWx1ZShlLCAtMSwgdHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVtb3ZlIGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICA8L0lucHV0QWRvcm5tZW50PlxuICAgICAgICAgICksXG4gICAgICAgICAgZW5kQWRvcm5tZW50OiAoXG4gICAgICAgICAgICA8SW5wdXRBZG9ybm1lbnQgcG9zaXRpb249XCJlbmRcIj5cbiAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaWNvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB0aGlzLmNoYW5nZVZhbHVlKGUsIDEsIHRydWUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFkZCBmb250U2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgPC9JbnB1dEFkb3JubWVudD5cbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICAgIGlucHV0UHJvcHM9e3tcbiAgICAgICAgICBzdHlsZTogeyB0ZXh0QWxpZ24gfSxcbiAgICAgICAgICBtaW4sXG4gICAgICAgICAgbWF4XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE51bWJlclRleHRGaWVsZEN1c3RvbSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUFDLEtBQUs7RUFBQSxPQUFLO0lBQ3ZCQyxLQUFLLEVBQUU7TUFDTCx3QkFBd0I7UUFDdEIsbUJBQW1CO01BREcsQ0FEbkI7TUFJTCxtREFBbUQ7UUFDakQsc0JBQXNCLE1BRDJCO1FBRWpEQyxNQUFNLEVBQUU7TUFGeUMsQ0FKOUM7TUFRTCxtREFBbUQ7UUFDakQsc0JBQXNCLE1BRDJCO1FBRWpEQSxNQUFNLEVBQUU7TUFGeUM7SUFSOUMsQ0FEZ0I7SUFjdkJDLFVBQVUsRUFBRTtNQUNWQyxPQUFPLEVBQUU7SUFEQztFQWRXLENBQUw7QUFBQSxDQUFwQjs7QUFtQkEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBYztFQUNuQyxJQUFJLENBQUMsSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFELElBQWtCLENBQUMsSUFBQUUsb0JBQUEsRUFBU0QsR0FBVCxDQUF2QixFQUFzQztJQUNwQyxPQUFPLENBQVA7RUFDRDs7RUFFRCxJQUFJLENBQUMsSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFELElBQWtCLElBQUFFLG9CQUFBLEVBQVNELEdBQVQsQ0FBdEIsRUFBcUM7SUFDbkMsT0FBT0EsR0FBUDtFQUNEOztFQUVELElBQUksSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFKLEVBQW1CO0lBQ2pCLE9BQU9BLEdBQVA7RUFDRDtBQUNGLENBWkQ7O0lBY2FHLHFCOzs7OztFQTJCWCwrQkFBWUMsS0FBWixFQUFtQjtJQUFBOztJQUFBO0lBQ2pCLDBCQUFN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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-text-field-custom.js","names":["styles","theme","input","margin","iconButton","padding","fallbackNumber","min","max","isFinite","NumberTextFieldCustom","props","customValues","number","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestValue","index","reduce","closest","Math","abs","event","onlyIntegersAllowed","target","rawNumber","parseInt","parseFloat","normalizeValueAndIndex","state","setState","toString","onChange","bind","sign","shouldUpdate","preventDefault","step","updatedIndex","updatedValue","className","classes","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","names","classNames","ref","inputRef","onBlur","e","key","blur","changeValue","startAdornment","endAdornment","style","React","Component","PropTypes","object","isRequired","string","array","bool","func","withStyles"],"sources":["../src/number-text-field-custom.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport isFinite from 'lodash/isFinite';\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Remove from '@material-ui/icons/Remove';\nimport Add from '@material-ui/icons/Add';\n\nconst styles = theme => ({\n input: {\n '& input[type=number]': {\n '-moz-appearance': 'textfield'\n },\n '& input[type=number]::-webkit-outer-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0\n },\n '& input[type=number]::-webkit-inner-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0\n }\n },\n iconButton: {\n padding: '2px'\n }\n});\n\nconst fallbackNumber = (min, max) => {\n if (!isFinite(min) && !isFinite(max)) {\n return 0;\n }\n\n if (!isFinite(min) && isFinite(max)) {\n return max;\n }\n\n if (isFinite(min)) {\n return min;\n }\n};\n\nexport class NumberTextFieldCustom extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n customValues: PropTypes.array,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inputClassName: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onlyIntegersAllowed: PropTypes.bool,\n value: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n label: PropTypes.string,\n disableUnderline: PropTypes.bool,\n variant: PropTypes.string\n };\n\n static defaultProps = {\n step: 1,\n customValues: [],\n textAlign: 'center',\n variant: 'standard',\n onlyIntegersAllowed: false\n };\n\n constructor(props) {\n super(props);\n\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value);\n\n this.state = {\n value,\n currentIndex\n };\n\n if (value !== props.value) {\n this.props.onChange({}, value);\n }\n\n this.onChange = this.onChange.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value) {\n const { min, max, customValues } = this.props;\n\n if ((customValues || []).length > 0) {\n return value;\n }\n\n if (!isFinite(value)) {\n return fallbackNumber(min, max);\n }\n\n if (isFinite(max)) {\n value = Math.min(value, max);\n }\n\n if (isFinite(min)) {\n value = Math.max(value, min);\n }\n\n return value;\n }\n\n normalizeValueAndIndex = (customValues, number) => {\n const value = this.clamp(number);\n const currentIndex = (customValues || []).findIndex(val => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue = this.getClosestValue(customValues, value);\n\n return { value: closestValue.value, currentIndex: closestValue.index };\n }\n\n return { value, currentIndex };\n };\n\n getClosestValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(value - number) < Math.abs(closest.value - number) ? { value, index } : closest,\n { value: customValues[0], index: 0 }\n );\n\n onBlur = event => {\n const { customValues, onlyIntegersAllowed } = this.props;\n const { value } = event.target;\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n\n if (number !== this.state.value) {\n this.setState(\n {\n value: number.toString(),\n currentIndex\n },\n () => this.props.onChange(event, number)\n );\n }\n };\n\n onChange(event) {\n const { value } = event.target;\n\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\n }\n\n number = customValues[updatedIndex];\n } else {\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n const updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;\n number = this.clamp(updatedValue);\n }\n\n this.setState(\n {\n value: number.toString(),\n currentIndex: updatedIndex\n },\n () => {\n if (shouldUpdate) {\n onChange(event, number);\n }\n }\n );\n }\n\n render() {\n const {\n className,\n classes,\n label,\n disabled,\n error,\n min,\n max,\n inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign\n } = this.props;\n const { value } = this.state;\n const names = classNames(className, classes.input);\n\n return (\n <TextField\n variant={variant}\n inputRef={ref => (this.inputRef = ref)}\n disabled={disabled}\n label={label}\n value={value}\n error={error}\n helperText={helperText}\n onChange={this.onChange}\n onBlur={this.onBlur}\n onKeyPress={e => {\n // once the Enter key is pressed, we force input blur\n if (e.key === 'Enter' && this.inputRef) {\n this.inputRef.blur();\n }\n }}\n onKeyDown={e => {\n if (e.key === 'ArrowUp') {\n this.changeValue(e);\n }\n\n if (e.key === 'ArrowDown') {\n this.changeValue(e, -1);\n }\n }}\n type=\"number\"\n className={names}\n InputProps={{\n className: inputClassName,\n disableUnderline: disableUnderline,\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconButton\n className={classes.iconButton}\n disabled={disabled}\n onClick={e => this.changeValue(e, -1, true)}\n >\n <Remove fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n className={classes.iconButton}\n disabled={disabled}\n onClick={e => this.changeValue(e, 1, true)}\n >\n <Add fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n )\n }}\n inputProps={{\n style: { textAlign },\n min,\n max\n }}\n />\n );\n }\n}\n\nexport default withStyles(styles)(NumberTextFieldCustom);\n"],"mappings":"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"}
|