@pie-element/graphing 3.5.4-next.884 → 3.5.4-next.894

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.
@@ -47,6 +47,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
47
47
 
48
48
  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; }
49
49
 
50
+ 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; }
51
+
52
+ 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; }
53
+
50
54
  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
55
 
52
56
  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; } }
@@ -183,6 +187,21 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
183
187
  (0, _lodash.set)(model, "answers.".concat(key, ".marks"), marks);
184
188
  onChange(model);
185
189
  });
190
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filterMarks", function (tool) {
191
+ var answers = _this.props.model.answers;
192
+ return Object.entries(answers || {}).reduce(function (object, _ref2) {
193
+ var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
194
+ key = _ref3[0],
195
+ answer = _ref3[1];
196
+
197
+ object[key] = _objectSpread(_objectSpread({}, answer), {}, {
198
+ marks: (answer.marks || []).filter(function (mark) {
199
+ return mark.type !== tool;
200
+ })
201
+ });
202
+ return object;
203
+ }, {});
204
+ });
186
205
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeToolbarTools", function (toolbarTools) {
187
206
  var _this$props2 = _this.props,
188
207
  model = _this$props2.model,
@@ -190,28 +209,62 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
190
209
  model.toolbarTools = toolbarTools;
191
210
  onChange(model);
192
211
  });
212
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateModel", function (props) {
213
+ var _this$props3 = _this.props,
214
+ model = _this$props3.model,
215
+ onChange = _this$props3.onChange;
216
+ onChange(_objectSpread(_objectSpread({}, model), props));
217
+ });
193
218
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleToolBarTool", function (tool) {
194
- var toolbarTools = _this.props.model.toolbarTools;
219
+ var _this$props$model = _this.props.model,
220
+ toolbarTools = _this$props$model.toolbarTools,
221
+ _this$props$model$ans = _this$props$model.answers,
222
+ answers = _this$props$model$ans === void 0 ? {} : _this$props$model$ans;
223
+ var updatedToolbarTools = (0, _toConsumableArray2["default"])(toolbarTools);
195
224
  var index = toolbarTools.findIndex(function (t) {
196
225
  return tool === t;
197
226
  });
198
227
 
199
228
  if (index >= 0) {
200
- var update = (0, _toConsumableArray2["default"])(toolbarTools);
201
- update.splice(index, 1);
229
+ var updatedAnswers = _this.filterMarks(tool);
230
+
231
+ updatedToolbarTools.splice(index, 1);
232
+
233
+ if (!(0, _lodash.isEqual)(answers, updatedAnswers)) {
234
+ _this.setState({
235
+ dialog: {
236
+ open: true,
237
+ title: 'Warning',
238
+ text: "Correct answer includes one or more ".concat(tool, " objects and all of them will be deleted."),
239
+ onConfirm: function onConfirm() {
240
+ return _this.handleAlertDialog(false, _this.updateModel({
241
+ toolbarTools: updatedToolbarTools,
242
+ answers: updatedAnswers
243
+ }));
244
+ },
245
+ onClose: function onClose() {
246
+ return _this.handleAlertDialog(false);
247
+ }
248
+ }
249
+ });
202
250
 
203
- _this.changeToolbarTools(update);
251
+ return;
252
+ }
204
253
  } else {
205
- _this.changeToolbarTools([].concat((0, _toConsumableArray2["default"])(toolbarTools), [tool]));
254
+ updatedToolbarTools.push(tool);
206
255
  }
256
+
257
+ _this.updateModel({
258
+ toolbarTools: updatedToolbarTools
259
+ });
207
260
  });
208
261
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addAlternateResponse", function () {
209
- var _this$props3 = _this.props,
210
- model = _this$props3.model,
211
- onChange = _this$props3.onChange;
262
+ var _this$props4 = _this.props,
263
+ model = _this$props4.model,
264
+ onChange = _this$props4.onChange;
212
265
 
213
- var _ref2 = model || {},
214
- answers = _ref2.answers;
266
+ var _ref4 = model || {},
267
+ answers = _ref4.answers;
215
268
 
216
269
  var answersKeys = Object.keys(answers || {});
217
270
  (0, _lodash.set)(model, "answers.".concat("alternate".concat(answersKeys.length)), {
@@ -221,17 +274,17 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
221
274
  onChange(model);
222
275
  });
223
276
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteAlternateResponse", function (key, answer) {
224
- var _this$props4 = _this.props,
225
- model = _this$props4.model,
226
- onChange = _this$props4.onChange;
277
+ var _this$props5 = _this.props,
278
+ model = _this$props5.model,
279
+ onChange = _this$props5.onChange;
227
280
 
228
- var _ref3 = model || {},
229
- answers = _ref3.answers;
281
+ var _ref5 = model || {},
282
+ answers = _ref5.answers;
230
283
 
231
- var _ref4 = answer || {},
232
- _ref4$marks = _ref4.marks,
233
- marks = _ref4$marks === void 0 ? [] : _ref4$marks,
234
- name = _ref4.name;
284
+ var _ref6 = answer || {},
285
+ _ref6$marks = _ref6.marks,
286
+ marks = _ref6$marks === void 0 ? [] : _ref6$marks,
287
+ name = _ref6.name;
235
288
 
236
289
  var deleteAnswer = function deleteAnswer() {
237
290
  delete answers[key];
@@ -266,24 +319,24 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
266
319
  value: function render() {
267
320
  var _this2 = this;
268
321
 
269
- var _this$props5 = this.props,
270
- classes = _this$props5.classes,
271
- model = _this$props5.model;
322
+ var _this$props6 = this.props,
323
+ classes = _this$props6.classes,
324
+ model = _this$props6.model;
272
325
  var dialog = this.state.dialog;
273
326
 
274
- var _ref5 = model || {},
275
- _ref5$answers = _ref5.answers,
276
- answers = _ref5$answers === void 0 ? {} : _ref5$answers,
277
- arrows = _ref5.arrows,
278
- backgroundMarks = _ref5.backgroundMarks,
279
- coordinatesOnHover = _ref5.coordinatesOnHover,
280
- domain = _ref5.domain,
281
- _ref5$graph = _ref5.graph,
282
- graph = _ref5$graph === void 0 ? {} : _ref5$graph,
283
- labels = _ref5.labels,
284
- range = _ref5.range,
285
- title = _ref5.title,
286
- toolbarTools = _ref5.toolbarTools;
327
+ var _ref7 = model || {},
328
+ _ref7$answers = _ref7.answers,
329
+ answers = _ref7$answers === void 0 ? {} : _ref7$answers,
330
+ arrows = _ref7.arrows,
331
+ backgroundMarks = _ref7.backgroundMarks,
332
+ coordinatesOnHover = _ref7.coordinatesOnHover,
333
+ domain = _ref7.domain,
334
+ _ref7$graph = _ref7.graph,
335
+ graph = _ref7$graph === void 0 ? {} : _ref7$graph,
336
+ labels = _ref7.labels,
337
+ range = _ref7.range,
338
+ title = _ref7.title,
339
+ toolbarTools = _ref7.toolbarTools;
287
340
 
288
341
  return /*#__PURE__*/React.createElement("div", null, "Define Correct Response", /*#__PURE__*/React.createElement(Tools, {
289
342
  classes: classes,
@@ -291,15 +344,15 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
291
344
  toolbarTools: toolbarTools
292
345
  }), /*#__PURE__*/React.createElement("div", {
293
346
  className: classes.container
294
- }, Object.entries(answers || {}).map(function (_ref6) {
295
- var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2),
296
- key = _ref7[0],
297
- answer = _ref7[1];
298
-
299
- var _ref8 = answer || {},
300
- _ref8$marks = _ref8.marks,
301
- marks = _ref8$marks === void 0 ? [] : _ref8$marks,
302
- name = _ref8.name;
347
+ }, Object.entries(answers || {}).map(function (_ref8) {
348
+ var _ref9 = (0, _slicedToArray2["default"])(_ref8, 2),
349
+ key = _ref9[0],
350
+ answer = _ref9[1];
351
+
352
+ var _ref10 = answer || {},
353
+ _ref10$marks = _ref10.marks,
354
+ marks = _ref10$marks === void 0 ? [] : _ref10$marks,
355
+ name = _ref10.name;
303
356
 
304
357
  return /*#__PURE__*/React.createElement("div", {
305
358
  key: "correct-response-graph-".concat(name)
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/correct-response.jsx"],"names":["allTools","tools","styles","theme","column","flex","graphingTools","margin","spacing","unit","color","availableTools","marginTop","display","availableTool","cursor","padding","border","textTransform","selectedTool","background","container","borderRadius","button","width","responseTitle","alignItems","iconButton","marginLeft","name","Tools","classes","toolbarTools","toggleToolBarTool","allToolsNoLabel","filter","tool","map","selected","find","t","toUpperCase","propTypes","PropTypes","object","isRequired","arrayOf","string","func","CorrectResponse","dialog","open","callback","setState","key","marks","props","model","onChange","index","findIndex","update","splice","changeToolbarTools","answers","answersKeys","Object","keys","length","answer","deleteAnswer","title","text","onConfirm","handleAlertDialog","onClose","state","arrows","backgroundMarks","coordinatesOnHover","domain","graph","labels","range","entries","deleteAlternateResponse","includeArrows","newMarks","changeMarks","height","addAlternateResponse","React","Component","String"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph, tools } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set } from 'lodash';\n\nconst { allTools } = tools;\n\nconst styles = theme => ({\n column: {\n flex: 1\n },\n graphingTools: {\n margin: `${theme.spacing.unit * 3}px 0`,\n color: '#ababab'\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex'\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d'\n }\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab'\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa'\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8'\n }\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px'\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000'\n }\n },\n name: {\n margin: '5px 0'\n }\n});\n\nexport const Tools = ({ classes, toolbarTools, toggleToolBarTool }) => {\n // label has to be placed at the end of the list\n const allToolsNoLabel = (allTools || []).filter(tool => tool !== 'label');\n\n return (\n <div className={classes.graphingTools}>\n GRAPHING TOOLS\n <div className={classes.availableTools}>\n {([...allToolsNoLabel, 'label']).map(tool => {\n const selected = toolbarTools.find(t => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(\n classes.availableTool,\n selected && classes.selectedTool\n )}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String)\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState({\n dialog: { open }\n }, callback);\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n changeToolbarTools = toolbarTools => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n toggleToolBarTool = tool => {\n const { toolbarTools } = this.props.model;\n\n const index = toolbarTools.findIndex(t => tool === t);\n\n if (index >= 0) {\n const update = [...toolbarTools];\n update.splice(index, 1);\n this.changeToolbarTools(update);\n } else {\n this.changeToolbarTools([...toolbarTools, tool]);\n }\n };\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(\n model,\n `answers.${`alternate${answersKeys.length}`}`,\n { name: `Alternate ${answersKeys.length}`, marks: [] }\n );\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { classes, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n graph = {},\n labels,\n range,\n title,\n toolbarTools\n } = model || {};\n\n return (\n <div>\n Define Correct Response\n <Tools\n classes={classes}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n <div className={classes.container}>\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' &&\n <Delete\n className={classes.iconButton}\n onClick={() => this.deleteAlternateResponse(key, answer)}\n />}\n </div>\n\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={newMarks => this.changeMarks(key, newMarks)}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n />\n </div>\n )\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\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 );\n }\n};\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
1
+ {"version":3,"sources":["../src/correct-response.jsx"],"names":["allTools","tools","styles","theme","column","flex","graphingTools","margin","spacing","unit","color","availableTools","marginTop","display","availableTool","cursor","padding","border","textTransform","selectedTool","background","container","borderRadius","button","width","responseTitle","alignItems","iconButton","marginLeft","name","Tools","classes","toolbarTools","toggleToolBarTool","allToolsNoLabel","filter","tool","map","selected","find","t","toUpperCase","propTypes","PropTypes","object","isRequired","arrayOf","string","func","CorrectResponse","dialog","open","callback","setState","key","marks","props","model","onChange","answers","Object","entries","reduce","answer","mark","type","updatedToolbarTools","index","findIndex","updatedAnswers","filterMarks","splice","title","text","onConfirm","handleAlertDialog","updateModel","onClose","push","answersKeys","keys","length","deleteAnswer","state","arrows","backgroundMarks","coordinatesOnHover","domain","graph","labels","range","deleteAlternateResponse","includeArrows","newMarks","changeMarks","height","addAlternateResponse","React","Component","String"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAQA,QAAR,GAAqBC,eAArB,CAAQD,QAAR;;AAEA,IAAME,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE;AADA,KADe;AAIvBC,IAAAA,aAAa,EAAE;AACbC,MAAAA,MAAM,YAAKJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAA1B,SADO;AAEbC,MAAAA,KAAK,EAAE;AAFM,KAJQ;AAQvBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,SAAS,EAAET,KAAK,CAACK,OAAN,CAAcC,IADX;AAEdI,MAAAA,OAAO,EAAE;AAFK,KARO;AAYvBC,IAAAA,aAAa,EAAE;AACbC,MAAAA,MAAM,EAAE,SADK;AAEbR,MAAAA,MAAM,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAFT;AAGbO,MAAAA,OAAO,EAAEb,KAAK,CAACK,OAAN,CAAcC,IAHV;AAIbQ,MAAAA,MAAM,EAAE,iBAJK;AAKbC,MAAAA,aAAa,EAAE,YALF;AAMb,iBAAW;AACTR,QAAAA,KAAK,EAAE;AADE;AANE,KAZQ;AAsBvBS,IAAAA,YAAY,EAAE;AACZC,MAAAA,UAAU,EAAE,SADA;AAEZH,MAAAA,MAAM,EAAE;AAFI,KAtBS;AA0BvBI,IAAAA,SAAS,EAAE;AACTJ,MAAAA,MAAM,EAAE,mBADC;AAETK,MAAAA,YAAY,EAAE,KAFL;AAGTN,MAAAA,OAAO,cAAOb,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAA5B,gBAAmCN,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAAxD,OAHE;AAITW,MAAAA,UAAU,EAAE;AAJH,KA1BY;AAgCvBG,IAAAA,MAAM,EAAE;AACNX,MAAAA,SAAS,EAAET,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAD1B;AAENM,MAAAA,MAAM,EAAE,SAFF;AAGNK,MAAAA,UAAU,EAAE,MAHN;AAINJ,MAAAA,OAAO,EAAEb,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAJxB;AAKNe,MAAAA,KAAK,EAAE,aALD;AAMNF,MAAAA,YAAY,EAAE,KANR;AAON,iBAAW;AACTF,QAAAA,UAAU,EAAE;AADH;AAPL,KAhCe;AA2CvBK,IAAAA,aAAa,EAAE;AACbZ,MAAAA,OAAO,EAAE,MADI;AAEba,MAAAA,UAAU,EAAE,QAFC;AAGbd,MAAAA,SAAS,EAAE;AAHE,KA3CQ;AAgDvBe,IAAAA,UAAU,EAAE;AACVC,MAAAA,UAAU,EAAE,KADF;AAEVlB,MAAAA,KAAK,EAAE,SAFG;AAGV,iBAAW;AACTK,QAAAA,MAAM,EAAE,SADC;AAETL,QAAAA,KAAK,EAAE;AAFE;AAHD,KAhDW;AAwDvBmB,IAAAA,IAAI,EAAE;AACJtB,MAAAA,MAAM,EAAE;AADJ;AAxDiB,GAAL;AAAA,CAApB;;AA6DO,IAAMuB,KAAK,GAAG,SAARA,KAAQ,OAAkD;AAAA,MAA/CC,OAA+C,QAA/CA,OAA+C;AAAA,MAAtCC,YAAsC,QAAtCA,YAAsC;AAAA,MAAxBC,iBAAwB,QAAxBA,iBAAwB;AACrE;AACA,MAAMC,eAAe,GAAG,CAAClC,QAAQ,IAAI,EAAb,EAAiBmC,MAAjB,CAAwB,UAAAC,IAAI;AAAA,WAAIA,IAAI,KAAK,OAAb;AAAA,GAA5B,CAAxB;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAACzB;AAAxB,oCAEE;AAAK,IAAA,SAAS,EAAEyB,OAAO,CAACpB;AAAxB,KACG,8CAAKuB,eAAL,IAAsB,OAAtB,GAAgCG,GAAhC,CAAoC,UAAAD,IAAI,EAAI;AAC3C,QAAME,QAAQ,GAAGN,YAAY,CAACO,IAAb,CAAkB,UAAAC,CAAC;AAAA,aAAIA,CAAC,KAAKJ,IAAV;AAAA,KAAnB,CAAjB;AAEA,wBACE;AACE,MAAA,GAAG,EAAEA,IADP;AAEE,MAAA,SAAS,EAAE,4BACTL,OAAO,CAACjB,aADC,EAETwB,QAAQ,IAAIP,OAAO,CAACZ,YAFX,CAFb;AAME,MAAA,OAAO,EAAE;AAAA,eAAMc,iBAAiB,CAACG,IAAD,CAAvB;AAAA;AANX,OAQGA,IAAI,CAACK,WAAL,EARH,CADF;AAYD,GAfA,CADH,CAFF,CADF;AAuBD,CA3BM;;;AA6BPX,KAAK,CAACY,SAAN,GAAkB;AAChBX,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC,UADV;AAEhBb,EAAAA,YAAY,EAAEW,sBAAUG,OAAV,CAAkBH,sBAAUI,MAA5B,CAFE;AAGhBd,EAAAA,iBAAiB,EAAEU,sBAAUK;AAHb,CAAlB;;IAMaC,e;;;;;;;;;;;;;;;8FAQH;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE;AADA;AADF,K;0GAMY,UAACA,IAAD,EAAOC,QAAP;AAAA,aAClB,MAAKC,QAAL,CAAc;AACZH,QAAAA,MAAM,EAAE;AAAEC,UAAAA,IAAI,EAAJA;AAAF;AADI,OAAd,EAEGC,QAFH,CADkB;AAAA,K;oGAKN,UAACE,GAAD,EAAMC,KAAN,EAAgB;AAC5B,wBAA4B,MAAKC,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;AAEA,uBAAID,KAAJ,oBAAsBH,GAAtB,aAAmCC,KAAnC;AACAG,MAAAA,QAAQ,CAACD,KAAD,CAAR;AACD,K;oGAEa,UAACrB,IAAD,EAAU;AACtB,UAAiBuB,OAAjB,GAA8B,MAAKH,KAAnC,CAAQC,KAAR,CAAiBE,OAAjB;AAEA,aAAOC,MAAM,CAACC,OAAP,CAAeF,OAAO,IAAI,EAA1B,EAA8BG,MAA9B,CAAqC,UAAClB,MAAD,SAA2B;AAAA;AAAA,YAAjBU,GAAiB;AAAA,YAAZS,MAAY;;AACrEnB,QAAAA,MAAM,CAACU,GAAD,CAAN,mCACKS,MADL;AAEER,UAAAA,KAAK,EAAE,CAACQ,MAAM,CAACR,KAAP,IAAgB,EAAjB,EAAqBpB,MAArB,CAA4B,UAAA6B,IAAI;AAAA,mBAAIA,IAAI,CAACC,IAAL,KAAc7B,IAAlB;AAAA,WAAhC;AAFT;AAKA,eAAOQ,MAAP;AACD,OAPM,EAOJ,EAPI,CAAP;AAQD,K;2GAEoB,UAAAZ,YAAY,EAAI;AACnC,yBAA4B,MAAKwB,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AACAD,MAAAA,KAAK,CAACzB,YAAN,GAAqBA,YAArB;AAEA0B,MAAAA,QAAQ,CAACD,KAAD,CAAR;AACD,K;oGAEa,UAAAD,KAAK,EAAI;AACrB,yBAA4B,MAAKA,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG,GAEHD,KAFG,EAAR;AAID,K;0GAEmB,UAAApB,IAAI,EAAI;AAC1B,8BAAgD,MAAKoB,KAArD,CAAQC,KAAR;AAAA,UAAiBzB,YAAjB,qBAAiBA,YAAjB;AAAA,oDAA+B2B,OAA/B;AAAA,UAA+BA,OAA/B,sCAAyC,EAAzC;AACA,UAAMO,mBAAmB,uCAAQlC,YAAR,CAAzB;AAEA,UAAMmC,KAAK,GAAGnC,YAAY,CAACoC,SAAb,CAAuB,UAAA5B,CAAC;AAAA,eAAIJ,IAAI,KAAKI,CAAb;AAAA,OAAxB,CAAd;;AAEA,UAAI2B,KAAK,IAAI,CAAb,EAAgB;AACd,YAAME,cAAc,GAAG,MAAKC,WAAL,CAAiBlC,IAAjB,CAAvB;;AACA8B,QAAAA,mBAAmB,CAACK,MAApB,CAA2BJ,KAA3B,EAAkC,CAAlC;;AAEA,YAAI,CAAC,qBAAQR,OAAR,EAAiBU,cAAjB,CAAL,EAAuC;AACrC,gBAAKhB,QAAL,CAAc;AACZH,YAAAA,MAAM,EAAE;AACNC,cAAAA,IAAI,EAAE,IADA;AAENqB,cAAAA,KAAK,EAAE,SAFD;AAGNC,cAAAA,IAAI,gDAAyCrC,IAAzC,8CAHE;AAINsC,cAAAA,SAAS,EAAE;AAAA,uBAAM,MAAKC,iBAAL,CACf,KADe,EACR,MAAKC,WAAL,CAAiB;AACtB5C,kBAAAA,YAAY,EAAEkC,mBADQ;AAEtBP,kBAAAA,OAAO,EAAEU;AAFa,iBAAjB,CADQ,CAAN;AAAA,eAJL;AASNQ,cAAAA,OAAO,EAAE;AAAA,uBAAM,MAAKF,iBAAL,CAAuB,KAAvB,CAAN;AAAA;AATH;AADI,WAAd;;AAcA;AACD;AACF,OArBD,MAqBO;AACLT,QAAAA,mBAAmB,CAACY,IAApB,CAAyB1C,IAAzB;AACD;;AAED,YAAKwC,WAAL,CAAiB;AAAE5C,QAAAA,YAAY,EAAEkC;AAAhB,OAAjB;AACD,K;6GAEsB,YAAM;AAC3B,yBAA4B,MAAKV,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;;AACA,kBAAoBD,KAAK,IAAI,EAA7B;AAAA,UAAQE,OAAR,SAAQA,OAAR;;AACA,UAAMoB,WAAW,GAAGnB,MAAM,CAACoB,IAAP,CAAYrB,OAAO,IAAI,EAAvB,CAApB;AAEA,uBACEF,KADF,uCAEyBsB,WAAW,CAACE,MAFrC,IAGE;AAAEpD,QAAAA,IAAI,sBAAekD,WAAW,CAACE,MAA3B,CAAN;AAA2C1B,QAAAA,KAAK,EAAE;AAAlD,OAHF;AAKAG,MAAAA,QAAQ,CAACD,KAAD,CAAR;AACD,K;gHAEyB,UAACH,GAAD,EAAMS,MAAN,EAAiB;AACzC,yBAA4B,MAAKP,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;;AACA,kBAAoBD,KAAK,IAAI,EAA7B;AAAA,UAAQE,OAAR,SAAQA,OAAR;;AACA,kBAA6BI,MAAM,IAAI,EAAvC;AAAA,8BAAQR,KAAR;AAAA,UAAQA,KAAR,4BAAgB,EAAhB;AAAA,UAAoB1B,IAApB,SAAoBA,IAApB;;AAEA,UAAMqD,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB,eAAOvB,OAAO,CAACL,GAAD,CAAd;AACAI,QAAAA,QAAQ,CAACD,KAAD,CAAR;AACD,OAHD;;AAKA,UAAIF,KAAK,CAAC0B,MAAV,EAAkB;AAChB,cAAK5B,QAAL,CAAc;AACZH,UAAAA,MAAM,EAAE;AACNC,YAAAA,IAAI,EAAE,IADA;AAENqB,YAAAA,KAAK,EAAE,SAFD;AAGNC,YAAAA,IAAI,YAAK5C,IAAL,0EAHE;AAIN6C,YAAAA,SAAS,EAAE;AAAA,qBAAM,MAAKC,iBAAL,CAAuB,KAAvB,EAA8BO,YAA9B,CAAN;AAAA,aAJL;AAKNL,YAAAA,OAAO,EAAE;AAAA,qBAAM,MAAKF,iBAAL,CAAuB,KAAvB,CAAN;AAAA;AALH;AADI,SAAd;;AAUA;AACD;;AAEDO,MAAAA,YAAY;AACb,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAA2B,KAAK1B,KAAhC;AAAA,UAAQzB,OAAR,gBAAQA,OAAR;AAAA,UAAiB0B,KAAjB,gBAAiBA,KAAjB;AACA,UAAQP,MAAR,GAAmB,KAAKiC,KAAxB,CAAQjC,MAAR;;AACA,kBAWIO,KAAK,IAAI,EAXb;AAAA,gCACEE,OADF;AAAA,UACEA,OADF,8BACY,EADZ;AAAA,UAEEyB,MAFF,SAEEA,MAFF;AAAA,UAGEC,eAHF,SAGEA,eAHF;AAAA,UAIEC,kBAJF,SAIEA,kBAJF;AAAA,UAKEC,MALF,SAKEA,MALF;AAAA,8BAMEC,KANF;AAAA,UAMEA,KANF,4BAMU,EANV;AAAA,UAOEC,MAPF,SAOEA,MAPF;AAAA,UAQEC,KARF,SAQEA,KARF;AAAA,UASElB,KATF,SASEA,KATF;AAAA,UAUExC,YAVF,SAUEA,YAVF;;AAaA,0BACE,yEAEE,oBAAC,KAAD;AACE,QAAA,OAAO,EAAED,OADX;AAEE,QAAA,iBAAiB,EAAE,KAAKE,iBAF1B;AAGE,QAAA,YAAY,EAAED;AAHhB,QAFF,eAQE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACV;AAAxB,SACGuC,MAAM,CAACC,OAAP,CAAeF,OAAO,IAAI,EAA1B,EAA8BtB,GAA9B,CAAkC,iBAAmB;AAAA;AAAA,YAAjBiB,GAAiB;AAAA,YAAZS,MAAY;;AACpD,qBAA6BA,MAAM,IAAI,EAAvC;AAAA,kCAAQR,KAAR;AAAA,YAAQA,KAAR,6BAAgB,EAAhB;AAAA,YAAoB1B,IAApB,UAAoBA,IAApB;;AAEA,4BACE;AAAK,UAAA,GAAG,mCAA4BA,IAA5B;AAAR,wBACE;AAAK,UAAA,SAAS,EAAEE,OAAO,CAACN;AAAxB,wBACE;AAAG,UAAA,SAAS,EAAEM,OAAO,CAACF;AAAtB,WAA6BA,IAA7B,CADF,EAEGyB,GAAG,KAAK,eAAR,iBACC,oBAAC,kBAAD;AACE,UAAA,SAAS,EAAEvB,OAAO,CAACJ,UADrB;AAEE,UAAA,OAAO,EAAE;AAAA,mBAAM,MAAI,CAACgE,uBAAL,CAA6BrC,GAA7B,EAAkCS,MAAlC,CAAN;AAAA;AAFX,UAHJ,CADF,eAUE,oBAAC,wBAAD;AACE,UAAA,YAAY,EAAE;AAAE6B,YAAAA,aAAa,EAAER;AAAjB,WADhB;AAEE,UAAA,eAAe,EAAEC,eAFnB;AAGE,UAAA,kBAAkB,EAAEC,kBAHtB;AAIE,UAAA,MAAM,EAAEC,MAJV;AAKE,UAAA,MAAM,EAAEE,MALV;AAME,UAAA,KAAK,EAAElC,KANT;AAOE,UAAA,aAAa,EAAE,uBAAAsC,QAAQ;AAAA,mBAAI,MAAI,CAACC,WAAL,CAAiBxC,GAAjB,EAAsBuC,QAAtB,CAAJ;AAAA,WAPzB;AAQE,UAAA,KAAK,EAAEH,KART;AASE,UAAA,IAAI,EAAE;AAAElE,YAAAA,KAAK,EAAEgE,KAAK,CAAChE,KAAf;AAAsBuE,YAAAA,MAAM,EAAEP,KAAK,CAACO;AAApC,WATR;AAUE,UAAA,KAAK,EAAEvB,KAVT;AAWE,UAAA,YAAY,EAAExC;AAXhB,UAVF,CADF;AA0BD,OA7BA,CADH,eAgCE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACR,MAAxB;AAAgC,QAAA,OAAO,EAAE,KAAKyE;AAA9C,yBAhCF,CARF,eA6CE,oBAAC,qBAAD;AACE,QAAA,IAAI,EAAE9C,MAAM,CAACC,IADf;AAEE,QAAA,KAAK,EAAED,MAAM,CAACsB,KAFhB;AAGE,QAAA,IAAI,EAAEtB,MAAM,CAACuB,IAHf;AAIE,QAAA,OAAO,EAAEvB,MAAM,CAAC2B,OAJlB;AAKE,QAAA,SAAS,EAAE3B,MAAM,CAACwB;AALpB,QA7CF,CADF;AAuDD;;;EAxMkCuB,KAAK,CAACC,S;;;iCAA9BjD,e,eACQ;AACjBlB,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC,UADT;AAEjBY,EAAAA,KAAK,EAAEd,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBa,EAAAA,QAAQ,EAAEf,sBAAUK,IAAV,CAAeH,UAHR;AAIjBb,EAAAA,YAAY,EAAEW,sBAAUG,OAAV,CAAkBH,sBAAUwD,MAA5B;AAJG,C;AAwMpB;;eAEc,wBAAWjG,MAAX,EAAmB+C,eAAnB,C","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph, tools } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set, isEqual } from 'lodash';\n\nconst { allTools } = tools;\n\nconst styles = theme => ({\n column: {\n flex: 1\n },\n graphingTools: {\n margin: `${theme.spacing.unit * 3}px 0`,\n color: '#ababab'\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex'\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d'\n }\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab'\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa'\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8'\n }\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px'\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000'\n }\n },\n name: {\n margin: '5px 0'\n }\n});\n\nexport const Tools = ({ classes, toolbarTools, toggleToolBarTool }) => {\n // label has to be placed at the end of the list\n const allToolsNoLabel = (allTools || []).filter(tool => tool !== 'label');\n\n return (\n <div className={classes.graphingTools}>\n GRAPHING TOOLS\n <div className={classes.availableTools}>\n {([...allToolsNoLabel, 'label']).map(tool => {\n const selected = toolbarTools.find(t => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(\n classes.availableTool,\n selected && classes.selectedTool\n )}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String)\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState({\n dialog: { open }\n }, callback);\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n filterMarks = (tool) => {\n const { model: { answers }} = this.props;\n\n return Object.entries(answers || {}).reduce((object, [key, answer]) => {\n object[key] = {\n ...answer,\n marks: (answer.marks || []).filter(mark => mark.type !== tool)\n };\n\n return object;\n }, {});\n };\n\n changeToolbarTools = toolbarTools => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n updateModel = props => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n ...props\n });\n };\n\n toggleToolBarTool = tool => {\n const { model: { toolbarTools, answers = {}}} = this.props;\n const updatedToolbarTools = [ ...toolbarTools ];\n\n const index = toolbarTools.findIndex(t => tool === t);\n\n if (index >= 0) {\n const updatedAnswers = this.filterMarks(tool);\n updatedToolbarTools.splice(index, 1);\n\n if (!isEqual(answers, updatedAnswers)) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `Correct answer includes one or more ${tool} objects and all of them will be deleted.`,\n onConfirm: () => this.handleAlertDialog(\n false, this.updateModel({\n toolbarTools: updatedToolbarTools,\n answers: updatedAnswers\n })),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n\n return;\n }\n } else {\n updatedToolbarTools.push(tool);\n }\n\n this.updateModel({ toolbarTools: updatedToolbarTools });\n };\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(\n model,\n `answers.${`alternate${answersKeys.length}`}`,\n { name: `Alternate ${answersKeys.length}`, marks: [] }\n );\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { classes, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n graph = {},\n labels,\n range,\n title,\n toolbarTools\n } = model || {};\n\n return (\n <div>\n Define Correct Response\n <Tools\n classes={classes}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n <div className={classes.container}>\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' &&\n <Delete\n className={classes.iconButton}\n onClick={() => this.deleteAlternateResponse(key, answer)}\n />}\n </div>\n\n <Graph\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={newMarks => this.changeMarks(key, newMarks)}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n />\n </div>\n )\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\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 );\n }\n};\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
@@ -25,21 +25,19 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var React = _interopRequireWildcard(require("react"));
27
27
 
28
- var _configUi = require("@pie-lib/config-ui");
29
-
30
28
  var _classnames = _interopRequireDefault(require("classnames"));
31
29
 
32
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
31
 
34
- var _styles = require("@material-ui/core/styles");
32
+ var _configUi = require("@pie-lib/config-ui");
35
33
 
36
34
  var _graphing = require("@pie-lib/graphing");
37
35
 
38
36
  var _core = require("@material-ui/core");
39
37
 
40
- var _lodash = require("lodash");
38
+ var _styles = require("@material-ui/core/styles");
41
39
 
42
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
40
+ var _lodash = require("lodash");
43
41
 
44
42
  var _this = void 0;
45
43
 
@@ -55,6 +53,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
55
53
 
56
54
  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; } }
57
55
 
56
+ var _tools$allTools = _graphing.tools.allTools,
57
+ allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
58
+
58
59
  var AuthoringColumn = function AuthoringColumn(_ref) {
59
60
  var columnKey = _ref.columnKey,
60
61
  axis = _ref.axis,
@@ -222,19 +223,16 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
222
223
  authoringEnabled = _this$props.authoringEnabled;
223
224
 
224
225
  var _ref3 = model || {},
225
- graph = _ref3.graph;
226
-
227
- var _ref4 = model || {},
228
- arrows = _ref4.arrows,
229
- backgroundMarks = _ref4.backgroundMarks,
230
- coordinatesOnHover = _ref4.coordinatesOnHover,
231
- domain = _ref4.domain,
232
- labels = _ref4.labels,
233
- range = _ref4.range,
234
- title = _ref4.title,
235
- toolbarTools = _ref4.toolbarTools;
236
-
237
- graph = graph || {};
226
+ arrows = _ref3.arrows,
227
+ backgroundMarks = _ref3.backgroundMarks,
228
+ coordinatesOnHover = _ref3.coordinatesOnHover,
229
+ domain = _ref3.domain,
230
+ _ref3$graph = _ref3.graph,
231
+ graph = _ref3$graph === void 0 ? {} : _ref3$graph,
232
+ labels = _ref3.labels,
233
+ range = _ref3.range,
234
+ title = _ref3.title;
235
+
238
236
  return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
239
237
  className: classes.container
240
238
  }, authoringEnabled && /*#__PURE__*/React.createElement("div", {
@@ -253,7 +251,7 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
253
251
  })), /*#__PURE__*/React.createElement("div", {
254
252
  className: classes.column,
255
253
  key: "graph"
256
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
254
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
257
255
  component: "div",
258
256
  type: "body1"
259
257
  }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
@@ -273,7 +271,7 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
273
271
  height: graph.height
274
272
  },
275
273
  title: title,
276
- toolbarTools: toolbarTools
274
+ toolbarTools: allTools
277
275
  }))));
278
276
  }
279
277
  }]);
@@ -287,6 +285,7 @@ exports.GraphingConfig = GraphingConfig;
287
285
  onChange: _propTypes["default"].func.isRequired,
288
286
  authoringEnabled: _propTypes["default"].bool
289
287
  });
288
+ ;
290
289
 
291
290
  var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
292
291
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphing-config.jsx"],"names":["AuthoringColumn","columnKey","axis","classes","model","rows","key","inputs","label","className","smallInput","type","column","toUpperCase","map","row","input","target","onChangeInputValue","value","event","propTypes","PropTypes","String","object","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","settings","flexDirection","width","GraphingConfig","props","onChange","content","backgroundMarks","authoringEnabled","graph","arrows","coordinatesOnHover","domain","labels","range","title","toolbarTools","includeArrows","changeBackgroundMarks","height","React","Component","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { NumberTextField } from '@pie-lib/config-ui';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { TextField } from '@material-ui/core';\n\nimport { get, set } from 'lodash';\nimport Typography from '@material-ui/core/Typography';\n\nexport const AuthoringColumn = ({ columnKey, axis, classes, model }) => {\n const rows = [{\n key: '${columnKey}-min-max',\n inputs: [\n {\n key: `${columnKey}.min`,\n label: 'Min value',\n className: classes.smallInput\n },\n {\n key: `${columnKey}.max`,\n label: 'Max value',\n className: classes.smallInput\n }\n ]\n }, {\n key: `${columnKey}-tick-frequency`,\n inputs: [\n {\n key: `${columnKey}.step`,\n label: 'Tick frequency'\n }\n ]\n },\n {\n key: `${columnKey}-tick-label-frequency`,\n inputs: [\n {\n key: `${columnKey}.labelStep`,\n label: 'Tick label frequency'\n }\n ]\n },\n {\n key: `${columnKey}-axis-label`,\n inputs: [\n {\n type: 'text',\n key: `${axis}-axis-label-input`,\n label: `${axis} Axis Label`\n }\n ]\n }\n ];\n\n return (\n <div className={classes.column} key={columnKey}>\n {`${columnKey.toUpperCase()} (${axis.toUpperCase()})`}\n\n {rows.map(row => (\n <div className={classes.row} key={row.key}>\n {row.inputs.map(input => {\n if (input.type === 'text') {\n return (\n <TextField\n className={classes.input}\n label={input.label.toUpperCase()}\n value={model[`${axis}AxisLabel`]}\n onChange={({ target }) => this.onChangeInputValue(`${axis}AxisLabel`, target.value)}\n />\n );\n }\n\n return (\n <TextField\n type=\"number\"\n key={input.key}\n label={input.label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(input.key, value)}\n value={get(model, input.key)}\n className={input.className || classes.input}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\nAuthoringColumn.propTypes = {\n axis: PropTypes.String,\n classes: PropTypes.object,\n columnKey: PropTypes.String,\n model: PropTypes.object,\n};\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 row: {\n marginTop: theme.spacing.unit * 2,\n flex: 1\n },\n settings: {\n display: 'flex',\n flexDirection: 'row'\n },\n input: {\n width: 'calc(100% - 32px)'\n },\n smallInput: {\n width: 'calc(50% - 32px)'\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n authoringEnabled: PropTypes.bool,\n };\n\n onChangeInputValue = (key, value) => {\n const { model } = this.props;\n\n set(model, key, value);\n this.props.onChange(model);\n };\n\n renderInput = (key, label, className) => {\n const { classes, model } = this.props;\n\n return (\n <NumberTextField\n key={key}\n label={label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(key, value)}\n value={get(model, key)}\n className={className || classes.input}\n />\n )\n };\n\n renderRow = (key, content) => {\n const { classes } = this.props;\n\n return (\n <div className={classes.row} key={key}>\n {content}\n </div>\n );\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n this.props.onChange(model);\n };\n\n render() {\n const { classes, model, authoringEnabled } = this.props;\n let { graph } = model || {};\n const { arrows, backgroundMarks, coordinatesOnHover, domain, labels, range, title, toolbarTools } = model || {};\n graph = graph || {};\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n {\n authoringEnabled && (\n <div className={classnames(classes.column, classes.settings)} key=\"settings\">\n <AuthoringColumn columnKey=\"domain\" axis=\"x\" classes={classes} model={model} />\n <AuthoringColumn columnKey=\"range\" axis=\"y\" classes={classes} model={model} />\n </div>\n )\n }\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 <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n />\n </div>\n\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
1
+ {"version":3,"sources":["../src/graphing-config.jsx"],"names":["tools","allTools","AuthoringColumn","columnKey","axis","classes","model","rows","key","inputs","label","className","smallInput","type","column","toUpperCase","map","row","input","target","onChangeInputValue","value","event","propTypes","PropTypes","String","object","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","settings","flexDirection","width","GraphingConfig","props","onChange","content","backgroundMarks","authoringEnabled","arrows","coordinatesOnHover","domain","graph","labels","range","title","includeArrows","changeBackgroundMarks","height","React","Component","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { NumberTextField } from '@pie-lib/config-ui';\nimport { GraphContainer, tools } from '@pie-lib/graphing';\nimport { TextField, Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { get, set } from 'lodash';\n\nconst { allTools = [] } = tools;\n\nexport const AuthoringColumn = ({ columnKey, axis, classes, model }) => {\n const rows = [{\n key: '${columnKey}-min-max',\n inputs: [\n {\n key: `${columnKey}.min`,\n label: 'Min value',\n className: classes.smallInput\n },\n {\n key: `${columnKey}.max`,\n label: 'Max value',\n className: classes.smallInput\n }\n ]\n }, {\n key: `${columnKey}-tick-frequency`,\n inputs: [\n {\n key: `${columnKey}.step`,\n label: 'Tick frequency'\n }\n ]\n },\n {\n key: `${columnKey}-tick-label-frequency`,\n inputs: [\n {\n key: `${columnKey}.labelStep`,\n label: 'Tick label frequency'\n }\n ]\n },\n {\n key: `${columnKey}-axis-label`,\n inputs: [\n {\n type: 'text',\n key: `${axis}-axis-label-input`,\n label: `${axis} Axis Label`\n }\n ]\n }\n ];\n\n return (\n <div className={classes.column} key={columnKey}>\n {`${columnKey.toUpperCase()} (${axis.toUpperCase()})`}\n\n {rows.map(row => (\n <div className={classes.row} key={row.key}>\n {row.inputs.map(input => {\n if (input.type === 'text') {\n return (\n <TextField\n className={classes.input}\n label={input.label.toUpperCase()}\n value={model[`${axis}AxisLabel`]}\n onChange={({ target }) => this.onChangeInputValue(`${axis}AxisLabel`, target.value)}\n />\n );\n }\n\n return (\n <TextField\n type=\"number\"\n key={input.key}\n label={input.label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(input.key, value)}\n value={get(model, input.key)}\n className={input.className || classes.input}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\nAuthoringColumn.propTypes = {\n axis: PropTypes.String,\n classes: PropTypes.object,\n columnKey: PropTypes.String,\n model: PropTypes.object,\n};\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 row: {\n marginTop: theme.spacing.unit * 2,\n flex: 1\n },\n settings: {\n display: 'flex',\n flexDirection: 'row'\n },\n input: {\n width: 'calc(100% - 32px)'\n },\n smallInput: {\n width: 'calc(50% - 32px)'\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n authoringEnabled: PropTypes.bool,\n };\n\n onChangeInputValue = (key, value) => {\n const { model } = this.props;\n\n set(model, key, value);\n this.props.onChange(model);\n };\n\n renderInput = (key, label, className) => {\n const { classes, model } = this.props;\n\n return (\n <NumberTextField\n key={key}\n label={label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(key, value)}\n value={get(model, key)}\n className={className || classes.input}\n />\n )\n };\n\n renderRow = (key, content) => {\n const { classes } = this.props;\n\n return (\n <div className={classes.row} key={key}>\n {content}\n </div>\n );\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n this.props.onChange(model);\n };\n\n render() {\n const { classes, model, authoringEnabled } = this.props;\n const { arrows, backgroundMarks, coordinatesOnHover, domain, graph = {}, labels, range, title } = model || {};\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n {authoringEnabled && (\n <div className={classnames(classes.column, classes.settings)} key=\"settings\">\n <AuthoringColumn columnKey=\"domain\" axis=\"x\" classes={classes} model={model} />\n <AuthoringColumn columnKey=\"range\" axis=\"y\" classes={classes} model={model} />\n </div>\n )}\n\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 <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={allTools}\n />\n </div>\n\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
@@ -9,9 +9,9 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.2.0",
12
- "@pie-lib/config-ui": "^10.12.2",
13
- "@pie-lib/editable-html": "^7.22.2",
14
- "@pie-lib/graphing": "^2.5.1",
12
+ "@pie-lib/config-ui": "^10.13.0",
13
+ "@pie-lib/editable-html": "^7.22.3",
14
+ "@pie-lib/graphing": "^2.6.0",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^4.1.1",
17
17
  "prop-types": "^15.6.2",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "3.5.4-next.884+78a777cb1",
7
+ "version": "3.5.4-next.894+ae229b217",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -14,7 +14,7 @@
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
16
  "@pie-lib/correct-answer-toggle": "2.3.36",
17
- "@pie-lib/graphing": "^2.5.1",
17
+ "@pie-lib/graphing": "^2.6.0",
18
18
  "@pie-lib/math-rendering": "^2.4.0",
19
19
  "@pie-lib/render-ui": "^4.12.6",
20
20
  "classnames": "^2.2.5",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "",
26
26
  "license": "ISC",
27
- "gitHead": "78a777cb177a8c54a4b243aac4cba7f61fed8f87",
27
+ "gitHead": "ae229b2173614a033c6578890d9d0bd2076a16ca",
28
28
  "main": "lib/index.js",
29
29
  "module": "src/index.js"
30
30
  }