@pie-lib/charting 5.22.0 → 5.23.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 (57) hide show
  1. package/CHANGELOG.md +4 -16
  2. package/lib/actions-button.js +174 -0
  3. package/lib/actions-button.js.map +1 -0
  4. package/lib/axes.js +614 -0
  5. package/lib/axes.js.map +1 -0
  6. package/lib/bars/bar.js +86 -0
  7. package/lib/bars/bar.js.map +1 -0
  8. package/lib/bars/common/bars.js +299 -0
  9. package/lib/bars/common/bars.js.map +1 -0
  10. package/lib/bars/histogram.js +87 -0
  11. package/lib/bars/histogram.js.map +1 -0
  12. package/lib/chart-setup.js +458 -0
  13. package/lib/chart-setup.js.map +1 -0
  14. package/lib/chart-type.js +71 -0
  15. package/lib/chart-type.js.map +1 -0
  16. package/lib/chart-types.js +31 -0
  17. package/lib/chart-types.js.map +1 -0
  18. package/lib/chart.js +447 -0
  19. package/lib/chart.js.map +1 -0
  20. package/lib/common/drag-handle.js +175 -0
  21. package/lib/common/drag-handle.js.map +1 -0
  22. package/lib/common/drag-icon.js +52 -0
  23. package/lib/common/drag-icon.js.map +1 -0
  24. package/lib/common/styles.js +40 -0
  25. package/lib/common/styles.js.map +1 -0
  26. package/lib/grid.js +141 -0
  27. package/lib/grid.js.map +1 -0
  28. package/lib/index.js +48 -0
  29. package/lib/index.js.map +1 -0
  30. package/lib/key-legend.js +111 -0
  31. package/lib/key-legend.js.map +1 -0
  32. package/lib/line/common/drag-handle.js +151 -0
  33. package/lib/line/common/drag-handle.js.map +1 -0
  34. package/lib/line/common/line.js +257 -0
  35. package/lib/line/common/line.js.map +1 -0
  36. package/lib/line/line-cross.js +203 -0
  37. package/lib/line/line-cross.js.map +1 -0
  38. package/lib/line/line-dot.js +156 -0
  39. package/lib/line/line-dot.js.map +1 -0
  40. package/lib/mark-label.js +260 -0
  41. package/lib/mark-label.js.map +1 -0
  42. package/lib/plot/common/plot.js +281 -0
  43. package/lib/plot/common/plot.js.map +1 -0
  44. package/lib/plot/dot.js +123 -0
  45. package/lib/plot/dot.js.map +1 -0
  46. package/lib/plot/line.js +152 -0
  47. package/lib/plot/line.js.map +1 -0
  48. package/lib/tool-menu.js +142 -0
  49. package/lib/tool-menu.js.map +1 -0
  50. package/lib/utils.js +244 -0
  51. package/lib/utils.js.map +1 -0
  52. package/package.json +5 -5
  53. package/src/chart-types.js +2 -2
  54. package/src/line/common/__tests__/drag-handle.test.jsx +2 -2
  55. package/src/plot/common/__tests__/plot.test.jsx +1 -1
  56. package/src/plot/dot.js +1 -1
  57. package/src/plot/line.js +1 -1
@@ -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.resetValues = exports["default"] = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _renderUi = require("@pie-lib/render-ui");
23
+
24
+ var _styles = require("@material-ui/core/styles");
25
+
26
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
27
+
28
+ var _chartType = _interopRequireDefault(require("./chart-type"));
29
+
30
+ var _configUi = require("@pie-lib/config-ui");
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ 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; }
37
+
38
+ 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; }
39
+
40
+ var resetValues = function resetValues(data, updateModel, range, onChange, model) {
41
+ (data || []).forEach(function (d) {
42
+ var d_value_scaled = Math.round(d.value * 10);
43
+ var range_step_scaled = Math.round(range.step * 10);
44
+ var remainder_scaled = d_value_scaled % range_step_scaled;
45
+ var remainder = remainder_scaled / 10;
46
+
47
+ if (d.value > range.max || remainder !== 0) {
48
+ d.value = 0;
49
+ }
50
+ });
51
+
52
+ if (updateModel) {
53
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
54
+ data: data
55
+ }));
56
+ }
57
+ };
58
+
59
+ exports.resetValues = resetValues;
60
+
61
+ var ConfigureChartPanel = function ConfigureChartPanel(props) {
62
+ var classes = props.classes,
63
+ model = props.model,
64
+ onChange = props.onChange,
65
+ chartDimensions = props.chartDimensions,
66
+ _props$gridValues = props.gridValues,
67
+ gridValues = _props$gridValues === void 0 ? {} : _props$gridValues,
68
+ _props$labelValues = props.labelValues,
69
+ labelValues = _props$labelValues === void 0 ? {} : _props$labelValues,
70
+ _props$studentNewCate = props.studentNewCategoryDefaultLabel,
71
+ studentNewCategoryDefaultLabel = _props$studentNewCate === void 0 ? {} : _props$studentNewCate,
72
+ _props$availableChart = props.availableChartTypes,
73
+ availableChartTypes = _props$availableChart === void 0 ? {} : _props$availableChart,
74
+ chartTypeLabel = props.chartTypeLabel;
75
+
76
+ var _useState = (0, _react.useState)({
77
+ open: false,
78
+ title: '',
79
+ text: '',
80
+ onClose: null,
81
+ onConfirm: null
82
+ }),
83
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
+ alertDialog = _useState2[0],
85
+ setAlertDialog = _useState2[1];
86
+
87
+ var _useState3 = (0, _react.useState)(false),
88
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
89
+ open = _useState4[0],
90
+ setOpen = _useState4[1];
91
+
92
+ var _useState5 = (0, _react.useState)(''),
93
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
94
+ rangeKey = _useState6[0],
95
+ setRangeKey = _useState6[1];
96
+
97
+ var _useState7 = (0, _react.useState)(0),
98
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
99
+ resetValue = _useState8[0],
100
+ setResetValue = _useState8[1];
101
+
102
+ var _model$range = model.range,
103
+ range = _model$range === void 0 ? {} : _model$range,
104
+ correctAnswer = model.correctAnswer,
105
+ changeInteractiveEnabled = model.changeInteractiveEnabled,
106
+ changeEditableEnabled = model.changeEditableEnabled;
107
+ var size = model.graph;
108
+
109
+ var _ref = chartDimensions || {},
110
+ showInConfigPanel = _ref.showInConfigPanel,
111
+ width = _ref.width,
112
+ height = _ref.height;
113
+
114
+ var widthConstraints = {
115
+ min: width !== null && width !== void 0 && width.min ? Math.max(50, width.min) : 50,
116
+ max: width !== null && width !== void 0 && width.max ? Math.min(700, width.max) : 700,
117
+ step: (width === null || width === void 0 ? void 0 : width.step) >= 1 ? Math.min(200, width.step) : 20
118
+ };
119
+ var heightConstraints = {
120
+ min: height !== null && height !== void 0 && height.min ? Math.max(400, height.min) : 400,
121
+ max: height !== null && height !== void 0 && height.max ? Math.min(700, height.max) : 700,
122
+ step: (height === null || height === void 0 ? void 0 : height.step) >= 1 ? Math.min(200, height.step) : 20
123
+ };
124
+ var gridOptions = gridValues && gridValues.range ? {
125
+ customValues: gridValues.range
126
+ } : {
127
+ min: 0,
128
+ max: 10000
129
+ };
130
+ var labelOptions = labelValues && labelValues.range ? {
131
+ customValues: labelValues.range
132
+ } : {
133
+ min: 0,
134
+ max: 10000
135
+ };
136
+
137
+ var stepConfig = /*#__PURE__*/_react["default"].createElement("div", {
138
+ className: classes.rowView
139
+ }, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, (0, _extends2["default"])({
140
+ className: classes.mediumTextField,
141
+ label: "Grid Interval",
142
+ value: range.step,
143
+ variant: "outlined",
144
+ onChange: function onChange(e, v) {
145
+ return onRangeChanged('step', v, e);
146
+ }
147
+ }, gridOptions)), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, (0, _extends2["default"])({
148
+ className: classes.mediumTextField,
149
+ label: 'Label Interval',
150
+ value: range.labelStep,
151
+ variant: 'outlined',
152
+ onChange: function onChange(e, v) {
153
+ return onRangeChanged('labelStep', v, e);
154
+ }
155
+ }, labelOptions)));
156
+
157
+ var handleAlertDialog = function handleAlertDialog(openStatus, callback) {
158
+ setAlertDialog(function (prevState) {
159
+ return _objectSpread(_objectSpread({}, prevState), {}, {
160
+ open: openStatus
161
+ });
162
+ }, function () {
163
+ if (callback) {
164
+ callback();
165
+ }
166
+ });
167
+ setOpen(openStatus);
168
+ };
169
+
170
+ var setPropertiesToFalse = function setPropertiesToFalse(data, property) {
171
+ return data.map(function (obj) {
172
+ if (obj.hasOwnProperty(property)) {
173
+ obj[property] = property == 'interactive' ? true : false;
174
+ }
175
+
176
+ return obj;
177
+ });
178
+ };
179
+
180
+ var removeOutOfRangeValues = function removeOutOfRangeValues(updateModel) {
181
+ var correctAnswer = model.correctAnswer,
182
+ data = model.data;
183
+
184
+ if (changeInteractiveEnabled === false) {
185
+ setPropertiesToFalse(data, 'interactive');
186
+ }
187
+
188
+ if (changeEditableEnabled === false) {
189
+ setPropertiesToFalse(data, 'editable');
190
+ }
191
+
192
+ resetValues(data, updateModel, range, onChange, model);
193
+ resetValues(correctAnswer.data, false, range, onChange, model);
194
+ };
195
+
196
+ var setCategoryDefaultLabel = function setCategoryDefaultLabel() {
197
+ var studentCategoryDefaultLabel = studentNewCategoryDefaultLabel === null || studentNewCategoryDefaultLabel === void 0 ? void 0 : studentNewCategoryDefaultLabel.label;
198
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
199
+ studentCategoryDefaultLabel: studentCategoryDefaultLabel
200
+ }));
201
+ };
202
+
203
+ var rangeProps = function rangeProps(chartType) {
204
+ return chartType.includes('Plot') ? {
205
+ min: 3,
206
+ max: 10
207
+ } : {
208
+ min: 0.05,
209
+ max: 10000
210
+ };
211
+ };
212
+
213
+ var onSizeChanged = function onSizeChanged(key, value) {
214
+ var graph = _objectSpread(_objectSpread({}, size), {}, (0, _defineProperty2["default"])({}, key, value));
215
+
216
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
217
+ graph: graph
218
+ }));
219
+ };
220
+
221
+ var isOutOfRange = function isOutOfRange(data, range) {
222
+ return (data || []).find(function (d) {
223
+ return d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0;
224
+ });
225
+ };
226
+
227
+ var onRangeChanged = function onRangeChanged(key, value, e) {
228
+ // use reset values to restore range to initial values
229
+ setResetValue(range[key]);
230
+ setRangeKey(key);
231
+ range[key] = value;
232
+
233
+ if (key === 'max' || key === 'step') {
234
+ // check if current chart values are invalid for given range step/max
235
+ var outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);
236
+
237
+ if (outOfRange && JSON.stringify(e) !== '{}') {
238
+ setOpen(true);
239
+ } else {
240
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
241
+ range: range
242
+ }));
243
+ }
244
+ } else {
245
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
246
+ range: range
247
+ }));
248
+ }
249
+ };
250
+
251
+ (0, _react.useEffect)(function () {
252
+ removeOutOfRangeValues(true);
253
+ setCategoryDefaultLabel();
254
+ }, []);
255
+ (0, _react.useEffect)(function () {
256
+ if (open) {
257
+ setAlertDialog({
258
+ open: true,
259
+ title: 'Warning',
260
+ text: 'This change will remove values defined for one or more categories',
261
+ onConfirm: function onConfirm() {
262
+ removeOutOfRangeValues();
263
+ handleAlertDialog(false, onChange(_objectSpread(_objectSpread({}, model), {}, {
264
+ range: range,
265
+ correctAnswer: correctAnswer
266
+ })));
267
+ },
268
+ onClose: function onClose() {
269
+ range[rangeKey] = resetValue;
270
+ handleAlertDialog(false);
271
+ }
272
+ });
273
+ }
274
+ }, [open]);
275
+ var isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;
276
+
277
+ var getPlotConfiguration = function getPlotConfiguration() {
278
+ rangeProps.min = 3;
279
+ rangeProps.max = 10;
280
+ range.max = 10;
281
+ range.step = 1;
282
+ range.labelStep = 1;
283
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
284
+ range: range
285
+ }));
286
+ };
287
+
288
+ var onChartTypeChange = function onChartTypeChange(chartType) {
289
+ if (chartType.includes('Plot')) {
290
+ // The selected chart type does not support the current chart configuration
291
+ if (!isValidPlot) {
292
+ setAlertDialog({
293
+ open: true,
294
+ title: 'Warning',
295
+ text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',
296
+ onConfirm: function onConfirm() {
297
+ getPlotConfiguration();
298
+ removeOutOfRangeValues();
299
+ handleAlertDialog(false, onChange(_objectSpread(_objectSpread({}, model), {}, {
300
+ range: range,
301
+ chartType: chartType
302
+ })));
303
+ },
304
+ onClose: function onClose() {
305
+ handleAlertDialog(false);
306
+ }
307
+ });
308
+ return;
309
+ }
310
+
311
+ rangeProps.min = 3;
312
+ rangeProps.max = 10;
313
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
314
+ chartType: chartType
315
+ }));
316
+ return;
317
+ }
318
+
319
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
320
+ chartType: chartType
321
+ }));
322
+ };
323
+
324
+ return /*#__PURE__*/_react["default"].createElement("div", {
325
+ className: classes.wrapper
326
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
327
+ variant: 'subtitle1'
328
+ }, "Configure Chart"), /*#__PURE__*/_react["default"].createElement("div", {
329
+ className: classes.content
330
+ }, /*#__PURE__*/_react["default"].createElement("div", {
331
+ className: classes.rowView
332
+ }, /*#__PURE__*/_react["default"].createElement(_chartType["default"], {
333
+ value: model.chartType,
334
+ onChange: function onChange(e) {
335
+ return onChartTypeChange(e.target.value);
336
+ },
337
+ availableChartTypes: availableChartTypes,
338
+ chartTypeLabel: chartTypeLabel
339
+ }), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
340
+ className: classes.mediumTextField,
341
+ label: "Max Value",
342
+ value: range.max,
343
+ min: rangeProps(model.chartType).min,
344
+ max: rangeProps(model.chartType).max,
345
+ variant: "outlined",
346
+ onChange: function onChange(e, v) {
347
+ return onRangeChanged('max', v, e);
348
+ }
349
+ })), !model.chartType.includes('Plot') && stepConfig, showInConfigPanel && /*#__PURE__*/_react["default"].createElement("div", {
350
+ className: classes.dimensions
351
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Dimensions(px)")), /*#__PURE__*/_react["default"].createElement("div", {
352
+ className: classes.columnView
353
+ }, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
354
+ className: classes.textField,
355
+ label: 'Width',
356
+ value: size.width,
357
+ min: widthConstraints.min,
358
+ max: widthConstraints.max,
359
+ step: widthConstraints.step,
360
+ variant: 'outlined',
361
+ onChange: function onChange(e, v) {
362
+ return onSizeChanged('width', v);
363
+ }
364
+ }), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
365
+ className: classes.disabled
366
+ }, "Min 50, Max 700")), /*#__PURE__*/_react["default"].createElement("div", {
367
+ className: classes.columnView
368
+ }, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
369
+ className: classes.textField,
370
+ label: 'Height',
371
+ value: size.height,
372
+ min: heightConstraints.min,
373
+ max: heightConstraints.max,
374
+ step: heightConstraints.step,
375
+ variant: 'outlined',
376
+ onChange: function onChange(e, v) {
377
+ return onSizeChanged('height', v);
378
+ }
379
+ }), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
380
+ className: classes.disabled
381
+ }, "Min 400, Max 700")))), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
382
+ open: alertDialog.open,
383
+ title: alertDialog.title,
384
+ text: alertDialog.text,
385
+ onClose: alertDialog.onClose,
386
+ onConfirm: alertDialog.onConfirm
387
+ }));
388
+ };
389
+
390
+ ConfigureChartPanel.propTypes = {
391
+ classes: _propTypes["default"].object,
392
+ chartDimensions: _propTypes["default"].object,
393
+ domain: _propTypes["default"].object,
394
+ gridValues: _propTypes["default"].object,
395
+ labelValues: _propTypes["default"].object,
396
+ model: _propTypes["default"].object,
397
+ onChange: _propTypes["default"].func,
398
+ range: _propTypes["default"].object,
399
+ chartDimension: _propTypes["default"].object,
400
+ size: _propTypes["default"].object,
401
+ studentNewCategoryDefaultLabel: _propTypes["default"].object,
402
+ availableChartTypes: _propTypes["default"].object,
403
+ chartTypeLabel: _propTypes["default"].string
404
+ };
405
+
406
+ var styles = function styles(theme) {
407
+ return {
408
+ wrapper: {
409
+ width: '450px'
410
+ },
411
+ content: {
412
+ display: 'flex',
413
+ flexDirection: 'column',
414
+ width: '100%',
415
+ marginTop: theme.spacing.unit * 3
416
+ },
417
+ columnView: {
418
+ display: 'flex',
419
+ flexDirection: 'column',
420
+ alignItems: 'center'
421
+ },
422
+ rowView: {
423
+ display: 'flex',
424
+ justifyContent: 'space-around',
425
+ alignItems: 'center'
426
+ },
427
+ textField: {
428
+ width: '130px',
429
+ margin: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit / 2, "px")
430
+ },
431
+ mediumTextField: {
432
+ width: '160px',
433
+ margin: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit / 2, "px")
434
+ },
435
+ largeTextField: {
436
+ width: '230px',
437
+ margin: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit / 2, "px")
438
+ },
439
+ text: {
440
+ fontStyle: 'italic',
441
+ margin: "".concat(theme.spacing.unit, "px 0")
442
+ },
443
+ dimensions: {
444
+ display: 'flex',
445
+ justifyContent: 'space-between',
446
+ alignItems: 'center',
447
+ margin: "".concat(theme.spacing.unit * 3, "px 0")
448
+ },
449
+ disabled: {
450
+ color: _renderUi.color.disabled()
451
+ }
452
+ };
453
+ };
454
+
455
+ var _default = (0, _styles.withStyles)(styles)(ConfigureChartPanel);
456
+
457
+ exports["default"] = _default;
458
+ //# sourceMappingURL=chart-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chart-setup.jsx"],"names":["resetValues","data","updateModel","range","onChange","model","forEach","d","d_value_scaled","Math","round","value","range_step_scaled","step","remainder_scaled","remainder","max","ConfigureChartPanel","props","classes","chartDimensions","gridValues","labelValues","studentNewCategoryDefaultLabel","availableChartTypes","chartTypeLabel","open","title","text","onClose","onConfirm","alertDialog","setAlertDialog","setOpen","rangeKey","setRangeKey","resetValue","setResetValue","correctAnswer","changeInteractiveEnabled","changeEditableEnabled","size","graph","showInConfigPanel","width","height","widthConstraints","min","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","rowView","mediumTextField","e","v","onRangeChanged","labelStep","handleAlertDialog","openStatus","callback","prevState","setPropertiesToFalse","property","map","obj","hasOwnProperty","removeOutOfRangeValues","setCategoryDefaultLabel","studentCategoryDefaultLabel","label","rangeProps","chartType","includes","onSizeChanged","key","isOutOfRange","find","floor","outOfRange","JSON","stringify","isValidPlot","getPlotConfiguration","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","func","chartDimension","string","styles","theme","display","flexDirection","marginTop","spacing","unit","alignItems","justifyContent","margin","largeTextField","fontStyle","color"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ChartType from './chart-type';\nimport { NumberTextFieldCustom } from '@pie-lib/config-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nexport const resetValues = (data, updateModel, range, onChange, model) => {\n (data || []).forEach((d) => {\n const d_value_scaled = Math.round(d.value * 10);\n const range_step_scaled = Math.round(range.step * 10);\n const remainder_scaled = d_value_scaled % range_step_scaled;\n const remainder = remainder_scaled / 10;\n\n if (d.value > range.max || remainder !== 0) {\n d.value = 0;\n }\n });\n\n if (updateModel) {\n onChange({ ...model, data });\n }\n};\n\nconst ConfigureChartPanel = (props) => {\n const {\n classes,\n model,\n onChange,\n chartDimensions,\n gridValues = {},\n labelValues = {},\n studentNewCategoryDefaultLabel = {},\n availableChartTypes = {},\n chartTypeLabel,\n } = props;\n const [alertDialog, setAlertDialog] = useState({\n open: false,\n title: '',\n text: '',\n onClose: null,\n onConfirm: null,\n });\n const [open, setOpen] = useState(false);\n const [rangeKey, setRangeKey] = useState('');\n const [resetValue, setResetValue] = useState(0);\n\n const { range = {}, correctAnswer, changeInteractiveEnabled, changeEditableEnabled } = model;\n\n const size = model.graph;\n const { showInConfigPanel, width, height } = chartDimensions || {};\n\n const widthConstraints = {\n min: width?.min ? Math.max(50, width.min) : 50,\n max: width?.max ? Math.min(700, width.max) : 700,\n step: width?.step >= 1 ? Math.min(200, width.step) : 20,\n };\n const heightConstraints = {\n min: height?.min ? Math.max(400, height.min) : 400,\n max: height?.max ? Math.min(700, height.max) : 700,\n step: height?.step >= 1 ? Math.min(200, height.step) : 20,\n };\n\n const gridOptions = gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };\n const labelOptions = labelValues && labelValues.range ? { customValues: labelValues.range } : { min: 0, max: 10000 };\n\n const stepConfig = (\n <div className={classes.rowView}>\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Grid Interval\"\n value={range.step}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('step', v, e)}\n {...gridOptions}\n />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={'Label Interval'}\n value={range.labelStep}\n variant={'outlined'}\n onChange={(e, v) => onRangeChanged('labelStep', v, e)}\n {...labelOptions}\n />\n </div>\n );\n\n const handleAlertDialog = (openStatus, callback) => {\n setAlertDialog(\n (prevState) => ({\n ...prevState,\n open: openStatus,\n }),\n () => {\n if (callback) {\n callback();\n }\n },\n );\n\n setOpen(openStatus);\n };\n\n const setPropertiesToFalse = (data, property) => {\n return data.map((obj) => {\n if (obj.hasOwnProperty(property)) {\n obj[property] = property == 'interactive' ? true : false;\n }\n return obj;\n });\n };\n\n const removeOutOfRangeValues = (updateModel) => {\n const { correctAnswer, data } = model;\n\n if (changeInteractiveEnabled === false) {\n setPropertiesToFalse(data, 'interactive');\n }\n\n if (changeEditableEnabled === false) {\n setPropertiesToFalse(data, 'editable');\n }\n\n resetValues(data, updateModel, range, onChange, model);\n resetValues(correctAnswer.data, false, range, onChange, model);\n };\n\n const setCategoryDefaultLabel = () => {\n const studentCategoryDefaultLabel = studentNewCategoryDefaultLabel?.label;\n\n onChange({ ...model, studentCategoryDefaultLabel });\n };\n\n const rangeProps = (chartType) => {\n return chartType.includes('Plot') ? { min: 3, max: 10 } : { min: 0.05, max: 10000 };\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n onChange({ ...model, graph });\n };\n\n const isOutOfRange = (data, range) =>\n (data || []).find((d) => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0);\n\n const onRangeChanged = (key, value, e) => {\n // use reset values to restore range to initial values\n setResetValue(range[key]);\n setRangeKey(key);\n\n range[key] = value;\n\n if (key === 'max' || key === 'step') {\n // check if current chart values are invalid for given range step/max\n const outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);\n\n if (outOfRange && JSON.stringify(e) !== '{}') {\n setOpen(true);\n } else {\n onChange({ ...model, range });\n }\n } else {\n onChange({ ...model, range });\n }\n };\n\n useEffect(() => {\n removeOutOfRangeValues(true);\n setCategoryDefaultLabel();\n }, []);\n\n useEffect(() => {\n if (open) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'This change will remove values defined for one or more categories',\n onConfirm: () => {\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, correctAnswer }));\n },\n onClose: () => {\n range[rangeKey] = resetValue;\n handleAlertDialog(false);\n },\n });\n }\n }, [open]);\n\n const isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;\n\n const getPlotConfiguration = () => {\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n range.max = 10;\n range.step = 1;\n range.labelStep = 1;\n\n onChange({ ...model, range });\n };\n\n const onChartTypeChange = (chartType) => {\n if (chartType.includes('Plot')) {\n // The selected chart type does not support the current chart configuration\n if (!isValidPlot) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',\n onConfirm: () => {\n getPlotConfiguration();\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, chartType }));\n },\n onClose: () => {\n handleAlertDialog(false);\n },\n });\n\n return;\n }\n\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n onChange({ ...model, chartType });\n\n return;\n }\n\n onChange({ ...model, chartType });\n };\n\n return (\n <div className={classes.wrapper}>\n <Typography variant={'subtitle1'}>Configure Chart</Typography>\n <div className={classes.content}>\n <div className={classes.rowView}>\n <ChartType\n value={model.chartType}\n onChange={(e) => onChartTypeChange(e.target.value)}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Max Value\"\n value={range.max}\n min={rangeProps(model.chartType).min}\n max={rangeProps(model.chartType).max}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('max', v, e)}\n />\n </div>\n {!model.chartType.includes('Plot') && stepConfig}\n\n {showInConfigPanel && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Width'}\n value={size.width}\n min={widthConstraints.min}\n max={widthConstraints.max}\n step={widthConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <Typography className={classes.disabled}>Min 50, Max 700</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Height'}\n value={size.height}\n min={heightConstraints.min}\n max={heightConstraints.max}\n step={heightConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n <Typography className={classes.disabled}>Min 400, Max 700</Typography>\n </div>\n </div>\n )}\n </div>\n\n <AlertDialog\n open={alertDialog.open}\n title={alertDialog.title}\n text={alertDialog.text}\n onClose={alertDialog.onClose}\n onConfirm={alertDialog.onConfirm}\n />\n </div>\n );\n};\n\nConfigureChartPanel.propTypes = {\n classes: PropTypes.object,\n chartDimensions: PropTypes.object,\n domain: PropTypes.object,\n gridValues: PropTypes.object,\n labelValues: PropTypes.object,\n model: PropTypes.object,\n onChange: PropTypes.func,\n range: PropTypes.object,\n chartDimension: PropTypes.object,\n size: PropTypes.object,\n studentNewCategoryDefaultLabel: PropTypes.object,\n availableChartTypes: PropTypes.object,\n chartTypeLabel: PropTypes.string,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: `${theme.spacing.unit * 3}px 0`,\n },\n disabled: {\n color: color.disabled(),\n },\n});\n\nexport default withStyles(styles)(ConfigureChartPanel);\n"],"file":"chart-setup.js"}
@@ -0,0 +1,71 @@
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 _styles = require("@material-ui/core/styles");
13
+
14
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
15
+
16
+ var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
17
+
18
+ var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
19
+
20
+ var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
21
+
22
+ var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
23
+
24
+ var ChartType = (0, _styles.withStyles)(function () {
25
+ return {
26
+ chartType: {
27
+ width: '160px'
28
+ },
29
+ chartTypeLabel: {
30
+ backgroundColor: 'transparent'
31
+ }
32
+ };
33
+ })(function (_ref) {
34
+ var onChange = _ref.onChange,
35
+ value = _ref.value,
36
+ classes = _ref.classes,
37
+ availableChartTypes = _ref.availableChartTypes,
38
+ chartTypeLabel = _ref.chartTypeLabel;
39
+ return /*#__PURE__*/_react["default"].createElement("div", {
40
+ className: classes.chartType
41
+ }, /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
42
+ variant: 'outlined',
43
+ className: classes.chartType
44
+ }, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
45
+ id: "type-helper-label",
46
+ className: classes.chartTypeLabel
47
+ }, chartTypeLabel), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
48
+ labelId: "type-helper-label",
49
+ value: value,
50
+ onChange: onChange,
51
+ input: /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
52
+ labelWidth: 75,
53
+ name: "type"
54
+ })
55
+ }, (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.histogram) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
56
+ value: 'histogram'
57
+ }, availableChartTypes.histogram), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.bar) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
58
+ value: 'bar'
59
+ }, availableChartTypes.bar), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.lineDot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
60
+ value: 'lineDot'
61
+ }, availableChartTypes.lineDot), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.lineCross) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
62
+ value: 'lineCross'
63
+ }, availableChartTypes.lineCross), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.dotPlot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
64
+ value: 'dotPlot'
65
+ }, availableChartTypes.dotPlot), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.linePlot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
66
+ value: 'linePlot'
67
+ }, availableChartTypes.linePlot))));
68
+ });
69
+ var _default = ChartType;
70
+ exports["default"] = _default;
71
+ //# sourceMappingURL=chart-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chart-type.js"],"names":["ChartType","chartType","width","chartTypeLabel","backgroundColor","onChange","value","classes","availableChartTypes","histogram","bar","lineDot","lineCross","dotPlot","linePlot"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,wBAAW;AAAA,SAAO;AAClCC,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAE;AADE,KADuB;AAIlCC,IAAAA,cAAc,EAAE;AACdC,MAAAA,eAAe,EAAE;AADH;AAJkB,GAAP;AAAA,CAAX,EAOd;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAaC,KAAb,QAAaA,KAAb;AAAA,MAAoBC,OAApB,QAAoBA,OAApB;AAAA,MAA6BC,mBAA7B,QAA6BA,mBAA7B;AAAA,MAAkDL,cAAlD,QAAkDA,cAAlD;AAAA,sBACF;AAAK,IAAA,SAAS,EAAEI,OAAO,CAACN;AAAxB,kBACE,gCAAC,uBAAD;AAAa,IAAA,OAAO,EAAE,UAAtB;AAAkC,IAAA,SAAS,EAAEM,OAAO,CAACN;AAArD,kBACE,gCAAC,sBAAD;AAAY,IAAA,EAAE,EAAC,mBAAf;AAAmC,IAAA,SAAS,EAAEM,OAAO,CAACJ;AAAtD,KACGA,cADH,CADF,eAIE,gCAAC,kBAAD;AACE,IAAA,OAAO,EAAC,mBADV;AAEE,IAAA,KAAK,EAAEG,KAFT;AAGE,IAAA,QAAQ,EAAED,QAHZ;AAIE,IAAA,KAAK,eAAE,gCAAC,yBAAD;AAAe,MAAA,UAAU,EAAE,EAA3B;AAA+B,MAAA,IAAI,EAAC;AAApC;AAJT,KAMG,CAAAG,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEC,SAArB,kBAAkC,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAA+BD,mBAAmB,CAACC,SAAnD,CANrC,EAOG,CAAAD,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEE,GAArB,kBAA4B,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAAyBF,mBAAmB,CAACE,GAA7C,CAP/B,EAQG,CAAAF,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEG,OAArB,kBAAgC,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAA6BH,mBAAmB,CAACG,OAAjD,CARnC,EASG,CAAAH,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEI,SAArB,kBAAkC,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAA+BJ,mBAAmB,CAACI,SAAnD,CATrC,EAUG,CAAAJ,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEK,OAArB,kBAAgC,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAA6BL,mBAAmB,CAACK,OAAjD,CAVnC,EAWG,CAAAL,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEM,QAArB,kBAAiC,gCAAC,oBAAD;AAAU,IAAA,KAAK,EAAE;AAAjB,KAA8BN,mBAAmB,CAACM,QAAlD,CAXpC,CAJF,CADF,CADE;AAAA,CAPc,CAAlB;eA8Bed,S","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\n\nconst ChartType = withStyles(() => ({\n chartType: {\n width: '160px',\n },\n chartTypeLabel: {\n backgroundColor: 'transparent',\n },\n}))(({ onChange, value, classes, availableChartTypes, chartTypeLabel }) => (\n <div className={classes.chartType}>\n <FormControl variant={'outlined'} className={classes.chartType}>\n <InputLabel id=\"type-helper-label\" className={classes.chartTypeLabel}>\n {chartTypeLabel}\n </InputLabel>\n <Select\n labelId=\"type-helper-label\"\n value={value}\n onChange={onChange}\n input={<OutlinedInput labelWidth={75} name=\"type\" />}\n >\n {availableChartTypes?.histogram && <MenuItem value={'histogram'}>{availableChartTypes.histogram}</MenuItem>}\n {availableChartTypes?.bar && <MenuItem value={'bar'}>{availableChartTypes.bar}</MenuItem>}\n {availableChartTypes?.lineDot && <MenuItem value={'lineDot'}>{availableChartTypes.lineDot}</MenuItem>}\n {availableChartTypes?.lineCross && <MenuItem value={'lineCross'}>{availableChartTypes.lineCross}</MenuItem>}\n {availableChartTypes?.dotPlot && <MenuItem value={'dotPlot'}>{availableChartTypes.dotPlot}</MenuItem>}\n {availableChartTypes?.linePlot && <MenuItem value={'linePlot'}>{availableChartTypes.linePlot}</MenuItem>}\n </Select>\n </FormControl>\n </div>\n));\n\nexport default ChartType;\n"],"file":"chart-type.js"}
@@ -0,0 +1,31 @@
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 _bar = _interopRequireDefault(require("./bars/bar"));
11
+
12
+ var _histogram = _interopRequireDefault(require("./bars/histogram"));
13
+
14
+ var _lineDot = _interopRequireDefault(require("./line/line-dot"));
15
+
16
+ var _lineCross = _interopRequireDefault(require("./line/line-cross"));
17
+
18
+ var _dot = _interopRequireDefault(require("@pie-lib/plot/dot"));
19
+
20
+ var _line = _interopRequireDefault(require("@pie-lib/plot/line"));
21
+
22
+ var _default = {
23
+ Bar: _bar["default"],
24
+ Histogram: _histogram["default"],
25
+ LineDot: _lineDot["default"],
26
+ DotPlot: _dot["default"],
27
+ LinePlot: _line["default"],
28
+ LineCross: _lineCross["default"]
29
+ };
30
+ exports["default"] = _default;
31
+ //# sourceMappingURL=chart-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chart-types.js"],"names":["Bar","Histogram","LineDot","DotPlot","LinePlot","LineCross"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAEe;AAAEA,EAAAA,GAAG,EAAHA,eAAF;AAAOC,EAAAA,SAAS,EAATA,qBAAP;AAAkBC,EAAAA,OAAO,EAAPA,mBAAlB;AAA2BC,EAAAA,OAAO,EAAPA,eAA3B;AAAoCC,EAAAA,QAAQ,EAARA,gBAApC;AAA8CC,EAAAA,SAAS,EAATA;AAA9C,C","sourcesContent":["import Bar from './bars/bar';\nimport Histogram from './bars/histogram';\nimport LineDot from './line/line-dot';\nimport LineCross from './line/line-cross';\nimport DotPlot from '@pie-lib/plot/dot';\nimport LinePlot from '@pie-lib/plot/line';\n\nexport default { Bar, Histogram, LineDot, DotPlot, LinePlot, LineCross };\n"],"file":"chart-types.js"}