@pie-element/drawing-response 3.9.14 → 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 (47) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/configure/CHANGELOG.md +8 -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 +3 -2
  7. package/configure/lib/defaults.js.map +1 -1
  8. package/configure/lib/image-container.js +17 -21
  9. package/configure/lib/image-container.js.map +1 -1
  10. package/configure/lib/index.js +2 -2
  11. package/configure/lib/root.js +2 -2
  12. package/configure/package.json +3 -3
  13. package/configure/src/__tests__/__snapshots__/image-container.test.jsx.snap +2 -2
  14. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +2 -2
  15. package/configure/src/defaults.js +3 -2
  16. package/configure/src/image-container.jsx +11 -14
  17. package/controller/lib/__tests__/index.test.js +338 -0
  18. package/controller/lib/index.js +7 -4
  19. package/controller/lib/index.js.map +1 -1
  20. package/docs/demo/pie.manifest.json +11 -0
  21. package/docs/pie-schema.json +1 -1
  22. package/docs/pie-schema.json.md +1 -1
  23. package/lib/__tests__/drawing-index-test.js +45 -0
  24. package/lib/drawing-response/__tests__/container.test.js +86 -0
  25. package/lib/drawing-response/__tests__/drawable-helper.test.js +50 -0
  26. package/lib/drawing-response/__tests__/drawing-main.test.js +704 -0
  27. package/lib/drawing-response/__tests__/factory.test.js +19 -0
  28. package/lib/drawing-response/container.js +1 -1
  29. package/lib/drawing-response/container.js.map +1 -1
  30. package/lib/drawing-response/drawable-image.js +1 -1
  31. package/lib/drawing-response/drawable-image.js.map +1 -1
  32. package/lib/drawing-response/drawable-main.js +12 -5
  33. package/lib/drawing-response/drawable-main.js.map +1 -1
  34. package/lib/drawing-response/drawable-text.js +14 -4
  35. package/lib/drawing-response/drawable-text.js.map +1 -1
  36. package/lib/index.js +3 -0
  37. package/lib/index.js.map +1 -1
  38. package/package.json +4 -4
  39. package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +4 -4
  40. package/src/drawing-response/__tests__/__snapshots__/drawing-main.test.jsx.snap +14 -0
  41. package/src/drawing-response/container.jsx +1 -1
  42. package/src/drawing-response/drawable-image.jsx +1 -1
  43. package/src/drawing-response/drawable-main.jsx +18 -8
  44. package/src/drawing-response/drawable-text.jsx +6 -0
  45. package/src/index.js +5 -0
  46. package/yarn-error.log +15267 -0
  47. package/LICENSE.md +0 -5
@@ -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
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response-configure",
3
3
  "private": true,
4
- "version": "3.2.18",
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.24",
13
- "@pie-lib/editable-html": "^7.19.3",
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
  />
@@ -18,7 +18,7 @@ exports[`Root snapshot renders 1`] = `
18
18
  "spellCheck": Object {
19
19
  "enabled": true,
20
20
  "label": "Spellcheck",
21
- "settings": true,
21
+ "settings": false,
22
22
  },
23
23
  "teacherInstructions": Object {
24
24
  "label": "Teacher Instructions",
@@ -29,7 +29,7 @@ exports[`Root snapshot renders 1`] = `
29
29
  groups={
30
30
  Object {
31
31
  "Properties": Object {
32
- "spellCheckEnabled": undefined,
32
+ "spellCheckEnabled": false,
33
33
  "teacherInstructionsEnabled": undefined,
34
34
  },
35
35
  "Settings": Object {
@@ -10,12 +10,13 @@ export default {
10
10
  teacherInstructionsEnabled: true,
11
11
  studentInstructionsEnabled: true,
12
12
  backgroundImageEnabled: true,
13
+ spellCheckEnabled:true,
13
14
  toolbarEditorPosition: 'bottom',
14
15
  },
15
16
  configuration: {
16
17
  spellCheck: {
17
- label: "Spellcheck",
18
- settings:true,
18
+ label: 'Spellcheck',
19
+ settings:false,
19
20
  enabled:true
20
21
  },
21
22
  backgroundImage: {
@@ -13,8 +13,8 @@ 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
  };
@@ -117,26 +117,25 @@ 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
- const keepAspectRatioWidth = x > y ? x : 'auto';
130
- const keepAspectRatioHeight = x > y ? 'auto' : y;
131
-
132
131
  if (fitsContainer && hasMinimumWidth) {
133
- box.style.width = `${keepAspectRatioWidth}px`;
134
- box.style.height = `${keepAspectRatioHeight}px`;
132
+ box.style.width = `${x}px`;
133
+ box.style.height = `${x/imageAspectRatio}px`;
135
134
 
136
135
  this.setState({
137
136
  dimensions: {
138
- height: keepAspectRatioHeight,
139
- width: keepAspectRatioWidth,
137
+ height:x/imageAspectRatio,
138
+ width:x,
140
139
  },
141
140
  });
142
141
  }
@@ -169,8 +168,7 @@ export class ImageContainer extends Component {
169
168
  dropzoneActive,
170
169
  dragEnabled,
171
170
  maxImageHeight,
172
- maxImageWidth,
173
- dimensions,
171
+ maxImageWidth
174
172
  } = this.state;
175
173
 
176
174
  return (
@@ -212,8 +210,7 @@ export class ImageContainer extends Component {
212
210
  src={imageUrl}
213
211
  style={{
214
212
  maxWidth: maxImageWidth,
215
- maxHeight: maxImageHeight,
216
- ...dimensions,
213
+ maxHeight: maxImageHeight
217
214
  }}
218
215
  alt=""
219
216
  />
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+
11
+ var _index = require("../index");
12
+
13
+ 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; }
14
+
15
+ 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; }
16
+
17
+ describe('controller', function () {
18
+ var result, question, session, env;
19
+ beforeEach(function () {
20
+ question = {
21
+ prompt: 'This is the question prompt',
22
+ promptEnabled: true,
23
+ imageUrl: '',
24
+ imageDimensions: {
25
+ height: 0,
26
+ width: 0
27
+ },
28
+ teacherInstructions: 'Teacher Instructions',
29
+ backgroundImageEnabled: true
30
+ };
31
+ });
32
+ describe('outcome', function () {
33
+ it('returns score of 0', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
34
+ var result;
35
+ return _regenerator["default"].wrap(function _callee$(_context) {
36
+ while (1) {
37
+ switch (_context.prev = _context.next) {
38
+ case 0:
39
+ _context.next = 2;
40
+ return (0, _index.outcome)(question);
41
+
42
+ case 2:
43
+ result = _context.sent;
44
+ expect(result.score).toEqual(0);
45
+
46
+ case 4:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }
51
+ }, _callee);
52
+ })));
53
+ });
54
+ describe('model', function () {
55
+ describe('mode: gather', function () {
56
+ beforeEach( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
57
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
58
+ while (1) {
59
+ switch (_context2.prev = _context2.next) {
60
+ case 0:
61
+ session = {};
62
+ env = {
63
+ mode: 'gather'
64
+ };
65
+ _context2.next = 4;
66
+ return (0, _index.model)(question, session, env);
67
+
68
+ case 4:
69
+ result = _context2.sent;
70
+
71
+ case 5:
72
+ case "end":
73
+ return _context2.stop();
74
+ }
75
+ }
76
+ }, _callee2);
77
+ })));
78
+ it('returns mode', function () {
79
+ expect(result.mode).toEqual('gather');
80
+ });
81
+ it('returns prompt', function () {
82
+ expect(result.prompt).toEqual('This is the question prompt');
83
+ });
84
+ it('returns imageDimensions', function () {
85
+ expect(result.imageDimensions).toEqual({
86
+ height: 0,
87
+ width: 0
88
+ });
89
+ });
90
+ it('does not return responseCorrect', function () {
91
+ expect(result.responseCorrect).toBe(undefined);
92
+ });
93
+ it('gather mode promptEnabled: true', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
94
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
95
+ while (1) {
96
+ switch (_context3.prev = _context3.next) {
97
+ case 0:
98
+ _context3.next = 2;
99
+ return (0, _index.model)(question, {}, {
100
+ mode: 'gather'
101
+ });
102
+
103
+ case 2:
104
+ result = _context3.sent;
105
+ expect(result).toEqual({
106
+ disabled: false,
107
+ mode: 'gather',
108
+ imageUrl: question.imageUrl,
109
+ imageDimensions: question.imageDimensions,
110
+ prompt: question.prompt,
111
+ teacherInstructions: null,
112
+ backgroundImageEnabled: question.backgroundImageEnabled
113
+ });
114
+
115
+ case 4:
116
+ case "end":
117
+ return _context3.stop();
118
+ }
119
+ }
120
+ }, _callee3);
121
+ })));
122
+ it('gather mode promptEnabled: false', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
123
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
124
+ while (1) {
125
+ switch (_context4.prev = _context4.next) {
126
+ case 0:
127
+ _context4.next = 2;
128
+ return (0, _index.model)(_objectSpread(_objectSpread({}, question), {}, {
129
+ promptEnabled: false
130
+ }), {}, {
131
+ mode: 'gather'
132
+ });
133
+
134
+ case 2:
135
+ result = _context4.sent;
136
+ expect(result).toEqual({
137
+ disabled: false,
138
+ mode: 'gather',
139
+ imageUrl: question.imageUrl,
140
+ imageDimensions: question.imageDimensions,
141
+ prompt: null,
142
+ teacherInstructions: null,
143
+ backgroundImageEnabled: question.backgroundImageEnabled
144
+ });
145
+
146
+ case 4:
147
+ case "end":
148
+ return _context4.stop();
149
+ }
150
+ }
151
+ }, _callee4);
152
+ })));
153
+ it('view mode, student role', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
154
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
155
+ while (1) {
156
+ switch (_context5.prev = _context5.next) {
157
+ case 0:
158
+ _context5.next = 2;
159
+ return (0, _index.model)(question, {}, {
160
+ mode: 'view'
161
+ });
162
+
163
+ case 2:
164
+ result = _context5.sent;
165
+ expect(result).toEqual({
166
+ disabled: true,
167
+ mode: 'view',
168
+ imageUrl: question.imageUrl,
169
+ imageDimensions: question.imageDimensions,
170
+ prompt: question.prompt,
171
+ teacherInstructions: null,
172
+ backgroundImageEnabled: question.backgroundImageEnabled
173
+ });
174
+
175
+ case 4:
176
+ case "end":
177
+ return _context5.stop();
178
+ }
179
+ }
180
+ }, _callee5);
181
+ })));
182
+ it('view mode, instructor role and teacherInstructions enabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
183
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
184
+ while (1) {
185
+ switch (_context6.prev = _context6.next) {
186
+ case 0:
187
+ _context6.next = 2;
188
+ return (0, _index.model)(question, {}, {
189
+ mode: 'view',
190
+ role: 'instructor'
191
+ });
192
+
193
+ case 2:
194
+ result = _context6.sent;
195
+ expect(result).toEqual({
196
+ disabled: true,
197
+ mode: 'view',
198
+ imageUrl: question.imageUrl,
199
+ imageDimensions: question.imageDimensions,
200
+ prompt: question.prompt,
201
+ teacherInstructions: question.teacherInstructions,
202
+ backgroundImageEnabled: question.backgroundImageEnabled
203
+ });
204
+
205
+ case 4:
206
+ case "end":
207
+ return _context6.stop();
208
+ }
209
+ }
210
+ }, _callee6);
211
+ })));
212
+ it('evaluate mode, instructor role and teacherInstructions disabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
213
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
214
+ while (1) {
215
+ switch (_context7.prev = _context7.next) {
216
+ case 0:
217
+ _context7.next = 2;
218
+ return (0, _index.model)(_objectSpread(_objectSpread({}, question), {}, {
219
+ teacherInstructionsEnabled: false
220
+ }), {}, {
221
+ mode: 'evaluate',
222
+ role: 'instructor'
223
+ });
224
+
225
+ case 2:
226
+ result = _context7.sent;
227
+ expect(result).toEqual({
228
+ disabled: true,
229
+ mode: 'evaluate',
230
+ imageUrl: question.imageUrl,
231
+ imageDimensions: question.imageDimensions,
232
+ prompt: question.prompt,
233
+ teacherInstructions: null,
234
+ backgroundImageEnabled: question.backgroundImageEnabled
235
+ });
236
+
237
+ case 4:
238
+ case "end":
239
+ return _context7.stop();
240
+ }
241
+ }
242
+ }, _callee7);
243
+ })));
244
+ it('evaluate mode, student role', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
245
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
246
+ while (1) {
247
+ switch (_context8.prev = _context8.next) {
248
+ case 0:
249
+ _context8.next = 2;
250
+ return (0, _index.model)(question, {}, {
251
+ mode: 'evaluate'
252
+ });
253
+
254
+ case 2:
255
+ result = _context8.sent;
256
+ expect(result).toEqual({
257
+ disabled: true,
258
+ mode: 'evaluate',
259
+ imageUrl: question.imageUrl,
260
+ imageDimensions: question.imageDimensions,
261
+ prompt: question.prompt,
262
+ teacherInstructions: null,
263
+ backgroundImageEnabled: question.backgroundImageEnabled
264
+ });
265
+
266
+ case 4:
267
+ case "end":
268
+ return _context8.stop();
269
+ }
270
+ }
271
+ }, _callee8);
272
+ })));
273
+ it('evaluate mode, instructor role and teacherInstructions enabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
274
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
275
+ while (1) {
276
+ switch (_context9.prev = _context9.next) {
277
+ case 0:
278
+ _context9.next = 2;
279
+ return (0, _index.model)(question, {}, {
280
+ mode: 'evaluate',
281
+ role: 'instructor'
282
+ });
283
+
284
+ case 2:
285
+ result = _context9.sent;
286
+ expect(result).toEqual({
287
+ disabled: true,
288
+ mode: 'evaluate',
289
+ imageUrl: question.imageUrl,
290
+ imageDimensions: question.imageDimensions,
291
+ prompt: question.prompt,
292
+ teacherInstructions: question.teacherInstructions,
293
+ backgroundImageEnabled: question.backgroundImageEnabled
294
+ });
295
+
296
+ case 4:
297
+ case "end":
298
+ return _context9.stop();
299
+ }
300
+ }
301
+ }, _callee9);
302
+ })));
303
+ it('view mode, instructor role and teacherInstructions disabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
304
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
305
+ while (1) {
306
+ switch (_context10.prev = _context10.next) {
307
+ case 0:
308
+ _context10.next = 2;
309
+ return (0, _index.model)(_objectSpread(_objectSpread({}, question), {}, {
310
+ teacherInstructionsEnabled: false
311
+ }), {}, {
312
+ mode: 'view',
313
+ role: 'instructor'
314
+ });
315
+
316
+ case 2:
317
+ result = _context10.sent;
318
+ expect(result).toEqual({
319
+ disabled: true,
320
+ mode: 'view',
321
+ imageUrl: question.imageUrl,
322
+ imageDimensions: question.imageDimensions,
323
+ prompt: question.prompt,
324
+ teacherInstructions: null,
325
+ backgroundImageEnabled: question.backgroundImageEnabled
326
+ });
327
+
328
+ case 4:
329
+ case "end":
330
+ return _context10.stop();
331
+ }
332
+ }
333
+ }, _callee10);
334
+ })));
335
+ });
336
+ });
337
+ });
338
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInJlc3VsdCIsInF1ZXN0aW9uIiwic2Vzc2lvbiIsImVudiIsImJlZm9yZUVhY2giLCJwcm9tcHQiLCJwcm9tcHRFbmFibGVkIiwiaW1hZ2VVcmwiLCJpbWFnZURpbWVuc2lvbnMiLCJoZWlnaHQiLCJ3aWR0aCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJiYWNrZ3JvdW5kSW1hZ2VFbmFibGVkIiwiaXQiLCJleHBlY3QiLCJzY29yZSIsInRvRXF1YWwiLCJtb2RlIiwicmVzcG9uc2VDb3JyZWN0IiwidG9CZSIsInVuZGVmaW5lZCIsImRpc2FibGVkIiwicm9sZSIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztBQUVBQSxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0IsTUFBSUMsTUFBSixFQUFZQyxRQUFaLEVBQXNCQyxPQUF0QixFQUErQkMsR0FBL0I7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkgsSUFBQUEsUUFBUSxHQUFHO0FBQ1RJLE1BQUFBLE1BQU0sRUFBRSw2QkFEQztBQUVUQyxNQUFBQSxhQUFhLEVBQUUsSUFGTjtBQUdUQyxNQUFBQSxRQUFRLEVBQUUsRUFIRDtBQUlUQyxNQUFBQSxlQUFlLEVBQUU7QUFDZkMsUUFBQUEsTUFBTSxFQUFFLENBRE87QUFFZkMsUUFBQUEsS0FBSyxFQUFFO0FBRlEsT0FKUjtBQVFUQyxNQUFBQSxtQkFBbUIsRUFBRSxzQkFSWjtBQVNUQyxNQUFBQSxzQkFBc0IsRUFBRTtBQVRmLEtBQVg7QUFXRCxHQVpTLENBQVY7QUFjQWIsRUFBQUEsUUFBUSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ3hCYyxJQUFBQSxFQUFFLENBQUMsb0JBQUQsNkZBQXVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBQ0Ysb0JBQVFa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QUFFSixRQUFRLENBQUNJLE1BTEk7QUFNckJNLGtCQUFBQSxtQkFBbUIsRUFBRSxJQU5BO0FBT3JCQyxrQkFBQUEsc0JBQXNCLEVBQUVYLFFBQVEsQ0FBQ1c7QUFQWixpQkFBdkI7O0FBTmdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQWhFLEdBQUY7QUFnQkQsS0E3SU8sQ0FBUjtBQThJRCxHQS9JTyxDQUFSO0FBZ0pELENBeEtPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RlbCwgb3V0Y29tZSB9IGZyb20gJy4uL2luZGV4JztcblxuZGVzY3JpYmUoJ2NvbnRyb2xsZXInLCAoKSA9PiB7XG4gIGxldCByZXN1bHQsIHF1ZXN0aW9uLCBzZXNzaW9uLCBlbnY7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcXVlc3Rpb24gPSB7XG4gICAgICBwcm9tcHQ6ICdUaGlzIGlzIHRoZSBxdWVzdGlvbiBwcm9tcHQnLFxuICAgICAgcHJvbXB0RW5hYmxlZDogdHJ1ZSxcbiAgICAgIGltYWdlVXJsOiAnJyxcbiAgICAgIGltYWdlRGltZW5zaW9uczoge1xuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHdpZHRoOiAwXG4gICAgICB9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ1RlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IHRydWVcbiAgICB9O1xuICB9KTtcblxuICBkZXNjcmliZSgnb3V0Y29tZScsICgpID0+IHtcbiAgICBpdCgncmV0dXJucyBzY29yZSBvZiAwJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3V0Y29tZShxdWVzdGlvbik7XG4gICAgICBleHBlY3QocmVzdWx0LnNjb3JlKS50b0VxdWFsKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbW9kZWwnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ21vZGU6IGdhdGhlcicsICgpID0+IHtcbiAgICAgIGJlZm9yZUVhY2goYXN5bmMgKCkgPT4ge1xuICAgICAgICBzZXNzaW9uID0ge307XG4gICAgICAgIGVudiA9IHsgbW9kZTogJ2dhdGhlcicgfTtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIGVudik7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3JldHVybnMgbW9kZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5tb2RlKS50b0VxdWFsKCdnYXRoZXInKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncmV0dXJucyBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChyZXN1bHQucHJvbXB0KS50b0VxdWFsKCdUaGlzIGlzIHRoZSBxdWVzdGlvbiBwcm9tcHQnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncmV0dXJucyBpbWFnZURpbWVuc2lvbnMnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChyZXN1bHQuaW1hZ2VEaW1lbnNpb25zKS50b0VxdWFsKHsgaGVpZ2h0OiAwLCB3aWR0aDogMCB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZG9lcyBub3QgcmV0dXJuIHJlc3BvbnNlQ29ycmVjdCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5yZXNwb25zZUNvcnJlY3QpLnRvQmUodW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZ2F0aGVyIG1vZGUgcHJvbXB0RW5hYmxlZDogdHJ1ZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInfSk7XG5cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgICAgIGltYWdlVXJsOiBxdWVzdGlvbi5pbWFnZVVybCxcbiAgICAgICAgICBpbWFnZURpbWVuc2lvbnM6IHF1ZXN0aW9uLmltYWdlRGltZW5zaW9ucyxcbiAgICAgICAgICBwcm9tcHQ6IHF1ZXN0aW9uLnByb21wdCxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IHF1ZXN0aW9uLmJhY2tncm91bmRJbWFnZUVuYWJsZWRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2dhdGhlciBtb2RlIHByb21wdEVuYWJsZWQ6IGZhbHNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2RlbCh7IC4uLnF1ZXN0aW9uLCBwcm9tcHRFbmFibGVkOiBmYWxzZSB9LCB7fSwgeyBtb2RlOiAnZ2F0aGVyJ30pO1xuXG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgICBpbWFnZVVybDogcXVlc3Rpb24uaW1hZ2VVcmwsXG4gICAgICAgICAgaW1hZ2VEaW1lbnNpb25zOiBxdWVzdGlvbi5pbWFnZURpbWVuc2lvbnMsXG4gICAgICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlRW5hYmxlZDogcXVlc3Rpb24uYmFja2dyb3VuZEltYWdlRW5hYmxlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG5cbiAgICAgIGl0KCd2aWV3IG1vZGUsIHN0dWRlbnQgcm9sZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICd2aWV3J30pO1xuXG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgIG1vZGU6ICd2aWV3JyxcbiAgICAgICAgICBpbWFnZVVybDogcXVlc3Rpb24uaW1hZ2VVcmwsXG4gICAgICAgICAgaW1hZ2VEaW1lbnNpb25zOiBxdWVzdGlvbi5pbWFnZURpbWVuc2lvbnMsXG4gICAgICAgICAgcHJvbXB0OiBxdWVzdGlvbi5wcm9tcHQsXG4gICAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogbnVsbCxcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2VFbmFibGVkOiBxdWVzdGlvbi5iYWNrZ3JvdW5kSW1hZ2VFbmFibGVkXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCd2aWV3IG1vZGUsIGluc3RydWN0b3Igcm9sZSBhbmQgdGVhY2hlckluc3RydWN0aW9ucyBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChxdWVzdGlvbiwge30sIHsgbW9kZTogJ3ZpZXcnLCByb2xlOiAnaW5zdHJ1Y3Rvcid9KTtcblxuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtb2RlOiAndmlldycsXG4gICAgICAgICAgaW1hZ2VVcmw6IHF1ZXN0aW9uLmltYWdlVXJsLFxuICAgICAgICAgIGltYWdlRGltZW5zaW9uczogcXVlc3Rpb24uaW1hZ2VEaW1lbnNpb25zLFxuICAgICAgICAgIHByb21wdDogcXVlc3Rpb24ucHJvbXB0LFxuICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlRW5hYmxlZDogcXVlc3Rpb24uYmFja2dyb3VuZEltYWdlRW5hYmxlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZXZhbHVhdGUgbW9kZSwgaW5zdHJ1Y3RvciByb2xlIGFuZCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIGRpc2FibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChcbiAgICAgICAgICB7IC4uLnF1ZXN0aW9uLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IG1vZGU6ICdldmFsdWF0ZScsIHJvbGU6ICdpbnN0cnVjdG9yJ30pO1xuXG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgIG1vZGU6ICdldmFsdWF0ZScsXG4gICAgICAgICAgaW1hZ2VVcmw6IHF1ZXN0aW9uLmltYWdlVXJsLFxuICAgICAgICAgIGltYWdlRGltZW5zaW9uczogcXVlc3Rpb24uaW1hZ2VEaW1lbnNpb25zLFxuICAgICAgICAgIHByb21wdDogcXVlc3Rpb24ucHJvbXB0LFxuICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlRW5hYmxlZDogcXVlc3Rpb24uYmFja2dyb3VuZEltYWdlRW5hYmxlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZXZhbHVhdGUgbW9kZSwgc3R1ZGVudCByb2xlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChxdWVzdGlvbiwge30sIHsgbW9kZTogJ2V2YWx1YXRlJ30pO1xuXG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgIG1vZGU6ICdldmFsdWF0ZScsXG4gICAgICAgICAgaW1hZ2VVcmw6IHF1ZXN0aW9uLmltYWdlVXJsLFxuICAgICAgICAgIGltYWdlRGltZW5zaW9uczogcXVlc3Rpb24uaW1hZ2VEaW1lbnNpb25zLFxuICAgICAgICAgIHByb21wdDogcXVlc3Rpb24ucHJvbXB0LFxuICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlRW5hYmxlZDogcXVlc3Rpb24uYmFja2dyb3VuZEltYWdlRW5hYmxlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZXZhbHVhdGUgbW9kZSwgaW5zdHJ1Y3RvciByb2xlIGFuZCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIGVuYWJsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IG1vZGVsKHF1ZXN0aW9uLCB7fSwgeyBtb2RlOiAnZXZhbHVhdGUnLCByb2xlOiAnaW5zdHJ1Y3Rvcid9KTtcblxuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtb2RlOiAnZXZhbHVhdGUnLFxuICAgICAgICAgIGltYWdlVXJsOiBxdWVzdGlvbi5pbWFnZVVybCxcbiAgICAgICAgICBpbWFnZURpbWVuc2lvbnM6IHF1ZXN0aW9uLmltYWdlRGltZW5zaW9ucyxcbiAgICAgICAgICBwcm9tcHQ6IHF1ZXN0aW9uLnByb21wdCxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBxdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zLFxuICAgICAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IHF1ZXN0aW9uLmJhY2tncm91bmRJbWFnZUVuYWJsZWRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3ZpZXcgbW9kZSwgaW5zdHJ1Y3RvciByb2xlIGFuZCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIGRpc2FibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2RlbChcbiAgICAgICAgICB7IC4uLnF1ZXN0aW9uLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IG1vZGU6ICd2aWV3Jywgcm9sZTogJ2luc3RydWN0b3InfSk7XG5cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgbW9kZTogJ3ZpZXcnLFxuICAgICAgICAgIGltYWdlVXJsOiBxdWVzdGlvbi5pbWFnZVVybCxcbiAgICAgICAgICBpbWFnZURpbWVuc2lvbnM6IHF1ZXN0aW9uLmltYWdlRGltZW5zaW9ucyxcbiAgICAgICAgICBwcm9tcHQ6IHF1ZXN0aW9uLnByb21wdCxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICAgIGJhY2tncm91bmRJbWFnZUVuYWJsZWQ6IHF1ZXN0aW9uLmJhY2tncm91bmRJbWFnZUVuYWJsZWRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -5,9 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.createDefaultModel = void 0;
8
9
  exports.model = model;
10
+ exports.normalize = void 0;
9
11
  exports.outcome = outcome;
10
- exports.createDefaultModel = exports.normalize = void 0;
11
12
 
12
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14
 
@@ -15,9 +16,9 @@ var _debug = _interopRequireDefault(require("debug"));
15
16
 
16
17
  var _defaults = _interopRequireDefault(require("./defaults"));
17
18
 
18
- 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; }
19
+ 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; }
19
20
 
20
- 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; }
21
+ 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; }
21
22
 
22
23
  var log = (0, _debug["default"])('pie-elements:drawing-response:controller');
23
24
 
@@ -68,7 +69,9 @@ var createDefaultModel = function createDefaultModel() {
68
69
 
69
70
  exports.createDefaultModel = createDefaultModel;
70
71
 
71
- function outcome() {
72
+ function
73
+ /*config, session*/
74
+ outcome() {
72
75
  return new Promise(function (resolve) {
73
76
  log('outcome...');
74
77
  resolve({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","model","session","env","normalizedQuestion","imageUrl","imageDimensions","prompt","Promise","resolve","out","disabled","mode","role","teacherInstructions","createDefaultModel","defaults","outcome","score","completed","note"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;AAEO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ;AAAA;AAC/BC,IAAAA,aAAa,EAAE,IADgB;AAE/BC,IAAAA,0BAA0B,EAAE,IAFG;AAG/BC,IAAAA,0BAA0B,EAAE,IAHG;AAI/BC,IAAAA,sBAAsB,EAAE;AAJO,KAK5BJ,QAL4B;AAAA,CAA1B;;;;AAQA,SAASK,KAAT,CAAeL,QAAf,EAAyBM,OAAzB,EAAkCC,GAAlC,EAAuC;AAC5C,MAAMC,kBAAkB,GAAGT,SAAS,CAACC,QAAD,CAApC;AACA,MACES,QADF,GAMID,kBANJ,CACEC,QADF;AAAA,MAEEC,eAFF,GAMIF,kBANJ,CAEEE,eAFF;AAAA,MAGEC,MAHF,GAMIH,kBANJ,CAGEG,MAHF;AAAA,MAIEV,aAJF,GAMIO,kBANJ,CAIEP,aAJF;AAAA,MAKEG,sBALF,GAMII,kBANJ,CAKEJ,sBALF;AAQA,SAAO,IAAIQ,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC5B,QAAMC,GAAG,GAAG;AACVC,MAAAA,QAAQ,EAAER,GAAG,CAACS,IAAJ,KAAa,QADb;AAEVA,MAAAA,IAAI,EAAET,GAAG,CAACS,IAFA;AAGVN,MAAAA,eAAe,EAAfA,eAHU;AAIVD,MAAAA,QAAQ,EAARA,QAJU;AAKVE,MAAAA,MAAM,EAAEV,aAAa,GAAGU,MAAH,GAAY,IALvB;AAMVP,MAAAA,sBAAsB,EAAtBA;AANU,KAAZ;;AASA,QAAIG,GAAG,CAACU,IAAJ,KAAa,YAAb,KAA8BV,GAAG,CAACS,IAAJ,KAAa,MAAb,IAAuBT,GAAG,CAACS,IAAJ,KAAa,UAAlE,CAAJ,EAAmF;AACjFF,MAAAA,GAAG,CAACI,mBAAJ,GAA0BV,kBAAkB,CAACN,0BAAnB,GAAgDM,kBAAkB,CAACU,mBAAnE,GAAyF,IAAnH;AACD,KAFD,MAEO;AACLJ,MAAAA,GAAG,CAACI,mBAAJ,GAA0B,IAA1B;AACD;;AAEDL,IAAAA,OAAO,CAACC,GAAD,CAAP;AACD,GAjBM,CAAP;AAkBD;;AAEM,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACd,KAAD,uEAAS,EAAT;AAAA,SAChC,IAAIO,OAAJ,CAAY,UAAAC,OAAO,EAAI;AACrBA,IAAAA,OAAO,iCACFO,oBADE,GAEFf,KAFE,EAAP;AAID,GALD,CADgC;AAAA,CAA3B;;;;AAQA,SAASgB,OAAT,GAAsC;AAC3C,SAAO,IAAIT,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC5Bf,IAAAA,GAAG,CAAC,YAAD,CAAH;AACAe,IAAAA,OAAO,CAAC;AACNS,MAAAA,KAAK,EAAE,CADD;AAENC,MAAAA,SAAS,EAAE,KAFL;AAGNC,MAAAA,IAAI,EAAE;AAHA,KAAD,CAAP;AAKD,GAPM,CAAP;AAQD","sourcesContent":["import debug from 'debug';\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:drawing-response:controller');\n\nexport const normalize = question => ({\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const {\n imageUrl,\n imageDimensions,\n prompt,\n promptEnabled,\n backgroundImageEnabled\n } = normalizedQuestion;\n\n return new Promise(resolve => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n imageDimensions,\n imageUrl,\n prompt: promptEnabled ? prompt : null,\n backgroundImageEnabled\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise(resolve => {\n resolve({\n ...defaults,\n ...model,\n })\n });\n\nexport function outcome(/*config, session*/) {\n return new Promise(resolve => {\n log('outcome...');\n resolve({\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring'\n });\n });\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","model","session","env","normalizedQuestion","imageUrl","imageDimensions","prompt","Promise","resolve","out","disabled","mode","role","teacherInstructions","createDefaultModel","defaults","outcome","score","completed","note"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;AAEO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ;AAAA;AAC/BC,IAAAA,aAAa,EAAE,IADgB;AAE/BC,IAAAA,0BAA0B,EAAE,IAFG;AAG/BC,IAAAA,0BAA0B,EAAE,IAHG;AAI/BC,IAAAA,sBAAsB,EAAE;AAJO,KAK5BJ,QAL4B;AAAA,CAA1B;;;;AAQA,SAASK,KAAT,CAAeL,QAAf,EAAyBM,OAAzB,EAAkCC,GAAlC,EAAuC;AAC5C,MAAMC,kBAAkB,GAAGT,SAAS,CAACC,QAAD,CAApC;AACA,MACES,QADF,GAMID,kBANJ,CACEC,QADF;AAAA,MAEEC,eAFF,GAMIF,kBANJ,CAEEE,eAFF;AAAA,MAGEC,MAHF,GAMIH,kBANJ,CAGEG,MAHF;AAAA,MAIEV,aAJF,GAMIO,kBANJ,CAIEP,aAJF;AAAA,MAKEG,sBALF,GAMII,kBANJ,CAKEJ,sBALF;AAQA,SAAO,IAAIQ,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC5B,QAAMC,GAAG,GAAG;AACVC,MAAAA,QAAQ,EAAER,GAAG,CAACS,IAAJ,KAAa,QADb;AAEVA,MAAAA,IAAI,EAAET,GAAG,CAACS,IAFA;AAGVN,MAAAA,eAAe,EAAfA,eAHU;AAIVD,MAAAA,QAAQ,EAARA,QAJU;AAKVE,MAAAA,MAAM,EAAEV,aAAa,GAAGU,MAAH,GAAY,IALvB;AAMVP,MAAAA,sBAAsB,EAAtBA;AANU,KAAZ;;AASA,QAAIG,GAAG,CAACU,IAAJ,KAAa,YAAb,KAA8BV,GAAG,CAACS,IAAJ,KAAa,MAAb,IAAuBT,GAAG,CAACS,IAAJ,KAAa,UAAlE,CAAJ,EAAmF;AACjFF,MAAAA,GAAG,CAACI,mBAAJ,GAA0BV,kBAAkB,CAACN,0BAAnB,GAAgDM,kBAAkB,CAACU,mBAAnE,GAAyF,IAAnH;AACD,KAFD,MAEO;AACLJ,MAAAA,GAAG,CAACI,mBAAJ,GAA0B,IAA1B;AACD;;AAEDL,IAAAA,OAAO,CAACC,GAAD,CAAP;AACD,GAjBM,CAAP;AAkBD;;AAEM,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACd,KAAD,uEAAS,EAAT;AAAA,SAChC,IAAIO,OAAJ,CAAY,UAAAC,OAAO,EAAI;AACrBA,IAAAA,OAAO,iCACFO,oBADE,GAEFf,KAFE,EAAP;AAID,GALD,CADgC;AAAA,CAA3B;;;;AAQA;AAAiB;AAARgB,OAAT,GAAsC;AAC3C,SAAO,IAAIT,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC5Bf,IAAAA,GAAG,CAAC,YAAD,CAAH;AACAe,IAAAA,OAAO,CAAC;AACNS,MAAAA,KAAK,EAAE,CADD;AAENC,MAAAA,SAAS,EAAE,KAFL;AAGNC,MAAAA,IAAI,EAAE;AAHA,KAAD,CAAP;AAKD,GAPM,CAAP;AAQD","sourcesContent":["import debug from 'debug';\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:drawing-response:controller');\n\nexport const normalize = question => ({\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const {\n imageUrl,\n imageDimensions,\n prompt,\n promptEnabled,\n backgroundImageEnabled\n } = normalizedQuestion;\n\n return new Promise(resolve => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n imageDimensions,\n imageUrl,\n prompt: promptEnabled ? prompt : null,\n backgroundImageEnabled\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise(resolve => {\n resolve({\n ...defaults,\n ...model,\n })\n });\n\nexport function outcome(/*config, session*/) {\n return new Promise(resolve => {\n log('outcome...');\n resolve({\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring'\n });\n });\n}\n"],"file":"index.js"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "hash": "1210923316",
3
+ "info": [
4
+ {
5
+ "pie": "@pie-element/drawing-response",
6
+ "version": {
7
+ "requested": "latest"
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -64,7 +64,7 @@
64
64
  "title": "teacherInstructionsEnabled"
65
65
  },
66
66
  "spellCheckEnabled": {
67
- "description": "Indicates if spellcheck is enabled",
67
+ "description": "Indicates if spellcheck is enabled for the author. Default value is true",
68
68
  "type": "boolean",
69
69
  "title": "spellCheckEnabled"
70
70
  },
@@ -48,7 +48,7 @@ Indicates if Teacher Instructions are enabled
48
48
 
49
49
  # `spellCheckEnabled` (boolean, required)
50
50
 
51
- Indicates if spellcheck is enabled
51
+ Indicates if spellcheck is enabled for the author. Default value is true
52
52
 
53
53
  # `backgroundImageEnabled` (boolean, required)
54
54
 
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _lodash = _interopRequireDefault(require("lodash"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ var _drawingResponse = _interopRequireDefault(require("../drawing-response"));
12
+
13
+ var _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
14
+
15
+ describe('DrawingResponse', function () {
16
+ var wrapper;
17
+
18
+ var mkWrapper = function mkWrapper() {
19
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
+ opts = _lodash["default"].extend({
21
+ model: {
22
+ disabled: false,
23
+ imageDimensions: {
24
+ height: 0,
25
+ width: 0
26
+ },
27
+ imageUrl: '',
28
+ mode: 'gather',
29
+ prompt: 'This is the question prompt'
30
+ }
31
+ }, opts);
32
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_drawingResponse["default"], opts));
33
+ };
34
+
35
+ beforeEach(function () {
36
+ wrapper = mkWrapper();
37
+ });
38
+ describe('snapshots', function () {
39
+ it('renders', function () {
40
+ var wrapper = mkWrapper();
41
+ expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
42
+ });
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZHJhd2luZy1pbmRleC10ZXN0LmpzeCJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIndyYXBwZXIiLCJta1dyYXBwZXIiLCJvcHRzIiwiXyIsImV4dGVuZCIsIm1vZGVsIiwiZGlzYWJsZWQiLCJpbWFnZURpbWVuc2lvbnMiLCJoZWlnaHQiLCJ3aWR0aCIsImltYWdlVXJsIiwibW9kZSIsInByb21wdCIsImJlZm9yZUVhY2giLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsaUJBQUQsRUFBb0IsWUFBTTtBQUNoQyxNQUFJQyxPQUFKOztBQUVBLE1BQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQWU7QUFBQSxRQUFkQyxJQUFjLHVFQUFQLEVBQU87QUFDL0JBLElBQUFBLElBQUksR0FBR0MsbUJBQUVDLE1BQUYsQ0FDTDtBQUNFQyxNQUFBQSxLQUFLLEVBQUU7QUFDTEMsUUFBQUEsUUFBUSxFQUFFLEtBREw7QUFFTEMsUUFBQUEsZUFBZSxFQUFFO0FBQ2ZDLFVBQUFBLE1BQU0sRUFBRSxDQURPO0FBRWZDLFVBQUFBLEtBQUssRUFBRTtBQUZRLFNBRlo7QUFNTEMsUUFBQUEsUUFBUSxFQUFFLEVBTkw7QUFPTEMsUUFBQUEsSUFBSSxFQUFFLFFBUEQ7QUFRTEMsUUFBQUEsTUFBTSxFQUFFO0FBUkg7QUFEVCxLQURLLEVBYUxWLElBYkssQ0FBUDtBQWdCQSxXQUFPLG1DQUFRLGdDQUFDLDJCQUFELEVBQXFCQSxJQUFyQixDQUFSLENBQVA7QUFDRCxHQWxCRDs7QUFvQkFXLEVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZiLElBQUFBLE9BQU8sR0FBR0MsU0FBUyxFQUFuQjtBQUNELEdBRlMsQ0FBVjtBQUlBRixFQUFBQSxRQUFRLENBQUMsV0FBRCxFQUFjLFlBQU07QUFDMUJlLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVksWUFBTTtBQUNsQixVQUFNZCxPQUFPLEdBQUdDLFNBQVMsRUFBekI7QUFDQWMsTUFBQUEsTUFBTSxDQUFDLDhCQUFPZixPQUFQLENBQUQsQ0FBTixDQUF3QmdCLGVBQXhCO0FBQ0QsS0FIQyxDQUFGO0FBSUQsR0FMTyxDQUFSO0FBTUQsQ0FqQ08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgRHJhd2luZ1Jlc3BvbnNlIGZyb20gJy4uL2RyYXdpbmctcmVzcG9uc2UnO1xuaW1wb3J0IHRvSnNvbiBmcm9tICdlbnp5bWUtdG8tanNvbic7XG5cbmRlc2NyaWJlKCdEcmF3aW5nUmVzcG9uc2UnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuXG4gIGNvbnN0IG1rV3JhcHBlciA9IChvcHRzID0ge30pID0+IHtcbiAgICBvcHRzID0gXy5leHRlbmQoXG4gICAgICB7XG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIGltYWdlRGltZW5zaW9uczoge1xuICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGltYWdlVXJsOiAnJyxcbiAgICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgICBwcm9tcHQ6ICdUaGlzIGlzIHRoZSBxdWVzdGlvbiBwcm9tcHQnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcHRzXG4gICAgKTtcblxuICAgIHJldHVybiBzaGFsbG93KDxEcmF3aW5nUmVzcG9uc2Ugey4uLm9wdHN9IC8+KTtcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdHMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==