@pie-element/charting 2.7.3-next.137 → 2.7.3-next.1370

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,112 @@ 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
+ return /*#__PURE__*/React.createElement("div", null, "Define Initial Chart Attributes", /*#__PURE__*/React.createElement("div", {
89
172
  className: classes.container
90
173
  }, /*#__PURE__*/React.createElement("div", {
91
174
  className: classes.column,
@@ -93,18 +176,39 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
93
176
  }, /*#__PURE__*/React.createElement(_Typography["default"], {
94
177
  component: "div",
95
178
  type: "body1"
96
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_charting.Chart, {
179
+ }, /*#__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, {
180
+ defineChart: true,
181
+ showPixelGuides: showPixelGuides,
97
182
  chartType: model.chartType,
98
183
  size: model.graph,
99
184
  domain: model.domain,
100
185
  range: model.range,
101
- charts: charts,
102
- data: model.data,
186
+ 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
187
+ ,
188
+ data: model.data.map(function (category, index) {
189
+ return _objectSpread(_objectSpread({}, category), {}, {
190
+ index: index
191
+ });
192
+ }),
103
193
  title: model.title,
104
194
  onDataChange: this.changeData,
105
- editCategoryEnabled: true,
195
+ onChangeTitle: this.changeTitle,
196
+ onChangeLabels: this.changeLabel,
106
197
  addCategoryEnabled: true,
107
- categoryDefaultLabel: model.categoryDefaultLabel
198
+ categoryDefaultLabel: model.categoryDefaultLabel,
199
+ labelsPlaceholders: labelsPlaceholders,
200
+ titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label
201
+ }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
202
+ checked: model.addCategoryEnabled,
203
+ onChange: function onChange(e) {
204
+ _this2.changeAddRemoveEnabled(e.target.checked);
205
+ }
206
+ }), "Student can add categories"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
207
+ open: dialog.open,
208
+ title: dialog.title,
209
+ text: dialog.text,
210
+ onClose: dialog.onClose,
211
+ onConfirm: dialog.onConfirm
108
212
  }))));
109
213
  }
110
214
  }]);
@@ -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","chartType","graph","domain","range","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 =\n editable && correctAnswer[currentIndex]?.label\n ? correctAnswer[currentIndex].label\n : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value\n ? correctAnswer[currentIndex].value\n : 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(\n model.correctAnswer.data,\n model.data\n );\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) => 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\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>\n Use the tools below to set up the chart as it will initially\n appear to students.\n </span>\n </Typography>\n\n <Chart\n defineChart={true}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.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,43 +112,99 @@ 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 model = _this.props.model;
117
+ var _this$state = _this.state,
118
+ oldGridValues = _this$state.gridValues,
119
+ oldLabelValues = _this$state.labelValues;
120
+
121
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
122
+
123
+ var graph = updatedModel.graph,
124
+ range = updatedModel.range;
125
+ var gridValues = {};
126
+ var labelValues = {};
127
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
128
+ gridValues.range = rangeConstraints.gridValues;
129
+ labelValues.range = rangeConstraints.labelValues;
130
+
131
+ _this.setState({
132
+ gridValues: gridValues,
133
+ labelValues: labelValues
134
+ });
135
+
136
+ _this.props.onModelChanged(updatedModel);
137
+ });
138
+
139
+ var _ref = props.model || {},
140
+ _range = _ref.range,
141
+ _graph = _ref.graph;
142
+
143
+ var _gridValues = {
144
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
145
+ };
146
+ var _labelValues = {
147
+ range: (0, _utils.getLabelValues)(_range.step || 1)
148
+ };
149
+ _this.state = {
150
+ gridValues: _gridValues,
151
+ labelValues: _labelValues
152
+ };
121
153
  return _this;
122
154
  }
123
155
 
124
156
  (0, _createClass2["default"])(Configure, [{
125
157
  key: "render",
126
158
  value: function render() {
127
- var _this2 = this;
128
-
129
159
  var _this$props = this.props,
130
160
  classes = _this$props.classes,
131
161
  model = _this$props.model,
132
162
  configuration = _this$props.configuration,
133
163
  onConfigurationChanged = _this$props.onConfigurationChanged,
134
164
  onModelChanged = _this$props.onModelChanged,
135
- imageSupport = _this$props.imageSupport;
165
+ imageSupport = _this$props.imageSupport,
166
+ uploadSoundSupport = _this$props.uploadSoundSupport;
136
167
  log('[render] model', model);
137
168
  var graph = model.graph;
138
169
 
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
-
170
+ var _ref2 = configuration || {},
171
+ _ref2$rationale = _ref2.rationale,
172
+ rationale = _ref2$rationale === void 0 ? {} : _ref2$rationale,
173
+ _ref2$scoringType = _ref2.scoringType,
174
+ scoringType = _ref2$scoringType === void 0 ? {} : _ref2$scoringType,
175
+ _ref2$studentInstruct = _ref2.studentInstructions,
176
+ studentInstructions = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
177
+ _ref2$teacherInstruct = _ref2.teacherInstructions,
178
+ teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
179
+ _ref2$prompt = _ref2.prompt,
180
+ prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
181
+ _ref2$spellCheck = _ref2.spellCheck,
182
+ spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
183
+ _ref2$maxImageWidth = _ref2.maxImageWidth,
184
+ maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
185
+ _ref2$maxImageHeight = _ref2.maxImageHeight,
186
+ maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
187
+ _ref2$labelsPlacehold = _ref2.labelsPlaceholders,
188
+ labelsPlaceholders = _ref2$labelsPlacehold === void 0 ? {} : _ref2$labelsPlacehold,
189
+ _ref2$titlePlaceholde = _ref2.titlePlaceholder,
190
+ titlePlaceholder = _ref2$titlePlaceholde === void 0 ? {} : _ref2$titlePlaceholde,
191
+ _ref2$chartDimensions = _ref2.chartDimensions,
192
+ chartDimensions = _ref2$chartDimensions === void 0 ? {} : _ref2$chartDimensions,
193
+ withRubric = _ref2.withRubric;
194
+
195
+ var _ref3 = model || {},
196
+ teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
197
+ promptEnabled = _ref3.promptEnabled,
198
+ rationaleEnabled = _ref3.rationaleEnabled,
199
+ spellCheckEnabled = _ref3.spellCheckEnabled,
200
+ rubricEnabled = _ref3.rubricEnabled;
201
+
202
+ var _this$state2 = this.state,
203
+ gridValues = _this$state2.gridValues,
204
+ labelValues = _this$state2.labelValues;
205
+ var showPixeGuides = chartDimensions.showInConfigPanel || true;
206
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
207
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
158
208
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
159
209
  settings: /*#__PURE__*/_react["default"].createElement(Panel, {
160
210
  model: model,
@@ -162,29 +212,14 @@ var Configure = /*#__PURE__*/function (_React$Component) {
162
212
  onChangeModel: onModelChanged,
163
213
  onChangeConfiguration: onConfigurationChanged,
164
214
  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
215
  Properties: {
183
216
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
184
217
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
185
218
  rationaleEnabled: rationale.settings && toggle(rationale.label),
219
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
186
220
  promptEnabled: prompt.settings && toggle(prompt.label),
187
- scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring'])
221
+ scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),
222
+ rubricEnabled: withRubric.settings && toggle(withRubric.label)
188
223
  }
189
224
  }
190
225
  })
@@ -193,7 +228,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
193
228
  }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
194
229
  component: "div",
195
230
  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, {
231
+ }, /*#__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
232
  label: teacherInstructions.label,
198
233
  className: classes.promptHolder
199
234
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
@@ -201,7 +236,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
201
236
  markup: model.teacherInstructions || '',
202
237
  onChange: this.onTeacherInstructionsChange,
203
238
  imageSupport: imageSupport,
204
- nonEmpty: false
239
+ nonEmpty: false,
240
+ spellCheck: spellCheckEnabled,
241
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
242
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
243
+ uploadSoundSupport: uploadSoundSupport,
244
+ languageCharactersProps: [{
245
+ language: 'spanish'
246
+ }, {
247
+ language: 'special'
248
+ }]
205
249
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
206
250
  label: prompt.label,
207
251
  className: classes.promptHolder
@@ -211,7 +255,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
211
255
  onChange: this.onPromptChange,
212
256
  imageSupport: imageSupport,
213
257
  nonEmpty: false,
214
- disableUnderline: true
258
+ spellCheck: spellCheckEnabled,
259
+ disableUnderline: true,
260
+ maxImageWidth: defaultImageMaxWidth,
261
+ maxImageHeight: defaultImageMaxHeight,
262
+ uploadSoundSupport: uploadSoundSupport,
263
+ languageCharactersProps: [{
264
+ language: 'spanish'
265
+ }, {
266
+ language: 'special'
267
+ }]
215
268
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
216
269
  label: rationale.label || 'Rationale',
217
270
  className: classes.promptHolder
@@ -219,17 +272,30 @@ var Configure = /*#__PURE__*/function (_React$Component) {
219
272
  className: classes.prompt,
220
273
  markup: model.rationale || '',
221
274
  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
- }
275
+ imageSupport: imageSupport,
276
+ spellCheck: spellCheckEnabled,
277
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
278
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
279
+ uploadSoundSupport: uploadSoundSupport,
280
+ languageCharactersProps: [{
281
+ language: 'spanish'
282
+ }, {
283
+ language: 'special'
284
+ }]
285
+ })), /*#__PURE__*/_react["default"].createElement(_charting.ConfigureChartPanel, {
286
+ model: model,
287
+ onChange: this.onConfigChange,
288
+ gridValues: gridValues,
289
+ labelValues: labelValues,
290
+ chartDimensions: chartDimensions,
291
+ charts: charts
228
292
  }), /*#__PURE__*/_react["default"].createElement(_chartingConfig["default"], {
229
- config: graph,
230
293
  model: model,
231
294
  onChange: onModelChanged,
232
- charts: charts
295
+ charts: charts,
296
+ labelsPlaceholders: labelsPlaceholders,
297
+ titlePlaceholder: titlePlaceholder,
298
+ showPixelGuides: showPixeGuides
233
299
  }), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
234
300
  config: graph,
235
301
  model: model,
@@ -247,6 +313,7 @@ exports.Configure = Configure;
247
313
  onConfigurationChanged: _propTypes["default"].func,
248
314
  classes: _propTypes["default"].object,
249
315
  imageSupport: _propTypes["default"].object,
316
+ uploadSoundSupport: _propTypes["default"].object,
250
317
  model: _propTypes["default"].object.isRequired,
251
318
  configuration: _propTypes["default"].object.isRequired
252
319
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","numberFields","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","rationale","props","onModelChanged","model","teacherInstructions","chartType","classes","configuration","onConfigurationChanged","imageSupport","graph","scoringType","studentInstructions","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","label","suffix","min","max","height","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","onRationaleChange","e","onChartTypeChange","target","value","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { chartTypes } from '@pie-lib/charting';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\n\nimport ChartingConfig from './charting-config';\nimport CorrectResponse from './correct-response';\nimport ChartType from './chart-type';\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, numberFields } = settings;\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nconst charts = [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n];\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired\n };\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = rationale => this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = prompt => this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = teacherInstructions => this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = chartType => this.props.onModelChanged({ ...this.props.model, chartType });\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport\n } = this.props;\n log('[render] model', model);\n const { graph } = model;\n const {\n title = {},\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n prompt = {},\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled } = model || {};\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n 'title.enabled': title.settings && toggle(title.label, true),\n graph: numberFields('Graph Display Size', {\n width: {\n label: 'Width',\n suffix: 'px',\n min: 400,\n max: 700\n },\n height: {\n label: 'Height',\n suffix: 'px',\n min: 400,\n max: 700\n }\n })\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n promptEnabled:\n prompt.settings && toggle(prompt.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['all or nothing', 'partial scoring'])\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a chart that meets specific criteria.\n The student will draw a category on the chart by clicking Add Category\n and dragging the top part of the category.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n />\n </InputContainer>\n )}\n\n <ChartType\n value={model.chartType}\n onChange={e => this.onChartTypeChange(e.target.value)}\n />\n\n <ChartingConfig\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
1
+ {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","props","rationale","onModelChanged","model","teacherInstructions","chartType","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","graph","range","rangeConstraints","height","setState","step","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","scoringType","studentInstructions","spellCheck","maxImageWidth","maxImageHeight","labelsPlaceholders","titlePlaceholder","chartDimensions","withRubric","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","rubricEnabled","showPixeGuides","showInConfigPanel","defaultImageMaxWidth","defaultImageMaxHeight","Properties","label","studentInstructionsEnabled","onTeacherInstructionsChange","language","onPromptChange","onRationaleChange","onConfigChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { chartTypes, ConfigureChartPanel } from '@pie-lib/charting';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\n\nimport ChartingConfig from './charting-config';\nimport CorrectResponse from './correct-response';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = (theme) => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n content: {\n marginTop: theme.spacing.unit * 2,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nconst charts = [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n];\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { range, graph } = props.model || {};\n\n const gridValues = {\n range: getGridValues(range, graph.height, true)\n };\n\n const labelValues = {\n range: getLabelValues(range.step || 1)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = (rationale) =>\n this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) =>\n this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) =>\n this.props.onModelChanged({ ...this.props.model, chartType });\n\n onConfigChange = config => {\n const { model } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { graph, range } = updatedModel;\n const gridValues = {};\n const labelValues = {};\n\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues;\n labelValues.range = rangeConstraints.labelValues;\n\n this.setState({ gridValues, labelValues });\n this.props.onModelChanged(updatedModel);\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport,\n uploadSoundSupport\n } = this.props;\n log('[render] model', model);\n const { graph } = model;\n const {\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n prompt = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {},\n labelsPlaceholders = {},\n titlePlaceholder = {},\n chartDimensions = {},\n withRubric,\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n rubricEnabled\n } = model || {};\n const { gridValues, labelValues } = this.state;\n const showPixeGuides = chartDimensions.showInConfigPanel || true;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, [\n 'all or nothing',\n 'partial scoring',\n ]),\n rubricEnabled: withRubric.settings && toggle(withRubric.label)\n },\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n 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.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <ConfigureChartPanel\n model={model}\n onChange={this.onConfigChange}\n gridValues={gridValues}\n labelValues={labelValues}\n chartDimensions={chartDimensions}\n charts={charts}\n />\n\n <ChartingConfig\n model={model}\n onChange={onModelChanged}\n charts={charts}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n showPixelGuides={showPixeGuides}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}