@pie-lib/config-ui 11.1.5-next.4 → 11.1.5-next.48
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/alert-dialog.js +4 -10
- package/lib/alert-dialog.js.map +1 -1
- package/lib/checkbox.js +5 -17
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/feedback-menu.js +5 -38
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +48 -94
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +1 -11
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/feedback-selector.js +9 -41
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +5 -16
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +6 -46
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +4 -12
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +6 -37
- package/lib/help.js.map +1 -1
- package/lib/index.js +0 -29
- package/lib/index.js.map +1 -1
- package/lib/input.js +9 -37
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +16 -35
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +10 -39
- package/lib/langs.js.map +1 -1
- package/lib/layout/config-layout.js +11 -29
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +0 -3
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +53 -59
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +3 -24
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +3 -10
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +29 -82
- package/lib/number-text-field-custom.js.map +1 -1
- package/lib/number-text-field.js +16 -66
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +4 -11
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +3 -15
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +4 -27
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +40 -102
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +4 -11
- package/lib/settings/settings-radio-label.js.map +1 -1
- package/lib/settings/toggle.js +3 -10
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +6 -28
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/index.js +4 -41
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +14 -48
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +0 -19
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +3 -3
- package/src/layout/config-layout.jsx +9 -9
- package/src/layout/layout-contents.jsx +38 -33
- package/src/tabs/index.jsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"settings-box.js","names":["SettingsBox","props","classes","className","children","classNames","settingsBox","React","Component","PropTypes","object","isRequired","string","oneOfType","arrayOf","node","styles","backgroundColor","border","display","flexDirection","justifyContent","minWidth","maxWidth","padding","width","zIndex","withStyles"],"sources":["../../src/layout/settings-box.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nexport class SettingsBox extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n };\n static defaultProps = {};\n render() {\n const { classes, className, children } = this.props;\n return <div className={classNames(classes.settingsBox, className)}>{children}</div>;\n }\n}\nconst styles = () => ({\n settingsBox: {\n backgroundColor: '#FFF',\n border: '2px solid #EEE',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n minWidth: '275px',\n maxWidth: '300px',\n padding: '24px 8px 24px 24px',\n width: '80%',\n zIndex: 99,\n },\n});\nexport default withStyles(styles)(SettingsBox);\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAoC;AAAA;AAAA,IACvBA,WAAW;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAOtB,kBAAS;MACP,kBAAyC,IAAI,CAACC,KAAK;QAA3CC,OAAO,eAAPA,OAAO;QAAEC,SAAS,eAATA,SAAS;QAAEC,QAAQ,eAARA,QAAQ;MACpC,oBAAO;QAAK,SAAS,EAAE,IAAAC,sBAAU,EAACH,OAAO,CAACI,WAAW,EAAEH,SAAS;MAAE,GAAEC,QAAQ,CAAO;IACrF;EAAC;EAAA;AAAA,EAV8BG,iBAAK,CAACC,SAAS;AAAA;AAAA,iCAAnCR,WAAW,eACH;EACjBE,OAAO,EAAEO,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpCR,SAAS,EAAEM,qBAAS,CAACG,MAAM;EAC3BR,QAAQ,EAAEK,qBAAS,CAACI,SAAS,CAAC,CAACJ,qBAAS,CAACK,OAAO,CAACL,qBAAS,CAACM,IAAI,CAAC,EAAEN,qBAAS,CAACM,IAAI,CAAC,CAAC,CAACJ;AACrF,CAAC;AAAA,iCALUX,WAAW,kBAMA,CAAC,CAAC;AAM1B,IAAMgB,MAAM,GAAG,SAATA,MAAM;EAAA,OAAU;IACpBV,WAAW,EAAE;MACXW,eAAe,EAAE,MAAM;MACvBC,MAAM,EAAE,gBAAgB;MACxBC,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,QAAQ;MACvBC,cAAc,EAAE,YAAY;MAC5BC,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAE,oBAAoB;MAC7BC,KAAK,EAAE,KAAK;MACZC,MAAM,EAAE;IACV;EACF,CAAC;AAAA,CAAC;AAAC,eACY,IAAAC,kBAAU,EAACX,MAAM,CAAC,CAAChB,WAAW,CAAC;AAAA"}
|
package/lib/mui-box/index.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
|
|
14
10
|
var _styles = require("@material-ui/core/styles");
|
|
15
|
-
|
|
16
11
|
var _debug = _interopRequireDefault(require("debug"));
|
|
17
|
-
|
|
18
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
-
|
|
20
13
|
var log = (0, _debug["default"])('pie-elements:config-ui:mui-box');
|
|
21
14
|
var MuiBox = (0, _styles.withStyles)(function (theme) {
|
|
22
15
|
var light = theme.palette.type === 'light';
|
|
@@ -52,9 +45,9 @@ var MuiBox = (0, _styles.withStyles)(function (theme) {
|
|
|
52
45
|
transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',
|
|
53
46
|
pointerEvents: 'none',
|
|
54
47
|
backgroundColor: theme.palette.primary[theme.palette.type] //'#304ffe'
|
|
55
|
-
|
|
56
48
|
}
|
|
57
49
|
},
|
|
50
|
+
|
|
58
51
|
focused: {
|
|
59
52
|
'&:after': {
|
|
60
53
|
transform: 'scaleX(1)'
|
|
@@ -63,8 +56,8 @@ var MuiBox = (0, _styles.withStyles)(function (theme) {
|
|
|
63
56
|
};
|
|
64
57
|
})(function (_ref) {
|
|
65
58
|
var children = _ref.children,
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
classes = _ref.classes,
|
|
60
|
+
focused = _ref.focused;
|
|
68
61
|
var names = (0, _classnames["default"])(classes.muiBox, focused && classes.focused);
|
|
69
62
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
70
63
|
className: names
|
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,iBAAK,EAAC,gCAAgC,CAAC;AAEnD,IAAMC,MAAM,GAAG,IAAAC,kBAAU,EAAC,UAACC,KAAK,EAAK;EACnC,IAAMC,KAAK,GAAGD,KAAK,CAACE,OAAO,CAACC,IAAI,KAAK,OAAO;EAC5C,IAAMC,eAAe,GAAGH,KAAK,GAAG,qBAAqB,GAAG,0BAA0B;EAElFL,GAAG,CAACI,KAAK,CAACE,OAAO,CAACG,OAAO,CAACL,KAAK,CAACE,OAAO,CAACC,IAAI,IAAI,OAAO,CAAC,CAAC;EAEzD,OAAO;IACLG,MAAM,EAAE;MACNC,UAAU,EAAEP,KAAK,CAACQ,OAAO,CAACC,IAAI;MAC9BC,aAAa,EAAEV,KAAK,CAACQ,OAAO,CAACC,IAAI;MACjCE,QAAQ,EAAE,UAAU;MACpB,UAAU,EAAE;QACVC,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE,IAAI;QACbL,QAAQ,EAAE,UAAU;QACpBM,UAAU,EAAE,yDAAyD;QACrEC,aAAa,EAAE,MAAM;QACrBC,eAAe,EAAEf;MACnB,CAAC;MACD,gBAAgB,EAAE;QAChBW,MAAM,EAAE;MACV,CAAC;MACD,SAAS,EAAE;QACTH,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE,IAAI;QACbL,QAAQ,EAAE,UAAU;QACpBS,SAAS,EAAE,WAAW;QACtBH,UAAU,EAAE,kDAAkD;QAC9DC,aAAa,EAAE,MAAM;QACrBC,eAAe,EAAEnB,KAAK,CAACE,OAAO,CAACG,OAAO,CAACL,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAAE;MAC9D;IACF,CAAC;;IACDkB,OAAO,EAAE;MACP,SAAS,EAAE;QACTD,SAAS,EAAE;MACb;IACF;EACF,CAAC;AACH,CAAC,CAAC,CAAC,gBAAoC;EAAA,IAAjCE,QAAQ,QAARA,QAAQ;IAAEC,OAAO,QAAPA,OAAO;IAAEF,OAAO,QAAPA,OAAO;EAC9B,IAAMG,KAAK,GAAG,IAAAC,sBAAU,EAACF,OAAO,CAACjB,MAAM,EAAEe,OAAO,IAAIE,OAAO,CAACF,OAAO,CAAC;EAEpE,oBAAO;IAAK,SAAS,EAAEG;EAAM,GAAEF,QAAQ,CAAO;AAChD,CAAC,CAAC;AAEFxB,MAAM,CAAC4B,SAAS,GAAG;EACjBJ,QAAQ,EAAEK,qBAAS,CAACC,SAAS,CAAC,CAACD,qBAAS,CAACE,OAAO,CAACF,qBAAS,CAACG,IAAI,CAAC,EAAEH,qBAAS,CAACG,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7FV,OAAO,EAAEM,qBAAS,CAACK,IAAI,CAACD;AAC1B,CAAC;AAAC,eAEajC,MAAM;AAAA"}
|
|
@@ -1,50 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.NumberTextFieldCustom = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
16
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
28
17
|
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
29
|
-
|
|
30
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
-
|
|
32
19
|
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
20
|
var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
|
|
35
|
-
|
|
36
21
|
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
37
|
-
|
|
38
22
|
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
|
|
39
|
-
|
|
40
23
|
var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
|
|
41
|
-
|
|
42
24
|
var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
|
|
43
|
-
|
|
44
25
|
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
26
|
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
27
|
var styles = function styles(theme) {
|
|
49
28
|
return {
|
|
50
29
|
input: {
|
|
@@ -65,47 +44,36 @@ var styles = function styles(theme) {
|
|
|
65
44
|
}
|
|
66
45
|
};
|
|
67
46
|
};
|
|
68
|
-
|
|
69
47
|
var fallbackNumber = function fallbackNumber(min, max) {
|
|
70
48
|
if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
|
|
71
49
|
return 0;
|
|
72
50
|
}
|
|
73
|
-
|
|
74
51
|
if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
|
|
75
52
|
return max;
|
|
76
53
|
}
|
|
77
|
-
|
|
78
54
|
if ((0, _isFinite["default"])(min)) {
|
|
79
55
|
return min;
|
|
80
56
|
}
|
|
81
57
|
};
|
|
82
|
-
|
|
83
58
|
var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
84
59
|
(0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
|
|
85
|
-
|
|
86
60
|
var _super = _createSuper(NumberTextFieldCustom);
|
|
87
|
-
|
|
88
61
|
function NumberTextFieldCustom(props) {
|
|
89
62
|
var _this;
|
|
90
|
-
|
|
91
63
|
(0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
|
|
92
64
|
_this = _super.call(this, props);
|
|
93
65
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number) {
|
|
94
66
|
var value = _this.clamp(number);
|
|
95
|
-
|
|
96
67
|
var currentIndex = (customValues || []).findIndex(function (val) {
|
|
97
68
|
return val === value;
|
|
98
69
|
});
|
|
99
|
-
|
|
100
70
|
if ((customValues || []).length > 0 && currentIndex === -1) {
|
|
101
71
|
var closestValue = _this.getClosestValue(customValues, value);
|
|
102
|
-
|
|
103
72
|
return {
|
|
104
73
|
value: closestValue.value,
|
|
105
74
|
currentIndex: closestValue.index
|
|
106
75
|
};
|
|
107
76
|
}
|
|
108
|
-
|
|
109
77
|
return {
|
|
110
78
|
value: value,
|
|
111
79
|
currentIndex: currentIndex
|
|
@@ -124,15 +92,13 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
124
92
|
});
|
|
125
93
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
|
|
126
94
|
var _this$props = _this.props,
|
|
127
|
-
|
|
128
|
-
|
|
95
|
+
customValues = _this$props.customValues,
|
|
96
|
+
onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
|
|
129
97
|
var value = event.target.value;
|
|
130
98
|
var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
|
|
131
|
-
|
|
132
99
|
var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
100
|
+
number = _this$normalizeValueA.value,
|
|
101
|
+
currentIndex = _this$normalizeValueA.currentIndex;
|
|
136
102
|
if (number !== _this.state.value) {
|
|
137
103
|
_this.setState({
|
|
138
104
|
value: number.toString(),
|
|
@@ -142,31 +108,25 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
142
108
|
});
|
|
143
109
|
}
|
|
144
110
|
});
|
|
145
|
-
|
|
146
111
|
var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
112
|
+
_value = _this$normalizeValueA2.value,
|
|
113
|
+
_currentIndex = _this$normalizeValueA2.currentIndex;
|
|
150
114
|
_this.state = {
|
|
151
115
|
value: _value,
|
|
152
116
|
currentIndex: _currentIndex
|
|
153
117
|
};
|
|
154
|
-
|
|
155
118
|
if (_value !== props.value) {
|
|
156
119
|
_this.props.onChange({}, _value);
|
|
157
120
|
}
|
|
158
|
-
|
|
159
121
|
_this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
|
|
160
122
|
return _this;
|
|
161
123
|
}
|
|
162
|
-
|
|
163
124
|
(0, _createClass2["default"])(NumberTextFieldCustom, [{
|
|
164
125
|
key: "UNSAFE_componentWillReceiveProps",
|
|
165
126
|
value: function UNSAFE_componentWillReceiveProps(props) {
|
|
166
127
|
var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value),
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
128
|
+
value = _this$normalizeValueA3.value,
|
|
129
|
+
currentIndex = _this$normalizeValueA3.currentIndex;
|
|
170
130
|
this.setState({
|
|
171
131
|
value: value,
|
|
172
132
|
currentIndex: currentIndex
|
|
@@ -176,26 +136,21 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
176
136
|
key: "clamp",
|
|
177
137
|
value: function clamp(value) {
|
|
178
138
|
var _this$props2 = this.props,
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
139
|
+
min = _this$props2.min,
|
|
140
|
+
max = _this$props2.max,
|
|
141
|
+
customValues = _this$props2.customValues;
|
|
183
142
|
if ((customValues || []).length > 0) {
|
|
184
143
|
return value;
|
|
185
144
|
}
|
|
186
|
-
|
|
187
145
|
if (!(0, _isFinite["default"])(value)) {
|
|
188
146
|
return fallbackNumber(min, max);
|
|
189
147
|
}
|
|
190
|
-
|
|
191
148
|
if ((0, _isFinite["default"])(max)) {
|
|
192
149
|
value = Math.min(value, max);
|
|
193
150
|
}
|
|
194
|
-
|
|
195
151
|
if ((0, _isFinite["default"])(min)) {
|
|
196
152
|
value = Math.max(value, min);
|
|
197
153
|
}
|
|
198
|
-
|
|
199
154
|
return value;
|
|
200
155
|
}
|
|
201
156
|
}, {
|
|
@@ -213,28 +168,25 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
213
168
|
var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
214
169
|
event.preventDefault();
|
|
215
170
|
var _this$props3 = this.props,
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
171
|
+
customValues = _this$props3.customValues,
|
|
172
|
+
step = _this$props3.step,
|
|
173
|
+
onlyIntegersAllowed = _this$props3.onlyIntegersAllowed,
|
|
174
|
+
onChange = _this$props3.onChange;
|
|
220
175
|
var _this$state = this.state,
|
|
221
|
-
|
|
222
|
-
|
|
176
|
+
currentIndex = _this$state.currentIndex,
|
|
177
|
+
value = _this$state.value;
|
|
223
178
|
var updatedIndex = currentIndex + sign * 1;
|
|
224
179
|
var number;
|
|
225
|
-
|
|
226
180
|
if (customValues.length > 0) {
|
|
227
181
|
if (updatedIndex < 0 || updatedIndex >= customValues.length) {
|
|
228
182
|
return;
|
|
229
183
|
}
|
|
230
|
-
|
|
231
184
|
number = customValues[updatedIndex];
|
|
232
185
|
} else {
|
|
233
186
|
var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
|
|
234
187
|
var updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;
|
|
235
188
|
number = this.clamp(updatedValue);
|
|
236
189
|
}
|
|
237
|
-
|
|
238
190
|
this.setState({
|
|
239
191
|
value: number.toString(),
|
|
240
192
|
currentIndex: updatedIndex
|
|
@@ -248,20 +200,19 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
248
200
|
key: "render",
|
|
249
201
|
value: function render() {
|
|
250
202
|
var _this2 = this;
|
|
251
|
-
|
|
252
203
|
var _this$props4 = this.props,
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
204
|
+
className = _this$props4.className,
|
|
205
|
+
classes = _this$props4.classes,
|
|
206
|
+
label = _this$props4.label,
|
|
207
|
+
disabled = _this$props4.disabled,
|
|
208
|
+
error = _this$props4.error,
|
|
209
|
+
min = _this$props4.min,
|
|
210
|
+
max = _this$props4.max,
|
|
211
|
+
inputClassName = _this$props4.inputClassName,
|
|
212
|
+
disableUnderline = _this$props4.disableUnderline,
|
|
213
|
+
helperText = _this$props4.helperText,
|
|
214
|
+
variant = _this$props4.variant,
|
|
215
|
+
textAlign = _this$props4.textAlign;
|
|
265
216
|
var value = this.state.value;
|
|
266
217
|
var names = (0, _classnames["default"])(className, classes.input);
|
|
267
218
|
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
@@ -286,7 +237,6 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
286
237
|
if (e.key === 'ArrowUp') {
|
|
287
238
|
_this2.changeValue(e);
|
|
288
239
|
}
|
|
289
|
-
|
|
290
240
|
if (e.key === 'ArrowDown') {
|
|
291
241
|
_this2.changeValue(e, -1);
|
|
292
242
|
}
|
|
@@ -331,7 +281,6 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
|
|
|
331
281
|
}]);
|
|
332
282
|
return NumberTextFieldCustom;
|
|
333
283
|
}(_react["default"].Component);
|
|
334
|
-
|
|
335
284
|
exports.NumberTextFieldCustom = NumberTextFieldCustom;
|
|
336
285
|
(0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
|
|
337
286
|
classes: _propTypes["default"].object.isRequired,
|
|
@@ -357,8 +306,6 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
|
|
|
357
306
|
variant: 'standard',
|
|
358
307
|
onlyIntegersAllowed: false
|
|
359
308
|
});
|
|
360
|
-
|
|
361
309
|
var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
|
|
362
|
-
|
|
363
310
|
exports["default"] = _default;
|
|
364
311
|
//# sourceMappingURL=number-text-field-custom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/number-text-field-custom.jsx"],"names":["styles","theme","input","margin","iconButton","padding","fallbackNumber","min","max","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","ref","inputRef","onBlur","e","key","blur","changeValue","startAdornment","endAdornment","style","React","Component","PropTypes","object","isRequired","string","array","bool","func"],"mappings":"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","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"],"file":"number-text-field-custom.js"}
|
|
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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"}
|
package/lib/number-text-field.js
CHANGED
|
@@ -1,48 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.NumberTextField = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
16
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
28
17
|
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
29
|
-
|
|
30
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
-
|
|
32
19
|
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
20
|
var _debug = _interopRequireDefault(require("debug"));
|
|
35
|
-
|
|
36
21
|
var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
|
|
37
|
-
|
|
38
22
|
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
|
|
39
|
-
|
|
40
23
|
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); }; }
|
|
41
|
-
|
|
42
24
|
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; } }
|
|
43
|
-
|
|
44
25
|
var log = (0, _debug["default"])('@pie-lib:config-ui:number-text-field');
|
|
45
|
-
|
|
46
26
|
var styles = function styles(theme) {
|
|
47
27
|
return {
|
|
48
28
|
root: {
|
|
@@ -50,43 +30,32 @@ var styles = function styles(theme) {
|
|
|
50
30
|
}
|
|
51
31
|
};
|
|
52
32
|
};
|
|
53
|
-
|
|
54
33
|
var fallbackNumber = function fallbackNumber(min, max) {
|
|
55
34
|
if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
|
|
56
35
|
return 0;
|
|
57
36
|
}
|
|
58
|
-
|
|
59
37
|
if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
|
|
60
38
|
return max;
|
|
61
39
|
}
|
|
62
|
-
|
|
63
40
|
if ((0, _isFinite["default"])(min)) {
|
|
64
41
|
return min;
|
|
65
42
|
}
|
|
66
43
|
};
|
|
67
|
-
|
|
68
44
|
var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
69
45
|
(0, _inherits2["default"])(NumberTextField, _React$Component);
|
|
70
|
-
|
|
71
46
|
var _super = _createSuper(NumberTextField);
|
|
72
|
-
|
|
73
47
|
function NumberTextField(props) {
|
|
74
48
|
var _this;
|
|
75
|
-
|
|
76
49
|
(0, _classCallCheck2["default"])(this, NumberTextField);
|
|
77
50
|
_this = _super.call(this, props);
|
|
78
51
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
|
|
79
52
|
var value = event.target.value;
|
|
80
53
|
var rawNumber = parseFloat(value);
|
|
81
54
|
log('rawNumber: ', rawNumber);
|
|
82
|
-
|
|
83
55
|
var number = _this.clamp(rawNumber);
|
|
84
|
-
|
|
85
56
|
log('number: ', number);
|
|
86
|
-
|
|
87
57
|
if (number !== _this.state.value) {
|
|
88
58
|
log('trigger update...');
|
|
89
|
-
|
|
90
59
|
_this.setState({
|
|
91
60
|
value: number.toString()
|
|
92
61
|
}, function () {
|
|
@@ -96,47 +65,36 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
|
96
65
|
});
|
|
97
66
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "errorMessage", function () {
|
|
98
67
|
var _this$props = _this.props,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
68
|
+
min = _this$props.min,
|
|
69
|
+
max = _this$props.max;
|
|
102
70
|
if (min && max) {
|
|
103
71
|
return "The value must be between ".concat(min, " and ").concat(max);
|
|
104
72
|
}
|
|
105
|
-
|
|
106
73
|
if (min) {
|
|
107
74
|
return "The value must be greater than ".concat(min);
|
|
108
75
|
}
|
|
109
|
-
|
|
110
76
|
if (max) {
|
|
111
77
|
return "The value must be less than ".concat(max);
|
|
112
78
|
}
|
|
113
79
|
});
|
|
114
80
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getError", function () {
|
|
115
81
|
var value = _this.state.value;
|
|
116
|
-
|
|
117
82
|
var _float = parseFloat(value);
|
|
118
|
-
|
|
119
83
|
var clamped = _this.clamp(_float);
|
|
120
|
-
|
|
121
84
|
if (clamped !== _float) {
|
|
122
85
|
return _this.errorMessage();
|
|
123
86
|
}
|
|
124
87
|
});
|
|
125
|
-
|
|
126
88
|
var _value = _this.clamp(props.value);
|
|
127
|
-
|
|
128
89
|
_this.state = {
|
|
129
90
|
value: _value
|
|
130
91
|
};
|
|
131
|
-
|
|
132
92
|
if (_value !== props.value) {
|
|
133
93
|
_this.props.onChange({}, _value);
|
|
134
94
|
}
|
|
135
|
-
|
|
136
95
|
_this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
|
|
137
96
|
return _this;
|
|
138
97
|
}
|
|
139
|
-
|
|
140
98
|
(0, _createClass2["default"])(NumberTextField, [{
|
|
141
99
|
key: "UNSAFE_componentWillReceiveProps",
|
|
142
100
|
value: function UNSAFE_componentWillReceiveProps(props) {
|
|
@@ -151,26 +109,22 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
|
151
109
|
if (!(0, _isFinite["default"])(value)) {
|
|
152
110
|
return fallbackNumber(this.props.min, this.props.max);
|
|
153
111
|
}
|
|
154
|
-
|
|
155
112
|
var _this$props2 = this.props,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
113
|
+
min = _this$props2.min,
|
|
114
|
+
max = _this$props2.max;
|
|
159
115
|
if ((0, _isFinite["default"])(max)) {
|
|
160
116
|
value = Math.min(value, max);
|
|
161
117
|
}
|
|
162
|
-
|
|
163
118
|
if ((0, _isFinite["default"])(min)) {
|
|
164
119
|
value = Math.max(value, min);
|
|
165
120
|
}
|
|
166
|
-
|
|
167
121
|
return value;
|
|
168
122
|
}
|
|
123
|
+
|
|
169
124
|
/**
|
|
170
125
|
* on Blur (this can be triggered by pressing Enter, see below)
|
|
171
126
|
* we check the entered value and reset it if needed
|
|
172
127
|
*/
|
|
173
|
-
|
|
174
128
|
}, {
|
|
175
129
|
key: "onChange",
|
|
176
130
|
value: function onChange(event) {
|
|
@@ -183,19 +137,18 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
|
183
137
|
key: "render",
|
|
184
138
|
value: function render() {
|
|
185
139
|
var _this2 = this;
|
|
186
|
-
|
|
187
140
|
var _this$props3 = this.props,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
141
|
+
className = _this$props3.className,
|
|
142
|
+
classes = _this$props3.classes,
|
|
143
|
+
label = _this$props3.label,
|
|
144
|
+
disabled = _this$props3.disabled,
|
|
145
|
+
suffix = _this$props3.suffix,
|
|
146
|
+
min = _this$props3.min,
|
|
147
|
+
max = _this$props3.max,
|
|
148
|
+
inputClassName = _this$props3.inputClassName,
|
|
149
|
+
disableUnderline = _this$props3.disableUnderline,
|
|
150
|
+
showErrorWhenOutsideRange = _this$props3.showErrorWhenOutsideRange,
|
|
151
|
+
variant = _this$props3.variant;
|
|
199
152
|
var names = (0, _classnames["default"])(classes.root, className);
|
|
200
153
|
var error = showErrorWhenOutsideRange && this.getError();
|
|
201
154
|
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
@@ -238,7 +191,6 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
|
238
191
|
}]);
|
|
239
192
|
return NumberTextField;
|
|
240
193
|
}(_react["default"].Component);
|
|
241
|
-
|
|
242
194
|
exports.NumberTextField = NumberTextField;
|
|
243
195
|
(0, _defineProperty2["default"])(NumberTextField, "propTypes", {
|
|
244
196
|
disabled: _propTypes["default"].bool,
|
|
@@ -258,8 +210,6 @@ exports.NumberTextField = NumberTextField;
|
|
|
258
210
|
(0, _defineProperty2["default"])(NumberTextField, "defaultProps", {
|
|
259
211
|
showErrorWhenOutsideRange: false
|
|
260
212
|
});
|
|
261
|
-
|
|
262
213
|
var _default = (0, _styles.withStyles)(styles)(NumberTextField);
|
|
263
|
-
|
|
264
214
|
exports["default"] = _default;
|
|
265
215
|
//# sourceMappingURL=number-text-field.js.map
|