@pie-element/categorize 6.9.13 → 6.9.16

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/configure/CHANGELOG.md +24 -0
  3. package/configure/lib/defaults.js +5 -0
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/design/builder.js +1 -1
  6. package/configure/lib/design/buttons.js +1 -1
  7. package/configure/lib/design/categories/alternateResponses.js +3 -1
  8. package/configure/lib/design/categories/alternateResponses.js.map +1 -1
  9. package/configure/lib/design/categories/category.js +3 -1
  10. package/configure/lib/design/categories/category.js.map +1 -1
  11. package/configure/lib/design/categories/droppable-placeholder.js +1 -1
  12. package/configure/lib/design/categories/index.js +9 -4
  13. package/configure/lib/design/categories/index.js.map +1 -1
  14. package/configure/lib/design/choices/choice.js +4 -2
  15. package/configure/lib/design/choices/choice.js.map +1 -1
  16. package/configure/lib/design/choices/config.js +4 -2
  17. package/configure/lib/design/choices/config.js.map +1 -1
  18. package/configure/lib/design/choices/index.js +5 -2
  19. package/configure/lib/design/choices/index.js.map +1 -1
  20. package/configure/lib/design/index.js +18 -9
  21. package/configure/lib/design/index.js.map +1 -1
  22. package/configure/lib/design/input-header.js +4 -2
  23. package/configure/lib/design/input-header.js.map +1 -1
  24. package/configure/lib/index.js +2 -2
  25. package/configure/package.json +4 -4
  26. package/controller/lib/index.js +3 -3
  27. package/docs/config-schema.json +16 -0
  28. package/docs/config-schema.json.md +12 -0
  29. package/docs/pie-schema.json +6 -0
  30. package/docs/pie-schema.json.md +4 -0
  31. package/lib/categorize/categories.js +2 -1
  32. package/lib/categorize/categories.js.map +1 -1
  33. package/lib/categorize/category.js +3 -3
  34. package/lib/categorize/choice.js +3 -3
  35. package/lib/categorize/droppable-placeholder.js +1 -1
  36. package/lib/categorize/grid-content.js +2 -2
  37. package/lib/index.js +3 -0
  38. package/lib/index.js.map +1 -1
  39. package/package.json +5 -5
@@ -51,9 +51,9 @@ var _builder = require("./builder");
51
51
 
52
52
  var _header = _interopRequireDefault(require("./header"));
53
53
 
54
- 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; }
54
+ 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; }
55
55
 
56
- 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; }
56
+ 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; }
57
57
 
58
58
  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); }; }
59
59
 
@@ -187,13 +187,16 @@ var Design = /*#__PURE__*/function (_React$Component) {
187
187
  _ref$feedback = _ref.feedback,
188
188
  feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
189
189
  _ref$prompt = _ref.prompt,
190
- prompt = _ref$prompt === void 0 ? {} : _ref$prompt;
190
+ prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
191
+ _ref$spellCheck = _ref.spellCheck,
192
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
191
193
 
192
194
  var _ref2 = model || {},
193
195
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
194
196
  promptEnabled = _ref2.promptEnabled,
195
197
  rationaleEnabled = _ref2.rationaleEnabled,
196
- feedbackEnabled = _ref2.feedbackEnabled;
198
+ feedbackEnabled = _ref2.feedbackEnabled,
199
+ spellCheckEnabled = _ref2.spellCheckEnabled;
197
200
 
198
201
  var toolbarOpts = {};
199
202
 
@@ -237,6 +240,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
237
240
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
238
241
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
239
242
  rationaleEnabled: rationale.settings && toggle(rationale.label),
243
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
240
244
  scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
241
245
  }
242
246
  }
@@ -253,7 +257,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
253
257
  imageSupport: imageSupport,
254
258
  nonEmpty: false,
255
259
  disableUnderline: true,
256
- toolbarOpts: toolbarOpts
260
+ toolbarOpts: toolbarOpts,
261
+ spellCheck: spellCheckEnabled
257
262
  })), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
258
263
  label: teacherInstructions.label,
259
264
  className: classes.inputHolder
@@ -263,7 +268,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
263
268
  onChange: this.changeTeacherInstructions,
264
269
  imageSupport: imageSupport,
265
270
  nonEmpty: false,
266
- toolbarOpts: toolbarOpts
271
+ toolbarOpts: toolbarOpts,
272
+ spellCheck: spellCheckEnabled
267
273
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
268
274
  label: rationale.label,
269
275
  className: classes.inputHolder
@@ -273,13 +279,15 @@ var Design = /*#__PURE__*/function (_React$Component) {
273
279
  onChange: this.changeRationale,
274
280
  imageSupport: imageSupport,
275
281
  nonEmpty: false,
276
- toolbarOpts: toolbarOpts
282
+ toolbarOpts: toolbarOpts,
283
+ spellCheck: spellCheckEnabled
277
284
  })), /*#__PURE__*/_react["default"].createElement(_categories["default"], {
278
285
  imageSupport: imageSupport,
279
286
  model: model,
280
287
  categories: categories || [],
281
288
  onModelChanged: this.updateModel,
282
- toolbarOpts: toolbarOpts
289
+ toolbarOpts: toolbarOpts,
290
+ spellCheck: spellCheckEnabled
283
291
  }), /*#__PURE__*/_react["default"].createElement(_header["default"], {
284
292
  className: classes.alternatesHeader,
285
293
  label: "Alternate Responses",
@@ -307,7 +315,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
307
315
  choices: choices,
308
316
  model: model,
309
317
  onModelChanged: this.updateModel,
310
- toolbarOpts: toolbarOpts
318
+ toolbarOpts: toolbarOpts,
319
+ spellCheck: spellCheckEnabled
311
320
  }), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
312
321
  feedback: model.feedback,
313
322
  onChange: this.changeFeedback,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AAIA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAQA,KAAR,GAAiCC,kBAAjC,CAAQD,KAAR;AAAA,IAAeE,MAAf,GAAiCD,kBAAjC,CAAeC,MAAf;AAAA,IAAuBC,KAAvB,GAAiCF,kBAAjC,CAAuBE,KAAvB;AACA,IAAkBC,UAAlB,GAAiCC,SAAjC,CAAQC,QAAR;;IAEaC,M;;;;;AAeX,kBAAYC,MAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,MAAN;AADiB,oGAKL,UAAAA,KAAK,EAAI;AACrB,wBAA4B,MAAKA,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;;AAEA,UAAMC,YAAY,mCACbF,KADa,GAEbD,KAFa,CAAlB,CAHqB,CAQrB;;;AACAG,MAAAA,YAAY,CAACC,eAAb,GAA+B,8CAC7BD,YAAY,CAACC,eAAb,IAAgC,EADH,EAE7BD,YAAY,CAACE,OAFgB,CAA/B,CATqB,CAcrB;;AACAF,MAAAA,YAAY,CAACG,UAAb,GAA0BH,YAAY,CAACG,UAAb,CAAwBC,GAAxB,CAA4B,UAAAC,CAAC;AAAA,eAAK;AAC1DC,UAAAA,EAAE,EAAED,CAAC,CAACC,EADoD;AAE1DC,UAAAA,KAAK,EAAEF,CAAC,CAACE;AAFiD,SAAL;AAAA,OAA7B,CAA1B;AAKAP,MAAAA,YAAY,CAACE,OAAb,GAAuBF,YAAY,CAACE,OAAb,CAAqBE,GAArB,CAAyB,UAAAI,CAAC;AAAA,eAAK;AACpDF,UAAAA,EAAE,EAAEE,CAAC,CAACF,EAD8C;AAEpDG,UAAAA,OAAO,EAAED,CAAC,CAACC,OAFyC;AAGpDC,UAAAA,aAAa,EAAEF,CAAC,CAACE;AAHmC,SAAL;AAAA,OAA1B,CAAvB;AAMAX,MAAAA,QAAQ,CAACC,YAAD,CAAR;AACD,KAhCkB;AAAA,wGAkCD,UAAAW,SAAS,EAAI;AAC7B,yBAA4B,MAAKd,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENa,QAAAA,SAAS,EAATA;AAFM,SAAR;AAID,KAzCkB;AAAA,kHA2CS,UAAAC,mBAAmB,EAAI;AACjD,yBAA4B,MAAKf,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENc,QAAAA,mBAAmB,EAAnBA;AAFM,SAAR;AAID,KAlDkB;AAAA,uGAoDF,UAAAC,QAAQ,EAAI;AAC3B,YAAKC,WAAL,CAAiB;AAAED,QAAAA,QAAQ,EAARA;AAAF,OAAjB;AACD,KAtDkB;AAAA,+GAwDM,YAAM;AAC7B,UACWZ,eADX,GAEI,MAAKJ,KAFT,CACEC,KADF,CACWG,eADX;;AAIA,YAAKa,WAAL,CAAiB;AACfb,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBG,GAAxB,CAA4B,UAAAW,EAAE;AAAA,iDAC1CA,EAD0C;AAE7CC,YAAAA,kBAAkB,gDAAOD,EAAE,CAACC,kBAAH,IAAyB,EAAhC,IAAqC,EAArC;AAF2B;AAAA,SAA9B;AADF,OAAjB;AAMD,KAnEkB;AAAA,wGAqED,UAAAC,MAAM;AAAA,aAAI,MAAKH,WAAL,CAAiB;AAAEG,QAAAA,MAAM,EAANA;AAAF,OAAjB,CAAJ;AAAA,KArEL;AAAA,kHAuES,UAAAC,KAAK,EAAI;AACnC,UACWjB,eADX,GAEI,MAAKJ,KAFT,CACEC,KADF,CACWG,eADX;;AAIA,YAAKa,WAAL,CAAiB;AACfb,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBG,GAAxB,CAA4B,UAAAW,EAAE;AAAA,iDAC1CA,EAD0C;AAE7CC,YAAAA,kBAAkB,EAAE,CAACD,EAAE,CAACC,kBAAH,IAAyB,EAA1B,EAA8BG,MAA9B,CAClB,UAACC,GAAD,EAAMC,QAAN;AAAA,qBAAmBA,QAAQ,KAAKH,KAAhC;AAAA,aADkB;AAFyB;AAAA,SAA9B;AADF,OAAjB;AAQD,KApFkB;AAAA,qHAsFY,UAAAI,MAAM,EAAI;AACvC,UAAQxB,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AAEA,aAAO,+BAAcwB,MAAM,CAAChB,EAArB,EAAyBR,KAAK,CAACG,eAA/B,CAAP;AACD,KA1FkB;AAEjB,UAAKP,GAAL,GAAWG,MAAK,CAACH,GAAN,IAAaA,UAAI6B,UAAJ,EAAxB;AAFiB;AAGlB;;;;WAyFD,kBAAS;AAAA;;AACP,yBAQI,KAAK1B,KART;AAAA,UACE2B,OADF,gBACEA,OADF;AAAA,UAEEC,SAFF,gBAEEA,SAFF;AAAA,UAGE3B,KAHF,gBAGEA,KAHF;AAAA,UAIE4B,YAJF,gBAIEA,YAJF;AAAA,UAKEC,aALF,gBAKEA,aALF;AAAA,UAME5B,QANF,gBAMEA,QANF;AAAA,UAOE6B,sBAPF,gBAOEA,sBAPF;;AASA,iBASID,aAAa,IAAI,EATrB;AAAA,qCACEE,cADF;AAAA,UACEA,cADF,oCACmB,EADnB;AAAA,sCAEEC,eAFF;AAAA,UAEEA,eAFF,qCAEoB,EAFpB;AAAA,uCAGElB,mBAHF;AAAA,UAGEA,mBAHF,sCAGwB,EAHxB;AAAA,uCAIEmB,mBAJF;AAAA,UAIEA,mBAJF,sCAIwB,EAJxB;AAAA,gCAKEpB,SALF;AAAA,UAKEA,SALF,+BAKc,EALd;AAAA,kCAMEqB,WANF;AAAA,UAMEA,WANF,iCAMgB,EANhB;AAAA,+BAOEnB,QAPF;AAAA,UAOEA,QAPF,8BAOa,EAPb;AAAA,6BAQEI,MARF;AAAA,UAQEA,MARF,4BAQW,EARX;;AAUA,kBAKInB,KAAK,IAAI,EALb;AAAA,UACEmC,0BADF,SACEA,0BADF;AAAA,UAEEC,aAFF,SAEEA,aAFF;AAAA,UAGEC,gBAHF,SAGEA,gBAHF;AAAA,UAIEC,eAJF,SAIEA,eAJF;;AAOA,UAAMC,WAAW,GAAG,EAApB;;AAEA,cAAQvC,KAAK,CAACwC,qBAAd;AACE,aAAK,KAAL;AACED,UAAAA,WAAW,CAACE,QAAZ,GAAuB,KAAvB;AACA;;AACF;AACEF,UAAAA,WAAW,CAACE,QAAZ,GAAuB,QAAvB;AACA;AANJ;;AASA,UAAMC,MAAM,GAAG1C,KAAK,CAAC0C,MAAN,IAAgB,EAA/B;AACAA,MAAAA,MAAM,CAACtC,OAAP,GAAiBsC,MAAM,CAACtC,OAAP,IAAkB;AAAEK,QAAAA,KAAK,EAAE,EAAT;AAAakC,QAAAA,OAAO,EAAE;AAAtB,OAAnC;AAEA,UAAMtC,UAAU,GAAG,8BACjBL,KAAK,CAACK,UAAN,IAAoB,EADH,EAEjBL,KAAK,CAACI,OAAN,IAAiB,EAFA,EAGjBJ,KAAK,CAACG,eAAN,IAAyB,EAHR,CAAnB;AAMA,UAAMe,kBAAkB,GAAG,sCACzBlB,KAAK,CAACK,UAAN,IAAoB,EADK,EAEzBL,KAAK,CAACI,OAAN,IAAiB,EAFQ,EAGzBJ,KAAK,CAACG,eAAN,IAAyB,EAHA,CAA3B;AAMA,UAAMC,OAAO,GAAGJ,KAAK,CAACI,OAAN,CAAcE,GAAd,CAAkB,UAAAC,CAAC,EAAI;AACrCA,QAAAA,CAAC,CAACqC,oBAAF,GAAyB,MAAI,CAACC,4BAAL,CAAkCtC,CAAlC,CAAzB;AACA,eAAOA,CAAP;AACD,OAHe,CAAhB;AAKA,0BACE,gCAAC,UAAD;AAAY,QAAA,KAAK,EAAE,KAAKX;AAAxB,sBACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAEI,KADT;AAEE,UAAA,aAAa,EAAEC,QAFjB;AAGE,UAAA,aAAa,EAAE4B,aAHjB;AAIE,UAAA,qBAAqB,EAAEC,sBAJzB;AAKE,UAAA,MAAM,EAAE;AACNgB,YAAAA,QAAQ,EAAE;AACRf,cAAAA,cAAc,EACZA,cAAc,CAACvC,QAAf,IAA2BC,MAAM,CAACsC,cAAc,CAACtB,KAAhB,CAF3B;AAGRuB,cAAAA,eAAe,EACbA,eAAe,CAACxC,QAAhB,IAA4BC,MAAM,CAACuC,eAAe,CAACvB,KAAjB,CAJ5B;AAKR2B,cAAAA,aAAa,EAAEjB,MAAM,CAAC3B,QAAP,IAAmBC,MAAM,CAAC0B,MAAM,CAACV,KAAR,CALhC;AAMR6B,cAAAA,eAAe,EACbvB,QAAQ,CAACvB,QAAT,IAAqBC,MAAM,CAACsB,QAAQ,CAACN,KAAV;AAPrB,aADJ;AAUNsC,YAAAA,UAAU,EAAE;AACVZ,cAAAA,0BAA0B,EACxBrB,mBAAmB,CAACtB,QAApB,IACAC,MAAM,CAACqB,mBAAmB,CAACL,KAArB,CAHE;AAIVuC,cAAAA,0BAA0B,EACxBf,mBAAmB,CAACzC,QAApB,IACAC,MAAM,CAACwC,mBAAmB,CAACxB,KAArB,CANE;AAOV4B,cAAAA,gBAAgB,EACdxB,SAAS,CAACrB,QAAV,IAAsBC,MAAM,CAACoB,SAAS,CAACJ,KAAX,CARpB;AASVyB,cAAAA,WAAW,EACTA,WAAW,CAAC1C,QAAZ,IACAE,KAAK,CAACwC,WAAW,CAACzB,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB;AAXG;AAVN;AALV;AAFJ,sBAkCE;AAAK,QAAA,SAAS,EAAE,4BAAWiB,OAAO,CAACuB,MAAnB,EAA2BtB,SAA3B;AAAhB,SACGS,aAAa,iBACZ,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAEjB,MAAM,CAACV,KADhB;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAACwB;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAExB,OAAO,CAACP,MADrB;AAEE,QAAA,MAAM,EAAEnB,KAAK,CAACmB,MAAN,IAAgB,EAF1B;AAGE,QAAA,QAAQ,EAAE,KAAKgC,eAHjB;AAIE,QAAA,YAAY,EAAEvB,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,gBAAgB,MANlB;AAOE,QAAA,WAAW,EAAEW;AAPf,QAJF,CAFJ,EAkBGJ,0BAA0B,iBACzB,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAErB,mBAAmB,CAACL,KAD7B;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAAC0B;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE1B,OAAO,CAAC2B,KADrB;AAEE,QAAA,MAAM,EAAErD,KAAK,CAACc,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAKwC,yBAHjB;AAIE,QAAA,YAAY,EAAE1B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAEW;AANf,QAJF,CAnBJ,EAkCGF,gBAAgB,iBACf,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAExB,SAAS,CAACJ,KADnB;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAAC0B;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE1B,OAAO,CAAC2B,KADrB;AAEE,QAAA,MAAM,EAAErD,KAAK,CAACa,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAK0C,eAHjB;AAIE,QAAA,YAAY,EAAE3B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAEW;AANf,QAJF,CAnCJ,eAkDE,gCAAC,sBAAD;AACE,QAAA,YAAY,EAAEX,YADhB;AAEE,QAAA,KAAK,EAAE5B,KAFT;AAGE,QAAA,UAAU,EAAEK,UAAU,IAAI,EAH5B;AAIE,QAAA,cAAc,EAAE,KAAKW,WAJvB;AAKE,QAAA,WAAW,EAAEuB;AALf,QAlDF,eA0DE,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEb,OAAO,CAAC8B,gBADrB;AAEE,QAAA,KAAK,EAAC,qBAFR;AAGE,QAAA,WAAW,EAAC,2BAHd;AAIE,QAAA,KAAK,EAAE,KAAKC;AAJd,QA1DF,EAiEGvC,kBAAkB,CAACZ,GAAnB,CAAuB,UAACoD,cAAD,EAAiBtC,KAAjB,EAA2B;AACjD,4BACE,gCAAC,iBAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAEA;AAArB,wBACE,gCAAC,kBAAD;AACE,UAAA,SAAS,EAAEM,OAAO,CAAC8B,gBADrB;AAEE,UAAA,KAAK,EAAC,oBAFR;AAGE,UAAA,WAAW,EAAC,2BAHd;AAIE,UAAA,KAAK,EAAE;AAAA,mBAAM,MAAI,CAACG,yBAAL,CAA+BvC,KAA/B,CAAN;AAAA;AAJT,UADF,eAQE,gCAAC,8BAAD;AACE,UAAA,QAAQ,EAAEA,KADZ;AAEE,UAAA,YAAY,EAAEQ,YAFhB;AAGE,UAAA,KAAK,EAAE5B,KAHT;AAIE,UAAA,UAAU,EAAE0D,cAJd;AAKE,UAAA,cAAc,EAAE,MAAI,CAAC1C;AALvB,UARF,CADF;AAkBD,OAnBA,CAjEH,eAsFE,gCAAC,gBAAD,OAtFF,eAuFE,gCAAC,mBAAD;AACE,QAAA,YAAY,EAAEY,YADhB;AAEE,QAAA,OAAO,EAAExB,OAFX;AAGE,QAAA,KAAK,EAAEJ,KAHT;AAIE,QAAA,cAAc,EAAE,KAAKgB,WAJvB;AAKE,QAAA,WAAW,EAAEuB;AALf,QAvFF,EA+FGD,eAAe,iBACd,gCAAC,wBAAD;AACE,QAAA,QAAQ,EAAEtC,KAAK,CAACe,QADlB;AAEE,QAAA,QAAQ,EAAE,KAAK6C,cAFjB;AAGE,QAAA,WAAW,EAAErB;AAHf,QAhGJ,CAlCF,CADF,CADF;AA8ID;;;EAnTyBsB,kBAAMC,S;;;iCAArBhE,M,eACQ;AACjB4B,EAAAA,OAAO,EAAEqC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBpC,EAAAA,aAAa,EAAEkC,sBAAUC,MAFR;AAGjBrC,EAAAA,SAAS,EAAEoC,sBAAUG,MAHJ;AAIjBpC,EAAAA,sBAAsB,EAAEiC,sBAAUI,IAJjB;AAKjBnE,EAAAA,KAAK,EAAE+D,sBAAUC,MAAV,CAAiBC,UALP;AAMjBhE,EAAAA,QAAQ,EAAE8D,sBAAUI,IAAV,CAAeF,UANR;AAOjBrE,EAAAA,GAAG,EAAEmE,sBAAUG,MAPE;AAQjBtC,EAAAA,YAAY,EAAEmC,sBAAUK,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEN,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB;AARG,C;;AAqTrB,IAAMK,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBf,IAAAA,gBAAgB,EAAE;AAChBgB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CADjB;AAEhBC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAFpB,KADK;AAKvBE,IAAAA,IAAI,EAAE;AACJJ,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD7B;AAEJC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAFhC,KALiB;AASvBzB,IAAAA,MAAM,EAAE;AACNuB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IADpB;AAENC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC;AAFvB,KATe;AAavBtB,IAAAA,WAAW,EAAE;AACXyB,MAAAA,KAAK,EAAE,MADI;AAEXF,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAFzB;AAGXI,MAAAA,YAAY,EAAEP,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAHxB,KAbU;AAkBvBrB,IAAAA,KAAK,EAAE;AACLmB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD5B;AAELG,MAAAA,KAAK,EAAE,MAFF;AAGLE,MAAAA,QAAQ,EAAE;AAHL,KAlBgB;AAuBvB5D,IAAAA,MAAM,EAAE;AACNqD,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAENG,MAAAA,KAAK,EAAE;AAFD,KAvBe;AA2BvB3B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,KAAK,EAAE,MADK;AAEZF,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAFxB;AAGZI,MAAAA,YAAY,EAAEP,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KA3BS;AAgCvBM,IAAAA,KAAK,EAAE;AACLF,MAAAA,YAAY,EAAE;AADT;AAhCgB,GAAL;AAAA,CAApB;;eAqCe,2BAAgB,wBAAWR,MAAX,EAAmBxE,MAAnB,CAAhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = props => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map(c => ({\n id: c.id,\n label: c.label\n }));\n\n updatedModel.choices = updatedModel.choices.map(h => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = rationale => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale\n });\n };\n\n changeTeacherInstructions = teacherInstructions => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions\n });\n };\n\n changeFeedback = feedback => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse }\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map(cr => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []]\n }))\n });\n };\n\n onPromptChanged = prompt => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = index => {\n const {\n model: { correctResponse }\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map(cr => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n )\n }))\n });\n };\n\n countChoiceInCorrectResponse = choice => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {}\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled\n } = model || {};\n\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\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map(c => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\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\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = theme => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px'\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n title: {\n marginBottom: '30px'\n }\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","spellCheck","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","spellCheckEnabled","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings,\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n ),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged,\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {},\n spellCheck = {},\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled,\n spellCheckEnabled,\n } = model || {};\n\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\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n },\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\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\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: '30px',\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
@@ -52,7 +52,8 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
52
52
  classes = _this$props.classes,
53
53
  className = _this$props.className,
54
54
  imageSupport = _this$props.imageSupport,
55
- toolbarOpts = _this$props.toolbarOpts;
55
+ toolbarOpts = _this$props.toolbarOpts,
56
+ spellCheck = _this$props.spellCheck;
56
57
  var choicePlugins = {
57
58
  audio: {
58
59
  disabled: true
@@ -71,7 +72,8 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
71
72
  onChange: onChange,
72
73
  className: classes.editor,
73
74
  pluginProps: choicePlugins,
74
- toolbarOpts: toolbarOpts
75
+ toolbarOpts: toolbarOpts,
76
+ spellCheck: spellCheck
75
77
  }));
76
78
  }
77
79
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAeX,kBAAS;AACP,wBAA2E,KAAKC,KAAhF;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,KAAlB,eAAkBA,KAAlB;AAAA,UAAyBC,OAAzB,eAAyBA,OAAzB;AAAA,UAAkCC,SAAlC,eAAkCA,SAAlC;AAAA,UAA6CC,YAA7C,eAA6CA,YAA7C;AAAA,UAA2DC,WAA3D,eAA2DA,WAA3D;AACA,UAAMC,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADa;AAEpBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFa,OAAtB;AAKA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWN,OAAO,CAACQ,WAAnB,EAAgCP,SAAhC;AAAhB,sBACE,gCAAC,wBAAD;AACE,QAAA,YAAY,EAAEC,YADhB;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,KAAK,EAAE,OAHT;AAIE,QAAA,MAAM,EAAEH,KAJV;AAKE,QAAA,QAAQ,EAAED,QALZ;AAME,QAAA,SAAS,EAAEE,OAAO,CAACS,MANrB;AAOE,QAAA,WAAW,EAAEL,aAPf;AAQE,QAAA,WAAW,EAAED;AARf,QADF,CADF;AAcD;;;EApC8BO,kBAAMC,S;;;iCAA1Bf,W,eACQ;AACjBI,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC,UADT;AAEjBb,EAAAA,SAAS,EAAEW,sBAAUG,MAFJ;AAGjBhB,EAAAA,KAAK,EAAEa,sBAAUG,MAHA;AAIjBjB,EAAAA,QAAQ,EAAEc,sBAAUI,IAJH;AAKjBC,EAAAA,QAAQ,EAAEL,sBAAUI,IALH;AAMjBd,EAAAA,YAAY,EAAEU,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB,CANG;AAUjBX,EAAAA,WAAW,EAAES,sBAAUC;AAVN,C;iCADRjB,W,kBAcW,E;;AAwBxB,IAAMwB,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBZ,IAAAA,MAAM,EAAE;AACNa,MAAAA,IAAI,EAAE,GADA;AAENC,MAAAA,aAAa,EAAEF,KAAK,CAACG,OAAN,CAAcC;AAFvB,KADe;AAKvBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,MADO;AAEdC,MAAAA,MAAM,EAAE;AAFM,KALO;AASvBpB,IAAAA,WAAW,EAAE;AACXqB,MAAAA,OAAO,EAAE,MADE;AAEXC,MAAAA,cAAc,EAAE;AAFL;AATU,GAAL;AAAA,CAApB;;eAce,wBAAWV,MAAX,EAAmBxB,WAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n render() {\n const { onChange, label, classes, className, imageSupport, toolbarOpts } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\nconst styles = theme => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto'\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
1
+ {"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","spellCheck","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAeX,kBAAS;AACP,wBAAuF,KAAKC,KAA5F;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,KAAlB,eAAkBA,KAAlB;AAAA,UAAyBC,OAAzB,eAAyBA,OAAzB;AAAA,UAAkCC,SAAlC,eAAkCA,SAAlC;AAAA,UAA6CC,YAA7C,eAA6CA,YAA7C;AAAA,UAA2DC,WAA3D,eAA2DA,WAA3D;AAAA,UAAwEC,UAAxE,eAAwEA,UAAxE;AACA,UAAMC,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADa;AAEpBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFa,OAAtB;AAKA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWP,OAAO,CAACS,WAAnB,EAAgCR,SAAhC;AAAhB,sBACE,gCAAC,wBAAD;AACE,QAAA,YAAY,EAAEC,YADhB;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,KAAK,EAAE,OAHT;AAIE,QAAA,MAAM,EAAEH,KAJV;AAKE,QAAA,QAAQ,EAAED,QALZ;AAME,QAAA,SAAS,EAAEE,OAAO,CAACU,MANrB;AAOE,QAAA,WAAW,EAAEL,aAPf;AAQE,QAAA,WAAW,EAAEF,WARf;AASE,QAAA,UAAU,EAAEC;AATd,QADF,CADF;AAeD;;;EArC8BO,kBAAMC,S;;;iCAA1BhB,W,eACQ;AACjBI,EAAAA,OAAO,EAAEa,sBAAUC,MAAV,CAAiBC,UADT;AAEjBd,EAAAA,SAAS,EAAEY,sBAAUG,MAFJ;AAGjBjB,EAAAA,KAAK,EAAEc,sBAAUG,MAHA;AAIjBlB,EAAAA,QAAQ,EAAEe,sBAAUI,IAJH;AAKjBC,EAAAA,QAAQ,EAAEL,sBAAUI,IALH;AAMjBf,EAAAA,YAAY,EAAEW,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB,CANG;AAUjBZ,EAAAA,WAAW,EAAEU,sBAAUC;AAVN,C;iCADRlB,W,kBAcW,E;;AAyBxB,IAAMyB,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBZ,IAAAA,MAAM,EAAE;AACNa,MAAAA,IAAI,EAAE,GADA;AAENC,MAAAA,aAAa,EAAEF,KAAK,CAACG,OAAN,CAAcC;AAFvB,KADe;AAKvBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,MADO;AAEdC,MAAAA,MAAM,EAAE;AAFM,KALO;AASvBpB,IAAAA,WAAW,EAAE;AACXqB,MAAAA,OAAO,EAAE,MADE;AAEXC,MAAAA,cAAc,EAAE;AAFL;AATU,GAAL;AAAA,CAApB;;eAce,wBAAWV,MAAX,EAAmBzB,WAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n render() {\n const { onChange, label, classes, className, imageSupport, toolbarOpts, spellCheck } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n />\n </div>\n );\n }\n}\nconst styles = theme => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto'\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
@@ -31,9 +31,9 @@ var _main = _interopRequireDefault(require("./main"));
31
31
 
32
32
  var _defaults = _interopRequireDefault(require("./defaults"));
33
33
 
34
- 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; }
34
+ 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; }
35
35
 
36
- 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; }
36
+ 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; }
37
37
 
38
38
  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); }; }
39
39
 
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "5.4.17",
6
+ "version": "5.4.20",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -13,10 +13,10 @@
13
13
  "@material-ui/icons": "^3.0.1",
14
14
  "@pie-framework/pie-configure-events": "^1.2.0",
15
15
  "@pie-lib/categorize": "^0.6.24",
16
- "@pie-lib/config-ui": "^10.10.23",
16
+ "@pie-lib/config-ui": "^10.11.0",
17
17
  "@pie-lib/drag": "^1.1.52",
18
- "@pie-lib/editable-html": "^7.19.2",
19
- "@pie-lib/render-ui": "^4.12.4",
18
+ "@pie-lib/editable-html": "^7.20.0",
19
+ "@pie-lib/render-ui": "^4.12.5",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^3.1.0",
22
22
  "lodash": "^4.17.15",
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.outcome = exports.normalize = exports.model = exports.getTotalScore = exports.getPartialScore = exports.getCorrectness = exports.createDefaultModel = exports.createCorrectResponseSession = void 0;
8
9
  Object.defineProperty(exports, "score", {
9
10
  enumerable: true,
10
11
  get: function get() {
11
12
  return _categorize.score;
12
13
  }
13
14
  });
14
- exports.createCorrectResponseSession = exports.outcome = exports.model = exports.normalize = exports.createDefaultModel = exports.getCorrectness = exports.getTotalScore = exports.getPartialScore = void 0;
15
15
 
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
17
 
@@ -29,9 +29,9 @@ var _controllerUtils = require("@pie-lib/controller-utils");
29
29
 
30
30
  var _defaults = _interopRequireDefault(require("./defaults"));
31
31
 
32
- 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; }
32
+ 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; }
33
33
 
34
- 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; }
34
+ 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; }
35
35
 
36
36
  var getPartialScore = function getPartialScore(correctResponse, builtCategories) {
37
37
  // in the resulted best scenario we make a sum with all the correct responses
@@ -35,6 +35,22 @@
35
35
  }
36
36
  }
37
37
  },
38
+ "spellCheck": {
39
+ "title": "ConfigureProp",
40
+ "type": "object",
41
+ "properties": {
42
+ "settings": {
43
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
44
+ "type": "boolean",
45
+ "title": "settings"
46
+ },
47
+ "label": {
48
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
49
+ "type": "string",
50
+ "title": "label"
51
+ }
52
+ }
53
+ },
38
54
  "scoringType": {
39
55
  "title": "ConfigureProp",
40
56
  "type": "object",
@@ -26,6 +26,18 @@ Indicates if the item has to be displayed in the Settings Panel
26
26
 
27
27
  Indicates the label for the item that has to be displayed in the Settings Panel
28
28
 
29
+ # `spellCheck` (object)
30
+
31
+ Properties of the `spellCheck` object:
32
+
33
+ ## `settings` (boolean)
34
+
35
+ Indicates if the item has to be displayed in the Settings Panel
36
+
37
+ ## `label` (string)
38
+
39
+ Indicates the label for the item that has to be displayed in the Settings Panel
40
+
29
41
  # `scoringType` (object)
30
42
 
31
43
  Properties of the `scoringType` object:
@@ -373,6 +373,11 @@
373
373
  "type": "boolean",
374
374
  "title": "rationaleEnabled"
375
375
  },
376
+ "spellCheckEnabled": {
377
+ "description": "Indicates if spellcheck is enabled for the author. Default value is true",
378
+ "type": "boolean",
379
+ "title": "spellCheckEnabled"
380
+ },
376
381
  "studentInstructionsEnabled": {
377
382
  "description": "Indicates if Student Instructions are enabled",
378
383
  "type": "boolean",
@@ -417,6 +422,7 @@
417
422
  "id",
418
423
  "prompt",
419
424
  "rationaleEnabled",
425
+ "spellCheckEnabled",
420
426
  "studentInstructionsEnabled",
421
427
  "teacherInstructionsEnabled"
422
428
  ],
@@ -150,6 +150,10 @@ Indicates if Feedback is enabled
150
150
 
151
151
  Indicates if Rationale are enabled
152
152
 
153
+ # `spellCheckEnabled` (boolean, required)
154
+
155
+ Indicates if spellcheck is enabled for the author. Default value is true
156
+
153
157
  # `studentInstructionsEnabled` (boolean, required)
154
158
 
155
159
  Indicates if Student Instructions are enabled
@@ -7,13 +7,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
+ exports.Categories = void 0;
10
11
  Object.defineProperty(exports, "CategoryType", {
11
12
  enumerable: true,
12
13
  get: function get() {
13
14
  return _category.CategoryType;
14
15
  }
15
16
  });
16
- exports["default"] = exports.Categories = void 0;
17
+ exports["default"] = void 0;
17
18
 
18
19
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
19
20
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","categoriesPerRow","chunkedCategories","Math","ceil","length","map","cat","rowIndex","items","forEach","c","columnIndex","push","label","__html","concat","Array","fill","h","id","category","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1\n }\n };\n\n render() {\n const {\n classes,\n categories,\n model,\n disabled,\n onDropChoice,\n onRemoveChoice,\n } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {\n chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n cat.forEach((c, columnIndex) => {\n items.push((\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>));\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n // for each inner array of categories, create a row with category containers\n cat.forEach((c, columnIndex) => {\n items.push(<Category\n onDropChoice={h => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />);\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n return items;\n })\n }\n </GridContent>\n );\n }\n}\n\nconst styles = theme => ({\n categories: {\n flex: 1\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.js"}
1
+ {"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","categoriesPerRow","chunkedCategories","Math","ceil","length","map","cat","rowIndex","items","forEach","c","columnIndex","push","label","__html","concat","Array","fill","h","id","category","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1\n }\n };\n\n render() {\n const {\n classes,\n categories,\n model,\n disabled,\n onDropChoice,\n onRemoveChoice,\n } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {\n chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n cat.forEach((c, columnIndex) => {\n items.push((\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>));\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n // for each inner array of categories, create a row with category containers\n cat.forEach((c, columnIndex) => {\n items.push(<Category\n onDropChoice={h => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />);\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n return items;\n })\n }\n </GridContent>\n );\n }\n}\n\nconst styles = theme => ({\n categories: {\n flex: 1\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.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["default"] = exports.Category = exports.CategoryType = void 0;
8
+ exports["default"] = exports.CategoryType = exports.Category = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -35,9 +35,9 @@ var _droppablePlaceholder = _interopRequireDefault(require("./droppable-placehol
35
35
 
36
36
  var _renderUi = require("@pie-lib/render-ui");
37
37
 
38
- 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; }
38
+ 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; }
39
39
 
40
- 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; }
40
+ 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; }
41
41
 
42
42
  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); }; }
43
43
 
@@ -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.spec = exports.Choice = exports.Layout = exports.ChoiceType = void 0;
8
+ exports.spec = exports["default"] = exports.Layout = exports.ChoiceType = exports.Choice = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -39,9 +39,9 @@ var _renderUi = require("@pie-lib/render-ui");
39
39
 
40
40
  var _debug = _interopRequireDefault(require("debug"));
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
 
@@ -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.spec = exports.DroppablePlaceholder = void 0;
8
+ exports.spec = exports["default"] = exports.DroppablePlaceholder = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -27,9 +27,9 @@ var _styles = require("@material-ui/core/styles");
27
27
 
28
28
  var _classnames = _interopRequireDefault(require("classnames"));
29
29
 
30
- 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; }
30
+ 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; }
31
31
 
32
- 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; }
32
+ 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; }
33
33
 
34
34
  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); }; }
35
35
 
package/lib/index.js CHANGED
@@ -61,6 +61,9 @@ var Categorize = /*#__PURE__*/function (_HTMLElement) {
61
61
  }
62
62
  }, {
63
63
  key: "session",
64
+ get: function get() {
65
+ return this._session;
66
+ },
64
67
  set: function set(s) {
65
68
  if (s && !s.answers) {
66
69
  s.answers = [];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["Categorize","m","_model","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isComplete","render","_session","Array","isArray","answers","length","s","SessionChangedEvent","el","React","createElement","CategorizeComponent","model","session","onAnswersChange","changeAnswers","bind","onShowCorrectToggle","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,U;;;;;;;;;;;;SACnB,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,UAAL,EAFF,EAGE,CAAC,CAAC,KAAKL,MAHT,CADF;AAOA,WAAKM,MAAL;AACD;;;WAED,sBAAa;AACX,UAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,eAAO,KAAP;AACD;;AAED,aACEC,KAAK,CAACC,OAAN,CAAc,KAAKF,QAAL,CAAcG,OAA5B,KAAwC,KAAKH,QAAL,CAAcG,OAAd,CAAsBC,MAAtB,GAA+B,CADzE;AAGD;;;SAED,aAAYC,CAAZ,EAAe;AACb,UAAIA,CAAC,IAAI,CAACA,CAAC,CAACF,OAAZ,EAAqB;AACnBE,QAAAA,CAAC,CAACF,OAAF,GAAY,EAAZ;AACD;;AAED,WAAKH,QAAL,GAAgBK,CAAhB;AACA,WAAKN,MAAL;AACD;;;WAED,uBAAcI,OAAd,EAAuB;AACrB,WAAKH,QAAL,CAAcG,OAAd,GAAwBA,OAAxB;AAEA,WAAKT,aAAL,CACE,IAAIY,oCAAJ,CAAwB,KAAKV,OAAL,CAAaC,WAAb,EAAxB,EAAoD,KAAKC,UAAL,EAApD,CADF;AAIA,WAAKC,MAAL;AACD;;;WAED,+BAAsB;AACpB,qCAAW,IAAX;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKN,MAAL,IAAe,KAAKO,QAAxB,EAAkC;AAChC,YAAMO,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,sBAApB,EAAyC;AAClDC,UAAAA,KAAK,EAAE,KAAKlB,MADsC;AAElDmB,UAAAA,OAAO,EAAE,KAAKZ,QAFoC;AAGlDa,UAAAA,eAAe,EAAE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAHiC;AAIlDC,UAAAA,mBAAmB,EAAE,KAAKA,mBAAL,CAAyBD,IAAzB,CAA8B,IAA9B;AAJ6B,SAAzC,CAAX;;AAMAE,6BAASlB,MAAT,CAAgBQ,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDA3DqCW,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport {\n SessionChangedEvent,\n ModelSetEvent\n} from '@pie-framework/pie-player-events';\nimport CategorizeComponent from './categorize';\n\nexport default class Categorize extends HTMLElement {\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.isComplete(),\n !!this._model\n )\n );\n this.render();\n }\n\n isComplete() {\n if (!this._session) {\n return false;\n }\n\n return (\n Array.isArray(this._session.answers) && this._session.answers.length > 0\n );\n }\n\n set session(s) {\n if (s && !s.answers) {\n s.answers = [];\n }\n\n this._session = s;\n this.render();\n }\n\n changeAnswers(answers) {\n this._session.answers = answers;\n\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete())\n );\n\n this.render();\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(CategorizeComponent, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n });\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["Categorize","m","_model","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isComplete","render","_session","Array","isArray","answers","length","s","SessionChangedEvent","el","React","createElement","CategorizeComponent","model","session","onAnswersChange","changeAnswers","bind","onShowCorrectToggle","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,U;;;;;;;;;;;;SACnB,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,UAAL,EAFF,EAGE,CAAC,CAAC,KAAKL,MAHT,CADF;AAOA,WAAKM,MAAL;AACD;;;WAED,sBAAa;AACX,UAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,eAAO,KAAP;AACD;;AAED,aACEC,KAAK,CAACC,OAAN,CAAc,KAAKF,QAAL,CAAcG,OAA5B,KAAwC,KAAKH,QAAL,CAAcG,OAAd,CAAsBC,MAAtB,GAA+B,CADzE;AAGD;;;SAWD,eAAc;AACZ,aAAO,KAAKJ,QAAZ;AACD,K;SAXD,aAAYK,CAAZ,EAAe;AACb,UAAIA,CAAC,IAAI,CAACA,CAAC,CAACF,OAAZ,EAAqB;AACnBE,QAAAA,CAAC,CAACF,OAAF,GAAY,EAAZ;AACD;;AAED,WAAKH,QAAL,GAAgBK,CAAhB;AACA,WAAKN,MAAL;AACD;;;WAMD,uBAAcI,OAAd,EAAuB;AACrB,WAAKH,QAAL,CAAcG,OAAd,GAAwBA,OAAxB;AAEA,WAAKT,aAAL,CACE,IAAIY,oCAAJ,CAAwB,KAAKV,OAAL,CAAaC,WAAb,EAAxB,EAAoD,KAAKC,UAAL,EAApD,CADF;AAIA,WAAKC,MAAL;AACD;;;WAED,+BAAsB;AACpB,qCAAW,IAAX;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKN,MAAL,IAAe,KAAKO,QAAxB,EAAkC;AAChC,YAAMO,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,sBAApB,EAAyC;AAClDC,UAAAA,KAAK,EAAE,KAAKlB,MADsC;AAElDmB,UAAAA,OAAO,EAAE,KAAKZ,QAFoC;AAGlDa,UAAAA,eAAe,EAAE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAHiC;AAIlDC,UAAAA,mBAAmB,EAAE,KAAKA,mBAAL,CAAyBD,IAAzB,CAA8B,IAA9B;AAJ6B,SAAzC,CAAX;;AAOAE,6BAASlB,MAAT,CAAgBQ,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDAhEqCW,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport {\n SessionChangedEvent,\n ModelSetEvent\n} from '@pie-framework/pie-player-events';\nimport CategorizeComponent from './categorize';\n\nexport default class Categorize extends HTMLElement {\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.isComplete(),\n !!this._model\n )\n );\n this.render();\n }\n\n isComplete() {\n if (!this._session) {\n return false;\n }\n\n return (\n Array.isArray(this._session.answers) && this._session.answers.length > 0\n );\n }\n\n set session(s) {\n if (s && !s.answers) {\n s.answers = [];\n }\n\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n changeAnswers(answers) {\n this._session.answers = answers;\n\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete())\n );\n\n this.render();\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(CategorizeComponent, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "6.9.13",
7
+ "version": "6.9.16",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -12,10 +12,10 @@
12
12
  "@material-ui/core": "^3.9.2",
13
13
  "@pie-framework/pie-player-events": "^0.1.0",
14
14
  "@pie-lib/categorize": "^0.6.24",
15
- "@pie-lib/correct-answer-toggle": "^2.3.34",
15
+ "@pie-lib/correct-answer-toggle": "^2.3.35",
16
16
  "@pie-lib/drag": "^1.1.52",
17
- "@pie-lib/math-rendering": "^2.3.12",
18
- "@pie-lib/render-ui": "^4.12.4",
17
+ "@pie-lib/math-rendering": "^2.3.13",
18
+ "@pie-lib/render-ui": "^4.12.5",
19
19
  "classnames": "^2.2.5",
20
20
  "debug": "^4.1.1",
21
21
  "lodash": "^4.17.15",
@@ -24,7 +24,7 @@
24
24
  "react-dnd": "^9.3.2",
25
25
  "react-dom": "^16.8.1"
26
26
  },
27
- "gitHead": "7b61c8a15ceae75e9e6db5d465abfb6d22c34f30",
27
+ "gitHead": "de8f41ecfc06944b7bc890a167f81818d2bf1845",
28
28
  "scripts": {
29
29
  "postpublish": "../../scripts/postpublish"
30
30
  },