@pie-lib/config-ui 11.9.25-next.0 → 11.10.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +13 -115
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/alert-dialog.js +38 -7
  4. package/lib/alert-dialog.js.map +1 -1
  5. package/lib/checkbox.js +6 -1
  6. package/lib/checkbox.js.map +1 -1
  7. package/lib/choice-configuration/index.js +19 -8
  8. package/lib/choice-configuration/index.js.map +1 -1
  9. package/lib/feedback-config/feedback-selector.js +0 -0
  10. package/lib/inputs.js +8 -2
  11. package/lib/inputs.js.map +1 -1
  12. package/lib/layout/config-layout.js +27 -10
  13. package/lib/layout/config-layout.js.map +1 -1
  14. package/lib/number-text-field-custom.js +134 -43
  15. package/lib/number-text-field-custom.js.map +1 -1
  16. package/lib/number-text-field.js +17 -18
  17. package/lib/number-text-field.js.map +1 -1
  18. package/lib/radio-with-label.js +9 -1
  19. package/lib/radio-with-label.js.map +1 -1
  20. package/lib/settings/index.js +3 -1
  21. package/lib/settings/index.js.map +1 -1
  22. package/lib/settings/panel.js +7 -4
  23. package/lib/settings/panel.js.map +1 -1
  24. package/lib/settings/settings-radio-label.js +9 -1
  25. package/lib/settings/settings-radio-label.js.map +1 -1
  26. package/lib/settings/toggle.js +18 -0
  27. package/lib/settings/toggle.js.map +1 -1
  28. package/package.json +8 -5
  29. package/src/__tests__/__snapshots__/langs.test.jsx.snap +32 -0
  30. package/src/__tests__/__snapshots__/settings-panel.test.js.snap +115 -0
  31. package/src/__tests__/__snapshots__/two-choice.test.js.snap +171 -0
  32. package/src/__tests__/choice-utils.test.js +12 -0
  33. package/src/__tests__/langs.test.jsx +37 -0
  34. package/src/__tests__/number-text-field.test.jsx +148 -0
  35. package/src/__tests__/settings-panel.test.js +204 -0
  36. package/src/__tests__/two-choice.test.js +24 -0
  37. package/src/alert-dialog.jsx +27 -7
  38. package/src/checkbox.jsx +8 -1
  39. package/src/choice-configuration/__tests__/__snapshots__/feedback-menu.test.jsx.snap +51 -0
  40. package/src/choice-configuration/__tests__/__snapshots__/index.test.jsx.snap +519 -0
  41. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +10 -0
  42. package/src/choice-configuration/__tests__/index.test.jsx +92 -0
  43. package/src/choice-configuration/index.jsx +14 -3
  44. package/src/feedback-config/__tests__/__snapshots__/feedback-config.test.jsx.snap +27 -0
  45. package/src/feedback-config/__tests__/__snapshots__/feedback-selector.test.jsx.snap +38 -0
  46. package/src/feedback-config/__tests__/feedback-config.test.jsx +71 -0
  47. package/src/feedback-config/__tests__/feedback-selector.test.jsx +60 -0
  48. package/src/feedback-config/feedback-selector.jsx +0 -0
  49. package/src/inputs.jsx +9 -2
  50. package/src/layout/__tests__/__snapshots__/config.layout.test.jsx.snap +59 -0
  51. package/src/layout/__tests__/config.layout.test.jsx +42 -0
  52. package/src/layout/__tests__/layout-content.test.jsx +3 -0
  53. package/src/layout/config-layout.jsx +16 -8
  54. package/src/number-text-field-custom.jsx +86 -28
  55. package/src/number-text-field.jsx +6 -5
  56. package/src/radio-with-label.jsx +6 -2
  57. package/src/settings/index.js +2 -1
  58. package/src/settings/panel.jsx +5 -2
  59. package/src/settings/settings-radio-label.jsx +6 -2
  60. package/src/settings/toggle.jsx +20 -2
  61. package/src/tags-input/__tests__/__snapshots__/index.test.jsx.snap +170 -0
  62. package/src/tags-input/__tests__/index.test.jsx +62 -0
  63. package/README.md +0 -12
package/lib/inputs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inputs.jsx"],"names":["InputTypes","classes","PropTypes","object","isRequired","className","string","label","checked","bool","onChange","func","disabled","error","RawInputSwitch","switchRoot","propTypes","InputSwitch","justifyContent","transform","RawInputCheckbox","props","checkboxRoot","RawInputRadio","radioRoot","InputCheckbox","theme","color","palette","main","InputRadio"],"mappings":"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","sourcesContent":["import Checkbox from '@material-ui/core/Checkbox';\nimport Radio from '@material-ui/core/Radio';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Switch from '@material-ui/core/Switch';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst InputTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n};\n\nconst RawInputSwitch = ({ classes, className, label, checked, onChange }) => {\n return (\n <InputContainer className={className} label={label}>\n <Switch className={classes.switchRoot} checked={checked} onChange={onChange} aria-label={label} />\n </InputContainer>\n );\n};\n\nRawInputSwitch.propTypes = { ...InputTypes };\n\nconst InputSwitch = withStyles({\n switchRoot: {\n justifyContent: 'inherit',\n transform: 'translate(-20%, 20%)',\n },\n})(RawInputSwitch);\n\nconst RawInputCheckbox = (props) => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Checkbox\n className={classNames(classes.checkboxRoot, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputCheckbox.propTypes = { ...InputTypes };\n\nconst RawInputRadio = (props) => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Radio\n className={classNames(classes.radioRoot, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputRadio.propTypes = { ...InputTypes };\n\nconst InputCheckbox = withStyles((theme) => ({\n checkboxRoot: {\n transform: 'translate(-25%, 20%)',\n },\n error: {\n color: theme.palette.error.main,\n },\n}))(RawInputCheckbox);\n\nconst InputRadio = withStyles((theme) => ({\n radioRoot: {\n transform: 'translate(-20%, 20%)',\n },\n error: {\n color: theme.palette.error.main,\n },\n}))(RawInputRadio);\n\nexport { InputSwitch, InputCheckbox, InputRadio };\n"],"file":"inputs.js"}
1
+ {"version":3,"sources":["../src/inputs.jsx"],"names":["InputTypes","classes","PropTypes","object","isRequired","className","string","label","checked","bool","onChange","func","disabled","error","RawInputSwitch","switchRoot","propTypes","InputSwitch","justifyContent","transform","RawInputCheckbox","props","checkboxRoot","customColor","RawInputRadio","radioRoot","InputCheckbox","theme","color","palette","main","tertiary","InputRadio"],"mappings":"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","sourcesContent":["import Checkbox from '@material-ui/core/Checkbox';\nimport Radio from '@material-ui/core/Radio';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Switch from '@material-ui/core/Switch';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nconst InputTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n};\n\nconst RawInputSwitch = ({ classes, className, label, checked, onChange }) => {\n return (\n <InputContainer className={className} label={label}>\n <Switch className={classes.switchRoot} checked={checked} onChange={onChange} aria-label={label} />\n </InputContainer>\n );\n};\n\nRawInputSwitch.propTypes = { ...InputTypes };\n\nconst InputSwitch = withStyles({\n switchRoot: {\n justifyContent: 'inherit',\n transform: 'translate(-20%, 20%)',\n },\n})(RawInputSwitch);\n\nconst RawInputCheckbox = (props) => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Checkbox\n className={classNames(classes.checkboxRoot, classes.customColor, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputCheckbox.propTypes = { ...InputTypes };\n\nconst RawInputRadio = (props) => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Radio\n className={classNames(classes.radioRoot, classes.customColor, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputRadio.propTypes = { ...InputTypes };\n\nconst InputCheckbox = withStyles((theme) => ({\n checkboxRoot: {\n transform: 'translate(-25%, 20%)',\n },\n error: {\n color: theme.palette.error.main,\n },\n customColor: {\n color: `${color.tertiary()} !important`,\n },\n}))(RawInputCheckbox);\n\nconst InputRadio = withStyles((theme) => ({\n radioRoot: {\n transform: 'translate(-20%, 20%)',\n },\n error: {\n color: theme.palette.error.main,\n },\n customColor: {\n color: `${color.tertiary()} !important`,\n },\n}))(RawInputRadio);\n\nexport { InputSwitch, InputCheckbox, InputRadio };\n"],"file":"inputs.js"}
@@ -27,12 +27,18 @@ var _react = _interopRequireDefault(require("react"));
27
27
 
28
28
  var _reactMeasure = _interopRequireWildcard(require("react-measure"));
29
29
 
30
+ var _styles = require("@material-ui/core/styles");
31
+
30
32
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
33
 
34
+ var _classnames = _interopRequireDefault(require("classnames"));
35
+
32
36
  var _layoutContents = _interopRequireDefault(require("./layout-contents"));
33
37
 
34
38
  var _settingsBox = _interopRequireDefault(require("./settings-box"));
35
39
 
40
+ var _renderUi = require("@pie-lib/render-ui");
41
+
36
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
43
 
38
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -41,16 +47,25 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
41
47
 
42
48
  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
49
 
44
- var MeasuredConfigLayout = /*#__PURE__*/function (_React$Component) {
45
- (0, _inherits2["default"])(MeasuredConfigLayout, _React$Component);
50
+ var styles = {
51
+ extraCSSRules: {}
52
+ };
53
+
54
+ var MeasuredConfigLayout = /*#__PURE__*/function (_AppendCSSRules) {
55
+ (0, _inherits2["default"])(MeasuredConfigLayout, _AppendCSSRules);
46
56
 
47
57
  var _super = _createSuper(MeasuredConfigLayout);
48
58
 
49
- function MeasuredConfigLayout(props) {
59
+ function MeasuredConfigLayout() {
50
60
  var _this;
51
61
 
52
62
  (0, _classCallCheck2["default"])(this, MeasuredConfigLayout);
53
- _this = _super.call(this, props);
63
+
64
+ for (var _len = arguments.length, props = new Array(_len), _key = 0; _key < _len; _key++) {
65
+ props[_key] = arguments[_key];
66
+ }
67
+
68
+ _this = _super.call.apply(_super, [this].concat(props));
54
69
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResize", function (contentRect) {
55
70
  var bounds = contentRect.bounds;
56
71
  var _this$props = _this.props,
@@ -60,7 +75,7 @@ var MeasuredConfigLayout = /*#__PURE__*/function (_React$Component) {
60
75
  var _ref = dimensions || {},
61
76
  maxWidth = _ref.maxWidth;
62
77
 
63
- var layoutMode = bounds.width >= sidePanelMinWidth && (maxWidth ? maxWidth >= sidePanelMinWidth : true) ? 'inline' : 'tabbed';
78
+ var layoutMode = bounds.width > sidePanelMinWidth && (maxWidth ? maxWidth > sidePanelMinWidth : true) ? 'inline' : 'tabbed';
64
79
 
65
80
  _this.setState({
66
81
  layoutMode: layoutMode
@@ -86,15 +101,17 @@ var MeasuredConfigLayout = /*#__PURE__*/function (_React$Component) {
86
101
  children = _this2$props.children,
87
102
  settings = _this2$props.settings,
88
103
  hideSettings = _this2$props.hideSettings,
89
- dimensions = _this2$props.dimensions;
104
+ dimensions = _this2$props.dimensions,
105
+ classes = _this2$props.classes;
90
106
  var layoutMode = _this2.state.layoutMode;
91
107
  var settingsPanel = layoutMode === 'inline' ? /*#__PURE__*/_react["default"].createElement(_settingsBox["default"], {
92
108
  className: "settings-box"
93
109
  }, settings) : settings;
94
110
  var secondaryContent = hideSettings ? null : settingsPanel;
111
+ var finalClass = (0, _classnames["default"])('main-container', classes.extraCSSRules);
95
112
  return /*#__PURE__*/_react["default"].createElement("div", {
96
113
  ref: measureRef,
97
- className: "main-container"
114
+ className: finalClass
98
115
  }, /*#__PURE__*/_react["default"].createElement(_layoutContents["default"], {
99
116
  mode: layoutMode,
100
117
  secondary: secondaryContent,
@@ -104,7 +121,7 @@ var MeasuredConfigLayout = /*#__PURE__*/function (_React$Component) {
104
121
  }
105
122
  }]);
106
123
  return MeasuredConfigLayout;
107
- }(_react["default"].Component);
124
+ }(_renderUi.AppendCSSRules);
108
125
 
109
126
  (0, _defineProperty2["default"])(MeasuredConfigLayout, "propTypes", {
110
127
  children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].element), _propTypes["default"].element]),
@@ -116,11 +133,11 @@ var MeasuredConfigLayout = /*#__PURE__*/function (_React$Component) {
116
133
  hideSettings: _propTypes["default"].bool
117
134
  });
118
135
  (0, _defineProperty2["default"])(MeasuredConfigLayout, "defaultProps", {
119
- sidePanelMinWidth: 950,
136
+ sidePanelMinWidth: 1135,
120
137
  hideSettings: false,
121
138
  dimensions: {}
122
139
  });
123
- var ConfigLayout = (0, _reactMeasure.withContentRect)('bounds')(MeasuredConfigLayout);
140
+ var ConfigLayout = (0, _styles.withStyles)(styles)((0, _reactMeasure.withContentRect)('bounds')(MeasuredConfigLayout));
124
141
  var _default = ConfigLayout;
125
142
  exports["default"] = _default;
126
143
  //# sourceMappingURL=config-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/layout/config-layout.jsx"],"names":["MeasuredConfigLayout","props","contentRect","bounds","sidePanelMinWidth","dimensions","maxWidth","layoutMode","width","setState","state","undefined","onResize","measureRef","children","settings","hideSettings","settingsPanel","secondaryContent","React","Component","PropTypes","oneOfType","string","arrayOf","element","className","classes","object","number","bool","ConfigLayout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;IAEMA,oB;;;;;AAiBJ,gCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,iGAKR,UAACC,WAAD,EAAiB;AAC1B,UAAQC,MAAR,GAAmBD,WAAnB,CAAQC,MAAR;AACA,wBAA0C,MAAKF,KAA/C;AAAA,UAAQG,iBAAR,eAAQA,iBAAR;AAAA,UAA2BC,UAA3B,eAA2BA,UAA3B;;AACA,iBAAqBA,UAAU,IAAI,EAAnC;AAAA,UAAQC,QAAR,QAAQA,QAAR;;AAEA,UAAMC,UAAU,GACdJ,MAAM,CAACK,KAAP,IAAgBJ,iBAAhB,KAAsCE,QAAQ,GAAGA,QAAQ,IAAIF,iBAAf,GAAmC,IAAjF,IAAyF,QAAzF,GAAoG,QADtG;;AAGA,YAAKK,QAAL,CAAc;AAAEF,QAAAA,UAAU,EAAVA;AAAF,OAAd;AACD,KAdkB;AAEjB,UAAKG,KAAL,GAAa;AAAEH,MAAAA,UAAU,EAAEI;AAAd,KAAb;AAFiB;AAGlB;;;;WAaD,kBAAS;AAAA;;AACP,0BACE,gCAAC,wBAAD;AAAS,QAAA,MAAM,MAAf;AAAgB,QAAA,QAAQ,EAAE,KAAKC;AAA/B,SACG,iBAAoB;AAAA,YAAjBC,UAAiB,SAAjBA,UAAiB;AACnB,2BAAyD,MAAI,CAACZ,KAA9D;AAAA,YAAQa,QAAR,gBAAQA,QAAR;AAAA,YAAkBC,QAAlB,gBAAkBA,QAAlB;AAAA,YAA4BC,YAA5B,gBAA4BA,YAA5B;AAAA,YAA0CX,UAA1C,gBAA0CA,UAA1C;AACA,YAAQE,UAAR,GAAuB,MAAI,CAACG,KAA5B,CAAQH,UAAR;AAEA,YAAMU,aAAa,GACjBV,UAAU,KAAK,QAAf,gBAA0B,gCAAC,uBAAD;AAAa,UAAA,SAAS,EAAC;AAAvB,WAAuCQ,QAAvC,CAA1B,GAA2FA,QAD7F;AAEA,YAAMG,gBAAgB,GAAGF,YAAY,GAAG,IAAH,GAAUC,aAA/C;AAEA,4BACE;AAAK,UAAA,GAAG,EAAEJ,UAAV;AAAsB,UAAA,SAAS,EAAC;AAAhC,wBACE,gCAAC,0BAAD;AAAgB,UAAA,IAAI,EAAEN,UAAtB;AAAkC,UAAA,SAAS,EAAEW,gBAA7C;AAA+D,UAAA,UAAU,EAAEb;AAA3E,WACGS,QADH,CADF,CADF;AAOD,OAhBH,CADF;AAoBD;;;EAtDgCK,kBAAMC,S;;iCAAnCpB,oB,eACe;AACjBc,EAAAA,QAAQ,EAAEO,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,MAAX,EAAmBF,sBAAUG,OAAV,CAAkBH,sBAAUI,OAA5B,CAAnB,EAAyDJ,sBAAUI,OAAnE,CAApB,CADO;AAEjBC,EAAAA,SAAS,EAAEL,sBAAUE,MAFJ;AAGjBI,EAAAA,OAAO,EAAEN,sBAAUO,MAHF;AAIjBvB,EAAAA,UAAU,EAAEgB,sBAAUO,MAJL;AAKjBb,EAAAA,QAAQ,EAAEM,sBAAUI,OALH;AAMjBrB,EAAAA,iBAAiB,EAAEiB,sBAAUQ,MANZ;AAOjBb,EAAAA,YAAY,EAAEK,sBAAUS;AAPP,C;iCADf9B,oB,kBAWkB;AACpBI,EAAAA,iBAAiB,EAAE,GADC;AAEpBY,EAAAA,YAAY,EAAE,KAFM;AAGpBX,EAAAA,UAAU,EAAE;AAHQ,C;AA8CxB,IAAM0B,YAAY,GAAG,mCAAgB,QAAhB,EAA0B/B,oBAA1B,CAArB;eAEe+B,Y","sourcesContent":["import React from 'react';\nimport Measure from 'react-measure';\nimport { withContentRect } from 'react-measure';\nimport PropTypes from 'prop-types';\nimport LayoutContents from './layout-contents';\nimport SettingsBox from './settings-box';\n\nclass MeasuredConfigLayout extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n className: PropTypes.string,\n classes: PropTypes.object,\n dimensions: PropTypes.object,\n settings: PropTypes.element,\n sidePanelMinWidth: PropTypes.number,\n hideSettings: PropTypes.bool,\n };\n\n static defaultProps = {\n sidePanelMinWidth: 950,\n hideSettings: false,\n dimensions: {},\n };\n\n constructor(props) {\n super(props);\n this.state = { layoutMode: undefined };\n }\n\n onResize = (contentRect) => {\n const { bounds } = contentRect;\n const { sidePanelMinWidth, dimensions } = this.props;\n const { maxWidth } = dimensions || {};\n\n const layoutMode =\n bounds.width >= sidePanelMinWidth && (maxWidth ? maxWidth >= sidePanelMinWidth : true) ? 'inline' : 'tabbed';\n\n this.setState({ layoutMode });\n };\n\n render() {\n return (\n <Measure bounds onResize={this.onResize}>\n {({ measureRef }) => {\n const { children, settings, hideSettings, dimensions } = this.props;\n const { layoutMode } = this.state;\n\n const settingsPanel =\n layoutMode === 'inline' ? <SettingsBox className=\"settings-box\">{settings}</SettingsBox> : settings;\n const secondaryContent = hideSettings ? null : settingsPanel;\n\n return (\n <div ref={measureRef} className=\"main-container\">\n <LayoutContents mode={layoutMode} secondary={secondaryContent} dimensions={dimensions}>\n {children}\n </LayoutContents>\n </div>\n );\n }}\n </Measure>\n );\n }\n}\n\nconst ConfigLayout = withContentRect('bounds')(MeasuredConfigLayout);\n\nexport default ConfigLayout;\n"],"file":"config-layout.js"}
1
+ {"version":3,"sources":["../../src/layout/config-layout.jsx"],"names":["styles","extraCSSRules","MeasuredConfigLayout","props","contentRect","bounds","sidePanelMinWidth","dimensions","maxWidth","layoutMode","width","setState","state","undefined","onResize","measureRef","children","settings","hideSettings","classes","settingsPanel","secondaryContent","finalClass","AppendCSSRules","PropTypes","oneOfType","string","arrayOf","element","className","object","number","bool","ConfigLayout"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Measure from 'react-measure';\nimport { withContentRect } from 'react-measure';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport LayoutContents from './layout-contents';\nimport SettingsBox from './settings-box';\nimport { AppendCSSRules } from '@pie-lib/render-ui';\n\nconst styles = {\n extraCSSRules: {},\n};\n\nclass MeasuredConfigLayout extends AppendCSSRules {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n className: PropTypes.string,\n classes: PropTypes.object,\n dimensions: PropTypes.object,\n settings: PropTypes.element,\n sidePanelMinWidth: PropTypes.number,\n hideSettings: PropTypes.bool,\n };\n\n static defaultProps = {\n sidePanelMinWidth: 1135,\n hideSettings: false,\n dimensions: {},\n };\n\n constructor(...props) {\n super(...props);\n this.state = { layoutMode: undefined };\n }\n\n onResize = (contentRect) => {\n const { bounds } = contentRect;\n const { sidePanelMinWidth, dimensions } = this.props;\n const { maxWidth } = dimensions || {};\n\n const layoutMode =\n bounds.width > sidePanelMinWidth && (maxWidth ? maxWidth > sidePanelMinWidth : true) ? 'inline' : 'tabbed';\n\n this.setState({ layoutMode });\n };\n\n render() {\n return (\n <Measure bounds onResize={this.onResize}>\n {({ measureRef }) => {\n const { children, settings, hideSettings, dimensions, classes } = this.props;\n const { layoutMode } = this.state;\n\n const settingsPanel =\n layoutMode === 'inline' ? <SettingsBox className=\"settings-box\">{settings}</SettingsBox> : settings;\n const secondaryContent = hideSettings ? null : settingsPanel;\n const finalClass = classNames('main-container', classes.extraCSSRules);\n\n return (\n <div ref={measureRef} className={finalClass}>\n <LayoutContents mode={layoutMode} secondary={secondaryContent} dimensions={dimensions}>\n {children}\n </LayoutContents>\n </div>\n );\n }}\n </Measure>\n );\n }\n}\n\nconst ConfigLayout = withStyles(styles)(withContentRect('bounds')(MeasuredConfigLayout));\n\nexport default ConfigLayout;\n"],"file":"config-layout.js"}
@@ -2,11 +2,15 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = exports.NumberTextFieldCustom = void 0;
9
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
15
 
12
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -41,6 +45,12 @@ var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
41
45
 
42
46
  var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
43
47
 
48
+ var math = _interopRequireWildcard(require("mathjs"));
49
+
50
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
+
52
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
+
44
54
  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
55
 
46
56
  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; } }
@@ -90,16 +100,17 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
90
100
 
91
101
  (0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
92
102
  _this = _super.call(this, props);
93
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number) {
94
- var value = _this.clamp(number);
103
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number, min, max) {
104
+ var type = _this.props.type;
105
+
106
+ var value = _this.clamp(number, min, max);
95
107
 
96
108
  var currentIndex = (customValues || []).findIndex(function (val) {
97
109
  return val === value;
98
110
  });
99
111
 
100
112
  if ((customValues || []).length > 0 && currentIndex === -1) {
101
- var closestValue = _this.getClosestValue(customValues, value);
102
-
113
+ var closestValue = type === 'text' ? _this.getClosestFractionValue(customValues, value) : _this.getClosestValue(customValues, value);
103
114
  return {
104
115
  value: closestValue.value,
105
116
  currentIndex: closestValue.index
@@ -122,25 +133,84 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
122
133
  index: 0
123
134
  });
124
135
  });
136
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestFractionValue", function (customValues, number) {
137
+ return customValues.reduce(function (closest, value, index) {
138
+ return Math.abs(math.number(math.fraction(value)) - math.number(math.fraction(number))) < Math.abs(math.number(math.fraction(closest.value)) - math.number(math.fraction(number))) ? {
139
+ value: value,
140
+ index: index
141
+ } : closest;
142
+ }, {
143
+ value: customValues[0],
144
+ index: 0
145
+ });
146
+ });
147
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getValidFraction", function (value) {
148
+ if (_this.isPositiveInteger(value.trim())) {
149
+ return value.trim();
150
+ }
151
+
152
+ if (value.trim() === '' || value.trim().split('/').length !== 2) {
153
+ return false;
154
+ }
155
+
156
+ var _value$trim$split = value.trim().split('/'),
157
+ _value$trim$split2 = (0, _slicedToArray2["default"])(_value$trim$split, 2),
158
+ numerator = _value$trim$split2[0],
159
+ denominator = _value$trim$split2[1];
160
+
161
+ if (isNaN(numerator) || isNaN(denominator)) {
162
+ return false;
163
+ }
164
+
165
+ numerator = parseFloat(numerator);
166
+ denominator = parseFloat(denominator);
167
+
168
+ if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {
169
+ return false;
170
+ }
171
+
172
+ if (numerator < 0 || denominator < 1) {
173
+ return false;
174
+ }
175
+
176
+ return numerator + '/' + denominator;
177
+ });
178
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isPositiveInteger", function (n) {
179
+ return n >>> 0 === parseFloat(n);
180
+ });
125
181
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
126
182
  var _this$props = _this.props,
127
183
  customValues = _this$props.customValues,
128
- onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
184
+ onlyIntegersAllowed = _this$props.onlyIntegersAllowed,
185
+ type = _this$props.type;
129
186
  var value = event.target.value;
130
- var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
187
+
188
+ if (type === 'text') {
189
+ var tempValue = _this.getValidFraction(value);
190
+
191
+ if (tempValue) {
192
+ value = tempValue;
193
+ } else {
194
+ value = _this.props.value;
195
+ }
196
+ }
197
+
198
+ var rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);
199
+
200
+ if (type === 'text') {
201
+ rawNumber = value.trim();
202
+ }
131
203
 
132
204
  var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
133
205
  number = _this$normalizeValueA.value,
134
206
  currentIndex = _this$normalizeValueA.currentIndex;
135
207
 
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
- }
208
+ _this.setState({
209
+ value: number.toString(),
210
+ currentIndex: currentIndex
211
+ }, function () {
212
+ return _this.props.onChange(event, number);
213
+ });
144
214
  });
145
215
 
146
216
  var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
@@ -163,7 +233,7 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
163
233
  (0, _createClass2["default"])(NumberTextFieldCustom, [{
164
234
  key: "UNSAFE_componentWillReceiveProps",
165
235
  value: function UNSAFE_componentWillReceiveProps(props) {
166
- var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value),
236
+ var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max),
167
237
  value = _this$normalizeValueA3.value,
168
238
  currentIndex = _this$normalizeValueA3.currentIndex;
169
239
 
@@ -175,10 +245,9 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
175
245
  }, {
176
246
  key: "clamp",
177
247
  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;
248
+ var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
249
+ var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
250
+ var customValues = this.props.customValues;
182
251
 
183
252
  if ((customValues || []).length > 0) {
184
253
  return value;
@@ -201,7 +270,13 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
201
270
  }, {
202
271
  key: "onChange",
203
272
  value: function onChange(event) {
273
+ var type = this.props.type;
204
274
  var value = event.target.value;
275
+
276
+ if (type !== 'text' && typeof value === 'string' && value.trim() === '') {
277
+ return;
278
+ }
279
+
205
280
  this.setState({
206
281
  value: value
207
282
  });
@@ -212,11 +287,11 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
212
287
  var sign = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
213
288
  var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
214
289
  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;
290
+ var _this$props2 = this.props,
291
+ customValues = _this$props2.customValues,
292
+ step = _this$props2.step,
293
+ onlyIntegersAllowed = _this$props2.onlyIntegersAllowed,
294
+ onChange = _this$props2.onChange;
220
295
  var _this$state = this.state,
221
296
  currentIndex = _this$state.currentIndex,
222
297
  value = _this$state.value;
@@ -249,21 +324,36 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
249
324
  value: function render() {
250
325
  var _this2 = this;
251
326
 
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;
327
+ var _this$props3 = this.props,
328
+ className = _this$props3.className,
329
+ classes = _this$props3.classes,
330
+ label = _this$props3.label,
331
+ disabled = _this$props3.disabled,
332
+ error = _this$props3.error,
333
+ min = _this$props3.min,
334
+ max = _this$props3.max,
335
+ customValues = _this$props3.customValues,
336
+ inputClassName = _this$props3.inputClassName,
337
+ disableUnderline = _this$props3.disableUnderline,
338
+ helperText = _this$props3.helperText,
339
+ variant = _this$props3.variant,
340
+ textAlign = _this$props3.textAlign,
341
+ _this$props3$type = _this$props3.type,
342
+ type = _this$props3$type === void 0 ? 'number' : _this$props3$type;
265
343
  var value = this.state.value;
266
- var names = (0, _classnames["default"])(className, classes.input);
344
+ var names = (0, _classnames["default"])(className, classes.input); //Logic to disable the increment and decrement buttons
345
+
346
+ var disabledStart = false;
347
+ var disabledEnd = false;
348
+
349
+ if (customValues.length > 0) {
350
+ disabledStart = value === customValues[0];
351
+ disabledEnd = value === customValues[customValues.length - 1];
352
+ } else if ((0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
353
+ disabledStart = value === min;
354
+ disabledEnd = value === max;
355
+ }
356
+
267
357
  return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
268
358
  variant: variant,
269
359
  inputRef: function inputRef(ref) {
@@ -292,7 +382,7 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
292
382
  }
293
383
  },
294
384
  title: '',
295
- type: "number",
385
+ type: type,
296
386
  className: names,
297
387
  InputProps: {
298
388
  className: inputClassName,
@@ -301,7 +391,7 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
301
391
  position: "start"
302
392
  }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
303
393
  className: classes.iconButton,
304
- disabled: disabled,
394
+ disabled: disabled ? disabled : disabledStart,
305
395
  onClick: function onClick(e) {
306
396
  return _this2.changeValue(e, -1, true);
307
397
  }
@@ -312,7 +402,7 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
312
402
  position: "end"
313
403
  }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
314
404
  className: classes.iconButton,
315
- disabled: disabled,
405
+ disabled: disabled ? disabled : disabledEnd,
316
406
  onClick: function onClick(e) {
317
407
  return _this2.changeValue(e, 1, true);
318
408
  }
@@ -344,14 +434,15 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
344
434
  helperText: _propTypes["default"].string,
345
435
  onChange: _propTypes["default"].func.isRequired,
346
436
  onlyIntegersAllowed: _propTypes["default"].bool,
347
- value: _propTypes["default"].number,
437
+ value: _propTypes["default"].any,
348
438
  min: _propTypes["default"].number,
349
439
  max: _propTypes["default"].number,
350
440
  step: _propTypes["default"].number,
351
441
  label: _propTypes["default"].string,
352
442
  disableUnderline: _propTypes["default"].bool,
353
443
  textAlign: _propTypes["default"].string,
354
- variant: _propTypes["default"].string
444
+ variant: _propTypes["default"].string,
445
+ type: _propTypes["default"].string
355
446
  });
356
447
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "defaultProps", {
357
448
  step: 1,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/number-text-field-custom.jsx"],"names":["styles","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 = () => ({\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 helperText: 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 textAlign: PropTypes.string,\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 title={''}\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,"sources":["../src/number-text-field-custom.jsx"],"names":["styles","input","margin","iconButton","padding","fallbackNumber","min","max","NumberTextFieldCustom","props","customValues","number","type","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestFractionValue","getClosestValue","index","reduce","closest","Math","abs","math","fraction","isPositiveInteger","trim","split","numerator","denominator","isNaN","parseFloat","Number","isInteger","n","event","onlyIntegersAllowed","target","tempValue","getValidFraction","rawNumber","round","normalizeValueAndIndex","setState","toString","onChange","state","bind","sign","shouldUpdate","preventDefault","step","updatedIndex","parseInt","updatedValue","className","classes","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","names","disabledStart","disabledEnd","ref","inputRef","onBlur","e","key","blur","changeValue","startAdornment","endAdornment","style","React","Component","PropTypes","object","isRequired","string","array","bool","func","any"],"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';\nimport * as math from 'mathjs';\n\nconst styles = () => ({\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 helperText: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onlyIntegersAllowed: PropTypes.bool,\n value: PropTypes.any,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n label: PropTypes.string,\n disableUnderline: PropTypes.bool,\n textAlign: PropTypes.string,\n variant: PropTypes.string,\n type: 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, props.min, props.max);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value, min = this.props.min, max = this.props.max) {\n const { 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, min, max) => {\n const { type } = this.props;\n const value = this.clamp(number, min, max);\n const currentIndex = (customValues || []).findIndex((val) => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue =\n type === 'text' ? this.getClosestFractionValue(customValues, value) : 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 getClosestFractionValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(math.number(math.fraction(value)) - math.number(math.fraction(number))) <\n Math.abs(math.number(math.fraction(closest.value)) - math.number(math.fraction(number)))\n ? { value, index }\n : closest,\n { value: customValues[0], index: 0 },\n );\n\n getValidFraction = (value) => {\n if (this.isPositiveInteger(value.trim())) {\n return value.trim();\n }\n if (value.trim() === '' || value.trim().split('/').length !== 2) {\n return false;\n }\n let [numerator, denominator] = value.trim().split('/');\n if (isNaN(numerator) || isNaN(denominator)) {\n return false;\n }\n numerator = parseFloat(numerator);\n denominator = parseFloat(denominator);\n if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {\n return false;\n }\n if (numerator < 0 || denominator < 1) {\n return false;\n }\n return numerator + '/' + denominator;\n };\n\n isPositiveInteger = (n) => {\n return n >>> 0 === parseFloat(n);\n };\n\n onBlur = (event) => {\n const { customValues, onlyIntegersAllowed, type } = this.props;\n let { value } = event.target;\n if (type === 'text') {\n let tempValue = this.getValidFraction(value);\n if (tempValue) {\n value = tempValue;\n } else {\n value = this.props.value;\n }\n }\n let rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);\n if (type === 'text') {\n rawNumber = value.trim();\n }\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n this.setState(\n {\n value: number.toString(),\n currentIndex,\n },\n () => this.props.onChange(event, number),\n );\n };\n\n onChange(event) {\n const { type } = this.props;\n const { value } = event.target;\n if (type !== 'text' && typeof value === 'string' && value.trim() === '') {\n return;\n }\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\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 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 customValues,\n inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign,\n type = 'number',\n } = this.props;\n const { value } = this.state;\n const names = classNames(className, classes.input);\n //Logic to disable the increment and decrement buttons\n let disabledStart = false;\n let disabledEnd = false;\n if (customValues.length > 0) {\n disabledStart = value === customValues[0];\n disabledEnd = value === customValues[customValues.length - 1];\n } else if (isFinite(min) && isFinite(max)) {\n disabledStart = value === min;\n disabledEnd = value === max;\n }\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 title={''}\n type={type}\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 ? disabled : disabledStart}\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 ? disabled : disabledEnd}\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"}
@@ -143,7 +143,7 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
143
143
  (0, _createClass2["default"])(NumberTextField, [{
144
144
  key: "UNSAFE_componentWillReceiveProps",
145
145
  value: function UNSAFE_componentWillReceiveProps(props) {
146
- var value = this.clamp(props.value);
146
+ var value = this.clamp(props.value, props.min, props.max);
147
147
  this.setState({
148
148
  value: value
149
149
  });
@@ -151,14 +151,13 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
151
151
  }, {
152
152
  key: "clamp",
153
153
  value: function clamp(value) {
154
+ var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
155
+ var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
156
+
154
157
  if (!(0, _isFinite["default"])(value)) {
155
- return fallbackNumber(this.props.min, this.props.max);
158
+ return fallbackNumber(min, max);
156
159
  }
157
160
 
158
- var _this$props2 = this.props,
159
- min = _this$props2.min,
160
- max = _this$props2.max;
161
-
162
161
  if ((0, _isFinite["default"])(max)) {
163
162
  value = Math.min(value, max);
164
163
  }
@@ -187,18 +186,18 @@ var NumberTextField = /*#__PURE__*/function (_React$Component) {
187
186
  value: function render() {
188
187
  var _this2 = this;
189
188
 
190
- var _this$props3 = this.props,
191
- className = _this$props3.className,
192
- classes = _this$props3.classes,
193
- label = _this$props3.label,
194
- disabled = _this$props3.disabled,
195
- suffix = _this$props3.suffix,
196
- min = _this$props3.min,
197
- max = _this$props3.max,
198
- inputClassName = _this$props3.inputClassName,
199
- disableUnderline = _this$props3.disableUnderline,
200
- showErrorWhenOutsideRange = _this$props3.showErrorWhenOutsideRange,
201
- variant = _this$props3.variant;
189
+ var _this$props2 = this.props,
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;
202
201
  var names = (0, _classnames["default"])(classes.root, className);
203
202
  var error = showErrorWhenOutsideRange && this.getError();
204
203
  return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {