@pie-lib/charting 5.36.3-next.2 → 5.36.3-next.203

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 (117) hide show
  1. package/CHANGELOG.md +24 -87
  2. package/lib/actions-button.js +60 -90
  3. package/lib/actions-button.js.map +1 -1
  4. package/lib/axes.js +162 -238
  5. package/lib/axes.js.map +1 -1
  6. package/lib/bars/bar.js +13 -41
  7. package/lib/bars/bar.js.map +1 -1
  8. package/lib/bars/common/bars.js +61 -137
  9. package/lib/bars/common/bars.js.map +1 -1
  10. package/lib/bars/common/correct-check-icon.js +5 -6
  11. package/lib/bars/common/correct-check-icon.js.map +1 -1
  12. package/lib/bars/histogram.js +13 -41
  13. package/lib/bars/histogram.js.map +1 -1
  14. package/lib/chart-setup.js +119 -195
  15. package/lib/chart-setup.js.map +1 -1
  16. package/lib/chart-type.js +52 -43
  17. package/lib/chart-type.js.map +1 -1
  18. package/lib/chart-types.js +1 -10
  19. package/lib/chart-types.js.map +1 -1
  20. package/lib/chart.js +73 -151
  21. package/lib/chart.js.map +1 -1
  22. package/lib/common/correctness-indicators.js +109 -52
  23. package/lib/common/correctness-indicators.js.map +1 -1
  24. package/lib/common/drag-handle.js +65 -108
  25. package/lib/common/drag-handle.js.map +1 -1
  26. package/lib/common/drag-icon.js +12 -12
  27. package/lib/common/drag-icon.js.map +1 -1
  28. package/lib/common/styles.js +6 -24
  29. package/lib/common/styles.js.map +1 -1
  30. package/lib/grid.js +43 -83
  31. package/lib/grid.js.map +1 -1
  32. package/lib/index.js +0 -6
  33. package/lib/index.js.map +1 -1
  34. package/lib/key-legend.js +63 -87
  35. package/lib/key-legend.js.map +1 -1
  36. package/lib/line/common/drag-handle.js +72 -100
  37. package/lib/line/common/drag-handle.js.map +1 -1
  38. package/lib/line/common/line.js +50 -96
  39. package/lib/line/common/line.js.map +1 -1
  40. package/lib/line/line-cross.js +79 -89
  41. package/lib/line/line-cross.js.map +1 -1
  42. package/lib/line/line-dot.js +58 -76
  43. package/lib/line/line-dot.js.map +1 -1
  44. package/lib/mark-label.js +84 -119
  45. package/lib/mark-label.js.map +1 -1
  46. package/lib/plot/common/plot.js +90 -148
  47. package/lib/plot/common/plot.js.map +1 -1
  48. package/lib/plot/dot.js +32 -58
  49. package/lib/plot/dot.js.map +1 -1
  50. package/lib/plot/line.js +39 -64
  51. package/lib/plot/line.js.map +1 -1
  52. package/lib/tool-menu.js +47 -83
  53. package/lib/tool-menu.js.map +1 -1
  54. package/lib/utils.js +31 -86
  55. package/lib/utils.js.map +1 -1
  56. package/package.json +22 -24
  57. package/src/__tests__/axes.test.jsx +85 -100
  58. package/src/__tests__/chart-type.test.jsx +5 -11
  59. package/src/__tests__/chart.test.jsx +41 -50
  60. package/src/__tests__/grid.test.jsx +23 -11
  61. package/src/__tests__/mark-label.test.jsx +13 -11
  62. package/src/__tests__/utils.js +8 -2
  63. package/src/actions-button.jsx +44 -39
  64. package/src/axes.jsx +67 -81
  65. package/src/bars/__tests__/bar.test.jsx +19 -11
  66. package/src/bars/__tests__/histogram.test.jsx +19 -12
  67. package/src/bars/common/__tests__/bars.test.jsx +23 -24
  68. package/src/bars/common/bars.jsx +42 -69
  69. package/src/bars/common/correct-check-icon.jsx +5 -0
  70. package/src/chart-setup.jsx +75 -88
  71. package/src/chart-type.js +45 -22
  72. package/src/chart.jsx +19 -34
  73. package/src/common/__tests__/drag-handle.test.jsx +16 -45
  74. package/src/common/correctness-indicators.jsx +91 -13
  75. package/src/common/drag-handle.jsx +44 -64
  76. package/src/common/drag-icon.jsx +9 -2
  77. package/src/common/styles.js +1 -1
  78. package/src/grid.jsx +10 -14
  79. package/src/key-legend.jsx +62 -60
  80. package/src/line/__tests__/line-cross.test.jsx +16 -13
  81. package/src/line/__tests__/line-dot.test.jsx +16 -13
  82. package/src/line/__tests__/utils.js +8 -2
  83. package/src/line/common/__tests__/drag-handle.test.jsx +20 -45
  84. package/src/line/common/__tests__/line.test.jsx +27 -30
  85. package/src/line/common/drag-handle.jsx +61 -55
  86. package/src/line/common/line.jsx +21 -11
  87. package/src/line/line-cross.js +39 -14
  88. package/src/line/line-dot.js +27 -32
  89. package/src/mark-label.jsx +51 -47
  90. package/src/plot/__tests__/dot.test.jsx +19 -12
  91. package/src/plot/__tests__/line.test.jsx +19 -12
  92. package/src/plot/common/__tests__/plot.test.jsx +23 -24
  93. package/src/plot/common/plot.jsx +29 -24
  94. package/src/plot/dot.js +11 -4
  95. package/src/plot/line.js +16 -8
  96. package/src/tool-menu.jsx +26 -30
  97. package/src/utils.js +13 -9
  98. package/esm/index.css +0 -847
  99. package/esm/index.js +0 -231130
  100. package/esm/index.js.map +0 -1
  101. package/esm/package.json +0 -3
  102. package/src/__tests__/__snapshots__/axes.test.jsx.snap +0 -569
  103. package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +0 -14
  104. package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -595
  105. package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -72
  106. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -73
  107. package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +0 -43
  108. package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +0 -45
  109. package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +0 -110
  110. package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -48
  111. package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +0 -45
  112. package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +0 -45
  113. package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +0 -49
  114. package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +0 -143
  115. package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +0 -45
  116. package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +0 -45
  117. package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +0 -97
package/lib/mark-label.js CHANGED
@@ -1,204 +1,172 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = exports.MarkLabel = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _classnames = _interopRequireDefault(require("classnames"));
19
-
20
- var _styles = require("@material-ui/core/styles");
21
-
13
+ var _styles = require("@mui/material/styles");
22
14
  var _reactInputAutosize = _interopRequireDefault(require("react-input-autosize"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _plot = require("@pie-lib/plot");
27
-
28
17
  var _styles2 = require("./common/styles");
29
-
30
18
  var _renderUi = require("@pie-lib/render-ui");
31
-
32
19
  var _mathRendering = require("@pie-lib/math-rendering");
20
+ 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); }
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ var StyledContainer = (0, _styles.styled)('div')({
24
+ display: 'flex',
25
+ flexDirection: 'column',
26
+ alignItems: 'center'
27
+ });
33
28
 
34
- 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); }
35
-
36
- 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; }
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- var styles = function styles(theme) {
29
+ // eslint-disable-next-line no-unused-vars
30
+ var StyledInput = (0, _styles.styled)('input')(function (_ref2) {
31
+ var theme = _ref2.theme;
43
32
  return {
44
- input: {
45
- "float": 'right',
46
- fontFamily: theme.typography.fontFamily,
47
- fontSize: theme.typography.fontSize,
48
- border: 'none',
49
- '&.correct': (0, _styles2.correct)('color'),
50
- '&.incorrect': (0, _styles2.incorrect)('color'),
51
- '&.disabled': {
52
- backgroundColor: 'transparent !important'
53
- },
54
- '&.error': {
55
- border: "2px solid ".concat(theme.palette.error.main)
56
- }
57
- },
58
- mathInput: {
59
- pointerEvents: 'auto',
60
- textAlign: 'center',
61
- fontSize: theme.typography.fontSize + 2,
62
- fontFamily: theme.typography.fontFamily,
63
- color: _renderUi.color.primaryDark(),
64
- paddingTop: theme.typography.fontSize / 2
33
+ "float": 'right',
34
+ fontFamily: theme.typography.fontFamily,
35
+ fontSize: theme.typography.fontSize,
36
+ border: 'none',
37
+ '&.correct': (0, _styles2.correct)('color'),
38
+ '&.incorrect': (0, _styles2.incorrect)('color'),
39
+ '&.disabled': {
40
+ backgroundColor: 'transparent !important'
65
41
  },
66
- disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('color')), {}, {
42
+ '&.error': {
43
+ border: "2px solid ".concat(theme.palette.error.main)
44
+ }
45
+ };
46
+ });
47
+ var StyledMathInput = (0, _styles.styled)('div')(function (_ref3) {
48
+ var theme = _ref3.theme;
49
+ return {
50
+ pointerEvents: 'auto',
51
+ textAlign: 'center',
52
+ fontSize: theme.typography.fontSize + 2,
53
+ fontFamily: theme.typography.fontFamily,
54
+ color: _renderUi.color.primaryDark(),
55
+ paddingTop: theme.typography.fontSize / 2,
56
+ '&.disabled': _objectSpread(_objectSpread({}, (0, _styles2.disabled)('color')), {}, {
67
57
  backgroundColor: 'transparent !important'
68
58
  }),
69
- error: {
59
+ '&.error': {
70
60
  border: "2px solid ".concat(theme.palette.error.main)
71
61
  },
72
- correct: _objectSpread({}, (0, _styles2.correct)('color')),
73
- incorrect: _objectSpread({}, (0, _styles2.incorrect)('color')),
74
- flexContainer: {
75
- display: 'flex',
76
- flexDirection: 'column',
77
- alignItems: 'center'
78
- }
62
+ '&.correct': _objectSpread({}, (0, _styles2.correct)('color')),
63
+ '&.incorrect': _objectSpread({}, (0, _styles2.incorrect)('color'))
79
64
  };
80
- };
81
-
65
+ });
82
66
  function isFractionFormat(label) {
83
67
  var trimmedLabel = (label === null || label === void 0 ? void 0 : label.trim()) || '';
84
68
  var fracRegex = new RegExp(/^[1-9]*[0-9]*\s?[1-9][0-9]*\/[1-9][0-9]*$/);
85
69
  return fracRegex.test(trimmedLabel);
86
70
  }
87
-
88
71
  function getLabelMathFormat(label) {
89
72
  var trimmedLabel = (label === null || label === void 0 ? void 0 : label.trim()) || '';
90
73
  var fraction;
91
74
  var mixedNr = '';
92
75
  var improperFraction = trimmedLabel.split(' ');
93
-
94
76
  if (improperFraction[1] && improperFraction[1].includes('/')) {
95
77
  fraction = improperFraction[1].split('/') || '';
96
78
  } else {
97
79
  fraction = (trimmedLabel === null || trimmedLabel === void 0 ? void 0 : trimmedLabel.split('/')) || '';
98
80
  }
99
-
100
81
  var formattedLLabel;
101
-
102
82
  if (isFractionFormat(label)) {
103
83
  if (improperFraction[0] && improperFraction[1]) {
104
84
  mixedNr = improperFraction[0];
105
85
  }
106
-
107
86
  formattedLLabel = "\\(".concat(mixedNr, "\\frac{").concat(fraction[0], "}{").concat(fraction[1], "}\\)");
108
87
  return formattedLLabel;
109
88
  }
110
-
111
89
  return undefined;
112
90
  }
113
-
114
- var MarkLabel = function MarkLabel(props) {
115
- var _classNames;
116
-
91
+ var MarkLabel = exports.MarkLabel = function MarkLabel(props) {
117
92
  // eslint-disable-next-line no-unused-vars
118
93
  var _useState = (0, _react.useState)(null),
119
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
120
- input = _useState2[0],
121
- setInput = _useState2[1];
122
-
94
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
95
+ input = _useState2[0],
96
+ setInput = _useState2[1];
123
97
  var _ref = (0, _react.useCallback)(function (node) {
124
98
  return setInput(node);
125
99
  }, null);
126
-
127
- var mark = props.mark,
128
- classes = props.classes,
129
- disabled = props.disabled,
130
- externalInputRef = props.inputRef,
131
- barWidth = props.barWidth,
132
- rotate = props.rotate,
133
- correctness = props.correctness,
134
- autoFocus = props.autoFocus,
135
- error = props.error,
136
- isHiddenLabel = props.isHiddenLabel,
137
- limitCharacters = props.limitCharacters,
138
- correctnessIndicator = props.correctnessIndicator;
139
-
100
+ var _props$mark = props.mark,
101
+ mark = _props$mark === void 0 ? {} : _props$mark,
102
+ disabled = props.disabled,
103
+ externalInputRef = props.inputRef,
104
+ barWidth = props.barWidth,
105
+ rotate = props.rotate,
106
+ correctness = props.correctness,
107
+ autoFocus = props.autoFocus,
108
+ error = props.error,
109
+ isHiddenLabel = props.isHiddenLabel,
110
+ limitCharacters = props.limitCharacters,
111
+ correctnessIndicator = props.correctnessIndicator;
140
112
  var _useState3 = (0, _react.useState)(mark.label),
141
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
142
- label = _useState4[0],
143
- setLabel = _useState4[1];
144
-
113
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
114
+ label = _useState4[0],
115
+ setLabel = _useState4[1];
145
116
  var _useState5 = (0, _react.useState)(getLabelMathFormat(mark.label)),
146
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
147
- mathLabel = _useState6[0],
148
- setMathLabel = _useState6[1];
149
-
117
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
118
+ mathLabel = _useState6[0],
119
+ setMathLabel = _useState6[1];
150
120
  var _useState7 = (0, _react.useState)(false),
151
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
152
- isEditing = _useState8[0],
153
- setIsEditing = _useState8[1];
154
-
121
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
122
+ isEditing = _useState8[0],
123
+ setIsEditing = _useState8[1];
155
124
  var root = (0, _react.useRef)(null);
156
-
157
125
  var onChange = function onChange(e) {
158
126
  if (limitCharacters && e.target.value && e.target.value.length > 20) {
159
127
  return;
160
128
  }
161
-
162
129
  setLabel(e.target.value);
163
130
  };
164
-
165
131
  var isMathRendering = function isMathRendering() {
166
132
  return isEditing === false && mathLabel !== undefined;
167
133
  };
168
-
169
134
  var onChangeProp = function onChangeProp(e) {
170
135
  setMathLabel(getLabelMathFormat(mark.label));
171
136
  setIsEditing(false);
172
137
  props.onChange(e.target.value);
173
138
  };
174
-
175
139
  var extraStyle = {};
176
-
177
140
  if (rotate) {
178
141
  extraStyle = {
179
142
  width: 'unset',
180
143
  textAlign: 'left'
181
144
  };
182
- } // useState only sets the value once, to synch props to state need useEffect
183
-
145
+ }
184
146
 
147
+ // useState only sets the value once, to synch props to state need useEffect
185
148
  (0, _react.useEffect)(function () {
186
149
  setLabel(mark.label);
187
150
  }, [mark.label]);
188
151
  (0, _react.useEffect)(function () {
189
152
  (0, _mathRendering.renderMath)(root);
190
153
  }, []);
191
- return /*#__PURE__*/_react["default"].createElement("div", {
192
- className: classes.flexContainer
193
- }, correctnessIndicator, isMathRendering() ? /*#__PURE__*/_react["default"].createElement("div", {
154
+ return /*#__PURE__*/_react["default"].createElement(StyledContainer, null, correctnessIndicator, isMathRendering() ? /*#__PURE__*/_react["default"].createElement(StyledMathInput, {
194
155
  ref: function ref(r) {
195
156
  root = r;
196
- externalInputRef(r);
157
+ if (typeof externalInputRef === 'function') {
158
+ externalInputRef(r);
159
+ }
197
160
  },
198
161
  dangerouslySetInnerHTML: {
199
162
  __html: getLabelMathFormat(label)
200
163
  },
201
- className: (0, _classnames["default"])(classes.mathInput, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.disabled, disabled), (0, _defineProperty2["default"])(_classNames, classes.error, error), (0, _defineProperty2["default"])(_classNames, classes.correct, mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'correct'), (0, _defineProperty2["default"])(_classNames, classes.incorrect, mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'incorrect'), _classNames)),
164
+ className: (0, _classnames["default"])({
165
+ disabled: disabled,
166
+ error: error,
167
+ correct: mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'correct',
168
+ incorrect: mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'incorrect'
169
+ }),
202
170
  onClick: function onClick() {
203
171
  return setIsEditing(true);
204
172
  },
@@ -213,19 +181,22 @@ var MarkLabel = function MarkLabel(props) {
213
181
  }) : /*#__PURE__*/_react["default"].createElement(_reactInputAutosize["default"], {
214
182
  inputRef: function inputRef(r) {
215
183
  _ref(r);
216
-
217
- externalInputRef(r);
184
+ if (typeof externalInputRef === 'function') {
185
+ externalInputRef(r);
186
+ }
218
187
  },
188
+ name: "mark-label-input",
219
189
  autoFocus: isEditing || autoFocus,
220
190
  disabled: disabled,
221
- inputClassName: (0, _classnames["default"])(classes.input, correctness && mark.editable ? correctness.label : null, disabled && 'disabled', error && 'error'),
191
+ inputClassName: (0, _classnames["default"])(correctness && mark.editable ? correctness.label : null, disabled && 'disabled', error && 'error'),
222
192
  inputStyle: _objectSpread({
223
193
  minWidth: barWidth,
224
194
  textAlign: 'center',
225
195
  background: 'transparent',
226
196
  boxSizing: 'border-box',
227
197
  paddingLeft: 0,
228
- paddingRight: 0
198
+ paddingRight: 0,
199
+ border: 'none'
229
200
  }, extraStyle),
230
201
  value: label,
231
202
  style: {
@@ -243,15 +214,12 @@ var MarkLabel = function MarkLabel(props) {
243
214
  onBlur: onChangeProp
244
215
  }));
245
216
  };
246
-
247
- exports.MarkLabel = MarkLabel;
248
217
  MarkLabel.propTypes = {
249
218
  autoFocus: _propTypes["default"].bool,
250
219
  disabled: _propTypes["default"].bool,
251
220
  error: _propTypes["default"].any,
252
221
  onChange: _propTypes["default"].func,
253
222
  graphProps: _plot.types.GraphPropsType,
254
- classes: _propTypes["default"].object,
255
223
  inputRef: _propTypes["default"].func,
256
224
  mark: _propTypes["default"].object,
257
225
  barWidth: _propTypes["default"].number,
@@ -264,8 +232,5 @@ MarkLabel.propTypes = {
264
232
  limitCharacters: _propTypes["default"].bool,
265
233
  correctnessIndicator: _propTypes["default"].node
266
234
  };
267
-
268
- var _default = (0, _styles.withStyles)(styles)(MarkLabel);
269
-
270
- exports["default"] = _default;
235
+ var _default = exports["default"] = MarkLabel;
271
236
  //# sourceMappingURL=mark-label.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark-label.jsx"],"names":["styles","theme","input","fontFamily","typography","fontSize","border","backgroundColor","palette","error","main","mathInput","pointerEvents","textAlign","color","primaryDark","paddingTop","disabled","correct","incorrect","flexContainer","display","flexDirection","alignItems","isFractionFormat","label","trimmedLabel","trim","fracRegex","RegExp","test","getLabelMathFormat","fraction","mixedNr","improperFraction","split","includes","formattedLLabel","undefined","MarkLabel","props","setInput","_ref","node","mark","classes","externalInputRef","inputRef","barWidth","rotate","correctness","autoFocus","isHiddenLabel","limitCharacters","correctnessIndicator","setLabel","mathLabel","setMathLabel","isEditing","setIsEditing","root","onChange","e","target","value","length","isMathRendering","onChangeProp","extraStyle","width","r","__html","editable","minWidth","position","transformOrigin","transform","visibility","marginTop","background","boxSizing","paddingLeft","paddingRight","top","left","propTypes","PropTypes","bool","any","func","graphProps","types","GraphPropsType","object","number","shape","string"],"mappings":"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","sourcesContent":["import React, { useState, useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { correct, incorrect, disabled } from './common/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst styles = (theme) => ({\n input: {\n float: 'right',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: 'none',\n '&.correct': correct('color'),\n '&.incorrect': incorrect('color'),\n '&.disabled': {\n backgroundColor: 'transparent !important',\n },\n '&.error': { border: `2px solid ${theme.palette.error.main}` },\n },\n mathInput: {\n pointerEvents: 'auto',\n textAlign: 'center',\n fontSize: theme.typography.fontSize + 2,\n fontFamily: theme.typography.fontFamily,\n color: color.primaryDark(),\n paddingTop: theme.typography.fontSize / 2,\n },\n disabled: {\n ...disabled('color'),\n backgroundColor: 'transparent !important',\n },\n error: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n correct: {\n ...correct('color'),\n },\n incorrect: {\n ...incorrect('color'),\n },\n flexContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n});\n\nfunction isFractionFormat(label) {\n const trimmedLabel = label?.trim() || '';\n const fracRegex = new RegExp(/^[1-9]*[0-9]*\\s?[1-9][0-9]*\\/[1-9][0-9]*$/);\n return fracRegex.test(trimmedLabel);\n}\n\nfunction getLabelMathFormat(label) {\n const trimmedLabel = label?.trim() || '';\n let fraction;\n let mixedNr = '';\n let improperFraction = trimmedLabel.split(' ');\n if (improperFraction[1] && improperFraction[1].includes('/')) {\n fraction = improperFraction[1].split('/') || '';\n } else {\n fraction = trimmedLabel?.split('/') || '';\n }\n\n let formattedLLabel;\n if (isFractionFormat(label)) {\n if (improperFraction[0] && improperFraction[1]) {\n mixedNr = improperFraction[0];\n }\n formattedLLabel = `\\\\(${mixedNr}\\\\frac{${fraction[0]}}{${fraction[1]}}\\\\)`;\n return formattedLLabel;\n }\n return undefined;\n}\n\nexport const MarkLabel = (props) => {\n // eslint-disable-next-line no-unused-vars\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node), null);\n\n const {\n mark,\n classes,\n disabled,\n inputRef: externalInputRef,\n barWidth,\n rotate,\n correctness,\n autoFocus,\n error,\n isHiddenLabel,\n limitCharacters,\n correctnessIndicator,\n } = props;\n\n const [label, setLabel] = useState(mark.label);\n const [mathLabel, setMathLabel] = useState(getLabelMathFormat(mark.label));\n const [isEditing, setIsEditing] = useState(false);\n let root = useRef(null);\n\n const onChange = (e) => {\n if (limitCharacters && e.target.value && e.target.value.length > 20) {\n return;\n }\n\n setLabel(e.target.value);\n };\n\n const isMathRendering = () => {\n return isEditing === false && mathLabel !== undefined;\n };\n\n const onChangeProp = (e) => {\n setMathLabel(getLabelMathFormat(mark.label));\n setIsEditing(false);\n props.onChange(e.target.value);\n };\n let extraStyle = {};\n\n if (rotate) {\n extraStyle = {\n width: 'unset',\n textAlign: 'left',\n };\n }\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n useEffect(() => {\n renderMath(root);\n }, []);\n\n return (\n <div className={classes.flexContainer}>\n {correctnessIndicator}\n {isMathRendering() ? (\n <div\n ref={(r) => {\n root = r;\n externalInputRef(r);\n }}\n dangerouslySetInnerHTML={{ __html: getLabelMathFormat(label) }}\n className={classNames(classes.mathInput, {\n [classes.disabled]: disabled,\n [classes.error]: error,\n [classes.correct]: mark.editable && correctness?.label === 'correct',\n [classes.incorrect]: mark.editable && correctness?.label === 'incorrect',\n })}\n onClick={() => setIsEditing(true)}\n style={{\n minWidth: barWidth,\n position: 'fixed',\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n ></div>\n ) : (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n autoFocus={isEditing || autoFocus}\n disabled={disabled}\n inputClassName={classNames(\n classes.input,\n correctness && mark.editable ? correctness.label : null,\n disabled && 'disabled',\n error && 'error',\n )}\n inputStyle={{\n minWidth: barWidth,\n textAlign: 'center',\n background: 'transparent',\n boxSizing: 'border-box',\n paddingLeft: 0,\n paddingRight: 0,\n ...extraStyle,\n }}\n value={label}\n style={{\n position: 'fixed',\n pointerEvents: 'auto',\n top: 0,\n left: 0,\n minWidth: barWidth,\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n onChange={onChange}\n onBlur={onChangeProp}\n />\n )}\n </div>\n );\n};\n\nMarkLabel.propTypes = {\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.any,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n isHiddenLabel: PropTypes.bool,\n limitCharacters: PropTypes.bool,\n correctnessIndicator: PropTypes.node,\n};\n\nexport default withStyles(styles)(MarkLabel);\n"],"file":"mark-label.js"}
1
+ {"version":3,"file":"mark-label.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_styles","_reactInputAutosize","_propTypes","_plot","_styles2","_renderUi","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","StyledContainer","styled","display","flexDirection","alignItems","StyledInput","_ref2","theme","fontFamily","typography","fontSize","border","correct","incorrect","backgroundColor","concat","palette","error","main","StyledMathInput","_ref3","pointerEvents","textAlign","color","primaryDark","paddingTop","disabled","isFractionFormat","label","trimmedLabel","trim","fracRegex","RegExp","test","getLabelMathFormat","fraction","mixedNr","improperFraction","split","includes","formattedLLabel","undefined","MarkLabel","exports","props","_useState","useState","_useState2","_slicedToArray2","input","setInput","_ref","useCallback","node","_props$mark","mark","externalInputRef","inputRef","barWidth","rotate","correctness","autoFocus","isHiddenLabel","limitCharacters","correctnessIndicator","_useState3","_useState4","setLabel","_useState5","_useState6","mathLabel","setMathLabel","_useState7","_useState8","isEditing","setIsEditing","root","useRef","onChange","target","value","isMathRendering","onChangeProp","extraStyle","width","useEffect","renderMath","createElement","ref","dangerouslySetInnerHTML","__html","className","classNames","editable","onClick","style","minWidth","position","transformOrigin","transform","visibility","marginTop","name","inputClassName","inputStyle","background","boxSizing","paddingLeft","paddingRight","top","left","onBlur","propTypes","PropTypes","bool","any","func","graphProps","types","GraphPropsType","object","number","shape","string","_default"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useState, useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { styled } from '@mui/material/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { correct, incorrect, disabled } from './common/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst StyledContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n});\n\n// eslint-disable-next-line no-unused-vars\nconst StyledInput = styled('input')(({ theme }) => ({\n float: 'right',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: 'none',\n '&.correct': correct('color'),\n '&.incorrect': incorrect('color'),\n '&.disabled': {\n backgroundColor: 'transparent !important',\n },\n '&.error': { border: `2px solid ${theme.palette.error.main}` },\n}));\n\nconst StyledMathInput = styled('div')(({ theme }) => ({\n pointerEvents: 'auto',\n textAlign: 'center',\n fontSize: theme.typography.fontSize + 2,\n fontFamily: theme.typography.fontFamily,\n color: color.primaryDark(),\n paddingTop: theme.typography.fontSize / 2,\n '&.disabled': {\n ...disabled('color'),\n backgroundColor: 'transparent !important',\n },\n '&.error': {\n border: `2px solid ${theme.palette.error.main}`,\n },\n '&.correct': {\n ...correct('color'),\n },\n '&.incorrect': {\n ...incorrect('color'),\n },\n}));\n\nfunction isFractionFormat(label) {\n const trimmedLabel = label?.trim() || '';\n const fracRegex = new RegExp(/^[1-9]*[0-9]*\\s?[1-9][0-9]*\\/[1-9][0-9]*$/);\n return fracRegex.test(trimmedLabel);\n}\n\nfunction getLabelMathFormat(label) {\n const trimmedLabel = label?.trim() || '';\n let fraction;\n let mixedNr = '';\n let improperFraction = trimmedLabel.split(' ');\n if (improperFraction[1] && improperFraction[1].includes('/')) {\n fraction = improperFraction[1].split('/') || '';\n } else {\n fraction = trimmedLabel?.split('/') || '';\n }\n\n let formattedLLabel;\n if (isFractionFormat(label)) {\n if (improperFraction[0] && improperFraction[1]) {\n mixedNr = improperFraction[0];\n }\n formattedLLabel = `\\\\(${mixedNr}\\\\frac{${fraction[0]}}{${fraction[1]}}\\\\)`;\n return formattedLLabel;\n }\n return undefined;\n}\n\nexport const MarkLabel = (props) => {\n // eslint-disable-next-line no-unused-vars\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node), null);\n\n const {\n mark = {},\n disabled,\n inputRef: externalInputRef,\n barWidth,\n rotate,\n correctness,\n autoFocus,\n error,\n isHiddenLabel,\n limitCharacters,\n correctnessIndicator,\n } = props;\n\n const [label, setLabel] = useState(mark.label);\n const [mathLabel, setMathLabel] = useState(getLabelMathFormat(mark.label));\n const [isEditing, setIsEditing] = useState(false);\n let root = useRef(null);\n\n const onChange = (e) => {\n if (limitCharacters && e.target.value && e.target.value.length > 20) {\n return;\n }\n\n setLabel(e.target.value);\n };\n\n const isMathRendering = () => {\n return isEditing === false && mathLabel !== undefined;\n };\n\n const onChangeProp = (e) => {\n setMathLabel(getLabelMathFormat(mark.label));\n setIsEditing(false);\n props.onChange(e.target.value);\n };\n let extraStyle = {};\n\n if (rotate) {\n extraStyle = {\n width: 'unset',\n textAlign: 'left',\n };\n }\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n useEffect(() => {\n renderMath(root);\n }, []);\n\n return (\n <StyledContainer>\n {correctnessIndicator}\n {isMathRendering() ? (\n <StyledMathInput\n ref={(r) => {\n root = r;\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n dangerouslySetInnerHTML={{ __html: getLabelMathFormat(label) }}\n className={classNames({\n disabled: disabled,\n error: error,\n correct: mark.editable && correctness?.label === 'correct',\n incorrect: mark.editable && correctness?.label === 'incorrect',\n })}\n onClick={() => setIsEditing(true)}\n style={{\n minWidth: barWidth,\n position: 'fixed',\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n ></StyledMathInput>\n ) : (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n name='mark-label-input'\n autoFocus={isEditing || autoFocus}\n disabled={disabled}\n inputClassName={classNames(\n correctness && mark.editable ? correctness.label : null,\n disabled && 'disabled',\n error && 'error',\n )}\n inputStyle={{\n minWidth: barWidth,\n textAlign: 'center',\n background: 'transparent',\n boxSizing: 'border-box',\n paddingLeft: 0,\n paddingRight: 0,\n border: 'none',\n ...extraStyle,\n }}\n value={label}\n style={{\n position: 'fixed',\n pointerEvents: 'auto',\n top: 0,\n left: 0,\n minWidth: barWidth,\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n onChange={onChange}\n onBlur={onChangeProp}\n />\n )}\n </StyledContainer>\n );\n};\n\nMarkLabel.propTypes = {\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.any,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n isHiddenLabel: PropTypes.bool,\n limitCharacters: PropTypes.bool,\n correctnessIndicator: PropTypes.node,\n};\n\nexport default MarkLabel;\n"],"mappings":"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","ignoreList":[]}