@pie-element/drawing-response 3.9.12 → 3.9.15-touch

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 (63) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/configure/CHANGELOG.md +24 -0
  3. package/configure/lib/__tests__/image-container.test.js +187 -0
  4. package/configure/lib/__tests__/index.test.js +62 -0
  5. package/configure/lib/__tests__/root.test.js +98 -0
  6. package/configure/lib/defaults.js +8 -2
  7. package/configure/lib/defaults.js.map +1 -1
  8. package/configure/lib/image-container.js +13 -10
  9. package/configure/lib/image-container.js.map +1 -1
  10. package/configure/lib/index.js +2 -8
  11. package/configure/lib/index.js.map +1 -1
  12. package/configure/lib/root.js +17 -9
  13. package/configure/lib/root.js.map +1 -1
  14. package/configure/package.json +3 -3
  15. package/configure/src/__tests__/__snapshots__/image-container.test.jsx.snap +2 -2
  16. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +7 -14
  17. package/configure/src/defaults.js +8 -2
  18. package/configure/src/image-container.jsx +70 -45
  19. package/configure/src/index.js +0 -6
  20. package/configure/src/root.jsx +31 -24
  21. package/controller/CHANGELOG.md +8 -0
  22. package/controller/lib/__tests__/index.test.js +338 -0
  23. package/controller/lib/index.js +13 -7
  24. package/controller/lib/index.js.map +1 -1
  25. package/controller/package.json +1 -1
  26. package/controller/src/__tests__/index.test.js +18 -9
  27. package/controller/src/index.js +4 -1
  28. package/docs/config-schema.json +16 -0
  29. package/docs/config-schema.json.md +12 -0
  30. package/docs/demo/generate.js +1 -0
  31. package/docs/demo/pie.manifest.json +11 -0
  32. package/docs/pie-schema.json +12 -0
  33. package/docs/pie-schema.json.md +8 -0
  34. package/lib/__tests__/drawing-index-test.js +45 -0
  35. package/lib/drawing-response/__tests__/container.test.js +86 -0
  36. package/lib/drawing-response/__tests__/drawable-helper.test.js +50 -0
  37. package/lib/drawing-response/__tests__/drawing-main.test.js +704 -0
  38. package/lib/drawing-response/__tests__/factory.test.js +19 -0
  39. package/lib/drawing-response/container.js +57 -11
  40. package/lib/drawing-response/container.js.map +1 -1
  41. package/lib/drawing-response/drawable-image.js +1 -0
  42. package/lib/drawing-response/drawable-image.js.map +1 -1
  43. package/lib/drawing-response/drawable-main.js +36 -13
  44. package/lib/drawing-response/drawable-main.js.map +1 -1
  45. package/lib/drawing-response/drawable-text.js +15 -5
  46. package/lib/drawing-response/drawable-text.js.map +1 -1
  47. package/lib/drawing-response/index.js +3 -0
  48. package/lib/drawing-response/index.js.map +1 -1
  49. package/lib/index.js +3 -0
  50. package/lib/index.js.map +1 -1
  51. package/package.json +4 -4
  52. package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +18 -2
  53. package/src/drawing-response/__tests__/__snapshots__/drawing-main.test.jsx.snap +26 -2
  54. package/src/drawing-response/__tests__/container.test.jsx +7 -0
  55. package/src/drawing-response/__tests__/drawing-main.test.jsx +2 -1
  56. package/src/drawing-response/container.jsx +40 -2
  57. package/src/drawing-response/drawable-image.jsx +1 -0
  58. package/src/drawing-response/drawable-main.jsx +39 -15
  59. package/src/drawing-response/drawable-text.jsx +7 -1
  60. package/src/drawing-response/index.jsx +3 -1
  61. package/src/index.js +5 -0
  62. package/yarn-error.log +15267 -0
  63. package/LICENSE.md +0 -5
@@ -35,9 +35,9 @@ var _root = _interopRequireDefault(require("./root"));
35
35
 
36
36
  var _defaults = _interopRequireDefault(require("./defaults"));
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
 
@@ -63,12 +63,6 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
63
63
  _this._render();
64
64
  });
65
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
66
- if (!c.backgroundImage.enabled) {
67
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
68
- imageUrl: ''
69
- }));
70
- }
71
-
72
66
  _this._configuration = c;
73
67
 
74
68
  _this._render();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","m","reset","_model","dispatchModelUpdated","_render","c","backgroundImage","enabled","onModelChanged","imageUrl","_configuration","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","sensibleDefaults","configuration","bind","s","resetValue","ModelUpdatedEvent","element","React","createElement","Root","model","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,mBAAN,CAAZ;;IAEqBC,yB;;;;;AAMnB,uCAAc;AAAA;;AAAA;AACZ;AADY,uGAuBG,UAACC,CAAD,EAAIC,KAAJ,EAAc;AAC7B,YAAKC,MAAL,GAAcF,CAAd;;AACA,YAAKG,oBAAL,CAA0BF,KAA1B;;AACA,YAAKG,OAAL;AACD,KA3Ba;AAAA,+GA6BW,UAACC,CAAD,EAAO;AAC9B,UAAI,CAACA,CAAC,CAACC,eAAF,CAAkBC,OAAvB,EAAgC;AAC9B,cAAKC,cAAL,iCACK,MAAKN,MADV;AAEEO,UAAAA,QAAQ,EAAE;AAFZ;AAID;;AACD,YAAKC,cAAL,GAAsBL,CAAtB;;AACA,YAAKD,OAAL;AACD,KAtCa;AAAA,oGAwCA,UAACO,OAAD,EAAa;AACzB,YAAKC,aAAL,CAAmB,IAAIC,oCAAJ,CAAqBF,OAArB,CAAnB;AACD,KA1Ca;AAAA,sGA4CE,UAACG,GAAD,EAAMC,IAAN,EAAe;AAC7B,YAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD,KA9Ca;AAEZ,UAAKb,MAAL,GAAcH,yBAAyB,CAACkB,kBAA1B,EAAd;AACA,UAAKP,cAAL,GAAsBQ,qBAAiBC,aAAvC;AACA,UAAKX,cAAL,GAAsB,MAAKA,cAAL,CAAoBY,IAApB,gDAAtB;AAJY;AAKb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKnB,MAAL,GAAcH,yBAAyB,CAACkB,kBAA1B,CAA6CI,CAA7C,CAAd;;AACA,WAAKjB,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKK,cAAL,GAAsBL,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,8BAAqBH,KAArB,EAA4B;AAC1B,UAAMqB,UAAU,GAAG,CAAC,CAACrB,KAArB;AAEA,WAAKW,aAAL,CAAmB,IAAIW,qCAAJ,CAAsB,KAAKrB,MAA3B,EAAmCoB,UAAnC,CAAnB;AACD;;;WA2BD,mBAAU;AACRxB,MAAAA,GAAG,CAAC,SAAD,CAAH;;AACA,UAAI0B,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACtCC,QAAAA,KAAK,EAAE,KAAK1B,MAD0B;AAEtCiB,QAAAA,aAAa,EAAE,KAAKT,cAFkB;AAGtCF,QAAAA,cAAc,EAAE,KAAKA,cAHiB;AAItCqB,QAAAA,sBAAsB,EAAE,KAAKA,sBAJS;AAKtCC,QAAAA,YAAY,EAAE;AACZC,UAAAA,GAAG,EAAE,KAAKC,WADE;AAEZ,oBAAQ,KAAKC;AAFD;AALwB,OAA1B,CAAd;;AAUAC,2BAASC,MAAT,CAAgBX,OAAhB,EAAyB,IAAzB;AACD;;;kDAnEoDY,W;;;iCAAlCrC,yB,wBACS;AAAA,MAAC6B,KAAD,uEAAS,EAAT;AAAA,yCACvBV,qBAAiBU,KADM,GAEvBA,KAFuB;AAAA,C","sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class DrawableResponseConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...sensibleDefaults.model,\n ...model,\n });\n\n constructor() {\n super();\n this._model = DrawableResponseConfigure.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n onConfigurationChanged = (c) => {\n if (!c.backgroundImage.enabled) {\n this.onModelChanged({\n ...this._model,\n imageUrl: ''\n });\n }\n this._configuration = c;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n log('_render');\n let element = React.createElement(Root, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage\n }\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","m","reset","_model","dispatchModelUpdated","_render","c","_configuration","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","sensibleDefaults","configuration","onModelChanged","bind","s","resetValue","ModelUpdatedEvent","element","React","createElement","Root","model","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,mBAAN,CAAZ;;IAEqBC,yB;;;;;AAMnB,uCAAc;AAAA;;AAAA;AACZ;AADY,uGAuBG,UAACC,CAAD,EAAIC,KAAJ,EAAc;AAC7B,YAAKC,MAAL,GAAcF,CAAd;;AACA,YAAKG,oBAAL,CAA0BF,KAA1B;;AACA,YAAKG,OAAL;AACD,KA3Ba;AAAA,+GA6BW,UAACC,CAAD,EAAO;AAC9B,YAAKC,cAAL,GAAsBD,CAAtB;;AACA,YAAKD,OAAL;AACD,KAhCa;AAAA,oGAkCA,UAACG,OAAD,EAAa;AACzB,YAAKC,aAAL,CAAmB,IAAIC,oCAAJ,CAAqBF,OAArB,CAAnB;AACD,KApCa;AAAA,sGAsCE,UAACG,GAAD,EAAMC,IAAN,EAAe;AAC7B,YAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD,KAxCa;AAEZ,UAAKT,MAAL,GAAcH,yBAAyB,CAACc,kBAA1B,EAAd;AACA,UAAKP,cAAL,GAAsBQ,qBAAiBC,aAAvC;AACA,UAAKC,cAAL,GAAsB,MAAKA,cAAL,CAAoBC,IAApB,gDAAtB;AAJY;AAKb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKhB,MAAL,GAAcH,yBAAyB,CAACc,kBAA1B,CAA6CK,CAA7C,CAAd;;AACA,WAAKd,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKC,cAAL,GAAsBD,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,8BAAqBH,KAArB,EAA4B;AAC1B,UAAMkB,UAAU,GAAG,CAAC,CAAClB,KAArB;AAEA,WAAKO,aAAL,CAAmB,IAAIY,qCAAJ,CAAsB,KAAKlB,MAA3B,EAAmCiB,UAAnC,CAAnB;AACD;;;WAqBD,mBAAU;AACRrB,MAAAA,GAAG,CAAC,SAAD,CAAH;;AACA,UAAIuB,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACtCC,QAAAA,KAAK,EAAE,KAAKvB,MAD0B;AAEtCa,QAAAA,aAAa,EAAE,KAAKT,cAFkB;AAGtCU,QAAAA,cAAc,EAAE,KAAKA,cAHiB;AAItCU,QAAAA,sBAAsB,EAAE,KAAKA,sBAJS;AAKtCC,QAAAA,YAAY,EAAE;AACZC,UAAAA,GAAG,EAAE,KAAKC,WADE;AAEZ,oBAAQ,KAAKC;AAFD;AALwB,OAA1B,CAAd;;AAUAC,2BAASC,MAAT,CAAgBX,OAAhB,EAAyB,IAAzB;AACD;;;kDA7DoDY,W;;;iCAAlClC,yB,wBACS;AAAA,MAAC0B,KAAD,uEAAS,EAAT;AAAA,yCACvBX,qBAAiBW,KADM,GAEvBA,KAFuB;AAAA,C","sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class DrawableResponseConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...sensibleDefaults.model,\n ...model,\n });\n\n constructor() {\n super();\n this._model = DrawableResponseConfigure.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n onConfigurationChanged = (c) => {\n this._configuration = c;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n log('_render');\n let element = React.createElement(Root, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage\n }\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -37,9 +37,9 @@ var _imageContainer = _interopRequireDefault(require("./image-container"));
37
37
 
38
38
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
39
39
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
40
+ function 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; }
41
41
 
42
- 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; }
42
+ 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; }
43
43
 
44
44
  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); }; }
45
45
 
@@ -116,11 +116,15 @@ var Root = /*#__PURE__*/function (_React$Component) {
116
116
  _ref$prompt = _ref.prompt,
117
117
  prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
118
118
  _ref$teacherInstructi = _ref.teacherInstructions,
119
- teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi;
119
+ teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
120
+ _ref$spellCheck = _ref.spellCheck,
121
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
120
122
 
121
123
  var _ref2 = model || {},
122
124
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
123
- promptEnabled = _ref2.promptEnabled;
125
+ promptEnabled = _ref2.promptEnabled,
126
+ spellCheckEnabled = _ref2.spellCheckEnabled,
127
+ backgroundImageEnabled = _ref2.backgroundImageEnabled;
124
128
 
125
129
  var toolbarOpts = {};
126
130
 
@@ -144,11 +148,12 @@ var Root = /*#__PURE__*/function (_React$Component) {
144
148
  onChangeConfiguration: onConfigurationChanged,
145
149
  groups: {
146
150
  Settings: {
147
- 'backgroundImage.enabled': backgroundImage.settings && toggle(backgroundImage.label, true),
151
+ backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
148
152
  promptEnabled: prompt.settings && toggle(prompt.label)
149
153
  },
150
154
  Properties: {
151
- teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label)
155
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
156
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label)
152
157
  }
153
158
  }
154
159
  })
@@ -162,15 +167,18 @@ var Root = /*#__PURE__*/function (_React$Component) {
162
167
  onChange: this.onTeacherInstructionsChanged,
163
168
  imageSupport: imageSupport,
164
169
  nonEmpty: false,
165
- toolbarOpts: toolbarOpts
170
+ toolbarOpts: toolbarOpts,
171
+ spellCheck: spellCheckEnabled
166
172
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
167
173
  label: "Item Stem",
168
174
  className: classes.prompt
169
175
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
170
176
  markup: model.prompt,
171
177
  onChange: this.onPromptChanged,
172
- toolbarOpts: toolbarOpts
173
- })), backgroundImage.enabled && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
178
+ toolbarOpts: toolbarOpts,
179
+ spellCheck: spellCheckEnabled,
180
+ imageSupport: imageSupport
181
+ })), backgroundImageEnabled && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
174
182
  className: classes.label,
175
183
  variant: "subheading"
176
184
  }, "Define Background Image"), /*#__PURE__*/_react["default"].createElement(_imageContainer["default"], {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","onConfigurationChanged","backgroundImage","teacherInstructionsEnabled","promptEnabled","toolbarOpts","toolbarEditorPosition","position","base","Settings","label","Properties","regular","onTeacherInstructionsChanged","onPromptChanged","enabled","onUpdateImageDimension","onImageUpload","React","Component","styles","theme","marginTop","spacing","unit","paddingTop","width","marginBottom","propTypes","PropTypes","object","isRequired","shape","add","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle } = settings;\n\nexport class Root extends React.Component {\n onPromptChanged = prompt => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({\n ...update,\n prompt\n });\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n teacherInstructions\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageDimensions: dimensions\n });\n };\n\n onImageUpload = imageUrl => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageUrl\n });\n };\n\n render() {\n const {\n classes,\n configuration,\n model,\n imageSupport,\n onConfigurationChanged,\n onModelChanged\n } = this.props;\n const { backgroundImage = {}, prompt = {}, teacherInstructions = {} } =\n configuration || {};\n const { teacherInstructionsEnabled, promptEnabled } =\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\n return (\n <div className={classes.base}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n 'backgroundImage.enabled':\n backgroundImage.settings &&\n toggle(backgroundImage.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label)\n }\n }}\n />\n }\n >\n <div className={classes.regular}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.prompt}\n >\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.prompt}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {backgroundImage.enabled && (\n <div>\n <Typography className={classes.label} variant=\"subheading\">\n Define Background Image\n </Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n />\n </div>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n base: {\n marginTop: theme.spacing.unit * 3\n },\n label: {\n marginTop: theme.spacing.unit * 4\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n regular: {\n marginBottom: theme.spacing.unit * 3\n }\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
1
+ {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","onConfigurationChanged","backgroundImage","spellCheck","teacherInstructionsEnabled","promptEnabled","spellCheckEnabled","backgroundImageEnabled","toolbarOpts","toolbarEditorPosition","position","base","Settings","label","Properties","regular","onTeacherInstructionsChanged","onPromptChanged","onUpdateImageDimension","onImageUpload","React","Component","styles","theme","marginTop","spacing","unit","paddingTop","width","marginBottom","propTypes","PropTypes","object","isRequired","shape","add","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle } = settings;\n\nexport class Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({\n ...update,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n teacherInstructions,\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageDimensions: dimensions,\n });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageUrl,\n });\n };\n\n render() {\n const {\n classes,\n configuration,\n model,\n imageSupport,\n onConfigurationChanged,\n onModelChanged,\n } = this.props;\n const {\n backgroundImage = {},\n prompt = {},\n teacherInstructions = {},\n spellCheck = {},\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, spellCheckEnabled, backgroundImageEnabled } =\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\n return (\n <div className={classes.base}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n },\n }}\n />\n }\n >\n <div className={classes.regular}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.prompt}\n >\n <EditableHtml\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\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.prompt}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n imageSupport={imageSupport}\n />\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <div>\n <Typography className={classes.label} variant=\"subheading\">\n Define Background Image\n </Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n />\n </div>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 3,\n },\n label: {\n marginTop: theme.spacing.unit * 4,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n regular: {\n marginBottom: theme.spacing.unit * 3,\n },\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response-configure",
3
3
  "private": true,
4
- "version": "3.2.16",
4
+ "version": "3.2.19",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,8 +9,8 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.2.0",
12
- "@pie-lib/config-ui": "^10.10.22",
13
- "@pie-lib/editable-html": "^7.19.1",
12
+ "@pie-lib/config-ui": "^10.12.2",
13
+ "@pie-lib/editable-html": "^7.22.2",
14
14
  "classnames": "^2.2.6",
15
15
  "debug": "^3.1.0",
16
16
  "lodash": "^4.17.15",
@@ -31,8 +31,8 @@ exports[`ImageContainer snapshot renders 1`] = `
31
31
  src="url"
32
32
  style={
33
33
  Object {
34
- "maxHeight": 0,
35
- "maxWidth": 0,
34
+ "maxHeight": "auto",
35
+ "maxWidth": "100%",
36
36
  }
37
37
  }
38
38
  />
@@ -8,7 +8,6 @@ exports[`Root snapshot renders 1`] = `
8
8
  configuration={
9
9
  Object {
10
10
  "backgroundImage": Object {
11
- "enabled": true,
12
11
  "label": "Background Image",
13
12
  "settings": true,
14
13
  },
@@ -16,6 +15,11 @@ exports[`Root snapshot renders 1`] = `
16
15
  "label": "Prompt",
17
16
  "settings": true,
18
17
  },
18
+ "spellCheck": Object {
19
+ "enabled": true,
20
+ "label": "Spellcheck",
21
+ "settings": false,
22
+ },
19
23
  "teacherInstructions": Object {
20
24
  "label": "Teacher Instructions",
21
25
  "settings": true,
@@ -25,10 +29,11 @@ exports[`Root snapshot renders 1`] = `
25
29
  groups={
26
30
  Object {
27
31
  "Properties": Object {
32
+ "spellCheckEnabled": false,
28
33
  "teacherInstructionsEnabled": undefined,
29
34
  },
30
35
  "Settings": Object {
31
- "backgroundImage.enabled": undefined,
36
+ "backgroundImageEnabled": undefined,
32
37
  "promptEnabled": undefined,
33
38
  },
34
39
  }
@@ -63,18 +68,6 @@ exports[`Root snapshot renders 1`] = `
63
68
  }
64
69
  />
65
70
  </Component>
66
- <div>
67
- <WithStyles(Typography)
68
- variant="subheading"
69
- >
70
- Define Background Image
71
- </WithStyles(Typography)>
72
- <WithStyles(ImageContainer)
73
- imageUrl=""
74
- onImageUpload={[Function]}
75
- onUpdateImageDimension={[Function]}
76
- />
77
- </div>
78
71
  </div>
79
72
  </ConfigLayout>
80
73
  </div>
@@ -9,13 +9,19 @@ export default {
9
9
  promptEnabled: true,
10
10
  teacherInstructionsEnabled: true,
11
11
  studentInstructionsEnabled: true,
12
+ backgroundImageEnabled: true,
13
+ spellCheckEnabled:true,
12
14
  toolbarEditorPosition: 'bottom',
13
15
  },
14
16
  configuration: {
17
+ spellCheck: {
18
+ label: 'Spellcheck',
19
+ settings:false,
20
+ enabled:true
21
+ },
15
22
  backgroundImage: {
16
23
  settings: true,
17
- label: 'Background Image',
18
- enabled: true
24
+ label: 'Background Image'
19
25
  },
20
26
  prompt: {
21
27
  settings: true,
@@ -13,11 +13,11 @@ export class ImageContainer extends Component {
13
13
  constructor(props) {
14
14
  super(props);
15
15
  this.state = {
16
- maxImageWidth: 0,
17
- maxImageHeight: 0,
16
+ maxImageWidth: "100%",
17
+ maxImageHeight: "auto",
18
18
  dragEnabled: true,
19
19
  dropzoneActive: false,
20
- }
20
+ };
21
21
  }
22
22
 
23
23
  componentDidMount() {
@@ -26,7 +26,7 @@ export class ImageContainer extends Component {
26
26
  const { height, width } = positionInfo;
27
27
  this.setState({
28
28
  maxImageWidth: width,
29
- maxImageHeight: height
29
+ maxImageHeight: height,
30
30
  });
31
31
  }
32
32
  }
@@ -46,7 +46,7 @@ export class ImageContainer extends Component {
46
46
  this.handleFileRead(file);
47
47
  };
48
48
 
49
- makeDropzoneActive= () => this.setState({ dropzoneActive: true });
49
+ makeDropzoneActive = () => this.setState({ dropzoneActive: true });
50
50
 
51
51
  makeDropzoneInactive = () => this.setState({ dropzoneActive: false });
52
52
 
@@ -90,7 +90,7 @@ export class ImageContainer extends Component {
90
90
 
91
91
  const dimensions = {
92
92
  height: offsetHeight,
93
- width: offsetWidth
93
+ width: offsetWidth,
94
94
  };
95
95
 
96
96
  this.setState({ dimensions });
@@ -117,20 +117,27 @@ export class ImageContainer extends Component {
117
117
 
118
118
  startResizing = (e) => {
119
119
  const box = this.image;
120
- const { maxImageWidth } = this.state;
120
+ const { maxImageWidth, dimensions } = this.state;
121
121
 
122
122
  const bounds = e.target.getBoundingClientRect();
123
123
  const x = e.clientX - bounds.left;
124
124
  const y = e.clientY - bounds.top;
125
125
 
126
+ const imageAspectRatio = dimensions.width / dimensions.height;
127
+
126
128
  const fitsContainer = x <= maxImageWidth + 5;
127
129
  const hasMinimumWidth = x > 150 && y > 150;
128
130
 
129
131
  if (fitsContainer && hasMinimumWidth) {
130
132
  box.style.width = `${x}px`;
131
- box.style.height = `${y}px`;
133
+ box.style.height = `${x/imageAspectRatio}px`;
132
134
 
133
- this.setState({ dimensions: { height: y, width: x }});
135
+ this.setState({
136
+ dimensions: {
137
+ height:x/imageAspectRatio,
138
+ width:x,
139
+ },
140
+ });
134
141
  }
135
142
 
136
143
  this.handleDisableDrag();
@@ -141,26 +148,22 @@ export class ImageContainer extends Component {
141
148
 
142
149
  return (
143
150
  <div>
144
- <Button
145
- label={label}
146
- onClick={this.handleInputClick}
147
- />
151
+ <Button label={label} onClick={this.handleInputClick} />
148
152
  <input
149
153
  accept="image/*"
150
154
  className={classes.input}
151
155
  onChange={this.handleUploadImage}
152
- ref={ref => { this.input = ref; }}
156
+ ref={(ref) => {
157
+ this.input = ref;
158
+ }}
153
159
  type="file"
154
160
  />
155
161
  </div>
156
- )
162
+ );
157
163
  }
158
164
 
159
165
  render() {
160
- const {
161
- classes,
162
- imageUrl
163
- } = this.props;
166
+ const { classes, imageUrl } = this.props;
164
167
  const {
165
168
  dropzoneActive,
166
169
  dragEnabled,
@@ -169,32 +172,54 @@ export class ImageContainer extends Component {
169
172
  } = this.state;
170
173
 
171
174
  return (
172
- <div className={classes.base} >
173
- <div className={`${classes.box} ${dropzoneActive ? classes.boxActive : ''}`}
174
- {...dragEnabled ? {
175
- onDragExit: this.handleOnDragExit,
176
- onDragLeave: this.handleOnDragExit,
177
- onDragOver: this.handleOnDragOver ,
178
- onDrop: this.handleOnDrop
179
- } : {}}
175
+ <div className={classes.base}>
176
+ <div
177
+ className={`${classes.box} ${
178
+ dropzoneActive ? classes.boxActive : ''
179
+ }`}
180
+ {...(dragEnabled
181
+ ? {
182
+ onDragExit: this.handleOnDragExit,
183
+ onDragLeave: this.handleOnDragExit,
184
+ onDragOver: this.handleOnDragOver,
185
+ onDrop: this.handleOnDrop,
186
+ }
187
+ : {})}
180
188
  >
181
189
  <div className={classes.toolbar}>
182
- {this.renderUploadControl(imageUrl ? 'Replace Image' : 'Upload Image')}
190
+ {this.renderUploadControl(
191
+ imageUrl ? 'Replace Image' : 'Upload Image'
192
+ )}
183
193
  </div>
184
194
 
185
- <div ref={ref => { this.imageSection = ref; }} className={classes.drawableHeight}>
195
+ <div
196
+ ref={(ref) => {
197
+ this.imageSection = ref;
198
+ }}
199
+ className={classes.drawableHeight}
200
+ >
186
201
  {imageUrl ? (
187
202
  <div className={classes.imageContainer}>
188
203
  <img
189
204
  className={classes.image}
190
205
  height="auto"
191
206
  onLoad={this.handleOnImageLoad}
192
- ref={ref => { this.image = ref; }}
207
+ ref={(ref) => {
208
+ this.image = ref;
209
+ }}
193
210
  src={imageUrl}
194
- style={{ maxWidth: maxImageWidth, maxHeight: maxImageHeight }}
195
- alt=''
211
+ style={{
212
+ maxWidth: maxImageWidth,
213
+ maxHeight: maxImageHeight
214
+ }}
215
+ alt=""
216
+ />
217
+ <div
218
+ ref={(ref) => {
219
+ this.resize = ref;
220
+ }}
221
+ className={classes.resize}
196
222
  />
197
- <div ref={ref => { this.resize = ref; }} className={classes.resize} />
198
223
  </div>
199
224
  ) : (
200
225
  <div className={`${classes.drawableHeight} ${classes.centered}`}>
@@ -210,25 +235,25 @@ export class ImageContainer extends Component {
210
235
  }
211
236
  }
212
237
 
213
- const styles = theme => ({
238
+ const styles = (theme) => ({
214
239
  base: {
215
- marginTop: theme.spacing.unit * 2
240
+ marginTop: theme.spacing.unit * 2,
216
241
  },
217
242
  box: {
218
243
  border: '1px solid #E0E1E6',
219
- borderRadius: '5px'
244
+ borderRadius: '5px',
220
245
  },
221
246
  boxActive: {
222
- border: '1px solid #0032C2'
247
+ border: '1px solid #0032C2',
223
248
  },
224
249
  centered: {
225
250
  alignItems: 'center',
226
251
  display: 'flex',
227
252
  flexDirection: 'column',
228
- justifyContent: 'center'
253
+ justifyContent: 'center',
229
254
  },
230
255
  drawableHeight: {
231
- minHeight: 350
256
+ minHeight: 350,
232
257
  },
233
258
  image: {
234
259
  alignItems: 'center',
@@ -237,7 +262,7 @@ const styles = theme => ({
237
262
  },
238
263
  imageContainer: {
239
264
  position: 'relative',
240
- width: 'fit-content'
265
+ width: 'fit-content',
241
266
  },
242
267
  resize: {
243
268
  borderBottom: '1px solid #727272',
@@ -247,10 +272,10 @@ const styles = theme => ({
247
272
  height: '10px',
248
273
  position: 'absolute',
249
274
  right: '-10px',
250
- width: '10px'
275
+ width: '10px',
251
276
  },
252
277
  input: {
253
- display: 'none'
278
+ display: 'none',
254
279
  },
255
280
  toolbar: {
256
281
  backgroundColor: '#ECEDF1',
@@ -258,15 +283,15 @@ const styles = theme => ({
258
283
  borderTopLeftRadius: '5px',
259
284
  borderTopRightRadius: '5px',
260
285
  display: 'flex',
261
- padding: '12px 8px'
262
- }
286
+ padding: '12px 8px',
287
+ },
263
288
  });
264
289
 
265
290
  ImageContainer.propTypes = {
266
291
  classes: PropTypes.object.isRequired,
267
292
  imageUrl: PropTypes.string.isRequired,
268
293
  onImageUpload: PropTypes.func.isRequired,
269
- onUpdateImageDimension: PropTypes.func.isRequired
294
+ onUpdateImageDimension: PropTypes.func.isRequired,
270
295
  };
271
296
 
272
297
  export default withStyles(styles)(ImageContainer);
@@ -49,12 +49,6 @@ export default class DrawableResponseConfigure extends HTMLElement {
49
49
  };
50
50
 
51
51
  onConfigurationChanged = (c) => {
52
- if (!c.backgroundImage.enabled) {
53
- this.onModelChanged({
54
- ...this._model,
55
- imageUrl: ''
56
- });
57
- }
58
52
  this._configuration = c;
59
53
  this._render();
60
54
  };