@pie-lib/charting 6.1.0-next.2 → 6.1.0-next.25

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 +8 -0
  2. package/NEXT.CHANGELOG.json +16 -1
  3. package/lib/actions-button.js +150 -0
  4. package/lib/actions-button.js.map +1 -0
  5. package/lib/axes.js +609 -0
  6. package/lib/axes.js.map +1 -0
  7. package/lib/bars/bar.js +60 -0
  8. package/lib/bars/bar.js.map +1 -0
  9. package/lib/bars/common/bars.js +290 -0
  10. package/lib/bars/common/bars.js.map +1 -0
  11. package/lib/bars/common/correct-check-icon.js +55 -0
  12. package/lib/bars/common/correct-check-icon.js.map +1 -0
  13. package/lib/bars/histogram.js +61 -0
  14. package/lib/bars/histogram.js.map +1 -0
  15. package/lib/chart-setup.js +401 -0
  16. package/lib/chart-setup.js.map +1 -0
  17. package/lib/chart-type.js +81 -0
  18. package/lib/chart-type.js.map +1 -0
  19. package/lib/chart-types.js +23 -0
  20. package/lib/chart-types.js.map +1 -0
  21. package/lib/chart.js +400 -0
  22. package/lib/chart.js.map +1 -0
  23. package/lib/common/correctness-indicators.js +160 -0
  24. package/lib/common/correctness-indicators.js.map +1 -0
  25. package/lib/common/drag-handle.js +161 -0
  26. package/lib/common/drag-handle.js.map +1 -0
  27. package/lib/common/drag-icon.js +54 -0
  28. package/lib/common/drag-icon.js.map +1 -0
  29. package/lib/common/styles.js +23 -0
  30. package/lib/common/styles.js.map +1 -0
  31. package/lib/grid.js +105 -0
  32. package/lib/grid.js.map +1 -0
  33. package/lib/index.js +43 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/key-legend.js +88 -0
  36. package/lib/key-legend.js.map +1 -0
  37. package/lib/line/common/drag-handle.js +148 -0
  38. package/lib/line/common/drag-handle.js.map +1 -0
  39. package/lib/line/common/line.js +231 -0
  40. package/lib/line/common/line.js.map +1 -0
  41. package/lib/line/line-cross.js +230 -0
  42. package/lib/line/line-cross.js.map +1 -0
  43. package/lib/line/line-dot.js +160 -0
  44. package/lib/line/line-dot.js.map +1 -0
  45. package/lib/mark-label.js +257 -0
  46. package/lib/mark-label.js.map +1 -0
  47. package/lib/plot/common/plot.js +361 -0
  48. package/lib/plot/common/plot.js.map +1 -0
  49. package/lib/plot/dot.js +113 -0
  50. package/lib/plot/dot.js.map +1 -0
  51. package/lib/plot/line.js +143 -0
  52. package/lib/plot/line.js.map +1 -0
  53. package/lib/tool-menu.js +117 -0
  54. package/lib/tool-menu.js.map +1 -0
  55. package/lib/utils.js +201 -0
  56. package/lib/utils.js.map +1 -0
  57. package/package.json +11 -11
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.reflect.construct.js");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports["default"] = exports.Histogram = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+ var _plot = require("@pie-lib/plot");
20
+ var _utils = require("../utils");
21
+ var _bars = _interopRequireDefault(require("./common/bars"));
22
+ 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)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
+ var Histogram = exports.Histogram = /*#__PURE__*/function (_React$Component) {
25
+ function Histogram() {
26
+ (0, _classCallCheck2["default"])(this, Histogram);
27
+ return _callSuper(this, Histogram, arguments);
28
+ }
29
+ (0, _inherits2["default"])(Histogram, _React$Component);
30
+ return (0, _createClass2["default"])(Histogram, [{
31
+ key: "render",
32
+ value: function render() {
33
+ var props = this.props;
34
+ var data = props.data,
35
+ graphProps = props.graphProps;
36
+ var _ref = graphProps || {},
37
+ _ref$scale = _ref.scale,
38
+ scale = _ref$scale === void 0 ? {} : _ref$scale,
39
+ _ref$size = _ref.size,
40
+ size = _ref$size === void 0 ? {} : _ref$size;
41
+ var xBand = (0, _utils.dataToXBand)(scale.x, data, size.width, 'histogram');
42
+ return /*#__PURE__*/_react["default"].createElement(_bars["default"], (0, _extends2["default"])({}, props, {
43
+ xBand: xBand,
44
+ histogram: true
45
+ }));
46
+ }
47
+ }]);
48
+ }(_react["default"].Component);
49
+ (0, _defineProperty2["default"])(Histogram, "propTypes", {
50
+ data: _propTypes["default"].array,
51
+ onChange: _propTypes["default"].func,
52
+ graphProps: _plot.types.GraphPropsType.isRequired
53
+ });
54
+ var _default = exports["default"] = function _default() {
55
+ return {
56
+ type: 'histogram',
57
+ Component: Histogram,
58
+ name: 'Histogram'
59
+ };
60
+ };
61
+ //# sourceMappingURL=histogram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"histogram.js","names":["_react","_interopRequireDefault","require","_propTypes","_plot","_utils","_bars","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","Histogram","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","props","data","graphProps","_ref","_ref$scale","scale","_ref$size","size","xBand","dataToXBand","x","width","createElement","_extends2","histogram","React","Component","_defineProperty2","PropTypes","array","onChange","func","types","GraphPropsType","isRequired","_default","type","name"],"sources":["../../src/bars/histogram.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { dataToXBand } from '../utils';\nimport Bars from './common/bars';\n\nexport class Histogram extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const props = this.props;\n const { data, graphProps } = props;\n const { scale = {}, size = {} } = graphProps || {};\n const xBand = dataToXBand(scale.x, data, size.width, 'histogram');\n\n return <Bars {...props} xBand={xBand} histogram={true} />;\n }\n}\n\nexport default () => ({\n type: 'histogram',\n Component: Histogram,\n name: 'Histogram',\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAiC,SAAAK,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;AAAA,IAEpBc,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAAAE,gBAAA;EAAA,SAAAF,UAAA;IAAA,IAAAG,gBAAA,mBAAAH,SAAA;IAAA,OAAAf,UAAA,OAAAe,SAAA,EAAAI,SAAA;EAAA;EAAA,IAAAC,UAAA,aAAAL,SAAA,EAAAE,gBAAA;EAAA,WAAAI,aAAA,aAAAN,SAAA;IAAAO,GAAA;IAAAC,KAAA,EAOpB,SAAAC,MAAMA,CAAA,EAAG;MACP,IAAMC,KAAK,GAAG,IAAI,CAACA,KAAK;MACxB,IAAQC,IAAI,GAAiBD,KAAK,CAA1BC,IAAI;QAAEC,UAAU,GAAKF,KAAK,CAApBE,UAAU;MACxB,IAAAC,IAAA,GAAkCD,UAAU,IAAI,CAAC,CAAC;QAAAE,UAAA,GAAAD,IAAA,CAA1CE,KAAK;QAALA,KAAK,GAAAD,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;QAAAE,SAAA,GAAAH,IAAA,CAAEI,IAAI;QAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,CAAC,GAAAA,SAAA;MAC7B,IAAME,KAAK,GAAG,IAAAC,kBAAW,EAACJ,KAAK,CAACK,CAAC,EAAET,IAAI,EAAEM,IAAI,CAACI,KAAK,EAAE,WAAW,CAAC;MAEjE,oBAAO3C,MAAA,YAAA4C,aAAA,CAACtC,KAAA,WAAI,MAAAuC,SAAA,iBAAKb,KAAK;QAAEQ,KAAK,EAAEA,KAAM;QAACM,SAAS,EAAE;MAAK,EAAE,CAAC;IAC3D;EAAC;AAAA,EAd4BC,iBAAK,CAACC,SAAS;AAAA,IAAAC,gBAAA,aAAjC3B,SAAS,eACD;EACjBW,IAAI,EAAEiB,qBAAS,CAACC,KAAK;EACrBC,QAAQ,EAAEF,qBAAS,CAACG,IAAI;EACxBnB,UAAU,EAAEoB,WAAK,CAACC,cAAc,CAACC;AACnC,CAAC;AAAA,IAAAC,QAAA,GAAAlC,OAAA,cAYY,SAAAkC,SAAA;EAAA,OAAO;IACpBC,IAAI,EAAE,WAAW;IACjBV,SAAS,EAAE1B,SAAS;IACpBqC,IAAI,EAAE;EACR,CAAC;AAAA,CAAC","ignoreList":[]}
@@ -0,0 +1,401 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.iterator.js");
6
+ require("core-js/modules/es.object.define-properties.js");
7
+ require("core-js/modules/es.object.define-property.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
10
+ require("core-js/modules/es.object.keys.js");
11
+ require("core-js/modules/es.string.iterator.js");
12
+ require("core-js/modules/es.weak-map.js");
13
+ require("core-js/modules/web.dom-collections.iterator.js");
14
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
15
+ var _typeof = require("@babel/runtime/helpers/typeof");
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.resetValues = exports["default"] = void 0;
20
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
21
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+ require("core-js/modules/es.array.concat.js");
24
+ require("core-js/modules/es.array.find.js");
25
+ require("core-js/modules/es.array.for-each.js");
26
+ require("core-js/modules/es.array.includes.js");
27
+ require("core-js/modules/es.array.map.js");
28
+ require("core-js/modules/es.object.to-string.js");
29
+ require("core-js/modules/es.string.includes.js");
30
+ require("core-js/modules/web.dom-collections.for-each.js");
31
+ var _react = _interopRequireWildcard(require("react"));
32
+ var _propTypes = _interopRequireDefault(require("prop-types"));
33
+ var _renderUi = require("@pie-lib/render-ui");
34
+ var _styles = require("@mui/material/styles");
35
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
36
+ var _chartType = _interopRequireDefault(require("./chart-type"));
37
+ var _configUi = require("@pie-lib/config-ui");
38
+ 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); }
39
+ 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; }
40
+ 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; }
41
+ var resetValues = exports.resetValues = function resetValues(data, updateModel, range, onChange, model) {
42
+ (data || []).forEach(function (d) {
43
+ var d_value_scaled = Math.round(d.value * 10);
44
+ var range_step_scaled = Math.round(range.step * 10);
45
+ var remainder_scaled = d_value_scaled % range_step_scaled;
46
+ var remainder = remainder_scaled / 10;
47
+ if (d.value > range.max || remainder !== 0) {
48
+ d.value = 0;
49
+ }
50
+ });
51
+ if (updateModel) {
52
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
53
+ data: data
54
+ }));
55
+ }
56
+ };
57
+ var StyledWrapper = (0, _styles.styled)('div')(function () {
58
+ return {
59
+ width: '450px'
60
+ };
61
+ });
62
+ var StyledContent = (0, _styles.styled)('div')(function (_ref) {
63
+ var theme = _ref.theme;
64
+ return {
65
+ display: 'flex',
66
+ flexDirection: 'column',
67
+ width: '100%',
68
+ marginTop: theme.spacing(3)
69
+ };
70
+ });
71
+ var StyledColumnView = (0, _styles.styled)('div')(function () {
72
+ return {
73
+ display: 'flex',
74
+ flexDirection: 'column',
75
+ alignItems: 'center'
76
+ };
77
+ });
78
+ var StyledRowView = (0, _styles.styled)('div')(function () {
79
+ return {
80
+ display: 'flex',
81
+ justifyContent: 'space-around',
82
+ alignItems: 'center'
83
+ };
84
+ });
85
+ var StyledTextField = (0, _styles.styled)(_configUi.NumberTextFieldCustom)(function (_ref2) {
86
+ var theme = _ref2.theme;
87
+ return {
88
+ width: '130px',
89
+ margin: "".concat(theme.spacing(1), " ").concat(theme.spacing(0.5))
90
+ };
91
+ });
92
+ var StyledMediumTextField = (0, _styles.styled)(_configUi.NumberTextFieldCustom)(function (_ref3) {
93
+ var theme = _ref3.theme;
94
+ return {
95
+ width: '160px',
96
+ margin: "".concat(theme.spacing(1), " ").concat(theme.spacing(0.5))
97
+ };
98
+ });
99
+ var StyledDimensions = (0, _styles.styled)('div')(function (_ref4) {
100
+ var theme = _ref4.theme;
101
+ return {
102
+ display: 'flex',
103
+ justifyContent: 'space-between',
104
+ alignItems: 'center',
105
+ margin: "".concat(theme.spacing(3), " 0")
106
+ };
107
+ });
108
+ var StyledDisabled = (0, _styles.styled)(_Typography["default"])(function () {
109
+ return {
110
+ color: _renderUi.color.disabled()
111
+ };
112
+ });
113
+ var ConfigureChartPanel = function ConfigureChartPanel(props) {
114
+ var model = props.model,
115
+ onChange = props.onChange,
116
+ chartDimensions = props.chartDimensions,
117
+ _props$gridValues = props.gridValues,
118
+ gridValues = _props$gridValues === void 0 ? {} : _props$gridValues,
119
+ _props$labelValues = props.labelValues,
120
+ labelValues = _props$labelValues === void 0 ? {} : _props$labelValues,
121
+ _props$studentNewCate = props.studentNewCategoryDefaultLabel,
122
+ studentNewCategoryDefaultLabel = _props$studentNewCate === void 0 ? {} : _props$studentNewCate,
123
+ _props$availableChart = props.availableChartTypes,
124
+ availableChartTypes = _props$availableChart === void 0 ? {} : _props$availableChart,
125
+ chartTypeLabel = props.chartTypeLabel;
126
+ var _useState = (0, _react.useState)({
127
+ open: false,
128
+ title: '',
129
+ text: '',
130
+ onClose: null,
131
+ onConfirm: null
132
+ }),
133
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
134
+ alertDialog = _useState2[0],
135
+ setAlertDialog = _useState2[1];
136
+ var _useState3 = (0, _react.useState)(false),
137
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
138
+ open = _useState4[0],
139
+ setOpen = _useState4[1];
140
+ var _useState5 = (0, _react.useState)(''),
141
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
142
+ rangeKey = _useState6[0],
143
+ setRangeKey = _useState6[1];
144
+ var _useState7 = (0, _react.useState)(0),
145
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
146
+ resetValue = _useState8[0],
147
+ setResetValue = _useState8[1];
148
+ var _model$range = model.range,
149
+ range = _model$range === void 0 ? {} : _model$range,
150
+ correctAnswer = model.correctAnswer,
151
+ changeInteractiveEnabled = model.changeInteractiveEnabled,
152
+ changeEditableEnabled = model.changeEditableEnabled;
153
+ var size = model.graph;
154
+ var _ref5 = chartDimensions || {},
155
+ showInConfigPanel = _ref5.showInConfigPanel,
156
+ width = _ref5.width,
157
+ height = _ref5.height;
158
+ var widthConstraints = {
159
+ min: width !== null && width !== void 0 && width.min ? Math.max(50, width.min) : 50,
160
+ max: width !== null && width !== void 0 && width.max ? Math.min(700, width.max) : 700,
161
+ step: (width === null || width === void 0 ? void 0 : width.step) >= 1 ? Math.min(200, width.step) : 20
162
+ };
163
+ var heightConstraints = {
164
+ min: height !== null && height !== void 0 && height.min ? Math.max(400, height.min) : 400,
165
+ max: height !== null && height !== void 0 && height.max ? Math.min(700, height.max) : 700,
166
+ step: (height === null || height === void 0 ? void 0 : height.step) >= 1 ? Math.min(200, height.step) : 20
167
+ };
168
+ var gridOptions = gridValues && gridValues.range ? {
169
+ customValues: gridValues.range
170
+ } : {
171
+ min: 0,
172
+ max: 10000
173
+ };
174
+ var labelOptions = labelValues && labelValues.range ? {
175
+ customValues: labelValues.range
176
+ } : {
177
+ min: 0,
178
+ max: 10000
179
+ };
180
+ var stepConfig = /*#__PURE__*/_react["default"].createElement(StyledRowView, null, /*#__PURE__*/_react["default"].createElement(StyledMediumTextField, (0, _extends2["default"])({
181
+ label: "Grid Interval",
182
+ value: range.step,
183
+ variant: "outlined",
184
+ onChange: function onChange(e, v) {
185
+ return onRangeChanged('step', v, e);
186
+ }
187
+ }, gridOptions)), /*#__PURE__*/_react["default"].createElement(StyledMediumTextField, (0, _extends2["default"])({
188
+ label: 'Label Interval',
189
+ value: range.labelStep,
190
+ variant: 'outlined',
191
+ onChange: function onChange(e, v) {
192
+ return onRangeChanged('labelStep', v, e);
193
+ }
194
+ }, labelOptions)));
195
+ var handleAlertDialog = function handleAlertDialog(openStatus) {
196
+ setAlertDialog(function (prevState) {
197
+ return _objectSpread(_objectSpread({}, prevState), {}, {
198
+ open: openStatus
199
+ });
200
+ });
201
+ setOpen(openStatus);
202
+ };
203
+ var setPropertiesToFalse = function setPropertiesToFalse(data, property) {
204
+ return data.map(function (obj) {
205
+ if (Object.prototype.hasOwnProperty.call(obj, property)) {
206
+ obj[property] = property == 'interactive' ? true : false;
207
+ }
208
+ return obj;
209
+ });
210
+ };
211
+ var removeOutOfRangeValues = function removeOutOfRangeValues(updateModel) {
212
+ var correctAnswer = model.correctAnswer,
213
+ data = model.data;
214
+ if (changeInteractiveEnabled === false) {
215
+ setPropertiesToFalse(data, 'interactive');
216
+ }
217
+ if (changeEditableEnabled === false) {
218
+ setPropertiesToFalse(data, 'editable');
219
+ }
220
+ resetValues(data, updateModel, range, onChange, model);
221
+ resetValues(correctAnswer.data, false, range, onChange, model);
222
+ };
223
+ var setCategoryDefaultLabel = function setCategoryDefaultLabel() {
224
+ var studentCategoryDefaultLabel = studentNewCategoryDefaultLabel === null || studentNewCategoryDefaultLabel === void 0 ? void 0 : studentNewCategoryDefaultLabel.label;
225
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
226
+ studentCategoryDefaultLabel: studentCategoryDefaultLabel
227
+ }));
228
+ };
229
+ var rangeProps = function rangeProps(chartType) {
230
+ return chartType.includes('Plot') ? {
231
+ min: 3,
232
+ max: 10
233
+ } : {
234
+ min: 0.05,
235
+ max: 10000
236
+ };
237
+ };
238
+ var onSizeChanged = function onSizeChanged(key, value) {
239
+ var graph = _objectSpread(_objectSpread({}, size), {}, (0, _defineProperty2["default"])({}, key, value));
240
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
241
+ graph: graph
242
+ }));
243
+ };
244
+ var isOutOfRange = function isOutOfRange(data, range) {
245
+ return (data || []).find(function (d) {
246
+ return d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0;
247
+ });
248
+ };
249
+ var onRangeChanged = function onRangeChanged(key, value, e) {
250
+ // use reset values to restore range to initial values
251
+ setResetValue(range[key]);
252
+ setRangeKey(key);
253
+ range[key] = value;
254
+ if (key === 'max' || key === 'step') {
255
+ // check if current chart values are invalid for given range step/max
256
+ var outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);
257
+ if (outOfRange && e !== null && e !== void 0 && e.target) {
258
+ setOpen(true);
259
+ } else {
260
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
261
+ range: range
262
+ }));
263
+ }
264
+ } else {
265
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
266
+ range: range
267
+ }));
268
+ }
269
+ };
270
+ (0, _react.useEffect)(function () {
271
+ removeOutOfRangeValues(true);
272
+ setCategoryDefaultLabel();
273
+ }, []);
274
+ (0, _react.useEffect)(function () {
275
+ if (open) {
276
+ setAlertDialog({
277
+ open: true,
278
+ title: 'Warning',
279
+ text: 'This change will remove values defined for one or more categories',
280
+ onConfirm: function onConfirm() {
281
+ removeOutOfRangeValues();
282
+ handleAlertDialog(false);
283
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
284
+ range: range,
285
+ correctAnswer: correctAnswer
286
+ }));
287
+ },
288
+ onClose: function onClose() {
289
+ range[rangeKey] = resetValue;
290
+ handleAlertDialog(false);
291
+ }
292
+ });
293
+ }
294
+ }, [open]);
295
+ var isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;
296
+ var getPlotConfiguration = function getPlotConfiguration() {
297
+ rangeProps.min = 3;
298
+ rangeProps.max = 10;
299
+ range.max = 10;
300
+ range.step = 1;
301
+ range.labelStep = 1;
302
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
303
+ range: range
304
+ }));
305
+ };
306
+ var onChartTypeChange = function onChartTypeChange(chartType) {
307
+ if (chartType.includes('Plot')) {
308
+ // The selected chart type does not support the current chart configuration
309
+ if (!isValidPlot) {
310
+ setAlertDialog({
311
+ open: true,
312
+ title: 'Warning',
313
+ text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',
314
+ onConfirm: function onConfirm() {
315
+ getPlotConfiguration();
316
+ removeOutOfRangeValues();
317
+ handleAlertDialog(false);
318
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
319
+ range: range,
320
+ chartType: chartType
321
+ }));
322
+ },
323
+ onClose: function onClose() {
324
+ handleAlertDialog(false);
325
+ }
326
+ });
327
+ return;
328
+ }
329
+ rangeProps.min = 3;
330
+ rangeProps.max = 10;
331
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
332
+ chartType: chartType
333
+ }));
334
+ return;
335
+ }
336
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
337
+ chartType: chartType
338
+ }));
339
+ };
340
+ return /*#__PURE__*/_react["default"].createElement(StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
341
+ variant: 'subtitle1'
342
+ }, "Configure Chart"), /*#__PURE__*/_react["default"].createElement(StyledContent, null, /*#__PURE__*/_react["default"].createElement(StyledRowView, null, /*#__PURE__*/_react["default"].createElement(_chartType["default"], {
343
+ value: model.chartType,
344
+ onChange: function onChange(e) {
345
+ return onChartTypeChange(e.target.value);
346
+ },
347
+ availableChartTypes: availableChartTypes,
348
+ chartTypeLabel: chartTypeLabel
349
+ }), /*#__PURE__*/_react["default"].createElement(StyledMediumTextField, {
350
+ label: "Max Value",
351
+ value: range.max,
352
+ min: rangeProps(model.chartType).min,
353
+ max: rangeProps(model.chartType).max,
354
+ variant: "outlined",
355
+ onChange: function onChange(e, v) {
356
+ return onRangeChanged('max', v, e);
357
+ }
358
+ })), !model.chartType.includes('Plot') && stepConfig, showInConfigPanel && /*#__PURE__*/_react["default"].createElement(StyledDimensions, null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Dimensions(px)")), /*#__PURE__*/_react["default"].createElement(StyledColumnView, null, /*#__PURE__*/_react["default"].createElement(StyledTextField, {
359
+ label: 'Width',
360
+ value: size.width,
361
+ min: widthConstraints.min,
362
+ max: widthConstraints.max,
363
+ step: widthConstraints.step,
364
+ variant: 'outlined',
365
+ onChange: function onChange(e, v) {
366
+ return onSizeChanged('width', v);
367
+ }
368
+ }), /*#__PURE__*/_react["default"].createElement(StyledDisabled, null, "Min 50, Max 700")), /*#__PURE__*/_react["default"].createElement(StyledColumnView, null, /*#__PURE__*/_react["default"].createElement(StyledTextField, {
369
+ label: 'Height',
370
+ value: size.height,
371
+ min: heightConstraints.min,
372
+ max: heightConstraints.max,
373
+ step: heightConstraints.step,
374
+ variant: 'outlined',
375
+ onChange: function onChange(e, v) {
376
+ return onSizeChanged('height', v);
377
+ }
378
+ }), /*#__PURE__*/_react["default"].createElement(StyledDisabled, null, "Min 400, Max 700")))), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
379
+ open: alertDialog.open,
380
+ title: alertDialog.title,
381
+ text: alertDialog.text,
382
+ onClose: alertDialog.onClose,
383
+ onConfirm: alertDialog.onConfirm
384
+ }));
385
+ };
386
+ ConfigureChartPanel.propTypes = {
387
+ chartDimensions: _propTypes["default"].object,
388
+ domain: _propTypes["default"].object,
389
+ gridValues: _propTypes["default"].object,
390
+ labelValues: _propTypes["default"].object,
391
+ model: _propTypes["default"].object,
392
+ onChange: _propTypes["default"].func,
393
+ range: _propTypes["default"].object,
394
+ chartDimension: _propTypes["default"].object,
395
+ size: _propTypes["default"].object,
396
+ studentNewCategoryDefaultLabel: _propTypes["default"].object,
397
+ availableChartTypes: _propTypes["default"].object,
398
+ chartTypeLabel: _propTypes["default"].string
399
+ };
400
+ var _default = exports["default"] = ConfigureChartPanel;
401
+ //# sourceMappingURL=chart-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-setup.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_renderUi","_styles","_Typography","_chartType","_configUi","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","resetValues","exports","data","updateModel","range","onChange","model","d","d_value_scaled","Math","round","value","range_step_scaled","step","remainder_scaled","remainder","max","StyledWrapper","styled","width","StyledContent","_ref","theme","display","flexDirection","marginTop","spacing","StyledColumnView","alignItems","StyledRowView","justifyContent","StyledTextField","NumberTextFieldCustom","_ref2","margin","concat","StyledMediumTextField","_ref3","StyledDimensions","_ref4","StyledDisabled","Typography","color","disabled","ConfigureChartPanel","props","chartDimensions","_props$gridValues","gridValues","_props$labelValues","labelValues","_props$studentNewCate","studentNewCategoryDefaultLabel","_props$availableChart","availableChartTypes","chartTypeLabel","_useState","useState","open","title","text","onClose","onConfirm","_useState2","_slicedToArray2","alertDialog","setAlertDialog","_useState3","_useState4","setOpen","_useState5","_useState6","rangeKey","setRangeKey","_useState7","_useState8","resetValue","setResetValue","_model$range","correctAnswer","changeInteractiveEnabled","changeEditableEnabled","size","graph","_ref5","showInConfigPanel","height","widthConstraints","min","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","createElement","_extends2","label","variant","v","onRangeChanged","labelStep","handleAlertDialog","openStatus","prevState","setPropertiesToFalse","property","map","obj","prototype","removeOutOfRangeValues","setCategoryDefaultLabel","studentCategoryDefaultLabel","rangeProps","chartType","includes","onSizeChanged","key","isOutOfRange","find","floor","outOfRange","target","useEffect","isValidPlot","getPlotConfiguration","onChartTypeChange","AlertDialog","propTypes","PropTypes","object","domain","func","chartDimension","string","_default"],"sources":["../src/chart-setup.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/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 StyledWrapper = styled('div')(() => ({\n width: '450px',\n}));\n\nconst StyledContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginTop: theme.spacing(3),\n}));\n\nconst StyledColumnView = styled('div')(() => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n}));\n\nconst StyledRowView = styled('div')(() => ({\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n}));\n\nconst StyledTextField = styled(NumberTextFieldCustom)(({ theme }) => ({\n width: '130px',\n margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,\n}));\n\nconst StyledMediumTextField = styled(NumberTextFieldCustom)(({ theme }) => ({\n width: '160px',\n margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,\n}));\n\nconst StyledDimensions = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: `${theme.spacing(3)} 0`,\n}));\n\nconst StyledDisabled = styled(Typography)(() => ({\n color: color.disabled(),\n}));\n\nconst ConfigureChartPanel = (props) => {\n const {\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 <StyledRowView>\n <StyledMediumTextField\n label=\"Grid Interval\"\n value={range.step}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('step', v, e)}\n {...gridOptions}\n />\n <StyledMediumTextField\n label={'Label Interval'}\n value={range.labelStep}\n variant={'outlined'}\n onChange={(e, v) => onRangeChanged('labelStep', v, e)}\n {...labelOptions}\n />\n </StyledRowView>\n );\n\n const handleAlertDialog = (openStatus) => {\n setAlertDialog(\n (prevState) => ({\n ...prevState,\n open: openStatus,\n }),\n );\n\n setOpen(openStatus);\n };\n\n const setPropertiesToFalse = (data, property) => {\n return data.map((obj) => {\n if (Object.prototype.hasOwnProperty.call(obj, 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 && e?.target) {\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);\n 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);\n 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 <StyledWrapper>\n <Typography variant={'subtitle1'}>Configure Chart</Typography>\n <StyledContent>\n <StyledRowView>\n <ChartType\n value={model.chartType}\n onChange={(e) => onChartTypeChange(e.target.value)}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\n <StyledMediumTextField\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 </StyledRowView>\n {!model.chartType.includes('Plot') && stepConfig}\n\n {showInConfigPanel && (\n <StyledDimensions>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\n\n <StyledColumnView>\n <StyledTextField\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 <StyledDisabled>Min 50, Max 700</StyledDisabled>\n </StyledColumnView>\n\n <StyledColumnView>\n <StyledTextField\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 <StyledDisabled>Min 400, Max 700</StyledDisabled>\n </StyledColumnView>\n </StyledDimensions>\n )}\n </StyledContent>\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 </StyledWrapper>\n );\n};\n\nConfigureChartPanel.propTypes = {\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\nexport default ConfigureChartPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styles = require("@mui/material/styles");
11
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
13
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
14
+ var _material = require("@mui/material");
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var StyledContainer = (0, _styles.styled)('div')(function () {
17
+ return {
18
+ width: '160px'
19
+ };
20
+ });
21
+ var StyledFormControl = (0, _styles.styled)(_FormControl["default"])(function () {
22
+ return {
23
+ width: '160px'
24
+ };
25
+ });
26
+ var StyledInputLabel = (0, _styles.styled)(_InputLabel["default"])(function () {
27
+ return {
28
+ backgroundColor: 'transparent'
29
+ };
30
+ });
31
+ var ChartType = function ChartType(_ref) {
32
+ var onChange = _ref.onChange,
33
+ value = _ref.value,
34
+ availableChartTypes = _ref.availableChartTypes,
35
+ chartTypeLabel = _ref.chartTypeLabel;
36
+ return /*#__PURE__*/_react["default"].createElement(StyledContainer, null, /*#__PURE__*/_react["default"].createElement(StyledFormControl, {
37
+ variant: 'outlined'
38
+ }, /*#__PURE__*/_react["default"].createElement(StyledInputLabel, {
39
+ id: "type-helper-label"
40
+ }, chartTypeLabel), /*#__PURE__*/_react["default"].createElement(_material.Select, {
41
+ labelId: "type-helper-label",
42
+ id: "type-helper-label-select",
43
+ name: "chartType",
44
+ value: value,
45
+ onChange: onChange,
46
+ label: chartTypeLabel,
47
+ MenuProps: {
48
+ transitionDuration: {
49
+ enter: 225,
50
+ exit: 195
51
+ }
52
+ }
53
+ }, (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.histogram) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
54
+ value: 'histogram'
55
+ }, availableChartTypes.histogram), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.bar) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
56
+ value: 'bar'
57
+ }, availableChartTypes.bar), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.lineDot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
58
+ value: 'lineDot'
59
+ }, availableChartTypes.lineDot), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.lineCross) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
60
+ value: 'lineCross'
61
+ }, availableChartTypes.lineCross), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.dotPlot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
62
+ value: 'dotPlot'
63
+ }, availableChartTypes.dotPlot), (availableChartTypes === null || availableChartTypes === void 0 ? void 0 : availableChartTypes.linePlot) && /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
64
+ value: 'linePlot'
65
+ }, availableChartTypes.linePlot))));
66
+ };
67
+ ChartType.propTypes = {
68
+ onChange: _propTypes["default"].func.isRequired,
69
+ value: _propTypes["default"].string.isRequired,
70
+ availableChartTypes: _propTypes["default"].shape({
71
+ histogram: _propTypes["default"].string,
72
+ bar: _propTypes["default"].string,
73
+ lineDot: _propTypes["default"].string,
74
+ lineCross: _propTypes["default"].string,
75
+ dotPlot: _propTypes["default"].string,
76
+ linePlot: _propTypes["default"].string
77
+ }),
78
+ chartTypeLabel: _propTypes["default"].string
79
+ };
80
+ var _default = exports["default"] = ChartType;
81
+ //# sourceMappingURL=chart-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-type.js","names":["_react","_interopRequireDefault","require","_styles","_MenuItem","_FormControl","_InputLabel","_material","_propTypes","StyledContainer","styled","width","StyledFormControl","FormControl","StyledInputLabel","InputLabel","backgroundColor","ChartType","_ref","onChange","value","availableChartTypes","chartTypeLabel","createElement","variant","id","Select","labelId","name","label","MenuProps","transitionDuration","enter","exit","histogram","bar","lineDot","lineCross","dotPlot","linePlot","propTypes","PropTypes","func","isRequired","string","shape","_default","exports"],"sources":["../src/chart-type.js"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport InputLabel from '@mui/material/InputLabel';\nimport { Select } from '@mui/material';\n\nconst StyledContainer = styled('div')(() => ({\n width: '160px',\n}));\n\nconst StyledFormControl = styled(FormControl)(() => ({\n width: '160px',\n}));\n\nconst StyledInputLabel = styled(InputLabel)(() => ({\n backgroundColor: 'transparent',\n}));\n\nimport PropTypes from 'prop-types';\n\nconst ChartType = ({ onChange, value, availableChartTypes, chartTypeLabel }) => (\n <StyledContainer>\n <StyledFormControl variant={'outlined'}>\n <StyledInputLabel id=\"type-helper-label\">\n {chartTypeLabel}\n </StyledInputLabel>\n <Select\n labelId=\"type-helper-label\"\n id=\"type-helper-label-select\"\n name=\"chartType\"\n value={value}\n onChange={onChange}\n label={chartTypeLabel}\n MenuProps={{transitionDuration: { enter: 225, exit: 195 }}}\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 </StyledFormControl>\n </StyledContainer>\n);\n\nChartType.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n availableChartTypes: PropTypes.shape({\n histogram: PropTypes.string,\n bar: PropTypes.string,\n lineDot: PropTypes.string,\n lineCross: PropTypes.string,\n dotPlot: PropTypes.string,\n linePlot: PropTypes.string,\n }),\n chartTypeLabel: PropTypes.string,\n};\n\nexport default ChartType;\n"],"mappings":"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","ignoreList":[]}