@pie-element/drag-in-the-blank 3.10.3-next.667 → 3.10.3-next.719

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.
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.tileSource = exports.BlankContent = void 0;
8
+ exports.tileSource = exports["default"] = exports.BlankContent = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
@@ -49,9 +49,9 @@ var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle
49
49
 
50
50
  var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
51
51
 
52
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
52
+ 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; }
53
53
 
54
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54
+ 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; }
55
55
 
56
56
  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); }; }
57
57
 
@@ -21,6 +21,11 @@ var _default = {
21
21
  toolbarEditorPosition: 'bottom'
22
22
  },
23
23
  configuration: {
24
+ spellCheck: {
25
+ label: "Spellcheck",
26
+ settings: true,
27
+ enabled: true
28
+ },
24
29
  choicesPosition: {
25
30
  settings: true,
26
31
  label: 'Choices Position'
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","settings","label","lockChoiceOrder","partialScoring","rationale","teacherInstructions"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbR,IAAAA,eAAe,EAAE;AACfS,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KADJ;AAKbb,IAAAA,MAAM,EAAE;AACNY,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KALK;AASbR,IAAAA,UAAU,EAAE;AACVO,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KATC;AAabC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAbJ;AAiBbE,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAjBH;AAqBbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KArBE;AAyBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY;AAzBR;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n choicesPosition: {\n settings: true,\n label: 'Choices Position'\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n duplicates: {\n settings: true,\n label: 'Duplicates'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n }\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","lockChoiceOrder","partialScoring","rationale","teacherInstructions"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAC,IAFC;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbZ,IAAAA,eAAe,EAAE;AACfW,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KANJ;AAUbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAVK;AAcbR,IAAAA,UAAU,EAAE;AACVS,MAAAA,QAAQ,EAAE,IADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KAdC;AAkBbG,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAlBJ;AAsBbI,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAtBH;AA0BbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KA1BE;AA8BbM,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY;AA9BR;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: \"Spellcheck\",\n settings:true,\n enabled:true\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position'\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n duplicates: {\n settings: true,\n label: 'Duplicates'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n }\n }\n};\n"],"file":"defaults.js"}
@@ -39,9 +39,9 @@ var _defaults2 = _interopRequireDefault(require("./defaults"));
39
39
 
40
40
  var _markupUtils = require("./markupUtils");
41
41
 
42
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
42
+ 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
43
 
44
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
44
+ 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; }
45
45
 
46
46
  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); }; }
47
47
 
@@ -49,9 +49,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
49
49
 
50
50
  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; }
51
51
 
52
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
52
+ 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; }
53
53
 
54
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54
+ 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; }
55
55
 
56
56
  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); }; }
57
57
 
@@ -167,7 +167,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
167
167
  }, {
168
168
  key: "render",
169
169
  value: function render() {
170
- var _this2 = this;
170
+ var _this2 = this,
171
+ _React$createElement;
171
172
 
172
173
  var _this$props = this.props,
173
174
  classes = _this$props.classes,
@@ -190,12 +191,15 @@ var Main = /*#__PURE__*/function (_React$Component) {
190
191
  _ref$teacherInstructi = _ref.teacherInstructions,
191
192
  teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
192
193
  _ref$choicesPosition = _ref.choicesPosition,
193
- choicesPosition = _ref$choicesPosition === void 0 ? {} : _ref$choicesPosition;
194
+ choicesPosition = _ref$choicesPosition === void 0 ? {} : _ref$choicesPosition,
195
+ _ref$spellCheck = _ref.spellCheck,
196
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
194
197
 
195
198
  var _ref2 = model || {},
196
199
  rationaleEnabled = _ref2.rationaleEnabled,
197
200
  promptEnabled = _ref2.promptEnabled,
198
- teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled;
201
+ teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
202
+ spellCheckEnabled = _ref2.spellCheckEnabled;
199
203
 
200
204
  var toolbarOpts = {};
201
205
 
@@ -231,6 +235,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
231
235
  Properties: {
232
236
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
233
237
  rationaleEnabled: rationale.settings && toggle(rationale.label),
238
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
234
239
  promptEnabled: prompt.settings && toggle(prompt.label)
235
240
  }
236
241
  }
@@ -244,7 +249,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
244
249
  onChange: this.onTeacherInstructionsChanged,
245
250
  imageSupport: imageSupport,
246
251
  nonEmpty: false,
247
- toolbarOpts: toolbarOpts
252
+ toolbarOpts: toolbarOpts,
253
+ spellCheck: spellCheckEnabled
248
254
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
249
255
  label: prompt.label,
250
256
  className: classes.promptHolder
@@ -255,10 +261,11 @@ var Main = /*#__PURE__*/function (_React$Component) {
255
261
  imageSupport: imageSupport,
256
262
  nonEmpty: false,
257
263
  disableUnderline: true,
258
- toolbarOpts: toolbarOpts
264
+ toolbarOpts: toolbarOpts,
265
+ spellCheck: spellCheckEnabled
259
266
  })), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
260
267
  className: classes.text
261
- }, "Define Template, Choices, and Correct Responses"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], (0, _defineProperty2["default"])({
268
+ }, "Define Template, Choices, and Correct Responses"), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], (_React$createElement = {
262
269
  activePlugins: _editableHtml.ALL_PLUGINS,
263
270
  toolbarOpts: {
264
271
  position: 'top'
@@ -283,7 +290,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
283
290
  disabled: true
284
291
  }
285
292
  }
286
- }, "toolbarOpts", toolbarOpts)), /*#__PURE__*/_react["default"].createElement(_choices["default"], {
293
+ }, (0, _defineProperty2["default"])(_React$createElement, "toolbarOpts", toolbarOpts), (0, _defineProperty2["default"])(_React$createElement, "spellCheck", spellCheckEnabled), _React$createElement)), /*#__PURE__*/_react["default"].createElement(_choices["default"], {
287
294
  model: model,
288
295
  duplicates: model.duplicates,
289
296
  onChange: this.onResponsesChanged,
@@ -296,7 +303,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
296
303
  markup: model.rationale || '',
297
304
  onChange: this.onRationaleChanged,
298
305
  imageSupport: imageSupport,
299
- toolbarOpts: toolbarOpts
306
+ toolbarOpts: toolbarOpts,
307
+ spellCheck: spellCheckEnabled
300
308
  })))));
301
309
  }
302
310
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingBottom","spacing","unit","marginBottom","prompt","paddingTop","markup","minHeight","design","choiceConfiguration","switchElement","justifyContent","margin","addButton","text","fontFamily","fontSize","lineHeight","color","Main","newVal","props","onModelChanged","model","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","duplicates","partialScoring","lockChoiceOrder","choicesPosition","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","toolbarOpts","toolbarEditorPosition","position","onModelChange","Settings","label","Properties","onTeacherInstructionsChanged","onPromptChanged","ALL_PLUGINS","type","options","onMarkupChanged","audio","disabled","video","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withDragContext } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = theme => ({\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px'\n }\n },\n design: {\n paddingTop: theme.spacing.unit * 3\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0\n },\n addButton: {\n float: 'right'\n },\n text: {\n fontFamily: 'Cerebri Sans',\n fontSize: '16px',\n lineHeight: '19px',\n color: '#495B8F'\n }\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n state = {};\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = newVal => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal\n });\n };\n\n onPromptChanged = prompt => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt\n });\n };\n\n onRationaleChanged = rationale => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale\n });\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onMarkupChanged = slateMarkup => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup\n });\n };\n\n onResponsesChanged = choices => {\n const {\n model: { correctResponse, markup }\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices\n });\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n imageSupport\n } = this.props;\n const {\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {}\n } = configuration || {};\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled } =\n model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => this.onModelChange(model)}\n onChangeConfiguration={configuration =>\n onConfigurationChanged(configuration, true)\n }\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition:\n choicesPosition.settings &&\n dropdown(choicesPosition.label, [\n 'above',\n 'below',\n 'left',\n 'right'\n ])\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label)\n }\n }}\n />\n }\n >\n <div>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n <Typography className={classes.text}>\n Define Template, Choices, and Correct Responses\n </Typography>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates\n }\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n pluginProps={{\n audio: { disabled: true },\n video: { disabled: true }\n }}\n toolbarOpts={toolbarOpts}\n />\n <Choices\n model={model}\n duplicates={model.duplicates}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n />\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingBottom","spacing","unit","marginBottom","prompt","paddingTop","markup","minHeight","design","choiceConfiguration","switchElement","justifyContent","margin","addButton","text","fontFamily","fontSize","lineHeight","color","Main","newVal","props","onModelChanged","model","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarOpts","toolbarEditorPosition","position","onModelChange","Settings","label","Properties","onTeacherInstructionsChanged","onPromptChanged","ALL_PLUGINS","type","options","onMarkupChanged","audio","disabled","video","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withDragContext } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = theme => ({\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px'\n }\n },\n design: {\n paddingTop: theme.spacing.unit * 3\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0\n },\n addButton: {\n float: 'right'\n },\n text: {\n fontFamily: 'Cerebri Sans',\n fontSize: '16px',\n lineHeight: '19px',\n color: '#495B8F'\n }\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n state = {};\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = newVal => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal\n });\n };\n\n onPromptChanged = prompt => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt\n });\n };\n\n onRationaleChanged = rationale => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale\n });\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onMarkupChanged = slateMarkup => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup\n });\n };\n\n onResponsesChanged = choices => {\n const {\n model: { correctResponse, markup }\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices\n });\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n imageSupport\n } = this.props;\n const {\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {}\n } = configuration || {};\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled, spellCheckEnabled } =\n model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => this.onModelChange(model)}\n onChangeConfiguration={configuration =>\n onConfigurationChanged(configuration, true)\n }\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition:\n choicesPosition.settings &&\n dropdown(choicesPosition.label, [\n 'above',\n 'below',\n 'left',\n 'right'\n ])\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label)\n }\n }}\n />\n }\n >\n <div>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n <Typography className={classes.text}>\n Define Template, Choices, and Correct Responses\n </Typography>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates\n }\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n pluginProps={{\n audio: { disabled: true },\n video: { disabled: true }\n }}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n <Choices\n model={model}\n duplicates={model.duplicates}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n />\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.choiceIsEmpty = exports.createSlateMarkup = exports.processMarkup = exports.removeUnwantedCharacters = exports.createElementFromHTML = void 0;
8
+ exports.removeUnwantedCharacters = exports.processMarkup = exports.createSlateMarkup = exports.createElementFromHTML = exports.choiceIsEmpty = void 0;
9
9
 
10
10
  var _escape = _interopRequireDefault(require("lodash/escape"));
11
11
 
@@ -5,9 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.getScore = exports.createCorrectResponseSession = void 0;
8
9
  exports.model = model;
10
+ exports.normalize = void 0;
9
11
  exports.outcome = outcome;
10
- exports.createCorrectResponseSession = exports.getScore = exports.normalize = void 0;
11
12
 
12
13
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
14
 
@@ -23,9 +24,9 @@ var _utils = require("./utils");
23
24
 
24
25
  var _controllerUtils = require("@pie-lib/controller-utils");
25
26
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
+ 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; }
27
28
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
+ 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; }
29
30
 
30
31
  var normalize = function normalize(question) {
31
32
  return _objectSpread({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\n\nexport const normalize = question => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async resolve => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n }, { correctResponses: 0, feedback: {} });\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter(choice => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n };\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n }, maxScore);\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise(resolve => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\n\nexport const normalize = question => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async resolve => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n }, { correctResponses: 0, feedback: {} });\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter(choice => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n };\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n }, maxScore);\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise(resolve => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.choiceIsEmpty = exports.getAllCorrectResponses = void 0;
8
+ exports.getAllCorrectResponses = exports.choiceIsEmpty = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
@@ -51,6 +51,22 @@
51
51
  }
52
52
  }
53
53
  },
54
+ "spellCheck": {
55
+ "title": "ConfigureProp",
56
+ "type": "object",
57
+ "properties": {
58
+ "settings": {
59
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
60
+ "type": "boolean",
61
+ "title": "settings"
62
+ },
63
+ "label": {
64
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
65
+ "type": "string",
66
+ "title": "label"
67
+ }
68
+ }
69
+ },
54
70
  "rationale": {
55
71
  "title": "ConfigureProp",
56
72
  "type": "object",
@@ -38,6 +38,18 @@ Indicates if the item has to be displayed in the Settings Panel
38
38
 
39
39
  Indicates the label for the item that has to be displayed in the Settings Panel
40
40
 
41
+ # `spellCheck` (object)
42
+
43
+ Properties of the `spellCheck` object:
44
+
45
+ ## `settings` (boolean)
46
+
47
+ Indicates if the item has to be displayed in the Settings Panel
48
+
49
+ ## `label` (string)
50
+
51
+ Indicates the label for the item that has to be displayed in the Settings Panel
52
+
41
53
  # `rationale` (object)
42
54
 
43
55
  Properties of the `rationale` object:
@@ -115,6 +115,11 @@
115
115
  "type": "boolean",
116
116
  "title": "rationaleEnabled"
117
117
  },
118
+ "spellCheckEnabled": {
119
+ "description": "Indicates if spellcheck is enabled",
120
+ "type": "boolean",
121
+ "title": "spellCheckEnabled"
122
+ },
118
123
  "studentInstructionsEnabled": {
119
124
  "description": "Indicates if Student Instructions are enabled",
120
125
  "type": "boolean",
@@ -156,6 +161,7 @@
156
161
  "rationale",
157
162
  "rationaleEnabled",
158
163
  "rubric",
164
+ "spellCheckEnabled",
159
165
  "studentInstructionsEnabled",
160
166
  "teacherInstructionsEnabled"
161
167
  ],
@@ -81,6 +81,10 @@ Indicates value for rubric
81
81
 
82
82
  Indicates if Rationale are enabled
83
83
 
84
+ # `spellCheckEnabled` (boolean, required)
85
+
86
+ Indicates if spellcheck is enabled
87
+
84
88
  # `studentInstructionsEnabled` (boolean, required)
85
89
 
86
90
  Indicates if Student Instructions are enabled
package/lib/main.js CHANGED
@@ -41,9 +41,9 @@ var _mathRendering = require("@pie-lib/math-rendering");
41
41
 
42
42
  var _styles = require("@material-ui/core/styles");
43
43
 
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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; }
45
45
 
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
47
 
48
48
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
49
49
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "3.10.3-next.667+c46e66a9f",
7
+ "version": "3.10.3-next.719+8c93a8c46",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "author": "",
27
27
  "license": "ISC",
28
- "gitHead": "c46e66a9fa7ee1a349cd20cb733907c5e38e3e57",
28
+ "gitHead": "8c93a8c46afb6d0e0d01644a93c792ea865ce17f",
29
29
  "main": "lib/index.js",
30
30
  "module": "src/index.js"
31
31
  }