@pie-lib/config-ui 12.0.0-beta.5 → 12.0.0-next.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 (116) hide show
  1. package/CHANGELOG.json +8 -1653
  2. package/CHANGELOG.md +345 -4
  3. package/LICENSE.md +5 -0
  4. package/NEXT.CHANGELOG.json +1 -0
  5. package/lib/alert-dialog.js +40 -10
  6. package/lib/alert-dialog.js.map +1 -1
  7. package/lib/checkbox.js +58 -48
  8. package/lib/checkbox.js.map +1 -1
  9. package/lib/choice-configuration/feedback-menu.js +24 -26
  10. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  11. package/lib/choice-configuration/index.js +182 -185
  12. package/lib/choice-configuration/index.js.map +1 -1
  13. package/lib/choice-utils.js +5 -7
  14. package/lib/choice-utils.js.map +1 -1
  15. package/lib/feedback-config/feedback-selector.js +69 -73
  16. package/lib/feedback-config/feedback-selector.js.map +1 -1
  17. package/lib/feedback-config/group.js +22 -25
  18. package/lib/feedback-config/group.js.map +1 -1
  19. package/lib/feedback-config/index.js +41 -44
  20. package/lib/feedback-config/index.js.map +1 -1
  21. package/lib/form-section.js +31 -25
  22. package/lib/form-section.js.map +1 -1
  23. package/lib/help.js +37 -47
  24. package/lib/help.js.map +1 -1
  25. package/lib/index.js +1 -2
  26. package/lib/index.js.map +1 -1
  27. package/lib/input.js +12 -17
  28. package/lib/input.js.map +1 -1
  29. package/lib/inputs.js +58 -67
  30. package/lib/inputs.js.map +1 -1
  31. package/lib/langs.js +56 -70
  32. package/lib/langs.js.map +1 -1
  33. package/lib/layout/config-layout.js +78 -47
  34. package/lib/layout/config-layout.js.map +1 -1
  35. package/lib/layout/index.js.map +1 -1
  36. package/lib/layout/layout-contents.js +58 -60
  37. package/lib/layout/layout-contents.js.map +1 -1
  38. package/lib/layout/settings-box.js +25 -33
  39. package/lib/layout/settings-box.js.map +1 -1
  40. package/lib/mui-box/index.js +41 -50
  41. package/lib/mui-box/index.js.map +1 -1
  42. package/lib/number-text-field-custom.js +151 -89
  43. package/lib/number-text-field-custom.js.map +1 -1
  44. package/lib/number-text-field.js +74 -63
  45. package/lib/number-text-field.js.map +1 -1
  46. package/lib/radio-with-label.js +30 -16
  47. package/lib/radio-with-label.js.map +1 -1
  48. package/lib/settings/display-size.js +16 -20
  49. package/lib/settings/display-size.js.map +1 -1
  50. package/lib/settings/index.js +13 -19
  51. package/lib/settings/index.js.map +1 -1
  52. package/lib/settings/panel.js +140 -141
  53. package/lib/settings/panel.js.map +1 -1
  54. package/lib/settings/settings-radio-label.js +29 -16
  55. package/lib/settings/settings-radio-label.js.map +1 -1
  56. package/lib/settings/toggle.js +39 -25
  57. package/lib/settings/toggle.js.map +1 -1
  58. package/lib/tabs/index.js +18 -30
  59. package/lib/tabs/index.js.map +1 -1
  60. package/lib/tags-input/index.js +49 -61
  61. package/lib/tags-input/index.js.map +1 -1
  62. package/lib/two-choice.js +33 -43
  63. package/lib/two-choice.js.map +1 -1
  64. package/lib/with-stateful-model.js +8 -12
  65. package/lib/with-stateful-model.js.map +1 -1
  66. package/package.json +22 -11
  67. package/src/__tests__/alert-dialog.test.jsx +283 -0
  68. package/src/__tests__/checkbox.test.jsx +249 -0
  69. package/src/__tests__/choice-utils.test.js +12 -0
  70. package/src/__tests__/form-section.test.jsx +334 -0
  71. package/src/__tests__/help.test.jsx +184 -0
  72. package/src/__tests__/input.test.jsx +192 -0
  73. package/src/__tests__/langs.test.jsx +457 -0
  74. package/src/__tests__/number-text-field-custom.test.jsx +438 -0
  75. package/src/__tests__/number-text-field.test.jsx +341 -0
  76. package/src/__tests__/radio-with-label.test.jsx +259 -0
  77. package/src/__tests__/settings-panel.test.js +187 -0
  78. package/src/__tests__/settings.test.jsx +515 -0
  79. package/src/__tests__/tabs.test.jsx +193 -0
  80. package/src/__tests__/two-choice.test.js +110 -0
  81. package/src/__tests__/with-stateful-model.test.jsx +145 -0
  82. package/src/alert-dialog.jsx +30 -8
  83. package/src/checkbox.jsx +43 -37
  84. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +163 -0
  85. package/src/choice-configuration/__tests__/index.test.jsx +234 -0
  86. package/src/choice-configuration/feedback-menu.jsx +6 -6
  87. package/src/choice-configuration/index.jsx +208 -192
  88. package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
  89. package/src/feedback-config/__tests__/feedback-selector.test.jsx +107 -0
  90. package/src/feedback-config/feedback-selector.jsx +52 -53
  91. package/src/feedback-config/group.jsx +21 -22
  92. package/src/feedback-config/index.jsx +27 -29
  93. package/src/form-section.jsx +26 -18
  94. package/src/help.jsx +20 -28
  95. package/src/input.jsx +1 -1
  96. package/src/inputs.jsx +35 -44
  97. package/src/langs.jsx +41 -46
  98. package/src/layout/__tests__/config.layout.test.jsx +59 -0
  99. package/src/layout/__tests__/layout-content.test.jsx +3 -0
  100. package/src/layout/config-layout.jsx +53 -23
  101. package/src/layout/layout-contents.jsx +38 -40
  102. package/src/layout/settings-box.jsx +16 -19
  103. package/src/mui-box/index.jsx +35 -43
  104. package/src/number-text-field-custom.jsx +117 -65
  105. package/src/number-text-field.jsx +51 -34
  106. package/src/radio-with-label.jsx +26 -10
  107. package/src/settings/display-size.jsx +12 -11
  108. package/src/settings/index.js +2 -1
  109. package/src/settings/panel.jsx +101 -92
  110. package/src/settings/settings-radio-label.jsx +26 -10
  111. package/src/settings/toggle.jsx +37 -18
  112. package/src/tabs/index.jsx +8 -8
  113. package/src/tags-input/__tests__/index.test.jsx +113 -0
  114. package/src/tags-input/index.jsx +35 -38
  115. package/src/two-choice.jsx +15 -19
  116. package/README.md +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"settings-box.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_classnames","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","SettingsBox","_React$Component","_inherits2","_super","_classCallCheck2","_createClass2","key","value","render","_this$props","props","classes","className","children","createElement","classNames","settingsBox","React","Component","exports","_defineProperty2","PropTypes","object","isRequired","string","oneOfType","arrayOf","node","styles","theme","backgroundColor","palette","background","paper","border","concat","grey","display","flexDirection","justifyContent","minWidth","maxWidth","padding","zIndex","_default","withStyles"],"sources":["../../src/layout/settings-box.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\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"],"mappings":"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"}
1
+ {"version":3,"file":"settings-box.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledSettingsBox","styled","_ref","theme","backgroundColor","palette","background","paper","border","concat","grey","display","flexDirection","justifyContent","minWidth","maxWidth","padding","zIndex","SettingsBox","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","className","children","createElement","React","Component","_defineProperty2","PropTypes","string","oneOfType","arrayOf","node","isRequired","_default"],"sources":["../../src/layout/settings-box.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nconst StyledSettingsBox = styled('div')(({ theme }) => ({\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\nexport class SettingsBox extends React.Component {\n static propTypes = {\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 { className, children } = this.props;\n\n return <StyledSettingsBox className={className}>{children}</StyledSettingsBox>;\n }\n}\n\nexport default SettingsBox;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA8C,SAAAG,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,aAAAF,CAAA,OAAAG,2BAAA,aAAAJ,CAAA,EAAAK,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,aAAAH,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA,SAAAG,0BAAA,cAAAL,CAAA,IAAAU,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAP,OAAA,CAAAC,SAAA,CAAAG,OAAA,iCAAAV,CAAA,aAAAK,yBAAA,YAAAA,0BAAA,aAAAL,CAAA;AAE9C,IAAMc,iBAAiB,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,OAAQ;IACtDC,eAAe,EAAED,KAAK,CAACE,OAAO,CAACC,UAAU,CAACC,KAAK;IAC/CC,MAAM,eAAAC,MAAA,CAAeN,KAAK,CAACE,OAAO,CAACK,IAAI,CAAC,GAAG,CAAC,CAAE;IAC9CC,OAAO,EAAE,MAAM;IACfC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE,YAAY;IAC5BC,QAAQ,EAAE,OAAO;IACjBC,QAAQ,EAAE,OAAO;IACjBC,OAAO,EAAE,mBAAmB;IAC5BC,MAAM,EAAE;EACV,CAAC;AAAA,CAAC,CAAC;AAAC,IAESC,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAAE,gBAAA;EAAA,SAAAF,YAAA;IAAA,IAAAG,gBAAA,mBAAAH,WAAA;IAAA,OAAAjC,UAAA,OAAAiC,WAAA,EAAAI,SAAA;EAAA;EAAA,IAAAC,UAAA,aAAAL,WAAA,EAAAE,gBAAA;EAAA,WAAAI,aAAA,aAAAN,WAAA;IAAAO,GAAA;IAAAC,KAAA,EAQtB,SAAAC,MAAMA,CAAA,EAAG;MACP,IAAAC,WAAA,GAAgC,IAAI,CAACC,KAAK;QAAlCC,SAAS,GAAAF,WAAA,CAATE,SAAS;QAAEC,QAAQ,GAAAH,WAAA,CAARG,QAAQ;MAE3B,oBAAOnD,MAAA,YAAAoD,aAAA,CAAChC,iBAAiB;QAAC8B,SAAS,EAAEA;MAAU,GAAEC,QAA4B,CAAC;IAChF;EAAC;AAAA,EAZ8BE,iBAAK,CAACC,SAAS;AAAA,IAAAC,gBAAA,aAAnCjB,WAAW,eACH;EACjBY,SAAS,EAAEM,qBAAS,CAACC,MAAM;EAC3BN,QAAQ,EAAEK,qBAAS,CAACE,SAAS,CAAC,CAACF,qBAAS,CAACG,OAAO,CAACH,qBAAS,CAACI,IAAI,CAAC,EAAEJ,qBAAS,CAACI,IAAI,CAAC,CAAC,CAACC;AACrF,CAAC;AAAA,IAAAN,gBAAA,aAJUjB,WAAW,kBAMA,CAAC,CAAC;AAAA,IAAAwB,QAAA,GAAAvB,OAAA,cASXD,WAAW","ignoreList":[]}
@@ -7,66 +7,57 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _styles = require("@material-ui/core/styles");
10
+ var _styles = require("@mui/material/styles");
11
11
  var _debug = _interopRequireDefault(require("debug"));
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
12
  var log = (0, _debug["default"])('pie-elements:config-ui:mui-box');
14
- var MuiBox = (0, _styles.withStyles)(function (theme) {
15
- var light = theme.palette.type === 'light';
13
+ var StyledMuiBox = (0, _styles.styled)('div')(function (_ref) {
14
+ var theme = _ref.theme,
15
+ focused = _ref.focused;
16
+ var light = theme.palette.mode === 'light';
16
17
  var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
17
- log(theme.palette.primary[theme.palette.type || 'light']);
18
+ log(theme.palette.primary[theme.palette.mode || 'light']);
18
19
  return {
19
- muiBox: {
20
- paddingTop: theme.spacing.unit,
21
- paddingBottom: theme.spacing.unit,
22
- position: 'relative',
23
- '&:before': {
24
- left: 0,
25
- right: 0,
26
- bottom: 0,
27
- height: '1px',
28
- content: '""',
29
- position: 'absolute',
30
- transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
31
- pointerEvents: 'none',
32
- backgroundColor: bottomLineColor
33
- },
34
- '&:hover:before': {
35
- height: '2px'
36
- },
37
- '&:after': {
38
- left: 0,
39
- right: 0,
40
- bottom: 0,
41
- height: '2px',
42
- content: '""',
43
- position: 'absolute',
44
- transform: 'scaleX(0)',
45
- transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',
46
- pointerEvents: 'none',
47
- backgroundColor: theme.palette.primary[theme.palette.type] //'#304ffe'
48
- }
20
+ paddingTop: theme.spacing(1),
21
+ paddingBottom: theme.spacing(1),
22
+ position: 'relative',
23
+ '&:before': {
24
+ left: 0,
25
+ right: 0,
26
+ bottom: 0,
27
+ height: '1px',
28
+ content: '""',
29
+ position: 'absolute',
30
+ transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
31
+ pointerEvents: 'none',
32
+ backgroundColor: bottomLineColor
49
33
  },
50
-
51
- focused: {
52
- '&:after': {
53
- transform: 'scaleX(1)'
54
- }
34
+ '&:hover:before': {
35
+ height: '2px'
36
+ },
37
+ '&:after': {
38
+ left: 0,
39
+ right: 0,
40
+ bottom: 0,
41
+ height: '2px',
42
+ content: '""',
43
+ position: 'absolute',
44
+ transform: focused ? 'scaleX(1)' : 'scaleX(0)',
45
+ transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',
46
+ pointerEvents: 'none',
47
+ backgroundColor: theme.palette.primary[theme.palette.mode] //'#304ffe'
55
48
  }
56
49
  };
57
- })(function (_ref) {
58
- var children = _ref.children,
59
- classes = _ref.classes,
60
- focused = _ref.focused;
61
- var names = (0, _classnames["default"])(classes.muiBox, focused && classes.focused);
62
- return /*#__PURE__*/_react["default"].createElement("div", {
63
- className: names
64
- }, children);
65
50
  });
51
+ var MuiBox = function MuiBox(_ref2) {
52
+ var children = _ref2.children,
53
+ focused = _ref2.focused;
54
+ return /*#__PURE__*/_react["default"].createElement(StyledMuiBox, {
55
+ focused: focused
56
+ }, children);
57
+ };
66
58
  MuiBox.propTypes = {
67
59
  children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
68
60
  focused: _propTypes["default"].bool.isRequired
69
61
  };
70
- var _default = MuiBox;
71
- exports["default"] = _default;
62
+ var _default = exports["default"] = MuiBox;
72
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_debug","_classnames","log","debug","MuiBox","withStyles","theme","light","palette","type","bottomLineColor","primary","muiBox","paddingTop","spacing","unit","paddingBottom","position","left","right","bottom","height","content","transition","pointerEvents","backgroundColor","transform","focused","_ref","children","classes","names","classNames","createElement","className","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool","_default","exports"],"sources":["../../src/mui-box/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nconst log = debug('pie-elements:config-ui:mui-box');\n\nconst MuiBox = withStyles((theme) => {\n const light = theme.palette.type === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n log(theme.palette.primary[theme.palette.type || 'light']);\n\n return {\n muiBox: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n position: 'relative',\n '&:before': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: bottomLineColor,\n },\n '&:hover:before': {\n height: '2px',\n },\n '&:after': {\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: theme.palette.primary[theme.palette.type], //'#304ffe'\n },\n },\n focused: {\n '&:after': {\n transform: 'scaleX(1)',\n },\n },\n };\n})(({ children, classes, focused }) => {\n const names = classNames(classes.muiBox, focused && classes.focused);\n\n return <div className={names}>{children}</div>;\n});\n\nMuiBox.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n focused: PropTypes.bool.isRequired,\n};\n\nexport default MuiBox;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAMK,GAAG,GAAG,IAAAC,iBAAK,EAAC,gCAAgC,CAAC;AAEnD,IAAMC,MAAM,GAAG,IAAAC,kBAAU,EAAC,UAACC,KAAK,EAAK;EACnC,IAAMC,KAAK,GAAGD,KAAK,CAACE,OAAO,CAACC,IAAI,KAAK,OAAO;EAC5C,IAAMC,eAAe,GAAGH,KAAK,GAAG,qBAAqB,GAAG,0BAA0B;EAElFL,GAAG,CAACI,KAAK,CAACE,OAAO,CAACG,OAAO,CAACL,KAAK,CAACE,OAAO,CAACC,IAAI,IAAI,OAAO,CAAC,CAAC;EAEzD,OAAO;IACLG,MAAM,EAAE;MACNC,UAAU,EAAEP,KAAK,CAACQ,OAAO,CAACC,IAAI;MAC9BC,aAAa,EAAEV,KAAK,CAACQ,OAAO,CAACC,IAAI;MACjCE,QAAQ,EAAE,UAAU;MACpB,UAAU,EAAE;QACVC,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE,IAAI;QACbL,QAAQ,EAAE,UAAU;QACpBM,UAAU,EAAE,yDAAyD;QACrEC,aAAa,EAAE,MAAM;QACrBC,eAAe,EAAEf;MACnB,CAAC;MACD,gBAAgB,EAAE;QAChBW,MAAM,EAAE;MACV,CAAC;MACD,SAAS,EAAE;QACTH,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE,IAAI;QACbL,QAAQ,EAAE,UAAU;QACpBS,SAAS,EAAE,WAAW;QACtBH,UAAU,EAAE,kDAAkD;QAC9DC,aAAa,EAAE,MAAM;QACrBC,eAAe,EAAEnB,KAAK,CAACE,OAAO,CAACG,OAAO,CAACL,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAAE;MAC9D;IACF,CAAC;;IACDkB,OAAO,EAAE;MACP,SAAS,EAAE;QACTD,SAAS,EAAE;MACb;IACF;EACF,CAAC;AACH,CAAC,CAAC,CAAC,UAAAE,IAAA,EAAoC;EAAA,IAAjCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEH,OAAO,GAAAC,IAAA,CAAPD,OAAO;EAC9B,IAAMI,KAAK,GAAG,IAAAC,sBAAU,EAACF,OAAO,CAAClB,MAAM,EAAEe,OAAO,IAAIG,OAAO,CAACH,OAAO,CAAC;EAEpE,oBAAOhC,MAAA,YAAAsC,aAAA;IAAKC,SAAS,EAAEH;EAAM,GAAEF,QAAc,CAAC;AAChD,CAAC,CAAC;AAEFzB,MAAM,CAAC+B,SAAS,GAAG;EACjBN,QAAQ,EAAEO,qBAAS,CAACC,SAAS,CAAC,CAACD,qBAAS,CAACE,OAAO,CAACF,qBAAS,CAACG,IAAI,CAAC,EAAEH,qBAAS,CAACG,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7Fb,OAAO,EAAES,qBAAS,CAACK,IAAI,CAACD;AAC1B,CAAC;AAAC,IAAAE,QAAA,GAEatC,MAAM;AAAAuC,OAAA,cAAAD,QAAA"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_debug","log","debug","StyledMuiBox","styled","_ref","theme","focused","light","palette","mode","bottomLineColor","primary","paddingTop","spacing","paddingBottom","position","left","right","bottom","height","content","transition","pointerEvents","backgroundColor","transform","MuiBox","_ref2","children","createElement","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool","_default","exports"],"sources":["../../src/mui-box/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport debug from 'debug';\n\nconst log = debug('pie-elements:config-ui:mui-box');\n\nconst StyledMuiBox = styled('div')(({ theme, focused }) => {\n const light = theme.palette.mode === '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.mode || 'light']);\n\n return {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\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: focused ? 'scaleX(1)' : '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.mode], //'#304ffe'\n },\n };\n});\n\nconst MuiBox = ({ children, focused }) => {\n return <StyledMuiBox focused={focused}>{children}</StyledMuiBox>;\n};\n\nMuiBox.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n focused: PropTypes.bool.isRequired,\n};\n\nexport default MuiBox;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAMI,GAAG,GAAG,IAAAC,iBAAK,EAAC,gCAAgC,CAAC;AAEnD,IAAMC,YAAY,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,UAAAC,IAAA,EAAwB;EAAA,IAArBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;EAClD,IAAMC,KAAK,GAAGF,KAAK,CAACG,OAAO,CAACC,IAAI,KAAK,OAAO;EAC5C,IAAMC,eAAe,GAAGH,KAAK,GAAG,qBAAqB,GAAG,0BAA0B;EAElFP,GAAG,CAACK,KAAK,CAACG,OAAO,CAACG,OAAO,CAACN,KAAK,CAACG,OAAO,CAACC,IAAI,IAAI,OAAO,CAAC,CAAC;EAEzD,OAAO;IACLG,UAAU,EAAEP,KAAK,CAACQ,OAAO,CAAC,CAAC,CAAC;IAC5BC,aAAa,EAAET,KAAK,CAACQ,OAAO,CAAC,CAAC,CAAC;IAC/BE,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE;MACVC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,IAAI;MACbL,QAAQ,EAAE,UAAU;MACpBM,UAAU,EAAE,yDAAyD;MACrEC,aAAa,EAAE,MAAM;MACrBC,eAAe,EAAEb;IACnB,CAAC;IACD,gBAAgB,EAAE;MAChBS,MAAM,EAAE;IACV,CAAC;IACD,SAAS,EAAE;MACTH,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,IAAI;MACbL,QAAQ,EAAE,UAAU;MACpBS,SAAS,EAAElB,OAAO,GAAG,WAAW,GAAG,WAAW;MAC9Ce,UAAU,EAAE,kDAAkD;MAC9DC,aAAa,EAAE,MAAM;MACrBC,eAAe,EAAElB,KAAK,CAACG,OAAO,CAACG,OAAO,CAACN,KAAK,CAACG,OAAO,CAACC,IAAI,CAAC,CAAE;IAC9D;EACF,CAAC;AACH,CAAC,CAAC;AAEF,IAAMgB,MAAM,GAAG,SAATA,MAAMA,CAAAC,KAAA,EAA8B;EAAA,IAAxBC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAErB,OAAO,GAAAoB,KAAA,CAAPpB,OAAO;EACjC,oBAAOZ,MAAA,YAAAkC,aAAA,CAAC1B,YAAY;IAACI,OAAO,EAAEA;EAAQ,GAAEqB,QAAuB,CAAC;AAClE,CAAC;AAEDF,MAAM,CAACI,SAAS,GAAG;EACjBF,QAAQ,EAAEG,qBAAS,CAACC,SAAS,CAAC,CAACD,qBAAS,CAACE,OAAO,CAACF,qBAAS,CAACG,IAAI,CAAC,EAAEH,qBAAS,CAACG,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7F5B,OAAO,EAAEwB,qBAAS,CAACK,IAAI,CAACD;AAC1B,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,cAEaZ,MAAM","ignoreList":[]}
@@ -1,49 +1,51 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = exports.NumberTextFieldCustom = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
17
  var _react = _interopRequireDefault(require("react"));
17
- var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
18
- var _classnames = _interopRequireDefault(require("classnames"));
19
- var _styles = require("@material-ui/core/styles");
18
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
19
+ var _styles = require("@mui/material/styles");
20
20
  var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
21
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
22
- var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
23
- var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
24
- var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
25
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
26
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
- var styles = function styles() {
21
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
22
+ var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
23
+ var _Remove = _interopRequireDefault(require("@mui/icons-material/Remove"));
24
+ var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
25
+ var math = _interopRequireWildcard(require("mathjs"));
26
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
27
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
+ var StyledTextField = (0, _styles.styled)(_TextField["default"])(function () {
28
30
  return {
29
- input: {
30
- '& input[type=number]': {
31
- '-moz-appearance': 'textfield'
32
- },
33
- '& input[type=number]::-webkit-outer-spin-button': {
34
- '-webkit-appearance': 'none',
35
- margin: 0
36
- },
37
- '& input[type=number]::-webkit-inner-spin-button': {
38
- '-webkit-appearance': 'none',
39
- margin: 0
40
- }
31
+ '& input[type=number]': {
32
+ MozAppearance: 'textfield'
41
33
  },
42
- iconButton: {
43
- padding: '2px'
34
+ '& input[type=number]::-webkit-outer-spin-button': {
35
+ WebkitAppearance: 'none',
36
+ margin: 0
37
+ },
38
+ '& input[type=number]::-webkit-inner-spin-button': {
39
+ WebkitAppearance: 'none',
40
+ margin: 0
44
41
  }
45
42
  };
46
- };
43
+ });
44
+ var StyledIconButton = (0, _styles.styled)(_IconButton["default"])(function () {
45
+ return {
46
+ padding: '2px'
47
+ };
48
+ });
47
49
  var fallbackNumber = function fallbackNumber(min, max) {
48
50
  if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
49
51
  return 0;
@@ -55,20 +57,19 @@ var fallbackNumber = function fallbackNumber(min, max) {
55
57
  return min;
56
58
  }
57
59
  };
58
- var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
59
- (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
60
- var _super = _createSuper(NumberTextFieldCustom);
60
+ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
61
61
  function NumberTextFieldCustom(props) {
62
62
  var _this;
63
63
  (0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
64
- _this = _super.call(this, props);
65
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number) {
66
- var value = _this.clamp(number);
64
+ _this = _callSuper(this, NumberTextFieldCustom, [props]);
65
+ (0, _defineProperty2["default"])(_this, "normalizeValueAndIndex", function (customValues, number, min, max) {
66
+ var type = _this.props.type;
67
+ var value = _this.clamp(number, min, max);
67
68
  var currentIndex = (customValues || []).findIndex(function (val) {
68
69
  return val === value;
69
70
  });
70
71
  if ((customValues || []).length > 0 && currentIndex === -1) {
71
- var closestValue = _this.getClosestValue(customValues, value);
72
+ var closestValue = type === 'text' ? _this.getClosestFractionValue(customValues, value) : _this.getClosestValue(customValues, value);
72
73
  return {
73
74
  value: closestValue.value,
74
75
  currentIndex: closestValue.index
@@ -79,7 +80,7 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
79
80
  currentIndex: currentIndex
80
81
  };
81
82
  });
82
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestValue", function (customValues, number) {
83
+ (0, _defineProperty2["default"])(_this, "getClosestValue", function (customValues, number) {
83
84
  return customValues.reduce(function (closest, value, index) {
84
85
  return Math.abs(value - number) < Math.abs(closest.value - number) ? {
85
86
  value: value,
@@ -90,23 +91,71 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
90
91
  index: 0
91
92
  });
92
93
  });
93
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
94
+ (0, _defineProperty2["default"])(_this, "getClosestFractionValue", function (customValues, number) {
95
+ return customValues.reduce(function (closest, value, index) {
96
+ 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))) ? {
97
+ value: value,
98
+ index: index
99
+ } : closest;
100
+ }, {
101
+ value: customValues[0],
102
+ index: 0
103
+ });
104
+ });
105
+ (0, _defineProperty2["default"])(_this, "getValidFraction", function (value) {
106
+ if (_this.isPositiveInteger(value.trim())) {
107
+ return value.trim();
108
+ }
109
+ if (value.trim() === '' || value.trim().split('/').length !== 2) {
110
+ return false;
111
+ }
112
+ var _value$trim$split = value.trim().split('/'),
113
+ _value$trim$split2 = (0, _slicedToArray2["default"])(_value$trim$split, 2),
114
+ numerator = _value$trim$split2[0],
115
+ denominator = _value$trim$split2[1];
116
+ if (isNaN(numerator) || isNaN(denominator)) {
117
+ return false;
118
+ }
119
+ numerator = parseFloat(numerator);
120
+ denominator = parseFloat(denominator);
121
+ if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {
122
+ return false;
123
+ }
124
+ if (numerator < 0 || denominator < 1) {
125
+ return false;
126
+ }
127
+ return numerator + '/' + denominator;
128
+ });
129
+ (0, _defineProperty2["default"])(_this, "isPositiveInteger", function (n) {
130
+ return n >>> 0 === parseFloat(n);
131
+ });
132
+ (0, _defineProperty2["default"])(_this, "onBlur", function (event) {
94
133
  var _this$props = _this.props,
95
134
  customValues = _this$props.customValues,
96
- onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
135
+ onlyIntegersAllowed = _this$props.onlyIntegersAllowed,
136
+ type = _this$props.type;
97
137
  var value = event.target.value;
98
- var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
138
+ if (type === 'text') {
139
+ var tempValue = _this.getValidFraction(value);
140
+ if (tempValue) {
141
+ value = tempValue;
142
+ } else {
143
+ value = _this.props.value;
144
+ }
145
+ }
146
+ var rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);
147
+ if (type === 'text') {
148
+ rawNumber = value.trim();
149
+ }
99
150
  var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
100
151
  number = _this$normalizeValueA.value,
101
152
  currentIndex = _this$normalizeValueA.currentIndex;
102
- if (number !== _this.state.value) {
103
- _this.setState({
104
- value: number.toString(),
105
- currentIndex: currentIndex
106
- }, function () {
107
- return _this.props.onChange(event, number);
108
- });
109
- }
153
+ _this.setState({
154
+ value: number.toString(),
155
+ currentIndex: currentIndex
156
+ }, function () {
157
+ return _this.props.onChange(event, number);
158
+ });
110
159
  });
111
160
  var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
112
161
  _value = _this$normalizeValueA2.value,
@@ -118,13 +167,14 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
118
167
  if (_value !== props.value) {
119
168
  _this.props.onChange({}, _value);
120
169
  }
121
- _this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
170
+ _this.onChange = _this.onChange.bind(_this);
122
171
  return _this;
123
172
  }
124
- (0, _createClass2["default"])(NumberTextFieldCustom, [{
173
+ (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
174
+ return (0, _createClass2["default"])(NumberTextFieldCustom, [{
125
175
  key: "UNSAFE_componentWillReceiveProps",
126
176
  value: function UNSAFE_componentWillReceiveProps(props) {
127
- var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value),
177
+ var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max),
128
178
  value = _this$normalizeValueA3.value,
129
179
  currentIndex = _this$normalizeValueA3.currentIndex;
130
180
  this.setState({
@@ -135,10 +185,9 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
135
185
  }, {
136
186
  key: "clamp",
137
187
  value: function clamp(value) {
138
- var _this$props2 = this.props,
139
- min = _this$props2.min,
140
- max = _this$props2.max,
141
- customValues = _this$props2.customValues;
188
+ var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
189
+ var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
190
+ var customValues = this.props.customValues;
142
191
  if ((customValues || []).length > 0) {
143
192
  return value;
144
193
  }
@@ -156,7 +205,11 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
156
205
  }, {
157
206
  key: "onChange",
158
207
  value: function onChange(event) {
208
+ var type = this.props.type;
159
209
  var value = event.target.value;
210
+ if (type !== 'text' && typeof value === 'string' && value.trim() === '') {
211
+ return;
212
+ }
160
213
  this.setState({
161
214
  value: value
162
215
  });
@@ -167,11 +220,11 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
167
220
  var sign = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
168
221
  var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
169
222
  event.preventDefault();
170
- var _this$props3 = this.props,
171
- customValues = _this$props3.customValues,
172
- step = _this$props3.step,
173
- onlyIntegersAllowed = _this$props3.onlyIntegersAllowed,
174
- onChange = _this$props3.onChange;
223
+ var _this$props2 = this.props,
224
+ customValues = _this$props2.customValues,
225
+ step = _this$props2.step,
226
+ onlyIntegersAllowed = _this$props2.onlyIntegersAllowed,
227
+ onChange = _this$props2.onChange;
175
228
  var _this$state = this.state,
176
229
  currentIndex = _this$state.currentIndex,
177
230
  value = _this$state.value;
@@ -200,22 +253,34 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
200
253
  key: "render",
201
254
  value: function render() {
202
255
  var _this2 = this;
203
- var _this$props4 = this.props,
204
- className = _this$props4.className,
205
- classes = _this$props4.classes,
206
- label = _this$props4.label,
207
- disabled = _this$props4.disabled,
208
- error = _this$props4.error,
209
- min = _this$props4.min,
210
- max = _this$props4.max,
211
- inputClassName = _this$props4.inputClassName,
212
- disableUnderline = _this$props4.disableUnderline,
213
- helperText = _this$props4.helperText,
214
- variant = _this$props4.variant,
215
- textAlign = _this$props4.textAlign;
256
+ var _this$props3 = this.props,
257
+ className = _this$props3.className,
258
+ label = _this$props3.label,
259
+ disabled = _this$props3.disabled,
260
+ error = _this$props3.error,
261
+ min = _this$props3.min,
262
+ max = _this$props3.max,
263
+ customValues = _this$props3.customValues,
264
+ inputClassName = _this$props3.inputClassName,
265
+ disableUnderline = _this$props3.disableUnderline,
266
+ helperText = _this$props3.helperText,
267
+ variant = _this$props3.variant,
268
+ textAlign = _this$props3.textAlign,
269
+ _this$props3$type = _this$props3.type,
270
+ type = _this$props3$type === void 0 ? 'number' : _this$props3$type;
216
271
  var value = this.state.value;
217
- var names = (0, _classnames["default"])(className, classes.input);
218
- return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
272
+ var names = className;
273
+ //Logic to disable the increment and decrement buttons
274
+ var disabledStart = false;
275
+ var disabledEnd = false;
276
+ if (customValues.length > 0) {
277
+ disabledStart = value === customValues[0];
278
+ disabledEnd = value === customValues[customValues.length - 1];
279
+ } else if ((0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
280
+ disabledStart = value === min;
281
+ disabledEnd = value === max;
282
+ }
283
+ return /*#__PURE__*/_react["default"].createElement(StyledTextField, {
219
284
  variant: variant,
220
285
  inputRef: function inputRef(ref) {
221
286
  return _this2.inputRef = ref;
@@ -242,30 +307,30 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
242
307
  }
243
308
  },
244
309
  title: '',
245
- type: "number",
310
+ type: type,
246
311
  className: names,
247
312
  InputProps: {
248
313
  className: inputClassName,
249
314
  disableUnderline: disableUnderline,
250
315
  startAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
251
316
  position: "start"
252
- }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
253
- className: classes.iconButton,
254
- disabled: disabled,
317
+ }, /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
318
+ disabled: disabled ? disabled : disabledStart,
255
319
  onClick: function onClick(e) {
256
320
  return _this2.changeValue(e, -1, true);
257
- }
321
+ },
322
+ size: "large"
258
323
  }, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
259
324
  fontSize: "small"
260
325
  }))),
261
326
  endAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
262
327
  position: "end"
263
- }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
264
- className: classes.iconButton,
265
- disabled: disabled,
328
+ }, /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
329
+ disabled: disabled ? disabled : disabledEnd,
266
330
  onClick: function onClick(e) {
267
331
  return _this2.changeValue(e, 1, true);
268
- }
332
+ },
333
+ size: "large"
269
334
  }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
270
335
  fontSize: "small"
271
336
  })))
@@ -280,11 +345,8 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
280
345
  });
281
346
  }
282
347
  }]);
283
- return NumberTextFieldCustom;
284
348
  }(_react["default"].Component);
285
- exports.NumberTextFieldCustom = NumberTextFieldCustom;
286
349
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
287
- classes: _propTypes["default"].object.isRequired,
288
350
  className: _propTypes["default"].string,
289
351
  customValues: _propTypes["default"].array,
290
352
  disabled: _propTypes["default"].bool,
@@ -293,14 +355,15 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
293
355
  helperText: _propTypes["default"].string,
294
356
  onChange: _propTypes["default"].func.isRequired,
295
357
  onlyIntegersAllowed: _propTypes["default"].bool,
296
- value: _propTypes["default"].number,
358
+ value: _propTypes["default"].any,
297
359
  min: _propTypes["default"].number,
298
360
  max: _propTypes["default"].number,
299
361
  step: _propTypes["default"].number,
300
362
  label: _propTypes["default"].string,
301
363
  disableUnderline: _propTypes["default"].bool,
302
364
  textAlign: _propTypes["default"].string,
303
- variant: _propTypes["default"].string
365
+ variant: _propTypes["default"].string,
366
+ type: _propTypes["default"].string
304
367
  });
305
368
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "defaultProps", {
306
369
  step: 1,
@@ -309,6 +372,5 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
309
372
  variant: 'standard',
310
373
  onlyIntegersAllowed: false
311
374
  });
312
- var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
313
- exports["default"] = _default;
375
+ var _default = exports["default"] = NumberTextFieldCustom;
314
376
  //# sourceMappingURL=number-text-field-custom.js.map