@pie-lib/config-ui 11.30.0-mui-update.0 → 11.30.1-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.md +12 -9
- package/lib/__tests__/choice-utils.test.js +16 -0
- package/lib/__tests__/langs.test.js +55 -0
- package/lib/__tests__/number-text-field.test.js +128 -0
- package/lib/__tests__/settings-panel.test.js +201 -0
- package/lib/__tests__/two-choice.test.js +33 -0
- package/lib/alert-dialog.js +42 -23
- package/lib/alert-dialog.js.map +1 -1
- package/lib/checkbox.js +71 -56
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +20 -0
- package/lib/choice-configuration/__tests__/index.test.js +119 -0
- package/lib/choice-configuration/feedback-menu.js +63 -24
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +257 -201
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +18 -6
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/__tests__/feedback-config.test.js +78 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js +71 -0
- package/lib/feedback-config/feedback-selector.js +114 -77
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +40 -26
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +90 -38
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +33 -24
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +80 -39
- package/lib/help.js.map +1 -1
- package/lib/index.js +31 -1
- package/lib/index.js.map +1 -1
- package/lib/input.js +54 -21
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +95 -61
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +100 -56
- package/lib/langs.js.map +1 -1
- package/lib/layout/__tests__/config.layout.test.js +33 -0
- package/lib/layout/__tests__/layout-content.test.js +6 -0
- package/lib/layout/config-layout.js +99 -48
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +3 -0
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +101 -72
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +56 -27
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +57 -41
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +161 -79
- package/lib/number-text-field-custom.js.map +1 -1
- package/lib/number-text-field.js +115 -57
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +31 -23
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +32 -16
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +47 -14
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +228 -142
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +30 -21
- package/lib/settings/settings-radio-label.js.map +1 -1
- package/lib/settings/toggle.js +46 -34
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +57 -22
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/__tests__/index.test.js +88 -0
- package/lib/tags-input/index.js +99 -50
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +90 -46
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +31 -8
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +10 -12
- package/src/__tests__/number-text-field.test.jsx +1 -1
- package/src/alert-dialog.jsx +18 -14
- package/src/checkbox.jsx +46 -42
- package/src/choice-configuration/feedback-menu.jsx +5 -5
- package/src/choice-configuration/index.jsx +193 -205
- package/src/feedback-config/feedback-selector.jsx +53 -51
- package/src/feedback-config/group.jsx +22 -21
- package/src/feedback-config/index.jsx +29 -27
- package/src/form-section.jsx +18 -18
- package/src/help.jsx +28 -20
- package/src/input.jsx +1 -1
- package/src/inputs.jsx +50 -34
- package/src/langs.jsx +46 -40
- package/src/layout/config-layout.jsx +36 -25
- package/src/layout/layout-contents.jsx +34 -34
- package/src/layout/settings-box.jsx +19 -16
- package/src/mui-box/index.jsx +43 -35
- package/src/number-text-field-custom.jsx +36 -30
- package/src/number-text-field.jsx +30 -22
- package/src/radio-with-label.jsx +13 -17
- package/src/settings/display-size.jsx +11 -12
- package/src/settings/panel.jsx +89 -83
- package/src/settings/settings-radio-label.jsx +13 -17
- package/src/settings/toggle.jsx +29 -29
- package/src/tabs/index.jsx +8 -8
- package/src/tags-input/index.jsx +38 -35
- package/src/two-choice.jsx +19 -15
- package/LICENSE.md +0 -5
- package/NEXT.CHANGELOG.json +0 -1
package/lib/number-text-field.js
CHANGED
|
@@ -1,63 +1,95 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = exports.NumberTextField = void 0;
|
|
9
|
+
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
9
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
|
+
|
|
10
18
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
11
20
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
|
|
21
|
+
|
|
13
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
14
24
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
15
26
|
var _react = _interopRequireDefault(require("react"));
|
|
16
|
-
|
|
17
|
-
var
|
|
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
|
+
|
|
18
34
|
var _debug = _interopRequireDefault(require("debug"));
|
|
35
|
+
|
|
19
36
|
var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
|
|
38
|
+
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
|
|
39
|
+
|
|
40
|
+
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
|
+
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
|
+
|
|
23
44
|
var log = (0, _debug["default"])('@pie-lib:config-ui:number-text-field');
|
|
24
|
-
|
|
25
|
-
|
|
45
|
+
|
|
46
|
+
var styles = function styles(theme) {
|
|
26
47
|
return {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
48
|
+
root: {
|
|
49
|
+
marginRight: theme.spacing.unit,
|
|
50
|
+
'& label': {
|
|
51
|
+
width: 'max-content'
|
|
52
|
+
}
|
|
30
53
|
}
|
|
31
54
|
};
|
|
32
|
-
}
|
|
55
|
+
};
|
|
56
|
+
|
|
33
57
|
var fallbackNumber = function fallbackNumber(min, max) {
|
|
34
58
|
if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
|
|
35
59
|
return 0;
|
|
36
60
|
}
|
|
61
|
+
|
|
37
62
|
if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
|
|
38
63
|
return max;
|
|
39
64
|
}
|
|
65
|
+
|
|
40
66
|
if ((0, _isFinite["default"])(min)) {
|
|
41
67
|
return min;
|
|
42
68
|
}
|
|
43
69
|
};
|
|
44
|
-
|
|
70
|
+
|
|
71
|
+
var NumberTextField = /*#__PURE__*/function (_React$Component) {
|
|
72
|
+
(0, _inherits2["default"])(NumberTextField, _React$Component);
|
|
73
|
+
|
|
74
|
+
var _super = _createSuper(NumberTextField);
|
|
75
|
+
|
|
45
76
|
function NumberTextField(props) {
|
|
46
77
|
var _this;
|
|
78
|
+
|
|
47
79
|
(0, _classCallCheck2["default"])(this, NumberTextField);
|
|
48
|
-
_this =
|
|
49
|
-
|
|
50
|
-
* on Blur (this can be triggered by pressing Enter, see below)
|
|
51
|
-
* we check the entered value and reset it if needed
|
|
52
|
-
*/
|
|
53
|
-
(0, _defineProperty2["default"])(_this, "onBlur", function (event) {
|
|
80
|
+
_this = _super.call(this, props);
|
|
81
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
|
|
54
82
|
var value = event.target.value;
|
|
55
83
|
var rawNumber = parseFloat(value);
|
|
56
84
|
log('rawNumber: ', rawNumber);
|
|
85
|
+
|
|
57
86
|
var number = _this.clamp(rawNumber);
|
|
87
|
+
|
|
58
88
|
log('number: ', number);
|
|
89
|
+
|
|
59
90
|
if (number !== _this.state.value) {
|
|
60
91
|
log('trigger update...');
|
|
92
|
+
|
|
61
93
|
_this.setState({
|
|
62
94
|
value: number.toString()
|
|
63
95
|
}, function () {
|
|
@@ -65,45 +97,50 @@ var NumberTextField = exports.NumberTextField = /*#__PURE__*/function (_React$Co
|
|
|
65
97
|
});
|
|
66
98
|
}
|
|
67
99
|
});
|
|
68
|
-
(0, _defineProperty2["default"])(_this, "errorMessage", function () {
|
|
100
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "errorMessage", function () {
|
|
69
101
|
var _this$props = _this.props,
|
|
70
|
-
|
|
71
|
-
|
|
102
|
+
min = _this$props.min,
|
|
103
|
+
max = _this$props.max;
|
|
104
|
+
|
|
72
105
|
if (min && max) {
|
|
73
106
|
return "The value must be between ".concat(min, " and ").concat(max);
|
|
74
107
|
}
|
|
108
|
+
|
|
75
109
|
if (min) {
|
|
76
110
|
return "The value must be greater than ".concat(min);
|
|
77
111
|
}
|
|
112
|
+
|
|
78
113
|
if (max) {
|
|
79
114
|
return "The value must be less than ".concat(max);
|
|
80
115
|
}
|
|
81
116
|
});
|
|
82
|
-
|
|
83
|
-
* if the input has to show error when outside range,
|
|
84
|
-
* and the entered value is not matching the requirements
|
|
85
|
-
* we display error message
|
|
86
|
-
*/
|
|
87
|
-
(0, _defineProperty2["default"])(_this, "getError", function () {
|
|
117
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getError", function () {
|
|
88
118
|
var value = _this.state.value;
|
|
119
|
+
|
|
89
120
|
var _float = parseFloat(value);
|
|
121
|
+
|
|
90
122
|
var clamped = _this.clamp(_float);
|
|
123
|
+
|
|
91
124
|
if (clamped !== _float) {
|
|
92
125
|
return _this.errorMessage();
|
|
93
126
|
}
|
|
94
127
|
});
|
|
128
|
+
|
|
95
129
|
var _value = _this.clamp(props.value);
|
|
130
|
+
|
|
96
131
|
_this.state = {
|
|
97
132
|
value: _value
|
|
98
133
|
};
|
|
134
|
+
|
|
99
135
|
if (_value !== props.value) {
|
|
100
136
|
_this.props.onChange({}, _value);
|
|
101
137
|
}
|
|
102
|
-
|
|
138
|
+
|
|
139
|
+
_this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
|
|
103
140
|
return _this;
|
|
104
141
|
}
|
|
105
|
-
|
|
106
|
-
|
|
142
|
+
|
|
143
|
+
(0, _createClass2["default"])(NumberTextField, [{
|
|
107
144
|
key: "UNSAFE_componentWillReceiveProps",
|
|
108
145
|
value: function UNSAFE_componentWillReceiveProps(props) {
|
|
109
146
|
var value = this.clamp(props.value, props.min, props.max);
|
|
@@ -116,17 +153,26 @@ var NumberTextField = exports.NumberTextField = /*#__PURE__*/function (_React$Co
|
|
|
116
153
|
value: function clamp(value) {
|
|
117
154
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
|
|
118
155
|
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
|
|
156
|
+
|
|
119
157
|
if (!(0, _isFinite["default"])(value)) {
|
|
120
158
|
return fallbackNumber(min, max);
|
|
121
159
|
}
|
|
160
|
+
|
|
122
161
|
if ((0, _isFinite["default"])(max)) {
|
|
123
162
|
value = Math.min(value, max);
|
|
124
163
|
}
|
|
164
|
+
|
|
125
165
|
if ((0, _isFinite["default"])(min)) {
|
|
126
166
|
value = Math.max(value, min);
|
|
127
167
|
}
|
|
168
|
+
|
|
128
169
|
return value;
|
|
129
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* on Blur (this can be triggered by pressing Enter, see below)
|
|
173
|
+
* we check the entered value and reset it if needed
|
|
174
|
+
*/
|
|
175
|
+
|
|
130
176
|
}, {
|
|
131
177
|
key: "onChange",
|
|
132
178
|
value: function onChange(event) {
|
|
@@ -139,20 +185,23 @@ var NumberTextField = exports.NumberTextField = /*#__PURE__*/function (_React$Co
|
|
|
139
185
|
key: "render",
|
|
140
186
|
value: function render() {
|
|
141
187
|
var _this2 = this;
|
|
188
|
+
|
|
142
189
|
var _this$props2 = this.props,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
190
|
+
className = _this$props2.className,
|
|
191
|
+
classes = _this$props2.classes,
|
|
192
|
+
label = _this$props2.label,
|
|
193
|
+
disabled = _this$props2.disabled,
|
|
194
|
+
suffix = _this$props2.suffix,
|
|
195
|
+
min = _this$props2.min,
|
|
196
|
+
max = _this$props2.max,
|
|
197
|
+
inputClassName = _this$props2.inputClassName,
|
|
198
|
+
disableUnderline = _this$props2.disableUnderline,
|
|
199
|
+
showErrorWhenOutsideRange = _this$props2.showErrorWhenOutsideRange,
|
|
200
|
+
variant = _this$props2.variant;
|
|
201
|
+
var names = (0, _classnames["default"])(classes.root, className);
|
|
153
202
|
var error = showErrorWhenOutsideRange && this.getError();
|
|
154
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
155
|
-
variant:
|
|
203
|
+
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
204
|
+
variant: variant || 'standard',
|
|
156
205
|
inputRef: function inputRef(ref) {
|
|
157
206
|
_this2.inputRef = ref;
|
|
158
207
|
},
|
|
@@ -163,33 +212,39 @@ var NumberTextField = exports.NumberTextField = /*#__PURE__*/function (_React$Co
|
|
|
163
212
|
helperText: error,
|
|
164
213
|
onChange: this.onChange,
|
|
165
214
|
onBlur: this.onBlur,
|
|
166
|
-
|
|
215
|
+
onKeyPress: function onKeyPress(e) {
|
|
167
216
|
// once the Enter key is pressed, we force input blur
|
|
168
217
|
if (e.key === 'Enter' && _this2.inputRef) {
|
|
169
218
|
_this2.inputRef.blur();
|
|
170
219
|
}
|
|
171
220
|
},
|
|
172
221
|
type: "number",
|
|
173
|
-
className:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
222
|
+
className: names,
|
|
223
|
+
InputLabelProps: {
|
|
224
|
+
shrink: true
|
|
225
|
+
},
|
|
226
|
+
InputProps: {
|
|
227
|
+
endAdornment: suffix && /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
|
|
228
|
+
position: "end"
|
|
229
|
+
}, suffix),
|
|
230
|
+
className: inputClassName,
|
|
231
|
+
disableUnderline: disableUnderline
|
|
232
|
+
},
|
|
233
|
+
inputProps: {
|
|
234
|
+
min: min,
|
|
235
|
+
max: max
|
|
185
236
|
},
|
|
186
237
|
margin: "normal"
|
|
187
238
|
});
|
|
188
239
|
}
|
|
189
240
|
}]);
|
|
241
|
+
return NumberTextField;
|
|
190
242
|
}(_react["default"].Component);
|
|
243
|
+
|
|
244
|
+
exports.NumberTextField = NumberTextField;
|
|
191
245
|
(0, _defineProperty2["default"])(NumberTextField, "propTypes", {
|
|
192
246
|
disabled: _propTypes["default"].bool,
|
|
247
|
+
classes: _propTypes["default"].object.isRequired,
|
|
193
248
|
className: _propTypes["default"].string,
|
|
194
249
|
inputClassName: _propTypes["default"].string,
|
|
195
250
|
onChange: _propTypes["default"].func.isRequired,
|
|
@@ -205,5 +260,8 @@ var NumberTextField = exports.NumberTextField = /*#__PURE__*/function (_React$Co
|
|
|
205
260
|
(0, _defineProperty2["default"])(NumberTextField, "defaultProps", {
|
|
206
261
|
showErrorWhenOutsideRange: false
|
|
207
262
|
});
|
|
208
|
-
|
|
263
|
+
|
|
264
|
+
var _default = (0, _styles.withStyles)(styles)(NumberTextField);
|
|
265
|
+
|
|
266
|
+
exports["default"] = _default;
|
|
209
267
|
//# sourceMappingURL=number-text-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-text-field.js","names":["_propTypes","_interopRequireDefault","require","_react","_TextField","_styles","_debug","_isFinite","_InputAdornment","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","log","debug","StyledTextField","styled","TextField","_ref","theme","marginRight","spacing","width","fallbackNumber","min","max","isFinite","NumberTextField","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","event","value","target","rawNumber","parseFloat","number","clamp","state","setState","toString","onChange","_this$props","concat","float","clamped","errorMessage","bind","_inherits2","_createClass2","key","UNSAFE_componentWillReceiveProps","arguments","length","undefined","Math","render","_this2","_this$props2","className","label","disabled","suffix","inputClassName","disableUnderline","showErrorWhenOutsideRange","variant","error","getError","createElement","inputRef","ref","helperText","onBlur","onKeyDown","blur","type","slotProps","input","endAdornment","position","inputProps","margin","React","Component","PropTypes","bool","string","func","isRequired","_default"],"sources":["../src/number-text-field.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport TextField from '@mui/material/TextField';\nimport { styled } from '@mui/material/styles';\nimport debug from 'debug';\nimport isFinite from 'lodash/isFinite';\nimport InputAdornment from '@mui/material/InputAdornment';\nconst log = debug('@pie-lib:config-ui:number-text-field');\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n marginRight: theme.spacing(1),\n '& label': {\n width: 'max-content',\n },\n}));\n\nconst fallbackNumber = (min, max) => {\n if (!isFinite(min) && !isFinite(max)) {\n return 0;\n }\n if (!isFinite(min) && isFinite(max)) {\n return max;\n }\n\n if (isFinite(min)) {\n return min;\n }\n};\n\nexport class NumberTextField extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n inputClassName: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n label: PropTypes.string,\n suffix: PropTypes.string,\n showErrorWhenOutsideRange: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n variant: PropTypes.string,\n };\n\n static defaultProps = {\n showErrorWhenOutsideRange: false,\n };\n\n constructor(props) {\n super(props);\n\n const value = this.clamp(props.value);\n\n this.state = {\n value,\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 = this.clamp(props.value, props.min, props.max);\n\n this.setState({ value });\n }\n\n clamp(value, min = this.props.min, max = this.props.max) {\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 /**\n * on Blur (this can be triggered by pressing Enter, see below)\n * we check the entered value and reset it if needed\n */\n onBlur = (event) => {\n const value = event.target.value;\n\n const rawNumber = parseFloat(value);\n log('rawNumber: ', rawNumber);\n\n const number = this.clamp(rawNumber);\n log('number: ', number);\n\n if (number !== this.state.value) {\n log('trigger update...');\n this.setState({ value: number.toString() }, () => {\n this.props.onChange(event, number);\n });\n }\n };\n\n onChange(event) {\n const value = event.target.value;\n this.setState({ value });\n }\n\n errorMessage = () => {\n const { min, max } = this.props;\n if (min && max) {\n return `The value must be between ${min} and ${max}`;\n }\n if (min) {\n return `The value must be greater than ${min}`;\n }\n if (max) {\n return `The value must be less than ${max}`;\n }\n };\n\n /**\n * if the input has to show error when outside range,\n * and the entered value is not matching the requirements\n * we display error message\n */\n\n getError = () => {\n const { value } = this.state;\n const float = parseFloat(value);\n const clamped = this.clamp(float);\n if (clamped !== float) {\n return this.errorMessage();\n }\n };\n\n render() {\n const {\n className,\n label,\n disabled,\n suffix,\n min,\n max,\n inputClassName,\n disableUnderline,\n showErrorWhenOutsideRange,\n variant,\n } = this.props;\n\n const error = showErrorWhenOutsideRange && this.getError();\n return (\n <StyledTextField\n variant={disableUnderline ? 'filled' : (variant || 'standard')}\n inputRef={(ref) => {\n this.inputRef = ref;\n }}\n disabled={disabled}\n label={label}\n value={this.state.value}\n error={!!error}\n helperText={error}\n onChange={this.onChange}\n onBlur={this.onBlur}\n onKeyDown={(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 type=\"number\"\n className={className}\n slotProps={{\n input: {\n endAdornment: suffix && <InputAdornment position=\"end\">{suffix}</InputAdornment>,\n className: inputClassName,\n inputProps: {\n min,\n max,\n },\n },\n }}\n margin=\"normal\"\n />\n );\n }\n}\n\nexport default NumberTextField;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"sources":["../src/number-text-field.jsx"],"names":["log","styles","theme","root","marginRight","spacing","unit","width","fallbackNumber","min","max","NumberTextField","props","event","value","target","rawNumber","parseFloat","number","clamp","state","setState","toString","onChange","float","clamped","errorMessage","bind","Math","className","classes","label","disabled","suffix","inputClassName","disableUnderline","showErrorWhenOutsideRange","variant","names","error","getError","ref","inputRef","onBlur","e","key","blur","shrink","endAdornment","React","Component","PropTypes","bool","object","isRequired","string","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 debug from 'debug';\nimport isFinite from 'lodash/isFinite';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nconst log = debug('@pie-lib:config-ui:number-text-field');\n\nconst styles = (theme) => ({\n root: {\n marginRight: theme.spacing.unit,\n '& label': {\n width: 'max-content',\n },\n },\n});\n\nconst fallbackNumber = (min, max) => {\n if (!isFinite(min) && !isFinite(max)) {\n return 0;\n }\n if (!isFinite(min) && isFinite(max)) {\n return max;\n }\n\n if (isFinite(min)) {\n return min;\n }\n};\n\nexport class NumberTextField extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n inputClassName: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n label: PropTypes.string,\n suffix: PropTypes.string,\n showErrorWhenOutsideRange: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n variant: PropTypes.string,\n };\n\n static defaultProps = {\n showErrorWhenOutsideRange: false,\n };\n\n constructor(props) {\n super(props);\n\n const value = this.clamp(props.value);\n\n this.state = {\n value,\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 = this.clamp(props.value, props.min, props.max);\n\n this.setState({ value });\n }\n\n clamp(value, min = this.props.min, max = this.props.max) {\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 /**\n * on Blur (this can be triggered by pressing Enter, see below)\n * we check the entered value and reset it if needed\n */\n onBlur = (event) => {\n const value = event.target.value;\n\n const rawNumber = parseFloat(value);\n log('rawNumber: ', rawNumber);\n\n const number = this.clamp(rawNumber);\n log('number: ', number);\n\n if (number !== this.state.value) {\n log('trigger update...');\n this.setState({ value: number.toString() }, () => {\n this.props.onChange(event, number);\n });\n }\n };\n\n onChange(event) {\n const value = event.target.value;\n this.setState({ value });\n }\n\n errorMessage = () => {\n const { min, max } = this.props;\n if (min && max) {\n return `The value must be between ${min} and ${max}`;\n }\n if (min) {\n return `The value must be greater than ${min}`;\n }\n if (max) {\n return `The value must be less than ${max}`;\n }\n };\n\n /**\n * if the input has to show error when outside range,\n * and the entered value is not matching the requirements\n * we display error message\n */\n\n getError = () => {\n const { value } = this.state;\n const float = parseFloat(value);\n const clamped = this.clamp(float);\n if (clamped !== float) {\n return this.errorMessage();\n }\n };\n\n render() {\n const {\n className,\n classes,\n label,\n disabled,\n suffix,\n min,\n max,\n inputClassName,\n disableUnderline,\n showErrorWhenOutsideRange,\n variant,\n } = this.props;\n const names = classNames(classes.root, className);\n\n const error = showErrorWhenOutsideRange && this.getError();\n return (\n <TextField\n variant={variant || 'standard'}\n inputRef={(ref) => {\n this.inputRef = ref;\n }}\n disabled={disabled}\n label={label}\n value={this.state.value}\n error={!!error}\n helperText={error}\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 type=\"number\"\n className={names}\n InputLabelProps={{\n shrink: true,\n }}\n InputProps={{\n endAdornment: suffix && <InputAdornment position=\"end\">{suffix}</InputAdornment>,\n className: inputClassName,\n disableUnderline: disableUnderline,\n }}\n inputProps={{\n min,\n max,\n }}\n margin=\"normal\"\n />\n );\n }\n}\n\nexport default withStyles(styles)(NumberTextField);\n"],"file":"number-text-field.js"}
|
package/lib/radio-with-label.js
CHANGED
|
@@ -1,41 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
8
|
-
|
|
9
|
-
var
|
|
9
|
+
|
|
10
|
+
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
11
|
+
|
|
12
|
+
var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
|
|
13
|
+
|
|
10
14
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
15
|
+
|
|
16
|
+
var _styles = require("@material-ui/core/styles");
|
|
17
|
+
|
|
12
18
|
var _renderUi = require("@pie-lib/render-ui");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
});
|
|
21
|
-
var StyledRadio = (0, _styles.styled)(_Radio["default"])(function () {
|
|
22
|
-
return {
|
|
19
|
+
|
|
20
|
+
var _default = (0, _styles.withStyles)({
|
|
21
|
+
label: {
|
|
22
|
+
left: '-5px',
|
|
23
|
+
position: 'relative'
|
|
24
|
+
},
|
|
25
|
+
customColor: {
|
|
23
26
|
color: "".concat(_renderUi.color.tertiary(), " !important")
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
var RadioWithLabel = function RadioWithLabel(_ref) {
|
|
27
|
+
}
|
|
28
|
+
})(function (_ref) {
|
|
27
29
|
var label = _ref.label,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
value = _ref.value,
|
|
31
|
+
checked = _ref.checked,
|
|
32
|
+
onChange = _ref.onChange,
|
|
33
|
+
classes = _ref.classes;
|
|
34
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
32
35
|
value: value,
|
|
33
|
-
|
|
36
|
+
classes: {
|
|
37
|
+
label: classes.label
|
|
38
|
+
},
|
|
39
|
+
control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
|
|
40
|
+
className: classes.customColor,
|
|
34
41
|
checked: checked,
|
|
35
42
|
onChange: onChange
|
|
36
43
|
}),
|
|
37
44
|
label: label
|
|
38
45
|
});
|
|
39
|
-
};
|
|
40
|
-
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
exports["default"] = _default;
|
|
41
49
|
//# sourceMappingURL=radio-with-label.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/radio-with-label.jsx"],"names":["label","left","position","customColor","color","tertiary","value","checked","onChange","classes"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;eAEe,wBAAW;AACxBA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,MADD;AAELC,IAAAA,QAAQ,EAAE;AAFL,GADiB;AAKxBC,EAAAA,WAAW,EAAE;AACXC,IAAAA,KAAK,YAAKA,gBAAMC,QAAN,EAAL;AADM;AALW,CAAX,EAQZ;AAAA,MAAGL,KAAH,QAAGA,KAAH;AAAA,MAAUM,KAAV,QAAUA,KAAV;AAAA,MAAiBC,OAAjB,QAAiBA,OAAjB;AAAA,MAA0BC,QAA1B,QAA0BA,QAA1B;AAAA,MAAoCC,OAApC,QAAoCA,OAApC;AAAA,sBACD,gCAAC,4BAAD;AACE,IAAA,KAAK,EAAEH,KADT;AAEE,IAAA,OAAO,EAAE;AAAEN,MAAAA,KAAK,EAAES,OAAO,CAACT;AAAjB,KAFX;AAGE,IAAA,OAAO,eAAE,gCAAC,iBAAD;AAAO,MAAA,SAAS,EAAES,OAAO,CAACN,WAA1B;AAAuC,MAAA,OAAO,EAAEI,OAAhD;AAAyD,MAAA,QAAQ,EAAEC;AAAnE,MAHX;AAIE,IAAA,KAAK,EAAER;AAJT,IADC;AAAA,CARY,C","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Radio from '@material-ui/core/Radio';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nexport default withStyles({\n label: {\n left: '-5px',\n position: 'relative',\n },\n customColor: {\n color: `${color.tertiary()} !important`,\n },\n})(({ label, value, checked, onChange, classes }) => (\n <FormControlLabel\n value={value}\n classes={{ label: classes.label }}\n control={<Radio className={classes.customColor} checked={checked} onChange={onChange} />}\n label={label}\n />\n));\n"],"file":"radio-with-label.js"}
|
|
@@ -1,33 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
8
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
9
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
10
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
|
-
var
|
|
15
|
+
|
|
16
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
17
|
+
|
|
18
|
+
var _styles = require("@material-ui/core/styles");
|
|
19
|
+
|
|
13
20
|
var _numberTextField = _interopRequireDefault(require("../number-text-field"));
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
|
+
|
|
26
|
+
var DisplaySize = (0, _styles.withStyles)(function (theme) {
|
|
18
27
|
return {
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
displaySize: {
|
|
29
|
+
display: 'flex',
|
|
30
|
+
paddingTop: theme.spacing.unit
|
|
31
|
+
}
|
|
21
32
|
};
|
|
22
|
-
})
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
})(function (_ref) {
|
|
34
|
+
var size = _ref.size,
|
|
35
|
+
label = _ref.label,
|
|
36
|
+
classes = _ref.classes,
|
|
37
|
+
onChange = _ref.onChange;
|
|
38
|
+
|
|
27
39
|
var updateSize = function updateSize(key, v) {
|
|
28
40
|
onChange(_objectSpread(_objectSpread({}, size), {}, (0, _defineProperty2["default"])({}, key, v)));
|
|
29
41
|
};
|
|
30
|
-
|
|
42
|
+
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, label), /*#__PURE__*/_react["default"].createElement("div", {
|
|
44
|
+
className: classes.displaySize
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(_numberTextField["default"], {
|
|
31
46
|
label: "Width",
|
|
32
47
|
type: "number",
|
|
33
48
|
variant: "outlined",
|
|
@@ -48,7 +63,7 @@ var DisplaySize = function DisplaySize(_ref2) {
|
|
|
48
63
|
return updateSize('height', v);
|
|
49
64
|
}
|
|
50
65
|
})));
|
|
51
|
-
};
|
|
66
|
+
});
|
|
52
67
|
DisplaySize.propTypes = {
|
|
53
68
|
size: _propTypes["default"].shape({
|
|
54
69
|
width: _propTypes["default"].number.isRequired,
|
|
@@ -57,5 +72,6 @@ DisplaySize.propTypes = {
|
|
|
57
72
|
label: _propTypes["default"].string.isRequired,
|
|
58
73
|
onChange: _propTypes["default"].func
|
|
59
74
|
};
|
|
60
|
-
var _default =
|
|
75
|
+
var _default = DisplaySize;
|
|
76
|
+
exports["default"] = _default;
|
|
61
77
|
//# sourceMappingURL=display-size.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/settings/display-size.jsx"],"names":["DisplaySize","theme","displaySize","display","paddingTop","spacing","unit","size","label","classes","onChange","updateSize","key","v","width","e","height","propTypes","PropTypes","shape","number","isRequired","string","func"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,WAAW,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AACzCC,IAAAA,WAAW,EAAE;AACXC,MAAAA,OAAO,EAAE,MADE;AAEXC,MAAAA,UAAU,EAAEH,KAAK,CAACI,OAAN,CAAcC;AAFf;AAD4B,GAAZ;AAAA,CAAX,EAKhB,gBAAwC;AAAA,MAArCC,IAAqC,QAArCA,IAAqC;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,OAAwB,QAAxBA,OAAwB;AAAA,MAAfC,QAAe,QAAfA,QAAe;;AAC1C,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAMC,CAAN,EAAY;AAC7BH,IAAAA,QAAQ,iCAAMH,IAAN,4CAAaK,GAAb,EAAmBC,CAAnB,GAAR;AACD,GAFD;;AAGA,sBACE,0DACE,gCAAC,sBAAD,QAAaL,KAAb,CADF,eAEE;AAAK,IAAA,SAAS,EAAEC,OAAO,CAACP;AAAxB,kBACE,gCAAC,2BAAD;AACE,IAAA,KAAK,EAAC,OADR;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAC,UAHV;AAIE,IAAA,KAAK,EAAEK,IAAI,CAACO,KAJd;AAKE,IAAA,GAAG,EAAE,GALP;AAME,IAAA,GAAG,EAAE,IANP;AAOE,IAAA,QAAQ,EAAE,kBAACC,CAAD,EAAIF,CAAJ;AAAA,aAAUF,UAAU,CAAC,OAAD,EAAUE,CAAV,CAApB;AAAA;AAPZ,IADF,eAUE,gCAAC,2BAAD;AACE,IAAA,KAAK,EAAC,QADR;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAC,UAHV;AAIE,IAAA,GAAG,EAAE,GAJP;AAKE,IAAA,GAAG,EAAE,IALP;AAME,IAAA,KAAK,EAAEN,IAAI,CAACS,MANd;AAOE,IAAA,QAAQ,EAAE,kBAACD,CAAD,EAAIF,CAAJ;AAAA,aAAUF,UAAU,CAAC,QAAD,EAAWE,CAAX,CAApB;AAAA;AAPZ,IAVF,CAFF,CADF;AAyBD,CAlCmB,CAApB;AAoCAb,WAAW,CAACiB,SAAZ,GAAwB;AACtBV,EAAAA,IAAI,EAAEW,sBAAUC,KAAV,CAAgB;AACpBL,IAAAA,KAAK,EAAEI,sBAAUE,MAAV,CAAiBC,UADJ;AAEpBL,IAAAA,MAAM,EAAEE,sBAAUE,MAAV,CAAiBC;AAFL,GAAhB,EAGHA,UAJmB;AAKtBb,EAAAA,KAAK,EAAEU,sBAAUI,MAAV,CAAiBD,UALF;AAMtBX,EAAAA,QAAQ,EAAEQ,sBAAUK;AANE,CAAxB;eASevB,W","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport NumberTextField from '../number-text-field';\n\nconst DisplaySize = withStyles((theme) => ({\n displaySize: {\n display: 'flex',\n paddingTop: theme.spacing.unit,\n },\n}))(({ size, label, classes, onChange }) => {\n const updateSize = (key, v) => {\n onChange({ ...size, [key]: v });\n };\n return (\n <div>\n <Typography>{label}</Typography>\n <div className={classes.displaySize}>\n <NumberTextField\n label=\"Width\"\n type=\"number\"\n variant=\"outlined\"\n value={size.width}\n min={150}\n max={1000}\n onChange={(e, v) => updateSize('width', v)}\n />\n <NumberTextField\n label=\"Height\"\n type=\"number\"\n variant=\"outlined\"\n min={150}\n max={1000}\n value={size.height}\n onChange={(e, v) => updateSize('height', v)}\n />\n </div>\n </div>\n );\n});\n\nDisplaySize.propTypes = {\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }).isRequired,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n};\n\nexport default DisplaySize;\n"],"file":"display-size.js"}
|