@pie-element/charting 2.5.19-next.85 → 2.6.1-beta.587

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.
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -31,15 +31,23 @@ var _styles = require("@material-ui/core/styles");
31
31
 
32
32
  var _charting = require("@pie-lib/charting");
33
33
 
34
+ var _configUi = require("@pie-lib/config-ui");
35
+
36
+ var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
37
+
34
38
  var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
35
39
 
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
40
+ 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); }
41
+
42
+ 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; }
43
+
44
+ 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
45
 
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
46
+ 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
47
 
40
48
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
49
 
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
50
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
51
 
44
52
  var styles = function styles(theme) {
45
53
  return {
@@ -55,37 +63,119 @@ var styles = function styles(theme) {
55
63
  };
56
64
  };
57
65
 
66
+ var restoreCorrectAnswer = function restoreCorrectAnswer(correctAnswer, data) {
67
+ if (!correctAnswer) {
68
+ return data;
69
+ }
70
+
71
+ var correctResponseDefinition = [];
72
+ (data || []).forEach(function (category, currentIndex) {
73
+ var _correctAnswer$curren, _correctAnswer$curren2;
74
+
75
+ var editable = category.editable,
76
+ interactive = category.interactive;
77
+ var label = editable && (_correctAnswer$curren = correctAnswer[currentIndex]) !== null && _correctAnswer$curren !== void 0 && _correctAnswer$curren.label ? correctAnswer[currentIndex].label : category.label;
78
+ var value = interactive && (_correctAnswer$curren2 = correctAnswer[currentIndex]) !== null && _correctAnswer$curren2 !== void 0 && _correctAnswer$curren2.value ? correctAnswer[currentIndex].value : category.value;
79
+ correctResponseDefinition[currentIndex] = {
80
+ label: label,
81
+ value: value,
82
+ editable: category.editable,
83
+ interactive: category.interactive
84
+ };
85
+ });
86
+ return correctResponseDefinition;
87
+ };
88
+
58
89
  var ChartingConfig = /*#__PURE__*/function (_React$Component) {
59
90
  (0, _inherits2["default"])(ChartingConfig, _React$Component);
60
91
 
61
92
  var _super = _createSuper(ChartingConfig);
62
93
 
63
- function ChartingConfig() {
94
+ function ChartingConfig(props) {
64
95
  var _this;
65
96
 
66
97
  (0, _classCallCheck2["default"])(this, ChartingConfig);
67
-
68
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
69
- args[_key] = arguments[_key];
70
- }
71
-
72
- _this = _super.call.apply(_super, [this].concat(args));
98
+ _this = _super.call(this, props);
99
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
100
+ return _this.setState({
101
+ dialog: {
102
+ open: open
103
+ }
104
+ }, callback);
105
+ });
73
106
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
74
107
  return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
75
108
  data: data
76
109
  }));
77
110
  });
111
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeAddRemoveEnabled", function (value) {
112
+ var model = _this.props.model;
113
+ var correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);
114
+
115
+ if (!value) {
116
+ _this.setState({
117
+ dialog: {
118
+ open: true,
119
+ title: 'Warning',
120
+ text: "This change will remove any correct answer categories that are not part of the initial item configuration.",
121
+ onConfirm: function onConfirm() {
122
+ return _this.handleAlertDialog(false, _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
123
+ addCategoryEnabled: value,
124
+ correctAnswer: {
125
+ data: correctAnswer
126
+ }
127
+ })));
128
+ },
129
+ onClose: function onClose() {
130
+ return _this.handleAlertDialog(false);
131
+ }
132
+ }
133
+ });
134
+ } else {
135
+ _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
136
+ addCategoryEnabled: value
137
+ }));
138
+ }
139
+ });
140
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTitle", function (title) {
141
+ return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
142
+ title: title
143
+ }));
144
+ });
145
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabel", function (type, label) {
146
+ return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, (0, _defineProperty2["default"])({}, type, _objectSpread(_objectSpread({}, _this.props.model[type]), {}, {
147
+ label: label
148
+ }))));
149
+ });
150
+ _this.state = {
151
+ dialog: {
152
+ open: false
153
+ }
154
+ };
78
155
  return _this;
79
156
  }
80
157
 
81
158
  (0, _createClass2["default"])(ChartingConfig, [{
82
159
  key: "render",
83
160
  value: function render() {
161
+ var _this2 = this;
162
+
84
163
  var _this$props = this.props,
85
164
  classes = _this$props.classes,
86
165
  model = _this$props.model,
87
- charts = _this$props.charts;
88
- return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
166
+ charts = _this$props.charts,
167
+ labelsPlaceholders = _this$props.labelsPlaceholders,
168
+ titlePlaceholder = _this$props.titlePlaceholder,
169
+ showPixelGuides = _this$props.showPixelGuides;
170
+ var dialog = this.state.dialog;
171
+
172
+ var _ref = model || {},
173
+ _ref$domain = _ref.domain,
174
+ domain = _ref$domain === void 0 ? {} : _ref$domain,
175
+ _ref$range = _ref.range,
176
+ range = _ref$range === void 0 ? {} : _ref$range;
177
+
178
+ return /*#__PURE__*/React.createElement("div", null, "Define Initial Chart Attributes", /*#__PURE__*/React.createElement("div", {
89
179
  className: classes.container
90
180
  }, /*#__PURE__*/React.createElement("div", {
91
181
  className: classes.column,
@@ -93,18 +183,39 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
93
183
  }, /*#__PURE__*/React.createElement(_Typography["default"], {
94
184
  component: "div",
95
185
  type: "body1"
96
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_charting.Chart, {
186
+ }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set up the chart as it will initially appear to students.")), /*#__PURE__*/React.createElement(_charting.Chart, {
187
+ defineChart: true,
188
+ showPixelGuides: showPixelGuides,
97
189
  chartType: model.chartType,
98
190
  size: model.graph,
99
- domain: model.domain,
100
- range: model.range,
101
- charts: charts,
102
- data: model.data,
191
+ domain: domain,
192
+ range: range,
193
+ charts: charts // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data
194
+ ,
195
+ data: model.data.map(function (category, index) {
196
+ return _objectSpread(_objectSpread({}, category), {}, {
197
+ index: index
198
+ });
199
+ }),
103
200
  title: model.title,
104
201
  onDataChange: this.changeData,
105
- editCategoryEnabled: true,
202
+ onChangeTitle: this.changeTitle,
203
+ onChangeLabels: this.changeLabel,
106
204
  addCategoryEnabled: true,
107
- categoryDefaultLabel: model.categoryDefaultLabel
205
+ categoryDefaultLabel: model.categoryDefaultLabel,
206
+ labelsPlaceholders: labelsPlaceholders,
207
+ titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label
208
+ }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
209
+ checked: model.addCategoryEnabled,
210
+ onChange: function onChange(e) {
211
+ _this2.changeAddRemoveEnabled(e.target.checked);
212
+ }
213
+ }), "Student can add categories"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
214
+ open: dialog.open,
215
+ title: dialog.title,
216
+ text: dialog.text,
217
+ onClose: dialog.onClose,
218
+ onConfirm: dialog.onConfirm
108
219
  }))));
109
220
  }
110
221
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","column","ChartingConfig","data","props","onChange","model","classes","charts","chartType","graph","domain","range","title","changeData","categoryDefaultLabel","React","Component","PropTypes","object","isRequired","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAF1B;AAGTE,MAAAA,OAAO,EAAE,MAHA;AAITC,MAAAA,IAAI,EAAE;AAJG,KADY;AAOvBC,IAAAA,MAAM,EAAE;AACND,MAAAA,IAAI,EAAE;AADA;AAPe,GAAL;AAAA,CAApB;;IAYaE,c;;;;;;;;;;;;;;;mGAQE,UAAAC,IAAI;AAAA,aAAI,MAAKC,KAAL,CAAWC,QAAX,iCAAyB,MAAKD,KAAL,CAAWE,KAApC;AAA2CH,QAAAA,IAAI,EAAJA;AAA3C,SAAJ;AAAA,K;;;;;;WAEjB,kBAAS;AAAA,wBAC4B,KAAKC,KADjC;AAAA,UACCG,OADD,eACCA,OADD;AAAA,UACUD,KADV,eACUA,KADV;AAAA,UACiBE,MADjB,eACiBA,MADjB;AAGP,0BACE,yEAGE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACb;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACN,MAAxB;AAAgC,QAAA,GAAG,EAAC;AAApC,sBACE,oBAAC,sBAAD;AAAY,QAAA,SAAS,EAAC,KAAtB;AAA4B,QAAA,IAAI,EAAC;AAAjC,sBACE,iFADF,CADF,eAKE,oBAAC,eAAD;AACE,QAAA,SAAS,EAAEK,KAAK,CAACG,SADnB;AAEE,QAAA,IAAI,EAAEH,KAAK,CAACI,KAFd;AAGE,QAAA,MAAM,EAAEJ,KAAK,CAACK,MAHhB;AAIE,QAAA,KAAK,EAAEL,KAAK,CAACM,KAJf;AAKE,QAAA,MAAM,EAAEJ,MALV;AAME,QAAA,IAAI,EAAEF,KAAK,CAACH,IANd;AAOE,QAAA,KAAK,EAAEG,KAAK,CAACO,KAPf;AAQE,QAAA,YAAY,EAAE,KAAKC,UARrB;AASE,QAAA,mBAAmB,EAAE,IATvB;AAUE,QAAA,kBAAkB,EAAE,IAVtB;AAWE,QAAA,oBAAoB,EAAER,KAAK,CAACS;AAX9B,QALF,CADF,CAHF,CADF;AA4BD;;;EAzCiCC,KAAK,CAACC,S;;;iCAA7Bf,c,eACQ;AACjBK,EAAAA,OAAO,EAAEW,sBAAUC,MAAV,CAAiBC,UADT;AAEjBd,EAAAA,KAAK,EAAEY,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBf,EAAAA,QAAQ,EAAEa,sBAAUG,IAAV,CAAeD,UAHR;AAIjBZ,EAAAA,MAAM,EAAEU,sBAAUI;AAJD,C;;eA2CN,wBAAW9B,MAAX,EAAmBU,cAAnB,C","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 3,\n display: 'flex',\n flex: 1,\n },\n column: {\n flex: 1\n }\n});\n\nexport class ChartingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array\n };\n\n changeData = data => this.props.onChange({ ...this.props.model, data });\n\n render() {\n const { classes, model, charts } = this.props;\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set background shapes</span>\n </Typography>\n\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.range}\n charts={charts}\n data={model.data}\n title={model.title}\n onDataChange={this.changeData}\n editCategoryEnabled={true}\n addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\n </div>\n\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
1
+ {"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","column","restoreCorrectAnswer","correctAnswer","data","correctResponseDefinition","forEach","category","currentIndex","editable","interactive","label","value","ChartingConfig","props","open","callback","setState","dialog","onChange","model","title","text","onConfirm","handleAlertDialog","addCategoryEnabled","onClose","type","state","classes","charts","labelsPlaceholders","titlePlaceholder","showPixelGuides","domain","range","chartType","graph","map","index","changeData","changeTitle","changeLabel","categoryDefaultLabel","e","changeAddRemoveEnabled","target","checked","React","Component","PropTypes","object","isRequired","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 3,\n display: 'flex',\n flex: 1,\n },\n column: {\n flex: 1,\n },\n});\n\nconst restoreCorrectAnswer = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const { editable, interactive } = category;\n\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n return correctResponseDefinition;\n};\n\nexport class ChartingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeData = (data) => this.props.onChange({ ...this.props.model, data });\n\n changeAddRemoveEnabled = (value) => {\n const { model } = this.props;\n const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `This change will remove any correct answer categories that are not part of the initial item configuration.`,\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.props.onChange({\n ...this.props.model,\n addCategoryEnabled: value,\n correctAnswer: { data: correctAnswer },\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n }\n };\n\n changeTitle = (title) => this.props.onChange({ ...this.props.model, title });\n\n changeLabel = (type, label) =>\n this.props.onChange({\n ...this.props.model,\n [type]: {\n ...this.props.model[type],\n label,\n },\n });\n\n render() {\n const { classes, model, charts, labelsPlaceholders, titlePlaceholder, showPixelGuides } = this.props;\n const { dialog } = this.state;\n const { domain = {}, range = {} } = model || {};\n\n return (\n <div>\n Define Initial Chart Attributes\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set up the chart as it will initially appear to students.</span>\n </Typography>\n\n <Chart\n defineChart={true}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data\n data={model.data.map((category, index) => ({\n ...category,\n index: index,\n }))}\n title={model.title}\n onDataChange={this.changeData}\n onChangeTitle={this.changeTitle}\n onChangeLabels={this.changeLabel}\n addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n />\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n Student can add categories\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
@@ -41,21 +41,20 @@ var _chartingConfig = _interopRequireDefault(require("./charting-config"));
41
41
 
42
42
  var _correctResponse = _interopRequireDefault(require("./correct-response"));
43
43
 
44
- var _chartType = _interopRequireDefault(require("./chart-type"));
44
+ var _utils = require("./utils");
45
45
 
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
46
+ 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; }
47
47
 
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
48
+ 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; }
49
49
 
50
50
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
51
51
 
52
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
52
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
53
 
54
54
  var log = (0, _debug["default"])('@pie-element:graphing:configure');
55
55
  var Panel = _configUi.settings.Panel,
56
56
  toggle = _configUi.settings.toggle,
57
- radio = _configUi.settings.radio,
58
- numberFields = _configUi.settings.numberFields;
57
+ radio = _configUi.settings.radio;
59
58
 
60
59
  var styles = function styles(theme) {
61
60
  return {
@@ -88,16 +87,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
88
87
 
89
88
  var _super = _createSuper(Configure);
90
89
 
91
- function Configure() {
90
+ function Configure(props) {
92
91
  var _this;
93
92
 
94
93
  (0, _classCallCheck2["default"])(this, Configure);
95
-
96
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
97
- args[_key] = arguments[_key];
98
- }
99
-
100
- _this = _super.call.apply(_super, [this].concat(args));
94
+ _this = _super.call(this, props);
101
95
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChange", function (rationale) {
102
96
  return _this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
103
97
  rationale: rationale
@@ -118,74 +112,126 @@ var Configure = /*#__PURE__*/function (_React$Component) {
118
112
  chartType: chartType
119
113
  }));
120
114
  });
115
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
116
+ var _this$props = _this.props,
117
+ model = _this$props.model,
118
+ onModelChanged = _this$props.onModelChanged;
119
+ var _this$state = _this.state,
120
+ oldGridValues = _this$state.gridValues,
121
+ oldLabelValues = _this$state.labelValues;
122
+
123
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
124
+
125
+ var graph = updatedModel.graph,
126
+ range = updatedModel.range;
127
+ var gridValues = {};
128
+ var labelValues = {};
129
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
130
+ gridValues.range = rangeConstraints.gridValues;
131
+ labelValues.range = rangeConstraints.labelValues;
132
+
133
+ _this.setState({
134
+ gridValues: gridValues,
135
+ labelValues: labelValues
136
+ });
137
+
138
+ onModelChanged(updatedModel);
139
+ });
140
+
141
+ var _ref = props.model || {},
142
+ _ref$range = _ref.range,
143
+ _range = _ref$range === void 0 ? {} : _ref$range,
144
+ _graph = _ref.graph;
145
+
146
+ var _gridValues = {
147
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
148
+ };
149
+ var _labelValues = {
150
+ range: (0, _utils.getLabelValues)(_range.step || 1)
151
+ };
152
+ _this.state = {
153
+ gridValues: _gridValues,
154
+ labelValues: _labelValues
155
+ };
121
156
  return _this;
122
157
  }
123
158
 
124
159
  (0, _createClass2["default"])(Configure, [{
125
160
  key: "render",
126
161
  value: function render() {
127
- var _this2 = this;
128
-
129
- var _this$props = this.props,
130
- classes = _this$props.classes,
131
- model = _this$props.model,
132
- configuration = _this$props.configuration,
133
- onConfigurationChanged = _this$props.onConfigurationChanged,
134
- onModelChanged = _this$props.onModelChanged,
135
- imageSupport = _this$props.imageSupport;
162
+ var _this$props2 = this.props,
163
+ classes = _this$props2.classes,
164
+ configuration = _this$props2.configuration,
165
+ imageSupport = _this$props2.imageSupport,
166
+ model = _this$props2.model,
167
+ onConfigurationChanged = _this$props2.onConfigurationChanged,
168
+ onModelChanged = _this$props2.onModelChanged,
169
+ uploadSoundSupport = _this$props2.uploadSoundSupport;
136
170
  log('[render] model', model);
137
171
  var graph = model.graph;
138
172
 
139
- var _ref = configuration || {},
140
- _ref$title = _ref.title,
141
- title = _ref$title === void 0 ? {} : _ref$title,
142
- _ref$rationale = _ref.rationale,
143
- rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
144
- _ref$scoringType = _ref.scoringType,
145
- scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
146
- _ref$studentInstructi = _ref.studentInstructions,
147
- studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
148
- _ref$teacherInstructi = _ref.teacherInstructions,
149
- teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
150
- _ref$prompt = _ref.prompt,
151
- prompt = _ref$prompt === void 0 ? {} : _ref$prompt;
152
-
153
- var _ref2 = model || {},
154
- teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
155
- promptEnabled = _ref2.promptEnabled,
156
- rationaleEnabled = _ref2.rationaleEnabled;
157
-
173
+ var _ref2 = configuration || {},
174
+ _ref2$chartDimensions = _ref2.chartDimensions,
175
+ chartDimensions = _ref2$chartDimensions === void 0 ? {} : _ref2$chartDimensions,
176
+ _ref2$labelsPlacehold = _ref2.labelsPlaceholders,
177
+ labelsPlaceholders = _ref2$labelsPlacehold === void 0 ? {} : _ref2$labelsPlacehold,
178
+ _ref2$maxImageWidth = _ref2.maxImageWidth,
179
+ maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
180
+ _ref2$maxImageHeight = _ref2.maxImageHeight,
181
+ maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
182
+ _ref2$prompt = _ref2.prompt,
183
+ prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
184
+ _ref2$rationale = _ref2.rationale,
185
+ rationale = _ref2$rationale === void 0 ? {} : _ref2$rationale,
186
+ _ref2$scoringType = _ref2.scoringType,
187
+ scoringType = _ref2$scoringType === void 0 ? {} : _ref2$scoringType,
188
+ settingsPanelDisabled = _ref2.settingsPanelDisabled,
189
+ _ref2$spellCheck = _ref2.spellCheck,
190
+ spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
191
+ _ref2$studentInstruct = _ref2.studentInstructions,
192
+ studentInstructions = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
193
+ _ref2$teacherInstruct = _ref2.teacherInstructions,
194
+ teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
195
+ _ref2$titlePlaceholde = _ref2.titlePlaceholder,
196
+ titlePlaceholder = _ref2$titlePlaceholde === void 0 ? {} : _ref2$titlePlaceholde,
197
+ _ref2$withRubric = _ref2.withRubric,
198
+ withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric;
199
+
200
+ var _ref3 = model || {},
201
+ errors = _ref3.errors,
202
+ promptEnabled = _ref3.promptEnabled,
203
+ rationaleEnabled = _ref3.rationaleEnabled,
204
+ spellCheckEnabled = _ref3.spellCheckEnabled,
205
+ teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled;
206
+
207
+ var _ref4 = errors || {},
208
+ categoryErrors = _ref4.categoryErrors,
209
+ correctAnswerErrors = _ref4.correctAnswerErrors;
210
+
211
+ var _this$state2 = this.state,
212
+ gridValues = _this$state2.gridValues,
213
+ labelValues = _this$state2.labelValues;
214
+ var showPixeGuides = chartDimensions.showInConfigPanel || true;
215
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
216
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
217
+ var panelProperties = {
218
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
219
+ studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
220
+ rationaleEnabled: rationale.settings && toggle(rationale.label),
221
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
222
+ promptEnabled: prompt.settings && toggle(prompt.label),
223
+ scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),
224
+ rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
225
+ };
158
226
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
227
+ hideSettings: settingsPanelDisabled,
159
228
  settings: /*#__PURE__*/_react["default"].createElement(Panel, {
160
229
  model: model,
161
230
  configuration: configuration,
162
231
  onChangeModel: onModelChanged,
163
232
  onChangeConfiguration: onConfigurationChanged,
164
233
  groups: {
165
- 'Item Type': {
166
- 'title.enabled': title.settings && toggle(title.label, true),
167
- graph: numberFields('Graph Display Size', {
168
- width: {
169
- label: 'Width',
170
- suffix: 'px',
171
- min: 400,
172
- max: 700
173
- },
174
- height: {
175
- label: 'Height',
176
- suffix: 'px',
177
- min: 400,
178
- max: 700
179
- }
180
- })
181
- },
182
- Properties: {
183
- teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
184
- studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
185
- rationaleEnabled: rationale.settings && toggle(rationale.label),
186
- promptEnabled: prompt.settings && toggle(prompt.label),
187
- scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring'])
188
- }
234
+ Properties: panelProperties
189
235
  }
190
236
  })
191
237
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -193,7 +239,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
193
239
  }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
194
240
  component: "div",
195
241
  type: "body1"
196
- }, /*#__PURE__*/_react["default"].createElement("span", null, "This interaction asks a student to draw a chart that meets specific criteria. The student will draw a category on the chart by clicking Add Category and dragging the top part of the category.")), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
242
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "This item type provides various types of interactive charts. Depending upon how an item is configured, students can change the heights of bars (or other similar chart elements) created by the author; relabel bars created by the author; and/or add new bars, label them, and set their heights.")), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
197
243
  label: teacherInstructions.label,
198
244
  className: classes.promptHolder
199
245
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
@@ -201,7 +247,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
201
247
  markup: model.teacherInstructions || '',
202
248
  onChange: this.onTeacherInstructionsChange,
203
249
  imageSupport: imageSupport,
204
- nonEmpty: false
250
+ nonEmpty: false,
251
+ spellCheck: spellCheckEnabled,
252
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
253
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
254
+ uploadSoundSupport: uploadSoundSupport,
255
+ languageCharactersProps: [{
256
+ language: 'spanish'
257
+ }, {
258
+ language: 'special'
259
+ }]
205
260
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
206
261
  label: prompt.label,
207
262
  className: classes.promptHolder
@@ -211,7 +266,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
211
266
  onChange: this.onPromptChange,
212
267
  imageSupport: imageSupport,
213
268
  nonEmpty: false,
214
- disableUnderline: true
269
+ spellCheck: spellCheckEnabled,
270
+ disableUnderline: true,
271
+ maxImageWidth: defaultImageMaxWidth,
272
+ maxImageHeight: defaultImageMaxHeight,
273
+ uploadSoundSupport: uploadSoundSupport,
274
+ languageCharactersProps: [{
275
+ language: 'spanish'
276
+ }, {
277
+ language: 'special'
278
+ }]
215
279
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
216
280
  label: rationale.label || 'Rationale',
217
281
  className: classes.promptHolder
@@ -219,22 +283,37 @@ var Configure = /*#__PURE__*/function (_React$Component) {
219
283
  className: classes.prompt,
220
284
  markup: model.rationale || '',
221
285
  onChange: this.onRationaleChange,
222
- imageSupport: imageSupport
223
- })), /*#__PURE__*/_react["default"].createElement(_chartType["default"], {
224
- value: model.chartType,
225
- onChange: function onChange(e) {
226
- return _this2.onChartTypeChange(e.target.value);
227
- }
286
+ imageSupport: imageSupport,
287
+ spellCheck: spellCheckEnabled,
288
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
289
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
290
+ uploadSoundSupport: uploadSoundSupport,
291
+ languageCharactersProps: [{
292
+ language: 'spanish'
293
+ }, {
294
+ language: 'special'
295
+ }]
296
+ })), /*#__PURE__*/_react["default"].createElement(_charting.ConfigureChartPanel, {
297
+ model: model,
298
+ onChange: this.onConfigChange,
299
+ gridValues: gridValues,
300
+ labelValues: labelValues,
301
+ chartDimensions: chartDimensions,
302
+ charts: charts
228
303
  }), /*#__PURE__*/_react["default"].createElement(_chartingConfig["default"], {
229
- config: graph,
230
304
  model: model,
231
305
  onChange: onModelChanged,
232
- charts: charts
306
+ charts: charts,
307
+ labelsPlaceholders: labelsPlaceholders,
308
+ titlePlaceholder: titlePlaceholder,
309
+ showPixelGuides: showPixeGuides
233
310
  }), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
234
311
  config: graph,
235
312
  model: model,
236
313
  onChange: onModelChanged,
237
- charts: charts
314
+ charts: charts,
315
+ error: categoryErrors,
316
+ correctAnswerErrors: correctAnswerErrors
238
317
  })));
239
318
  }
240
319
  }]);
@@ -247,6 +326,7 @@ exports.Configure = Configure;
247
326
  onConfigurationChanged: _propTypes["default"].func,
248
327
  classes: _propTypes["default"].object,
249
328
  imageSupport: _propTypes["default"].object,
329
+ uploadSoundSupport: _propTypes["default"].object,
250
330
  model: _propTypes["default"].object.isRequired,
251
331
  configuration: _propTypes["default"].object.isRequired
252
332
  });