@pie-lib/config-ui 11.10.1-beta.0 → 11.12.0

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 (65) hide show
  1. package/CHANGELOG.json +8 -1653
  2. package/CHANGELOG.md +145 -1
  3. package/lib/alert-dialog.js +75 -0
  4. package/lib/alert-dialog.js.map +1 -0
  5. package/lib/checkbox.js +99 -0
  6. package/lib/checkbox.js.map +1 -0
  7. package/lib/choice-configuration/feedback-menu.js +164 -0
  8. package/lib/choice-configuration/feedback-menu.js.map +1 -0
  9. package/lib/choice-configuration/index.js +445 -0
  10. package/lib/choice-configuration/index.js.map +1 -0
  11. package/lib/choice-utils.js +54 -0
  12. package/lib/choice-utils.js.map +1 -0
  13. package/lib/feedback-config/feedback-selector.js +195 -0
  14. package/lib/feedback-config/feedback-selector.js.map +1 -0
  15. package/lib/feedback-config/group.js +75 -0
  16. package/lib/feedback-config/group.js.map +1 -0
  17. package/lib/feedback-config/index.js +189 -0
  18. package/lib/feedback-config/index.js.map +1 -0
  19. package/lib/form-section.js +46 -0
  20. package/lib/form-section.js.map +1 -0
  21. package/lib/help.js +147 -0
  22. package/lib/help.js.map +1 -0
  23. package/lib/index.js +216 -0
  24. package/lib/index.js.map +1 -0
  25. package/lib/input.js +139 -0
  26. package/lib/input.js.map +1 -0
  27. package/lib/inputs.js +139 -0
  28. package/lib/inputs.js.map +1 -0
  29. package/lib/langs.js +179 -0
  30. package/lib/langs.js.map +1 -0
  31. package/lib/layout/config-layout.js +143 -0
  32. package/lib/layout/config-layout.js.map +1 -0
  33. package/lib/layout/index.js +24 -0
  34. package/lib/layout/index.js.map +1 -0
  35. package/lib/layout/layout-contents.js +191 -0
  36. package/lib/layout/layout-contents.js.map +1 -0
  37. package/lib/layout/settings-box.js +86 -0
  38. package/lib/layout/settings-box.js.map +1 -0
  39. package/lib/mui-box/index.js +79 -0
  40. package/lib/mui-box/index.js.map +1 -0
  41. package/lib/number-text-field-custom.js +458 -0
  42. package/lib/number-text-field-custom.js.map +1 -0
  43. package/lib/number-text-field.js +267 -0
  44. package/lib/number-text-field.js.map +1 -0
  45. package/lib/radio-with-label.js +49 -0
  46. package/lib/radio-with-label.js.map +1 -0
  47. package/lib/settings/display-size.js +77 -0
  48. package/lib/settings/display-size.js.map +1 -0
  49. package/lib/settings/index.js +143 -0
  50. package/lib/settings/index.js.map +1 -0
  51. package/lib/settings/panel.js +463 -0
  52. package/lib/settings/panel.js.map +1 -0
  53. package/lib/settings/settings-radio-label.js +53 -0
  54. package/lib/settings/settings-radio-label.js.map +1 -0
  55. package/lib/settings/toggle.js +74 -0
  56. package/lib/settings/toggle.js.map +1 -0
  57. package/lib/tabs/index.js +110 -0
  58. package/lib/tabs/index.js.map +1 -0
  59. package/lib/tags-input/index.js +198 -0
  60. package/lib/tags-input/index.js.map +1 -0
  61. package/lib/two-choice.js +180 -0
  62. package/lib/two-choice.js.map +1 -0
  63. package/lib/with-stateful-model.js +84 -0
  64. package/lib/with-stateful-model.js.map +1 -0
  65. package/package.json +5 -5
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.SettingsBox = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
22
+ var _react = _interopRequireDefault(require("react"));
23
+
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
26
+ var _styles = require("@material-ui/core/styles");
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ 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); }; }
31
+
32
+ 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; } }
33
+
34
+ var SettingsBox = /*#__PURE__*/function (_React$Component) {
35
+ (0, _inherits2["default"])(SettingsBox, _React$Component);
36
+
37
+ var _super = _createSuper(SettingsBox);
38
+
39
+ function SettingsBox() {
40
+ (0, _classCallCheck2["default"])(this, SettingsBox);
41
+ return _super.apply(this, arguments);
42
+ }
43
+
44
+ (0, _createClass2["default"])(SettingsBox, [{
45
+ key: "render",
46
+ value: function render() {
47
+ var _this$props = this.props,
48
+ classes = _this$props.classes,
49
+ className = _this$props.className,
50
+ children = _this$props.children;
51
+ return /*#__PURE__*/_react["default"].createElement("div", {
52
+ className: (0, _classnames["default"])(classes.settingsBox, className)
53
+ }, children);
54
+ }
55
+ }]);
56
+ return SettingsBox;
57
+ }(_react["default"].Component);
58
+
59
+ exports.SettingsBox = SettingsBox;
60
+ (0, _defineProperty2["default"])(SettingsBox, "propTypes", {
61
+ classes: _propTypes["default"].object.isRequired,
62
+ className: _propTypes["default"].string,
63
+ children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired
64
+ });
65
+ (0, _defineProperty2["default"])(SettingsBox, "defaultProps", {});
66
+
67
+ var styles = function styles(theme) {
68
+ return {
69
+ settingsBox: {
70
+ backgroundColor: theme.palette.background.paper,
71
+ border: "2px solid ".concat(theme.palette.grey[200]),
72
+ display: 'flex',
73
+ flexDirection: 'column',
74
+ justifyContent: 'flex-start',
75
+ minWidth: '275px',
76
+ maxWidth: '300px',
77
+ padding: '20px 4px 4px 20px',
78
+ zIndex: 99
79
+ }
80
+ };
81
+ };
82
+
83
+ var _default = (0, _styles.withStyles)(styles)(SettingsBox);
84
+
85
+ exports["default"] = _default;
86
+ //# sourceMappingURL=settings-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/layout/settings-box.jsx"],"names":["SettingsBox","props","classes","className","children","settingsBox","React","Component","PropTypes","object","isRequired","string","oneOfType","arrayOf","node","styles","theme","backgroundColor","palette","background","paper","border","grey","display","flexDirection","justifyContent","minWidth","maxWidth","padding","zIndex"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAyC,KAAKC,KAA9C;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,QAA5B,eAA4BA,QAA5B;AAEA,0BAAO;AAAK,QAAA,SAAS,EAAE,4BAAWF,OAAO,CAACG,WAAnB,EAAgCF,SAAhC;AAAhB,SAA6DC,QAA7D,CAAP;AACD;;;EAb8BE,kBAAMC,S;;;iCAA1BP,W,eACQ;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADT;AAEjBP,EAAAA,SAAS,EAAEK,sBAAUG,MAFJ;AAGjBP,EAAAA,QAAQ,EAAEI,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,OAAV,CAAkBL,sBAAUM,IAA5B,CAAD,EAAoCN,sBAAUM,IAA9C,CAApB,EAAyEJ;AAHlE,C;iCADRV,W,kBAOW,E;;AAQxB,IAAMe,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,WAAW,EAAE;AACXY,MAAAA,eAAe,EAAED,KAAK,CAACE,OAAN,CAAcC,UAAd,CAAyBC,KAD/B;AAEXC,MAAAA,MAAM,sBAAeL,KAAK,CAACE,OAAN,CAAcI,IAAd,CAAmB,GAAnB,CAAf,CAFK;AAGXC,MAAAA,OAAO,EAAE,MAHE;AAIXC,MAAAA,aAAa,EAAE,QAJJ;AAKXC,MAAAA,cAAc,EAAE,YALL;AAMXC,MAAAA,QAAQ,EAAE,OANC;AAOXC,MAAAA,QAAQ,EAAE,OAPC;AAQXC,MAAAA,OAAO,EAAE,mBARE;AASXC,MAAAA,MAAM,EAAE;AATG;AADY,GAAZ;AAAA,CAAf;;eAce,wBAAWd,MAAX,EAAmBf,WAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nexport class SettingsBox extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { classes, className, children } = this.props;\n\n return <div className={classNames(classes.settingsBox, className)}>{children}</div>;\n }\n}\nconst styles = (theme) => ({\n settingsBox: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${theme.palette.grey[200]}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n minWidth: '275px',\n maxWidth: '300px',\n padding: '20px 4px 4px 20px',\n zIndex: 99,\n },\n});\n\nexport default withStyles(styles)(SettingsBox);\n"],"file":"settings-box.js"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _styles = require("@material-ui/core/styles");
15
+
16
+ var _debug = _interopRequireDefault(require("debug"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var log = (0, _debug["default"])('pie-elements:config-ui:mui-box');
21
+ var MuiBox = (0, _styles.withStyles)(function (theme) {
22
+ var light = theme.palette.type === 'light';
23
+ var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
24
+ log(theme.palette.primary[theme.palette.type || 'light']);
25
+ return {
26
+ muiBox: {
27
+ paddingTop: theme.spacing.unit,
28
+ paddingBottom: theme.spacing.unit,
29
+ position: 'relative',
30
+ '&:before': {
31
+ left: 0,
32
+ right: 0,
33
+ bottom: 0,
34
+ height: '1px',
35
+ content: '""',
36
+ position: 'absolute',
37
+ transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
38
+ pointerEvents: 'none',
39
+ backgroundColor: bottomLineColor
40
+ },
41
+ '&:hover:before': {
42
+ height: '2px'
43
+ },
44
+ '&:after': {
45
+ left: 0,
46
+ right: 0,
47
+ bottom: 0,
48
+ height: '2px',
49
+ content: '""',
50
+ position: 'absolute',
51
+ transform: 'scaleX(0)',
52
+ transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',
53
+ pointerEvents: 'none',
54
+ backgroundColor: theme.palette.primary[theme.palette.type] //'#304ffe'
55
+
56
+ }
57
+ },
58
+ focused: {
59
+ '&:after': {
60
+ transform: 'scaleX(1)'
61
+ }
62
+ }
63
+ };
64
+ })(function (_ref) {
65
+ var children = _ref.children,
66
+ classes = _ref.classes,
67
+ focused = _ref.focused;
68
+ var names = (0, _classnames["default"])(classes.muiBox, focused && classes.focused);
69
+ return /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: names
71
+ }, children);
72
+ });
73
+ MuiBox.propTypes = {
74
+ children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
75
+ focused: _propTypes["default"].bool.isRequired
76
+ };
77
+ var _default = MuiBox;
78
+ exports["default"] = _default;
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mui-box/index.jsx"],"names":["log","MuiBox","theme","light","palette","type","bottomLineColor","primary","muiBox","paddingTop","spacing","unit","paddingBottom","position","left","right","bottom","height","content","transition","pointerEvents","backgroundColor","transform","focused","children","classes","names","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,gCAAN,CAAZ;AAEA,IAAMC,MAAM,GAAG,wBAAW,UAACC,KAAD,EAAW;AACnC,MAAMC,KAAK,GAAGD,KAAK,CAACE,OAAN,CAAcC,IAAd,KAAuB,OAArC;AACA,MAAMC,eAAe,GAAGH,KAAK,GAAG,qBAAH,GAA2B,0BAAxD;AAEAH,EAAAA,GAAG,CAACE,KAAK,CAACE,OAAN,CAAcG,OAAd,CAAsBL,KAAK,CAACE,OAAN,CAAcC,IAAd,IAAsB,OAA5C,CAAD,CAAH;AAEA,SAAO;AACLG,IAAAA,MAAM,EAAE;AACNC,MAAAA,UAAU,EAAEP,KAAK,CAACQ,OAAN,CAAcC,IADpB;AAENC,MAAAA,aAAa,EAAEV,KAAK,CAACQ,OAAN,CAAcC,IAFvB;AAGNE,MAAAA,QAAQ,EAAE,UAHJ;AAIN,kBAAY;AACVC,QAAAA,IAAI,EAAE,CADI;AAEVC,QAAAA,KAAK,EAAE,CAFG;AAGVC,QAAAA,MAAM,EAAE,CAHE;AAIVC,QAAAA,MAAM,EAAE,KAJE;AAKVC,QAAAA,OAAO,EAAE,IALC;AAMVL,QAAAA,QAAQ,EAAE,UANA;AAOVM,QAAAA,UAAU,EAAE,yDAPF;AAQVC,QAAAA,aAAa,EAAE,MARL;AASVC,QAAAA,eAAe,EAAEf;AATP,OAJN;AAeN,wBAAkB;AAChBW,QAAAA,MAAM,EAAE;AADQ,OAfZ;AAkBN,iBAAW;AACTH,QAAAA,IAAI,EAAE,CADG;AAETC,QAAAA,KAAK,EAAE,CAFE;AAGTC,QAAAA,MAAM,EAAE,CAHC;AAITC,QAAAA,MAAM,EAAE,KAJC;AAKTC,QAAAA,OAAO,EAAE,IALA;AAMTL,QAAAA,QAAQ,EAAE,UAND;AAOTS,QAAAA,SAAS,EAAE,WAPF;AAQTH,QAAAA,UAAU,EAAE,kDARH;AASTC,QAAAA,aAAa,EAAE,MATN;AAUTC,QAAAA,eAAe,EAAEnB,KAAK,CAACE,OAAN,CAAcG,OAAd,CAAsBL,KAAK,CAACE,OAAN,CAAcC,IAApC,CAVR,CAUmD;;AAVnD;AAlBL,KADH;AAgCLkB,IAAAA,OAAO,EAAE;AACP,iBAAW;AACTD,QAAAA,SAAS,EAAE;AADF;AADJ;AAhCJ,GAAP;AAsCD,CA5Cc,EA4CZ,gBAAoC;AAAA,MAAjCE,QAAiC,QAAjCA,QAAiC;AAAA,MAAvBC,OAAuB,QAAvBA,OAAuB;AAAA,MAAdF,OAAc,QAAdA,OAAc;AACrC,MAAMG,KAAK,GAAG,4BAAWD,OAAO,CAACjB,MAAnB,EAA2Be,OAAO,IAAIE,OAAO,CAACF,OAA9C,CAAd;AAEA,sBAAO;AAAK,IAAA,SAAS,EAAEG;AAAhB,KAAwBF,QAAxB,CAAP;AACD,CAhDc,CAAf;AAkDAvB,MAAM,CAAC0B,SAAP,GAAmB;AACjBH,EAAAA,QAAQ,EAAEI,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,OAAV,CAAkBF,sBAAUG,IAA5B,CAAD,EAAoCH,sBAAUG,IAA9C,CAApB,EAAyEC,UADlE;AAEjBT,EAAAA,OAAO,EAAEK,sBAAUK,IAAV,CAAeD;AAFP,CAAnB;eAKe/B,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nconst log = debug('pie-elements:config-ui:mui-box');\n\nconst MuiBox = withStyles((theme) => {\n const light = theme.palette.type === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n log(theme.palette.primary[theme.palette.type || 'light']);\n\n return {\n muiBox: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n position: 'relative',\n '&:before': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: bottomLineColor,\n },\n '&:hover:before': {\n height: '2px',\n },\n '&:after': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: theme.palette.primary[theme.palette.type], //'#304ffe'\n },\n },\n focused: {\n '&:after': {\n transform: 'scaleX(1)',\n },\n },\n };\n})(({ children, classes, focused }) => {\n const names = classNames(classes.muiBox, focused && classes.focused);\n\n return <div className={names}>{children}</div>;\n});\n\nMuiBox.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n focused: PropTypes.bool.isRequired,\n};\n\nexport default MuiBox;\n"],"file":"index.js"}
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = exports.NumberTextFieldCustom = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _react = _interopRequireDefault(require("react"));
31
+
32
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
33
+
34
+ var _classnames = _interopRequireDefault(require("classnames"));
35
+
36
+ var _styles = require("@material-ui/core/styles");
37
+
38
+ var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
39
+
40
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
+
42
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
43
+
44
+ var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
45
+
46
+ var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
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
+
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); }; }
55
+
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; } }
57
+
58
+ var styles = function styles() {
59
+ return {
60
+ input: {
61
+ '& input[type=number]': {
62
+ '-moz-appearance': 'textfield'
63
+ },
64
+ '& input[type=number]::-webkit-outer-spin-button': {
65
+ '-webkit-appearance': 'none',
66
+ margin: 0
67
+ },
68
+ '& input[type=number]::-webkit-inner-spin-button': {
69
+ '-webkit-appearance': 'none',
70
+ margin: 0
71
+ }
72
+ },
73
+ iconButton: {
74
+ padding: '2px'
75
+ }
76
+ };
77
+ };
78
+
79
+ var fallbackNumber = function fallbackNumber(min, max) {
80
+ if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
81
+ return 0;
82
+ }
83
+
84
+ if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
85
+ return max;
86
+ }
87
+
88
+ if ((0, _isFinite["default"])(min)) {
89
+ return min;
90
+ }
91
+ };
92
+
93
+ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
94
+ (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
95
+
96
+ var _super = _createSuper(NumberTextFieldCustom);
97
+
98
+ function NumberTextFieldCustom(props) {
99
+ var _this;
100
+
101
+ (0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
102
+ _this = _super.call(this, props);
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);
107
+
108
+ var currentIndex = (customValues || []).findIndex(function (val) {
109
+ return val === value;
110
+ });
111
+
112
+ if ((customValues || []).length > 0 && currentIndex === -1) {
113
+ var closestValue = type === 'text' ? _this.getClosestFractionValue(customValues, value) : _this.getClosestValue(customValues, value);
114
+ return {
115
+ value: closestValue.value,
116
+ currentIndex: closestValue.index
117
+ };
118
+ }
119
+
120
+ return {
121
+ value: value,
122
+ currentIndex: currentIndex
123
+ };
124
+ });
125
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestValue", function (customValues, number) {
126
+ return customValues.reduce(function (closest, value, index) {
127
+ return Math.abs(value - number) < Math.abs(closest.value - number) ? {
128
+ value: value,
129
+ index: index
130
+ } : closest;
131
+ }, {
132
+ value: customValues[0],
133
+ index: 0
134
+ });
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
+ });
181
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
182
+ var _this$props = _this.props,
183
+ customValues = _this$props.customValues,
184
+ onlyIntegersAllowed = _this$props.onlyIntegersAllowed,
185
+ type = _this$props.type;
186
+ var value = event.target.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
+ }
203
+
204
+ var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
205
+ number = _this$normalizeValueA.value,
206
+ currentIndex = _this$normalizeValueA.currentIndex;
207
+
208
+ _this.setState({
209
+ value: number.toString(),
210
+ currentIndex: currentIndex
211
+ }, function () {
212
+ return _this.props.onChange(event, number);
213
+ });
214
+ });
215
+
216
+ var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
217
+ _value = _this$normalizeValueA2.value,
218
+ _currentIndex = _this$normalizeValueA2.currentIndex;
219
+
220
+ _this.state = {
221
+ value: _value,
222
+ currentIndex: _currentIndex
223
+ };
224
+
225
+ if (_value !== props.value) {
226
+ _this.props.onChange({}, _value);
227
+ }
228
+
229
+ _this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
230
+ return _this;
231
+ }
232
+
233
+ (0, _createClass2["default"])(NumberTextFieldCustom, [{
234
+ key: "UNSAFE_componentWillReceiveProps",
235
+ value: function UNSAFE_componentWillReceiveProps(props) {
236
+ var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max),
237
+ value = _this$normalizeValueA3.value,
238
+ currentIndex = _this$normalizeValueA3.currentIndex;
239
+
240
+ this.setState({
241
+ value: value,
242
+ currentIndex: currentIndex
243
+ });
244
+ }
245
+ }, {
246
+ key: "clamp",
247
+ value: function clamp(value) {
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;
251
+
252
+ if ((customValues || []).length > 0) {
253
+ return value;
254
+ }
255
+
256
+ if (!(0, _isFinite["default"])(value)) {
257
+ return fallbackNumber(min, max);
258
+ }
259
+
260
+ if ((0, _isFinite["default"])(max)) {
261
+ value = Math.min(value, max);
262
+ }
263
+
264
+ if ((0, _isFinite["default"])(min)) {
265
+ value = Math.max(value, min);
266
+ }
267
+
268
+ return value;
269
+ }
270
+ }, {
271
+ key: "onChange",
272
+ value: function onChange(event) {
273
+ var type = this.props.type;
274
+ var value = event.target.value;
275
+
276
+ if (type !== 'text' && typeof value === 'string' && value.trim() === '') {
277
+ return;
278
+ }
279
+
280
+ this.setState({
281
+ value: value
282
+ });
283
+ }
284
+ }, {
285
+ key: "changeValue",
286
+ value: function changeValue(event) {
287
+ var sign = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
288
+ var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
289
+ event.preventDefault();
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;
295
+ var _this$state = this.state,
296
+ currentIndex = _this$state.currentIndex,
297
+ value = _this$state.value;
298
+ var updatedIndex = currentIndex + sign * 1;
299
+ var number;
300
+
301
+ if (customValues.length > 0) {
302
+ if (updatedIndex < 0 || updatedIndex >= customValues.length) {
303
+ return;
304
+ }
305
+
306
+ number = customValues[updatedIndex];
307
+ } else {
308
+ var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
309
+ var updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;
310
+ number = this.clamp(updatedValue);
311
+ }
312
+
313
+ this.setState({
314
+ value: number.toString(),
315
+ currentIndex: updatedIndex
316
+ }, function () {
317
+ if (shouldUpdate) {
318
+ onChange(event, number);
319
+ }
320
+ });
321
+ }
322
+ }, {
323
+ key: "render",
324
+ value: function render() {
325
+ var _this2 = this;
326
+
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;
343
+ var value = this.state.value;
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
+
357
+ return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
358
+ variant: variant,
359
+ inputRef: function inputRef(ref) {
360
+ return _this2.inputRef = ref;
361
+ },
362
+ disabled: disabled,
363
+ label: label,
364
+ value: value,
365
+ error: error,
366
+ helperText: helperText,
367
+ onChange: this.onChange,
368
+ onBlur: this.onBlur,
369
+ onKeyPress: function onKeyPress(e) {
370
+ // once the Enter key is pressed, we force input blur
371
+ if (e.key === 'Enter' && _this2.inputRef) {
372
+ _this2.inputRef.blur();
373
+ }
374
+ },
375
+ onKeyDown: function onKeyDown(e) {
376
+ if (e.key === 'ArrowUp') {
377
+ _this2.changeValue(e);
378
+ }
379
+
380
+ if (e.key === 'ArrowDown') {
381
+ _this2.changeValue(e, -1);
382
+ }
383
+ },
384
+ title: '',
385
+ type: type,
386
+ className: names,
387
+ InputProps: {
388
+ className: inputClassName,
389
+ disableUnderline: disableUnderline,
390
+ startAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
391
+ position: "start"
392
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
393
+ className: classes.iconButton,
394
+ disabled: disabled ? disabled : disabledStart,
395
+ onClick: function onClick(e) {
396
+ return _this2.changeValue(e, -1, true);
397
+ }
398
+ }, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
399
+ fontSize: "small"
400
+ }))),
401
+ endAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
402
+ position: "end"
403
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
404
+ className: classes.iconButton,
405
+ disabled: disabled ? disabled : disabledEnd,
406
+ onClick: function onClick(e) {
407
+ return _this2.changeValue(e, 1, true);
408
+ }
409
+ }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
410
+ fontSize: "small"
411
+ })))
412
+ },
413
+ inputProps: {
414
+ style: {
415
+ textAlign: textAlign
416
+ },
417
+ min: min,
418
+ max: max
419
+ }
420
+ });
421
+ }
422
+ }]);
423
+ return NumberTextFieldCustom;
424
+ }(_react["default"].Component);
425
+
426
+ exports.NumberTextFieldCustom = NumberTextFieldCustom;
427
+ (0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
428
+ classes: _propTypes["default"].object.isRequired,
429
+ className: _propTypes["default"].string,
430
+ customValues: _propTypes["default"].array,
431
+ disabled: _propTypes["default"].bool,
432
+ error: _propTypes["default"].bool,
433
+ inputClassName: _propTypes["default"].string,
434
+ helperText: _propTypes["default"].string,
435
+ onChange: _propTypes["default"].func.isRequired,
436
+ onlyIntegersAllowed: _propTypes["default"].bool,
437
+ value: _propTypes["default"].any,
438
+ min: _propTypes["default"].number,
439
+ max: _propTypes["default"].number,
440
+ step: _propTypes["default"].number,
441
+ label: _propTypes["default"].string,
442
+ disableUnderline: _propTypes["default"].bool,
443
+ textAlign: _propTypes["default"].string,
444
+ variant: _propTypes["default"].string,
445
+ type: _propTypes["default"].string
446
+ });
447
+ (0, _defineProperty2["default"])(NumberTextFieldCustom, "defaultProps", {
448
+ step: 1,
449
+ customValues: [],
450
+ textAlign: 'center',
451
+ variant: 'standard',
452
+ onlyIntegersAllowed: false
453
+ });
454
+
455
+ var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
456
+
457
+ exports["default"] = _default;
458
+ //# sourceMappingURL=number-text-field-custom.js.map