@pie-element/graphing 3.5.4-next.1014 → 3.5.4-next.1031

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 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","graphDimensions","scoringType","studentInstructions","teacherInstructions","spellCheck","maxImageWidth","maxImageHeight"],"mappings":";;;;;;;AAAA;;AAEA,sBAA0BA,eAA1B,CAAQC,QAAR;AAAA,IAAQA,QAAR,gCAAmB,EAAnB;eAEe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,EADJ;AAELC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,IADA;AAENC,MAAAA,KAAK,EAAE,IAFD;AAGNC,MAAAA,EAAE,EAAE,IAHE;AAINC,MAAAA,IAAI,EAAE;AAJA,KAFH;AAQLC,IAAAA,eAAe,EAAE,EARZ;AASLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,GAAG,EAAE,CAAC,CADA;AAENC,MAAAA,GAAG,EAAE,CAFC;AAGNC,MAAAA,IAAI,EAAE,CAHA;AAINC,MAAAA,SAAS,EAAE,CAJL;AAKNC,MAAAA,SAAS,EAAE;AALL,KATH;AAgBLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,GADF;AAELC,MAAAA,MAAM,EAAE;AAFH,KAhBF;AAoBLC,IAAAA,WAAW,EAAE,IApBR;AAqBLC,IAAAA,MAAM,EAAE,EArBH;AAsBLC,IAAAA,OAAO,EAAE,IAtBJ;AAuBLC,IAAAA,MAAM,EAAE,EAvBH;AAwBLC,IAAAA,KAAK,EAAE;AACLZ,MAAAA,GAAG,EAAE,CAAC,CADD;AAELC,MAAAA,GAAG,EAAE,CAFA;AAGLC,MAAAA,IAAI,EAAE,CAHD;AAILC,MAAAA,SAAS,EAAE,CAJN;AAKLC,MAAAA,SAAS,EAAE;AALN,KAxBF;AA+BLS,IAAAA,SAAS,EAAE,EA/BN;AAgCLC,IAAAA,YAAY,EAAE,KAhCT;AAiCLC,IAAAA,KAAK,EAAE,EAjCF;AAkCLC,IAAAA,YAAY,EAAE1B,QAlCT;AAmCL2B,IAAAA,kBAAkB,EAAE,KAnCf;AAoCLC,IAAAA,aAAa,EAAE,IApCV;AAqCLC,IAAAA,gBAAgB,EAAE,IArCb;AAsCLC,IAAAA,0BAA0B,EAAE,IAtCvB;AAuCLC,IAAAA,0BAA0B,EAAE;AAvCvB,GADM;AA0CbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAE,KADD;AAETC,MAAAA,KAAK,EAAE,iBAFE;AAGTC,MAAAA,OAAO,EAAE;AAHA,KADE;AAMbjC,IAAAA,MAAM,EAAE;AACN+B,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE,gBAFD;AAGN/B,MAAAA,IAAI,EAAE;AACJ+B,QAAAA,KAAK,EAAE;AADH,OAHA;AAMN9B,MAAAA,KAAK,EAAE;AACL8B,QAAAA,KAAK,EAAE;AADF,OAND;AASN7B,MAAAA,EAAE,EAAE;AACF6B,QAAAA,KAAK,EAAE;AADL,OATE;AAYN5B,MAAAA,IAAI,EAAE;AACJ4B,QAAAA,KAAK,EAAE;AADH;AAZA,KANK;AAsBbE,IAAAA,eAAe,EAAE;AACfH,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,KAAK,EAAE,kBAFQ;AAGfC,MAAAA,OAAO,EAAE,IAHM;AAIf1B,MAAAA,GAAG,EAAE,GAJU;AAKfC,MAAAA,GAAG,EAAE,GALU;AAMfC,MAAAA,IAAI,EAAE;AANS,KAtBJ;AA8BbQ,IAAAA,OAAO,EAAE;AACPc,MAAAA,QAAQ,EAAE,KADH;AAEPC,MAAAA,KAAK,EAAE;AAFA,KA9BI;AAkCbhB,IAAAA,MAAM,EAAE;AACNe,MAAAA,QAAQ,EAAE,KADJ;AAENC,MAAAA,KAAK,EAAE,QAFD;AAGNC,MAAAA,OAAO,EAAE;AAHH,KAlCK;AAuCbf,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAvCK;AA2CbZ,IAAAA,SAAS,EAAE;AACTW,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KA3CE;AA+CbG,IAAAA,WAAW,EAAE;AACXJ,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KA/CA;AAmDbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAnDR;AAuDbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAvDR;AA2DbV,IAAAA,KAAK,EAAE;AACLS,MAAAA,QAAQ,EAAE,KADL;AAELC,MAAAA,KAAK,EAAE,aAFF;AAGLC,MAAAA,OAAO,EAAE;AAHJ,KA3DM;AAgEbK,IAAAA,UAAU,EAAE;AACVN,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,KAFC;AAGVE,MAAAA,OAAO,EAAC;AAHE,KAhEC;AAqEbT,IAAAA,kBAAkB,EAAE;AAClBO,MAAAA,QAAQ,EAAE,IADQ;AAElBC,MAAAA,KAAK,EAAE;AAFW,KArEP;AAyEbO,IAAAA,aAAa,EAAE;AACbF,MAAAA,mBAAmB,EAAE,GADR;AAEbnB,MAAAA,MAAM,EAAE,GAFK;AAGbE,MAAAA,SAAS,EAAE;AAHE,KAzEF;AA8EboB,IAAAA,cAAc,EAAE;AACdH,MAAAA,mBAAmB,EAAE,GADP;AAEdnB,MAAAA,MAAM,EAAE,GAFM;AAGdE,MAAAA,SAAS,EAAE;AAHG;AA9EH;AA1CF,C","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n includeAxes: true,\n labels: {},\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n standardGrid: false,\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Allow authoring',\n enabled: false\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left'\n },\n right: {\n label: 'right'\n },\n up: {\n label: 'up'\n },\n down: {\n label: 'down'\n }\n },\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: false,\n label: 'Labels',\n enabled: true\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: false,\n label: 'Graph Title',\n enabled: true\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n }\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","graphDimensions","scoringType","studentInstructions","teacherInstructions","availableTools","spellCheck","maxImageWidth","maxImageHeight"],"mappings":"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","sourcesContent":["import { tools } from '@pie-lib/graphing';\n\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n includeAxes: true,\n labels: {},\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n standardGrid: false,\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Customize Grid Setup',\n enabled: true,\n includeAxesEnabled: true,\n standardGridEnabled: true,\n min: {\n label: 'Min Value',\n enabled: true\n },\n max: {\n label: 'Max Value',\n enabled: true\n },\n axisLabel: {\n label: 'Label',\n enabled: true\n },\n step: {\n label: 'Grid Interval',\n enabled: true\n },\n labelStep: {\n label: 'Label Interval',\n enabled: true\n }\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left'\n },\n right: {\n label: 'right'\n },\n up: {\n label: 'up'\n },\n down: {\n label: 'down'\n }\n },\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: false,\n label: 'Labels',\n enabled: true\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: false,\n label: 'Graph Title',\n enabled: true\n },\n availableTools: allTools,\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n }\n }\n};\n"],"file":"defaults.js"}
@@ -2,13 +2,15 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = exports.GraphingConfig = void 0;
11
11
 
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -37,7 +39,7 @@ var _utils = require("./utils");
37
39
 
38
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); }
39
41
 
40
- 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; }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
41
43
 
42
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; }
43
45
 
@@ -47,9 +49,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
47
49
 
48
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; } }
49
51
 
50
- var _tools$allTools = _graphing.tools.allTools,
51
- allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
52
-
53
52
  var styles = function styles(theme) {
54
53
  return {
55
54
  container: {
@@ -67,10 +66,8 @@ var styles = function styles(theme) {
67
66
  display: 'flex',
68
67
  flexDirection: 'column'
69
68
  },
70
- subheading: {
71
- marginBottom: theme.spacing.unit * 2
72
- },
73
- body: {
69
+ subtitleText: {
70
+ marginTop: theme.spacing.unit * 1.5,
74
71
  marginBottom: theme.spacing.unit
75
72
  }
76
73
  };
@@ -168,9 +165,14 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
168
165
  key: "render",
169
166
  value: function render() {
170
167
  var _this$props2 = this.props,
168
+ _this$props2$authorin = _this$props2.authoring,
169
+ authoring = _this$props2$authorin === void 0 ? {} : _this$props2$authorin,
170
+ _this$props2$availabl = _this$props2.availableTools,
171
+ availableTools = _this$props2$availabl === void 0 ? [] : _this$props2$availabl,
171
172
  classes = _this$props2.classes,
172
173
  model = _this$props2.model,
173
- graphDimensions = _this$props2.graphDimensions;
174
+ _this$props2$graphDim = _this$props2.graphDimensions,
175
+ graphDimensions = _this$props2$graphDim === void 0 ? {} : _this$props2$graphDim;
174
176
 
175
177
  var _ref2 = model || {},
176
178
  arrows = _ref2.arrows,
@@ -186,7 +188,7 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
186
188
  var graph = (model || {}).graph || {};
187
189
 
188
190
  var _ref3 = graphDimensions || {},
189
- enabled = _ref3.enabled,
191
+ dimensionsEnabled = _ref3.enabled,
190
192
  min = _ref3.min,
191
193
  max = _ref3.max,
192
194
  step = _ref3.step;
@@ -199,13 +201,27 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
199
201
  max: Math.min(800, max),
200
202
  step: step >= 1 ? Math.min(200, step) : 20
201
203
  };
204
+ var displayedFields = {
205
+ axisLabel: authoring.axisLabel,
206
+ dimensionsEnabled: dimensionsEnabled,
207
+ includeAxesEnabled: authoring.includeAxesEnabled,
208
+ labelStep: authoring.labelStep,
209
+ min: authoring.min,
210
+ max: authoring.max,
211
+ standardGridEnabled: authoring.standardGridEnabled,
212
+ step: authoring.step
213
+ };
214
+ var displayGridSetup = authoring.enabled && Object.values(displayedFields).some(function (field) {
215
+ return (0, _typeof2["default"])(field) === 'object' ? field.enabled : field;
216
+ });
202
217
  return /*#__PURE__*/React.createElement("div", {
203
218
  className: classes.container
204
219
  }, /*#__PURE__*/React.createElement("div", {
205
220
  className: classes.gridConfig
206
- }, /*#__PURE__*/React.createElement(_graphing.GridSetup, {
221
+ }, displayGridSetup && /*#__PURE__*/React.createElement(_graphing.GridSetup, {
222
+ displayedFields: displayedFields,
207
223
  domain: domain,
208
- dimensionsEnabled: enabled,
224
+ dimensionsEnabled: dimensionsEnabled,
209
225
  gridValues: gridValues,
210
226
  includeAxes: includeAxes,
211
227
  labelValues: labelValues,
@@ -219,12 +235,11 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
219
235
  key: "graph"
220
236
  }, /*#__PURE__*/React.createElement(_core.Typography, {
221
237
  component: "div",
222
- variant: "subheading2",
223
- className: classes.subheading
238
+ variant: "subheading"
224
239
  }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
225
240
  component: "div",
226
241
  variant: "body1",
227
- className: classes.body
242
+ className: classes.subtitleText
228
243
  }, /*#__PURE__*/React.createElement("span", null, "Use this interface to add/edit a title and/or labels, and to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
229
244
  axesSettings: {
230
245
  includeArrows: arrows
@@ -244,7 +259,7 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
244
259
  height: graph.height
245
260
  },
246
261
  title: title,
247
- toolbarTools: allTools
262
+ toolbarTools: availableTools
248
263
  })));
249
264
  }
250
265
  }]);
@@ -254,7 +269,7 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
254
269
  exports.GraphingConfig = GraphingConfig;
255
270
  (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
256
271
  classes: _propTypes["default"].object.isRequired,
257
- authoringEnabled: _propTypes["default"].bool,
272
+ authoring: _propTypes["default"].object,
258
273
  graphDimensions: _propTypes["default"].object,
259
274
  model: _propTypes["default"].object.isRequired,
260
275
  onChange: _propTypes["default"].func.isRequired
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphing-config.jsx"],"names":["tools","allTools","styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfig","flexDirection","marginRight","graphConfig","subheading","body","GraphingConfig","props","backgroundMarks","model","onChange","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","width","step","labelStep","rangeConstraints","height","setState","classes","graphDimensions","arrows","coordinatesOnHover","labels","title","enabled","min","max","sizeConstraints","Math","onConfigChange","includeArrows","changeBackgroundMarks","React","Component","PropTypes","object","isRequired","authoringEnabled","bool","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup, tools } from '@pie-lib/graphing';\nimport { Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst { allTools = [] } = tools;\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7\n },\n gridConfig: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column'\n },\n subheading: {\n marginBottom: theme.spacing.unit * 2\n },\n body: {\n marginBottom: theme.spacing.unit\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoringEnabled: PropTypes.bool,\n graphDimensions: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true)\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n onConfigChange = config => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n render() {\n const { classes, model, graphDimensions } = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title\n } = model || {};\n const graph = (model || {}).graph || {};\n const { enabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20\n };\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfig}>\n <GridSetup\n domain={domain}\n dimensionsEnabled={enabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n />\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading2\" className={classes.subheading}>\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.body}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\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 </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
1
+ {"version":3,"sources":["../src/graphing-config.jsx"],"names":["styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfig","flexDirection","marginRight","graphConfig","subtitleText","marginTop","GraphingConfig","props","backgroundMarks","model","onChange","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","width","step","labelStep","rangeConstraints","height","setState","authoring","availableTools","classes","graphDimensions","arrows","coordinatesOnHover","labels","title","dimensionsEnabled","enabled","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","onConfigChange","includeArrows","changeBackgroundMarks","React","Component","PropTypes","object","isRequired","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/graphing';\nimport { Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7\n },\n gridConfig: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column'\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n graphDimensions: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true)\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n onConfigChange = config => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n render() {\n const { authoring = {}, availableTools = [], classes, model, graphDimensions = {}} = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title\n } = model || {};\n const graph = (model || {}).graph || {};\n const { enabled: dimensionsEnabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20\n };\n\n const displayedFields = {\n axisLabel: authoring.axisLabel,\n dimensionsEnabled,\n includeAxesEnabled: authoring.includeAxesEnabled,\n labelStep: authoring.labelStep,\n min: authoring.min,\n max: authoring.max,\n standardGridEnabled: authoring.standardGridEnabled,\n step: authoring.step\n };\n\n const displayGridSetup = authoring.enabled &&\n Object.values(displayedFields).some(field => typeof field === 'object' ? field.enabled : field);\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfig}>\n {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\n dimensionsEnabled={dimensionsEnabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\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={availableTools}\n />\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
@@ -129,20 +129,30 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
129
129
  exports["default"] = GraphLinesConfigure;
130
130
  (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
131
131
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
132
- var _model$answers = model.answers,
133
- answers = _model$answers === void 0 ? {} : _model$answers,
134
- _model$domain = model.domain,
135
- domain = _model$domain === void 0 ? {} : _model$domain,
136
- _model$graph = model.graph,
137
- graph = _model$graph === void 0 ? {} : _model$graph,
138
- _model$range = model.range,
139
- range = _model$range === void 0 ? {} : _model$range,
140
- standardGrid = model.standardGrid;
141
-
142
- var normalizedModel = _objectSpread(_objectSpread(_objectSpread({}, _defaults["default"].model), model), {}, {
132
+
133
+ var normalizedModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
134
+
135
+ var _normalizedModel$answ = normalizedModel.answers,
136
+ answers = _normalizedModel$answ === void 0 ? {} : _normalizedModel$answ,
137
+ _normalizedModel$doma = normalizedModel.domain,
138
+ domain = _normalizedModel$doma === void 0 ? {} : _normalizedModel$doma,
139
+ defaultTool = normalizedModel.defaultTool,
140
+ _normalizedModel$grap = normalizedModel.graph,
141
+ graph = _normalizedModel$grap === void 0 ? {} : _normalizedModel$grap,
142
+ _normalizedModel$rang = normalizedModel.range,
143
+ range = _normalizedModel$rang === void 0 ? {} : _normalizedModel$rang,
144
+ standardGrid = normalizedModel.standardGrid,
145
+ toolbarTools = normalizedModel.toolbarTools; // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js
146
+
147
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
148
+ return tool !== 'label';
149
+ });
150
+ var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
151
+ return _objectSpread(_objectSpread({}, normalizedModel), {}, {
143
152
  answers: answers && answers.correctAnswer && _objectSpread({
144
153
  correctAnswer: answers.correctAnswer
145
154
  }, sortedAnswers(answers)) || answers,
155
+ defaultTool: normalizedDefaultTool,
146
156
  range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
147
157
  min: domain.min,
148
158
  max: domain.max,
@@ -153,7 +163,5 @@ exports["default"] = GraphLinesConfigure;
153
163
  height: graph.width
154
164
  }) || graph
155
165
  });
156
-
157
- return normalizedModel;
158
166
  });
159
167
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement","domain","graph","range","standardGrid","normalizedModel","correctAnswer","min","max","step","labelStep","height","width"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport { DeleteImageEvent, InsertImageEvent, ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:graphing:configure');\n\n// this function is implemented in controller as well\nconst sortedAnswers = answers => Object.keys(answers || {}).sort().reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n}, {});\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const { answers = {}, domain = {}, graph = {}, range = {}, standardGrid } = model;\n const normalizedModel = {\n ...defaultValues.model,\n ...model,\n answers: answers && answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers)\n } || answers,\n range: standardGrid && {\n ...range,\n min: domain.min,\n max: domain.max,\n step: domain.step,\n labelStep: domain.labelStep\n } || range,\n graph: standardGrid && { ...graph, height: graph.width } || graph\n };\n\n return normalizedModel;\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement","normalizedModel","domain","defaultTool","graph","range","standardGrid","toolbarTools","toolbarToolsNoLabel","filter","tool","normalizedDefaultTool","length","correctAnswer","min","max","step","labelStep","height","width"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport { DeleteImageEvent, InsertImageEvent, ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:graphing:configure');\n\n// this function is implemented in controller as well\nconst sortedAnswers = answers => Object.keys(answers || {}).sort().reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n}, {});\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = { ...defaultValues.model, ...model };\n const {\n answers = {},\n domain = {},\n defaultTool,\n graph = {},\n range = {},\n standardGrid,\n toolbarTools\n } = normalizedModel;\n\n // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter(tool => tool !== 'label');\n const normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';\n\n return {\n ...normalizedModel,\n answers: answers && answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers)\n } || answers,\n defaultTool: normalizedDefaultTool,\n range: standardGrid && {\n ...range,\n min: domain.min,\n max: domain.max,\n step: domain.step,\n labelStep: domain.labelStep\n } || range,\n graph: standardGrid && { ...graph, height: graph.width } || graph\n };\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
@@ -30,7 +30,7 @@ var _utils = require("./utils");
30
30
 
31
31
  var _controllerUtils = require("@pie-lib/controller-utils");
32
32
 
33
- var _excluded = ["prompt", "promptEnabled", "graph", "answers"];
33
+ var _excluded = ["defaultTool", "prompt", "promptEnabled", "graph", "answers", "toolbarTools"];
34
34
 
35
35
  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; }
36
36
 
@@ -193,10 +193,12 @@ function model(question, session, env) {
193
193
  var normalizedQuestion = normalize(question);
194
194
 
195
195
  var _ref5 = normalizedQuestion || {},
196
+ defaultTool = _ref5.defaultTool,
196
197
  prompt = _ref5.prompt,
197
198
  promptEnabled = _ref5.promptEnabled,
198
199
  graph = _ref5.graph,
199
200
  answers = _ref5.answers,
201
+ toolbarTools = _ref5.toolbarTools,
200
202
  questionProps = (0, _objectWithoutProperties2["default"])(_ref5, _excluded);
201
203
 
202
204
  var arrows = normalizedQuestion.arrows;
@@ -223,17 +225,25 @@ function model(question, session, env) {
223
225
  down: false
224
226
  };
225
227
  }
226
- }
228
+ } // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js
229
+
230
+
231
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
232
+ return tool !== 'label';
233
+ });
234
+ var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
227
235
 
228
236
  var base = _objectSpread(_objectSpread({}, questionProps), {}, {
229
237
  answers: answers,
238
+ arrows: arrows,
239
+ defaultTool: normalizedDefaultTool,
230
240
  disabled: env.mode !== 'gather',
231
241
  prompt: promptEnabled ? prompt : null,
232
242
  rationale: null,
233
243
  size: graph,
234
244
  showToggle: env.mode === 'evaluate' && !(0, _isEmpty["default"])(answers),
235
245
  teacherInstructions: null,
236
- arrows: arrows
246
+ toolbarTools: toolbarTools
237
247
  });
238
248
 
239
249
  if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","correctAnswer","partialScoringEnabled","possibleAnswers","Object","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","prompt","promptEnabled","graph","questionProps","arrows","mode","role","left","right","up","down","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: []\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(mark1 && mark2 && mark1.type === mark2.type && equalMarks[mark1.type] && equalMarks[mark1.type](mark1, mark2));\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find(mark => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers)\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce((acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter(answer => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n }, {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map(answer => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false\n });\n};\n\nexport const normalize = question => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const { prompt, promptEnabled, graph, answers, ...questionProps } = normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n const base = {\n ...questionProps,\n answers,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n arrows\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = session && session.answer || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise(resolve => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","correctAnswer","partialScoringEnabled","possibleAnswers","Object","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","defaultTool","prompt","promptEnabled","graph","toolbarTools","questionProps","arrows","mode","role","left","right","up","down","toolbarToolsNoLabel","tool","normalizedDefaultTool","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: []\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(mark1 && mark2 && mark1.type === mark2.type && equalMarks[mark1.type] && equalMarks[mark1.type](mark1, mark2));\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find(mark => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers)\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce((acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter(answer => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n }, {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map(answer => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false\n });\n};\n\nexport const normalize = question => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const {\n defaultTool,\n prompt,\n promptEnabled,\n graph,\n answers,\n toolbarTools,\n ...questionProps\n } = normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter(tool => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n const base = {\n ...questionProps,\n answers,\n arrows,\n defaultTool: normalizedDefaultTool,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n toolbarTools\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = session && session.answer || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise(resolve => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}