@pie-lib/mask-markup 1.30.6-esmbeta.2 → 1.31.0-mui-update.0

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 (43) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/lib/choices/choice.js +74 -203
  3. package/lib/choices/choice.js.map +1 -1
  4. package/lib/choices/index.js +19 -52
  5. package/lib/choices/index.js.map +1 -1
  6. package/lib/componentize.js +1 -5
  7. package/lib/componentize.js.map +1 -1
  8. package/lib/components/blank.js +292 -357
  9. package/lib/components/blank.js.map +1 -1
  10. package/lib/components/correct-input.js +41 -65
  11. package/lib/components/correct-input.js.map +1 -1
  12. package/lib/components/dropdown.js +203 -248
  13. package/lib/components/dropdown.js.map +1 -1
  14. package/lib/components/input.js +10 -17
  15. package/lib/components/input.js.map +1 -1
  16. package/lib/constructed-response.js +38 -52
  17. package/lib/constructed-response.js.map +1 -1
  18. package/lib/customizable.js +5 -9
  19. package/lib/customizable.js.map +1 -1
  20. package/lib/drag-in-the-blank.js +117 -96
  21. package/lib/drag-in-the-blank.js.map +1 -1
  22. package/lib/index.js +0 -7
  23. package/lib/index.js.map +1 -1
  24. package/lib/inline-dropdown.js +4 -12
  25. package/lib/inline-dropdown.js.map +1 -1
  26. package/lib/mask.js +40 -112
  27. package/lib/mask.js.map +1 -1
  28. package/lib/serialization.js +8 -48
  29. package/lib/serialization.js.map +1 -1
  30. package/lib/with-mask.js +26 -55
  31. package/lib/with-mask.js.map +1 -1
  32. package/package.json +12 -17
  33. package/src/choices/choice.jsx +58 -154
  34. package/src/choices/index.jsx +8 -2
  35. package/src/components/blank.jsx +272 -262
  36. package/src/components/correct-input.jsx +33 -39
  37. package/src/components/dropdown.jsx +165 -156
  38. package/src/constructed-response.jsx +22 -18
  39. package/src/drag-in-the-blank.jsx +97 -39
  40. package/src/mask.jsx +18 -27
  41. package/esm/index.js +0 -81026
  42. package/esm/index.js.map +0 -1
  43. package/esm/package.json +0 -1
@@ -1,62 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
14
  var _react = _interopRequireDefault(require("react"));
25
-
26
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
16
  var _mathRendering = require("@pie-lib/math-rendering");
29
-
17
+ var _drag = require("@pie-lib/drag");
30
18
  var _choices = _interopRequireDefault(require("./choices"));
31
-
32
19
  var _blank = _interopRequireDefault(require("./components/blank"));
33
-
34
20
  var _withMask = require("./with-mask");
35
-
36
- 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; }
37
-
38
- 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; }
39
-
40
- 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); }; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- // eslint-disable-next-line react/display-name
21
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
45
25
  var Masked = (0, _withMask.withMask)('blank', function (props) {
46
- return function (node, data, onChange) {
47
- var dataset = node.data ? node.data.dataset || {} : {};
48
-
26
+ return function (node, data, _onChange) {
27
+ var _node$data;
28
+ var dataset = ((_node$data = node.data) === null || _node$data === void 0 ? void 0 : _node$data.dataset) || {};
49
29
  if (dataset.component === 'blank') {
50
30
  // eslint-disable-next-line react/prop-types
51
31
  var disabled = props.disabled,
52
- duplicates = props.duplicates,
53
- correctResponse = props.correctResponse,
54
- feedback = props.feedback,
55
- showCorrectAnswer = props.showCorrectAnswer,
56
- emptyResponseAreaWidth = props.emptyResponseAreaWidth,
57
- emptyResponseAreaHeight = props.emptyResponseAreaHeight;
58
- var choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id]; // eslint-disable-next-line react/prop-types
59
-
32
+ duplicates = props.duplicates,
33
+ correctResponse = props.correctResponse,
34
+ feedback = props.feedback,
35
+ showCorrectAnswer = props.showCorrectAnswer,
36
+ emptyResponseAreaWidth = props.emptyResponseAreaWidth,
37
+ emptyResponseAreaHeight = props.emptyResponseAreaHeight,
38
+ instanceId = props.instanceId;
39
+ var choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id];
40
+ // eslint-disable-next-line react/prop-types
60
41
  var choice = choiceId && props.choices.find(function (c) {
61
42
  return c.id === choiceId;
62
43
  });
@@ -69,54 +50,101 @@ var Masked = (0, _withMask.withMask)('blank', function (props) {
69
50
  id: dataset.id,
70
51
  emptyResponseAreaWidth: emptyResponseAreaWidth,
71
52
  emptyResponseAreaHeight: emptyResponseAreaHeight,
72
- onChange: onChange
53
+ onChange: function onChange(id, choiceId) {
54
+ var newData = _objectSpread({}, data);
55
+ if (choiceId === undefined) {
56
+ delete newData[id];
57
+ } else {
58
+ newData[id] = choiceId;
59
+ }
60
+ _onChange(newData);
61
+ },
62
+ instanceId: instanceId
73
63
  });
74
64
  }
75
65
  };
76
66
  });
77
-
78
- var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
79
- (0, _inherits2["default"])(DragInTheBlank, _React$Component);
80
-
81
- var _super = _createSuper(DragInTheBlank);
82
-
67
+ var DragInTheBlank = exports["default"] = /*#__PURE__*/function (_React$Component) {
83
68
  function DragInTheBlank() {
84
69
  var _this;
85
-
86
70
  (0, _classCallCheck2["default"])(this, DragInTheBlank);
87
-
88
71
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
89
72
  args[_key] = arguments[_key];
90
73
  }
91
-
92
- _this = _super.call.apply(_super, [this].concat(args));
93
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPositionDirection", function (choicePosition) {
74
+ _this = _callSuper(this, DragInTheBlank, [].concat(args));
75
+ (0, _defineProperty2["default"])(_this, "handleDragEnd", function (event) {
76
+ var _dropData$accepts;
77
+ console.log('Drag End Event:', event);
78
+ var active = event.active,
79
+ over = event.over;
80
+ var _this$props = _this.props,
81
+ onChange = _this$props.onChange,
82
+ value = _this$props.value;
83
+ if (!over || !active || !onChange) {
84
+ console.log('Early return - missing data:', {
85
+ over: !!over,
86
+ active: !!active,
87
+ onChange: !!onChange
88
+ });
89
+ return;
90
+ }
91
+ var draggedData = active.data.current;
92
+ var dropData = over.data.current;
93
+ console.log('Drag data:', draggedData);
94
+ console.log('Drop data:', dropData);
95
+
96
+ // Handle drop from choice to blank or blank to blank
97
+ if ((draggedData === null || draggedData === void 0 ? void 0 : draggedData.type) === 'MaskBlank' && dropData !== null && dropData !== void 0 && (_dropData$accepts = dropData.accepts) !== null && _dropData$accepts !== void 0 && _dropData$accepts.includes('MaskBlank')) {
98
+ console.log('Valid drag/drop types');
99
+ var draggedItem = draggedData;
100
+ var targetId = dropData.id;
101
+ if (draggedItem.instanceId === dropData.instanceId) {
102
+ console.log('Instance IDs match');
103
+
104
+ // Handle drop from choice to blank
105
+ if (draggedItem.fromChoice === true) {
106
+ console.log('Dropping from choice to blank:', targetId);
107
+ var newValue = _objectSpread({}, value);
108
+ newValue[targetId] = draggedItem.choice.id;
109
+ onChange(newValue);
110
+ }
111
+ // Handle drop from blank to blank
112
+ else if (draggedItem.id !== targetId) {
113
+ console.log('Moving from blank to blank:', draggedItem.id, '->', targetId);
114
+ var _newValue = _objectSpread({}, value);
115
+ _newValue[targetId] = draggedItem.choice.id;
116
+ delete _newValue[draggedItem.id];
117
+ onChange(_newValue);
118
+ }
119
+ } else {
120
+ console.log('Instance ID mismatch:', draggedItem.instanceId, 'vs', dropData.instanceId);
121
+ }
122
+ } else {
123
+ console.log('Invalid drag/drop types:', draggedData === null || draggedData === void 0 ? void 0 : draggedData.type, dropData === null || dropData === void 0 ? void 0 : dropData.accepts);
124
+ }
125
+ });
126
+ (0, _defineProperty2["default"])(_this, "getPositionDirection", function (choicePosition) {
94
127
  var flexDirection;
95
128
  var justifyContent;
96
129
  var alignItems;
97
-
98
130
  switch (choicePosition) {
99
131
  case 'left':
100
132
  flexDirection = 'row';
101
133
  alignItems = 'center';
102
134
  break;
103
-
104
135
  case 'right':
105
136
  flexDirection = 'row-reverse';
106
137
  justifyContent = 'flex-end';
107
138
  alignItems = 'center';
108
139
  break;
109
-
110
140
  case 'below':
111
141
  flexDirection = 'column-reverse';
112
142
  break;
113
-
114
143
  default:
115
144
  // above
116
145
  flexDirection = 'column';
117
146
  break;
118
147
  }
119
-
120
148
  return {
121
149
  flexDirection: flexDirection,
122
150
  justifyContent: justifyContent,
@@ -125,58 +153,52 @@ var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
125
153
  });
126
154
  return _this;
127
155
  }
128
-
129
- (0, _createClass2["default"])(DragInTheBlank, [{
130
- key: "UNSAFE_componentWillReceiveProps",
131
- value: function UNSAFE_componentWillReceiveProps() {
132
- if (this.rootRef) {
133
- (0, _mathRendering.renderMath)(this.rootRef);
134
- }
135
- }
136
- }, {
156
+ (0, _inherits2["default"])(DragInTheBlank, _React$Component);
157
+ return (0, _createClass2["default"])(DragInTheBlank, [{
137
158
  key: "componentDidUpdate",
138
159
  value: function componentDidUpdate() {
139
- (0, _mathRendering.renderMath)(this.rootRef);
160
+ if (this.rootRef) (0, _mathRendering.renderMath)(this.rootRef);
140
161
  }
141
162
  }, {
142
163
  key: "render",
143
164
  value: function render() {
144
165
  var _this2 = this;
145
-
146
- var _this$props = this.props,
147
- markup = _this$props.markup,
148
- duplicates = _this$props.duplicates,
149
- layout = _this$props.layout,
150
- value = _this$props.value,
151
- onChange = _this$props.onChange,
152
- choicesPosition = _this$props.choicesPosition,
153
- choices = _this$props.choices,
154
- correctResponse = _this$props.correctResponse,
155
- disabled = _this$props.disabled,
156
- feedback = _this$props.feedback,
157
- showCorrectAnswer = _this$props.showCorrectAnswer,
158
- emptyResponseAreaWidth = _this$props.emptyResponseAreaWidth,
159
- emptyResponseAreaHeight = _this$props.emptyResponseAreaHeight;
166
+ var _this$props2 = this.props,
167
+ markup = _this$props2.markup,
168
+ duplicates = _this$props2.duplicates,
169
+ value = _this$props2.value,
170
+ onChange = _this$props2.onChange,
171
+ choicesPosition = _this$props2.choicesPosition,
172
+ choices = _this$props2.choices,
173
+ correctResponse = _this$props2.correctResponse,
174
+ disabled = _this$props2.disabled,
175
+ feedback = _this$props2.feedback,
176
+ showCorrectAnswer = _this$props2.showCorrectAnswer,
177
+ emptyResponseAreaWidth = _this$props2.emptyResponseAreaWidth,
178
+ emptyResponseAreaHeight = _this$props2.emptyResponseAreaHeight,
179
+ layout = _this$props2.layout,
180
+ instanceId = _this$props2.instanceId;
160
181
  var choicePosition = choicesPosition || 'below';
161
-
162
182
  var style = _objectSpread({
163
183
  display: 'flex',
164
184
  minWidth: '100px'
165
185
  }, this.getPositionDirection(choicePosition));
166
-
167
- return /*#__PURE__*/_react["default"].createElement("div", {
186
+ return /*#__PURE__*/_react["default"].createElement(_drag.DragProvider, {
187
+ onDragEnd: this.handleDragEnd
188
+ }, /*#__PURE__*/_react["default"].createElement("div", {
168
189
  ref: function ref(_ref) {
169
- return _ref && (_this2.rootRef = _ref);
190
+ return _this2.rootRef = _ref;
170
191
  },
171
192
  style: style
172
193
  }, /*#__PURE__*/_react["default"].createElement(_choices["default"], {
173
194
  choicePosition: choicePosition,
174
- duplicates: duplicates,
175
195
  choices: choices,
176
196
  value: value,
177
- disabled: disabled
197
+ duplicates: duplicates,
198
+ disabled: disabled,
199
+ instanceId: instanceId
178
200
  }), /*#__PURE__*/_react["default"].createElement(Masked, {
179
- elementType: 'drag-in-the-blank',
201
+ elementType: "drag-in-the-blank",
180
202
  markup: markup,
181
203
  layout: layout,
182
204
  value: value,
@@ -188,22 +210,17 @@ var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
188
210
  correctResponse: correctResponse,
189
211
  showCorrectAnswer: showCorrectAnswer,
190
212
  emptyResponseAreaWidth: emptyResponseAreaWidth,
191
- emptyResponseAreaHeight: emptyResponseAreaHeight
192
- }));
213
+ emptyResponseAreaHeight: emptyResponseAreaHeight,
214
+ instanceId: instanceId
215
+ })));
193
216
  }
194
217
  }]);
195
- return DragInTheBlank;
196
218
  }(_react["default"].Component);
197
-
198
- exports["default"] = DragInTheBlank;
199
219
  (0, _defineProperty2["default"])(DragInTheBlank, "propTypes", {
200
220
  markup: _propTypes["default"].string,
201
221
  layout: _propTypes["default"].object,
202
222
  choicesPosition: _propTypes["default"].string,
203
- choices: _propTypes["default"].arrayOf(_propTypes["default"].shape({
204
- label: _propTypes["default"].string,
205
- value: _propTypes["default"].string
206
- })),
223
+ choices: _propTypes["default"].array,
207
224
  value: _propTypes["default"].object,
208
225
  onChange: _propTypes["default"].func,
209
226
  duplicates: _propTypes["default"].bool,
@@ -212,6 +229,10 @@ exports["default"] = DragInTheBlank;
212
229
  correctResponse: _propTypes["default"].object,
213
230
  showCorrectAnswer: _propTypes["default"].bool,
214
231
  emptyResponseAreaWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
215
- emptyResponseAreaHeight: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
232
+ emptyResponseAreaHeight: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
233
+ instanceId: _propTypes["default"].string
234
+ });
235
+ (0, _defineProperty2["default"])(DragInTheBlank, "defaultProps", {
236
+ instanceId: 'drag-in-the-blank'
216
237
  });
217
238
  //# sourceMappingURL=drag-in-the-blank.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/drag-in-the-blank.jsx"],"names":["Masked","props","node","data","onChange","dataset","component","disabled","duplicates","correctResponse","feedback","showCorrectAnswer","emptyResponseAreaWidth","emptyResponseAreaHeight","choiceId","id","choice","choices","find","c","type","DragInTheBlank","choicePosition","flexDirection","justifyContent","alignItems","rootRef","markup","layout","value","choicesPosition","style","display","minWidth","getPositionDirection","ref","React","Component","PropTypes","string","object","arrayOf","shape","label","func","bool","oneOfType","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport Choices from './choices';\nimport Blank from './components/blank';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nconst Masked = withMask('blank', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'blank') {\n // eslint-disable-next-line react/prop-types\n const {\n disabled,\n duplicates,\n correctResponse,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n } = props;\n const choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id];\n // eslint-disable-next-line react/prop-types\n const choice = choiceId && props.choices.find((c) => c.id === choiceId);\n\n return (\n <Blank\n key={`${node.type}-${dataset.id}`}\n correct={showCorrectAnswer || (feedback && feedback[dataset.id])}\n disabled={disabled}\n duplicates={duplicates}\n choice={choice}\n id={dataset.id}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n onChange={onChange}\n />\n );\n }\n});\n\nexport default class DragInTheBlank extends React.Component {\n static propTypes = {\n markup: PropTypes.string,\n layout: PropTypes.object,\n choicesPosition: PropTypes.string,\n choices: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })),\n value: PropTypes.object,\n onChange: PropTypes.func,\n duplicates: PropTypes.bool,\n disabled: PropTypes.bool,\n feedback: PropTypes.object,\n correctResponse: PropTypes.object,\n showCorrectAnswer: PropTypes.bool,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n\n UNSAFE_componentWillReceiveProps() {\n if (this.rootRef) {\n renderMath(this.rootRef);\n }\n }\n\n componentDidUpdate() {\n renderMath(this.rootRef);\n }\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n let justifyContent;\n let alignItems;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row';\n alignItems = 'center';\n break;\n case 'right':\n flexDirection = 'row-reverse';\n justifyContent = 'flex-end';\n alignItems = 'center';\n break;\n case 'below':\n flexDirection = 'column-reverse';\n break;\n default:\n // above\n flexDirection = 'column';\n break;\n }\n\n return { flexDirection, justifyContent, alignItems };\n };\n\n render() {\n const {\n markup,\n duplicates,\n layout,\n value,\n onChange,\n choicesPosition,\n choices,\n correctResponse,\n disabled,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n } = this.props;\n\n const choicePosition = choicesPosition || 'below';\n const style = {\n display: 'flex',\n minWidth: '100px',\n ...this.getPositionDirection(choicePosition),\n };\n\n return (\n <div ref={(ref) => ref && (this.rootRef = ref)} style={style}>\n <Choices\n choicePosition={choicePosition}\n duplicates={duplicates}\n choices={choices}\n value={value}\n disabled={disabled}\n />\n <Masked\n elementType={'drag-in-the-blank'}\n markup={markup}\n layout={layout}\n value={value}\n choices={choices}\n onChange={onChange}\n disabled={disabled}\n duplicates={duplicates}\n feedback={feedback}\n correctResponse={correctResponse}\n showCorrectAnswer={showCorrectAnswer}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n />\n </div>\n );\n }\n}\n"],"file":"drag-in-the-blank.js"}
1
+ {"version":3,"file":"drag-in-the-blank.js","names":["_react","_interopRequireDefault","require","_propTypes","_mathRendering","_drag","_choices","_blank","_withMask","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","Masked","withMask","props","node","data","onChange","_node$data","dataset","component","disabled","duplicates","correctResponse","feedback","showCorrectAnswer","emptyResponseAreaWidth","emptyResponseAreaHeight","instanceId","choiceId","id","choice","choices","find","c","createElement","key","concat","type","correct","newData","undefined","DragInTheBlank","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","event","_dropData$accepts","console","log","active","over","_this$props","value","draggedData","current","dropData","accepts","includes","draggedItem","targetId","fromChoice","newValue","choicePosition","flexDirection","justifyContent","alignItems","_inherits2","_createClass2","componentDidUpdate","rootRef","renderMath","render","_this2","_this$props2","markup","choicesPosition","layout","style","display","minWidth","getPositionDirection","DragProvider","onDragEnd","handleDragEnd","ref","elementType","React","Component","PropTypes","string","object","array","func","bool","oneOfType","number"],"sources":["../src/drag-in-the-blank.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { DragProvider } from '@pie-lib/drag';\nimport Choices from './choices';\nimport Blank from './components/blank';\nimport { withMask } from './with-mask';\n\nconst Masked = withMask('blank', (props) => (node, data, onChange) => {\n const dataset = node.data?.dataset || {};\n if (dataset.component === 'blank') {\n // eslint-disable-next-line react/prop-types\n const {\n disabled,\n duplicates,\n correctResponse,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n instanceId,\n } = props;\n const choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id];\n // eslint-disable-next-line react/prop-types\n const choice = choiceId && props.choices.find((c) => c.id === choiceId);\n\n return (\n <Blank\n key={`${node.type}-${dataset.id}`}\n correct={showCorrectAnswer || (feedback && feedback[dataset.id])}\n disabled={disabled}\n duplicates={duplicates}\n choice={choice}\n id={dataset.id}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n onChange={(id, choiceId) => {\n const newData = { ...data };\n if (choiceId === undefined) {\n delete newData[id];\n } else {\n newData[id] = choiceId;\n }\n onChange(newData);\n }}\n instanceId={instanceId}\n />\n );\n }\n});\n\nexport default class DragInTheBlank extends React.Component {\n static propTypes = {\n markup: PropTypes.string,\n layout: PropTypes.object,\n choicesPosition: PropTypes.string,\n choices: PropTypes.array,\n value: PropTypes.object,\n onChange: PropTypes.func,\n duplicates: PropTypes.bool,\n disabled: PropTypes.bool,\n feedback: PropTypes.object,\n correctResponse: PropTypes.object,\n showCorrectAnswer: PropTypes.bool,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n instanceId: PropTypes.string,\n };\n\n static defaultProps = {\n instanceId: 'drag-in-the-blank',\n };\n\n handleDragEnd = (event) => {\n console.log('Drag End Event:', event);\n const { active, over } = event;\n const { onChange, value } = this.props;\n\n if (!over || !active || !onChange) {\n console.log('Early return - missing data:', { over: !!over, active: !!active, onChange: !!onChange });\n return;\n }\n\n const draggedData = active.data.current;\n const dropData = over.data.current;\n\n console.log('Drag data:', draggedData);\n console.log('Drop data:', dropData);\n\n // Handle drop from choice to blank or blank to blank\n if (draggedData?.type === 'MaskBlank' && dropData?.accepts?.includes('MaskBlank')) {\n console.log('Valid drag/drop types');\n const draggedItem = draggedData;\n const targetId = dropData.id;\n\n if (draggedItem.instanceId === dropData.instanceId) {\n console.log('Instance IDs match');\n\n // Handle drop from choice to blank\n if (draggedItem.fromChoice === true) {\n console.log('Dropping from choice to blank:', targetId);\n const newValue = { ...value };\n newValue[targetId] = draggedItem.choice.id;\n onChange(newValue);\n }\n // Handle drop from blank to blank\n else if (draggedItem.id !== targetId) {\n console.log('Moving from blank to blank:', draggedItem.id, '->', targetId);\n const newValue = { ...value };\n newValue[targetId] = draggedItem.choice.id;\n delete newValue[draggedItem.id];\n onChange(newValue);\n }\n } else {\n console.log('Instance ID mismatch:', draggedItem.instanceId, 'vs', dropData.instanceId);\n }\n } else {\n console.log('Invalid drag/drop types:', draggedData?.type, dropData?.accepts);\n }\n };\n\n componentDidUpdate() {\n if (this.rootRef) renderMath(this.rootRef);\n }\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n let justifyContent;\n let alignItems;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row';\n alignItems = 'center';\n break;\n case 'right':\n flexDirection = 'row-reverse';\n justifyContent = 'flex-end';\n alignItems = 'center';\n break;\n case 'below':\n flexDirection = 'column-reverse';\n break;\n default:\n // above\n flexDirection = 'column';\n break;\n }\n\n return { flexDirection, justifyContent, alignItems };\n };\n\n render() {\n const {\n markup,\n duplicates,\n value,\n onChange,\n choicesPosition,\n choices,\n correctResponse,\n disabled,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n layout,\n instanceId\n } = this.props;\n\n const choicePosition = choicesPosition || 'below';\n const style = { display: 'flex', minWidth: '100px', ...this.getPositionDirection(choicePosition) };\n\n return (\n <DragProvider onDragEnd={this.handleDragEnd}>\n <div ref={(ref) => (this.rootRef = ref)} style={style}>\n <Choices\n choicePosition={choicePosition}\n choices={choices}\n value={value}\n duplicates={duplicates}\n disabled={disabled}\n instanceId={instanceId}\n />\n <Masked\n elementType=\"drag-in-the-blank\"\n markup={markup}\n layout={layout}\n value={value}\n choices={choices}\n onChange={onChange}\n disabled={disabled}\n duplicates={duplicates}\n feedback={feedback}\n correctResponse={correctResponse}\n showCorrectAnswer={showCorrectAnswer}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n instanceId={instanceId}\n />\n </div>\n </DragProvider>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -47,16 +46,10 @@ Object.defineProperty(exports, "withMask", {
47
46
  return _withMask.withMask;
48
47
  }
49
48
  });
50
-
51
49
  var _withMask = require("./with-mask");
52
-
53
50
  var _dragInTheBlank = _interopRequireDefault(require("./drag-in-the-blank"));
54
-
55
51
  var _constructedResponse = _interopRequireDefault(require("./constructed-response"));
56
-
57
52
  var _customizable = _interopRequireDefault(require("./customizable"));
58
-
59
53
  var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
60
-
61
54
  var _componentize = _interopRequireDefault(require("./componentize"));
62
55
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import { withMask, buildLayoutFromMarkup } from './with-mask';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ConstructedResponse from './constructed-response';\nimport Customizable from './customizable';\nimport InlineDropdown from './inline-dropdown';\nimport componentize from './componentize';\n\nexport {\n withMask,\n buildLayoutFromMarkup,\n DragInTheBlank,\n ConstructedResponse,\n InlineDropdown,\n componentize,\n Customizable,\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_withMask","require","_dragInTheBlank","_interopRequireDefault","_constructedResponse","_customizable","_inlineDropdown","_componentize"],"sources":["../src/index.js"],"sourcesContent":["import { withMask, buildLayoutFromMarkup } from './with-mask';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ConstructedResponse from './constructed-response';\nimport Customizable from './customizable';\nimport InlineDropdown from './inline-dropdown';\nimport componentize from './componentize';\n\nexport {\n withMask,\n buildLayoutFromMarkup,\n DragInTheBlank,\n ConstructedResponse,\n InlineDropdown,\n componentize,\n Customizable,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,aAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,eAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,aAAA,GAAAJ,sBAAA,CAAAF,OAAA","ignoreList":[]}
@@ -1,29 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _dropdown = _interopRequireDefault(require("./components/dropdown"));
13
-
14
10
  var _withMask = require("./with-mask");
15
-
16
11
  // eslint-disable-next-line react/display-name
17
- var _default = (0, _withMask.withMask)('dropdown', function (props) {
12
+ var _default = exports["default"] = (0, _withMask.withMask)('dropdown', function (props) {
18
13
  return function (node, data, onChange) {
19
14
  var dataset = node.data ? node.data.dataset || {} : {};
20
-
21
15
  if (dataset.component === 'dropdown') {
22
16
  // eslint-disable-next-line react/prop-types
23
17
  var choices = props.choices,
24
- disabled = props.disabled,
25
- feedback = props.feedback,
26
- showCorrectAnswer = props.showCorrectAnswer;
18
+ disabled = props.disabled,
19
+ feedback = props.feedback,
20
+ showCorrectAnswer = props.showCorrectAnswer;
27
21
  var correctAnswer = choices && choices[dataset.id] && choices[dataset.id].find(function (c) {
28
22
  return c.correct;
29
23
  });
@@ -43,6 +37,4 @@ var _default = (0, _withMask.withMask)('dropdown', function (props) {
43
37
  }
44
38
  };
45
39
  });
46
-
47
- exports["default"] = _default;
48
40
  //# sourceMappingURL=inline-dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inline-dropdown.jsx"],"names":["props","node","data","onChange","dataset","component","choices","disabled","feedback","showCorrectAnswer","correctAnswer","id","find","c","correct","finalChoice","value","type","label","undefined","Object","keys","length"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;eACe,wBAAS,UAAT,EAAqB,UAACA,KAAD;AAAA,SAAW,UAACC,IAAD,EAAOC,IAAP,EAAaC,QAAb,EAA0B;AACvE,QAAMC,OAAO,GAAGH,IAAI,CAACC,IAAL,GAAYD,IAAI,CAACC,IAAL,CAAUE,OAAV,IAAqB,EAAjC,GAAsC,EAAtD;;AACA,QAAIA,OAAO,CAACC,SAAR,KAAsB,UAA1B,EAAsC;AACpC;AACA,UAAQC,OAAR,GAA2DN,KAA3D,CAAQM,OAAR;AAAA,UAAiBC,QAAjB,GAA2DP,KAA3D,CAAiBO,QAAjB;AAAA,UAA2BC,QAA3B,GAA2DR,KAA3D,CAA2BQ,QAA3B;AAAA,UAAqCC,iBAArC,GAA2DT,KAA3D,CAAqCS,iBAArC;AACA,UAAMC,aAAa,GAAGJ,OAAO,IAAIA,OAAO,CAACF,OAAO,CAACO,EAAT,CAAlB,IAAkCL,OAAO,CAACF,OAAO,CAACO,EAAT,CAAP,CAAoBC,IAApB,CAAyB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,OAAT;AAAA,OAAzB,CAAxD;AACA,UAAMC,WAAW,GAAGN,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACM,KAAlC,GAA0Cd,IAAI,CAACE,OAAO,CAACO,EAAT,CAAnF;AAEA,0BACE,gCAAC,oBAAD;AACE,QAAA,GAAG,YAAKV,IAAI,CAACgB,IAAV,uBAA2Bb,OAAO,CAACO,EAAnC,CADL;AAEE,QAAA,OAAO,EAAEH,QAAQ,IAAIA,QAAQ,CAACJ,OAAO,CAACO,EAAT,CAApB,IAAoCH,QAAQ,CAACJ,OAAO,CAACO,EAAT,CAAR,KAAyB,SAFxE;AAGE,QAAA,QAAQ,EAAEJ,QAAQ,IAAIE,iBAHxB;AAIE,QAAA,KAAK,EAAEM,WAJT;AAKE,QAAA,YAAY,EAAEN,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACQ,KAAlC,GAA0CC,SAL3E;AAME,QAAA,EAAE,EAAEf,OAAO,CAACO,EANd;AAOE,QAAA,QAAQ,EAAER,QAPZ;AAQE,QAAA,OAAO,EAAEG,OAAO,CAACF,OAAO,CAACO,EAAT,CARlB;AASE,QAAA,iBAAiB,EAAEF,iBATrB;AAUE,QAAA,WAAW,EAAEW,MAAM,CAACC,IAAP,CAAYf,OAAZ,EAAqBgB,MAArB,IAA+B;AAV9C,QADF;AAcD;AACF,GAvBmC;AAAA,CAArB,C","sourcesContent":["import React from 'react';\nimport Dropdown from './components/dropdown';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nexport default withMask('dropdown', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'dropdown') {\n // eslint-disable-next-line react/prop-types\n const { choices, disabled, feedback, showCorrectAnswer } = props;\n const correctAnswer = choices && choices[dataset.id] && choices[dataset.id].find((c) => c.correct);\n const finalChoice = showCorrectAnswer ? correctAnswer && correctAnswer.value : data[dataset.id];\n\n return (\n <Dropdown\n key={`${node.type}-dropdown-${dataset.id}`}\n correct={feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct'}\n disabled={disabled || showCorrectAnswer}\n value={finalChoice}\n correctValue={showCorrectAnswer ? correctAnswer && correctAnswer.label : undefined}\n id={dataset.id}\n onChange={onChange}\n choices={choices[dataset.id]}\n showCorrectAnswer={showCorrectAnswer}\n singleQuery={Object.keys(choices).length == 1}\n />\n );\n }\n});\n"],"file":"inline-dropdown.js"}
1
+ {"version":3,"file":"inline-dropdown.js","names":["_react","_interopRequireDefault","require","_dropdown","_withMask","_default","exports","withMask","props","node","data","onChange","dataset","component","choices","disabled","feedback","showCorrectAnswer","correctAnswer","id","find","c","correct","finalChoice","value","createElement","key","concat","type","correctValue","label","undefined","singleQuery","Object","keys","length"],"sources":["../src/inline-dropdown.jsx"],"sourcesContent":["import React from 'react';\nimport Dropdown from './components/dropdown';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nexport default withMask('dropdown', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'dropdown') {\n // eslint-disable-next-line react/prop-types\n const { choices, disabled, feedback, showCorrectAnswer } = props;\n const correctAnswer = choices && choices[dataset.id] && choices[dataset.id].find((c) => c.correct);\n const finalChoice = showCorrectAnswer ? correctAnswer && correctAnswer.value : data[dataset.id];\n\n return (\n <Dropdown\n key={`${node.type}-dropdown-${dataset.id}`}\n correct={feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct'}\n disabled={disabled || showCorrectAnswer}\n value={finalChoice}\n correctValue={showCorrectAnswer ? correctAnswer && correctAnswer.label : undefined}\n id={dataset.id}\n onChange={onChange}\n choices={choices[dataset.id]}\n showCorrectAnswer={showCorrectAnswer}\n singleQuery={Object.keys(choices).length == 1}\n />\n );\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA;AAAA,IAAAG,QAAA,GAAAC,OAAA,cACe,IAAAC,kBAAQ,EAAC,UAAU,EAAE,UAACC,KAAK;EAAA,OAAK,UAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAK;IACvE,IAAMC,OAAO,GAAGH,IAAI,CAACC,IAAI,GAAGD,IAAI,CAACC,IAAI,CAACE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,IAAIA,OAAO,CAACC,SAAS,KAAK,UAAU,EAAE;MACpC;MACA,IAAQC,OAAO,GAA4CN,KAAK,CAAxDM,OAAO;QAAEC,QAAQ,GAAkCP,KAAK,CAA/CO,QAAQ;QAAEC,QAAQ,GAAwBR,KAAK,CAArCQ,QAAQ;QAAEC,iBAAiB,GAAKT,KAAK,CAA3BS,iBAAiB;MACtD,IAAMC,aAAa,GAAGJ,OAAO,IAAIA,OAAO,CAACF,OAAO,CAACO,EAAE,CAAC,IAAIL,OAAO,CAACF,OAAO,CAACO,EAAE,CAAC,CAACC,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACC,OAAO;MAAA,EAAC;MAClG,IAAMC,WAAW,GAAGN,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACM,KAAK,GAAGd,IAAI,CAACE,OAAO,CAACO,EAAE,CAAC;MAE/F,oBACEnB,MAAA,YAAAyB,aAAA,CAACtB,SAAA,WAAQ;QACPuB,GAAG,KAAAC,MAAA,CAAKlB,IAAI,CAACmB,IAAI,gBAAAD,MAAA,CAAaf,OAAO,CAACO,EAAE,CAAG;QAC3CG,OAAO,EAAEN,QAAQ,IAAIA,QAAQ,CAACJ,OAAO,CAACO,EAAE,CAAC,IAAIH,QAAQ,CAACJ,OAAO,CAACO,EAAE,CAAC,KAAK,SAAU;QAChFJ,QAAQ,EAAEA,QAAQ,IAAIE,iBAAkB;QACxCO,KAAK,EAAED,WAAY;QACnBM,YAAY,EAAEZ,iBAAiB,GAAGC,aAAa,IAAIA,aAAa,CAACY,KAAK,GAAGC,SAAU;QACnFZ,EAAE,EAAEP,OAAO,CAACO,EAAG;QACfR,QAAQ,EAAEA,QAAS;QACnBG,OAAO,EAAEA,OAAO,CAACF,OAAO,CAACO,EAAE,CAAE;QAC7BF,iBAAiB,EAAEA,iBAAkB;QACrCe,WAAW,EAAEC,MAAM,CAACC,IAAI,CAACpB,OAAO,CAAC,CAACqB,MAAM,IAAI;MAAE,CAC/C,CAAC;IAEN;EACF,CAAC;AAAA,EAAC","ignoreList":[]}