@pie-lib/mask-markup 2.0.0-beta.2 → 2.1.0-next.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 (80) hide show
  1. package/CHANGELOG.json +1 -871
  2. package/CHANGELOG.md +296 -2
  3. package/LICENSE.md +5 -0
  4. package/NEXT.CHANGELOG.json +1 -0
  5. package/lib/__tests__/drag-in-the-blank.test.js +129 -0
  6. package/lib/__tests__/index.test.js +42 -0
  7. package/lib/__tests__/mask.test.js +163 -0
  8. package/lib/__tests__/serialization.test.js +44 -0
  9. package/lib/__tests__/utils.js +14 -0
  10. package/lib/__tests__/with-mask.test.js +110 -0
  11. package/lib/choices/__tests__/index.test.js +101 -0
  12. package/lib/choices/choice.js +100 -119
  13. package/lib/choices/choice.js.map +1 -1
  14. package/lib/choices/index.js +24 -20
  15. package/lib/choices/index.js.map +1 -1
  16. package/lib/componentize.js +2 -3
  17. package/lib/componentize.js.map +1 -1
  18. package/lib/components/__tests__/blank.test.js +189 -0
  19. package/lib/components/__tests__/correct-input.test.js +132 -0
  20. package/lib/components/__tests__/dropdown.test.js +134 -0
  21. package/lib/components/__tests__/input.test.js +129 -0
  22. package/lib/components/blank.js +316 -222
  23. package/lib/components/blank.js.map +1 -1
  24. package/lib/components/correct-input.js +40 -43
  25. package/lib/components/correct-input.js.map +1 -1
  26. package/lib/components/dropdown.js +394 -125
  27. package/lib/components/dropdown.js.map +1 -1
  28. package/lib/components/input.js +2 -3
  29. package/lib/components/input.js.map +1 -1
  30. package/lib/constructed-response.js +83 -27
  31. package/lib/constructed-response.js.map +1 -1
  32. package/lib/customizable.js +44 -0
  33. package/lib/customizable.js.map +1 -0
  34. package/lib/drag-in-the-blank.js +155 -62
  35. package/lib/drag-in-the-blank.js.map +1 -1
  36. package/lib/index.js +8 -1
  37. package/lib/index.js.map +1 -1
  38. package/lib/inline-dropdown.js +5 -4
  39. package/lib/inline-dropdown.js.map +1 -1
  40. package/lib/mask.js +90 -57
  41. package/lib/mask.js.map +1 -1
  42. package/lib/serialization.js +31 -43
  43. package/lib/serialization.js.map +1 -1
  44. package/lib/with-mask.js +49 -21
  45. package/lib/with-mask.js.map +1 -1
  46. package/package.json +18 -15
  47. package/src/__tests__/drag-in-the-blank.test.js +111 -0
  48. package/src/__tests__/index.test.js +39 -0
  49. package/src/__tests__/mask.test.js +187 -0
  50. package/src/__tests__/serialization.test.js +54 -0
  51. package/src/__tests__/utils.js +1 -0
  52. package/src/__tests__/with-mask.test.js +76 -0
  53. package/src/choices/__tests__/index.test.js +75 -0
  54. package/src/choices/choice.jsx +83 -96
  55. package/src/choices/index.jsx +11 -5
  56. package/src/components/__tests__/blank.test.js +138 -0
  57. package/src/components/__tests__/correct-input.test.js +90 -0
  58. package/src/components/__tests__/dropdown.test.js +93 -0
  59. package/src/components/__tests__/input.test.js +102 -0
  60. package/src/components/blank.jsx +316 -204
  61. package/src/components/correct-input.jsx +37 -38
  62. package/src/components/dropdown.jsx +371 -125
  63. package/src/constructed-response.jsx +71 -18
  64. package/src/customizable.jsx +35 -0
  65. package/src/drag-in-the-blank.jsx +152 -40
  66. package/src/index.js +10 -1
  67. package/src/inline-dropdown.jsx +2 -0
  68. package/src/mask.jsx +71 -25
  69. package/src/serialization.js +22 -34
  70. package/src/with-mask.jsx +43 -3
  71. package/README.md +0 -14
  72. package/lib/new-serialization.js +0 -267
  73. package/lib/new-serialization.js.map +0 -1
  74. package/lib/parse-html.js +0 -17
  75. package/lib/parse-html.js.map +0 -1
  76. package/lib/test-serializer.js +0 -164
  77. package/lib/test-serializer.js.map +0 -1
  78. package/src/new-serialization.jsx +0 -291
  79. package/src/parse-html.js +0 -8
  80. package/src/test-serializer.js +0 -163
@@ -7,30 +7,37 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
14
  var _react = _interopRequireDefault(require("react"));
16
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
- var _mathRendering = require("@pie-lib/math-rendering");
16
+ var _drag = require("@pie-lib/drag");
17
+ var _core = require("@dnd-kit/core");
18
18
  var _choices = _interopRequireDefault(require("./choices"));
19
+ var _choice = _interopRequireDefault(require("./choices/choice"));
19
20
  var _blank = _interopRequireDefault(require("./components/blank"));
20
21
  var _withMask = require("./with-mask");
21
- 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); }; }
22
- 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; } }
23
- // eslint-disable-next-line react/display-name
22
+ 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)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
+ 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; }
25
+ 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; }
24
26
  var Masked = (0, _withMask.withMask)('blank', function (props) {
25
- return function (node, data, onChange) {
26
- var dataset = node.data ? node.data.dataset || {} : {};
27
+ return function (node, data, _onChange) {
28
+ var _node$data;
29
+ var dataset = ((_node$data = node.data) === null || _node$data === void 0 ? void 0 : _node$data.dataset) || {};
27
30
  if (dataset.component === 'blank') {
28
31
  // eslint-disable-next-line react/prop-types
29
32
  var disabled = props.disabled,
30
33
  duplicates = props.duplicates,
31
34
  correctResponse = props.correctResponse,
32
35
  feedback = props.feedback,
33
- showCorrectAnswer = props.showCorrectAnswer;
36
+ showCorrectAnswer = props.showCorrectAnswer,
37
+ emptyResponseAreaWidth = props.emptyResponseAreaWidth,
38
+ emptyResponseAreaHeight = props.emptyResponseAreaHeight,
39
+ instanceId = props.instanceId,
40
+ isDragging = props.isDragging;
34
41
  var choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id];
35
42
  // eslint-disable-next-line react/prop-types
36
43
  var choice = choiceId && props.choices.find(function (c) {
@@ -43,29 +50,101 @@ var Masked = (0, _withMask.withMask)('blank', function (props) {
43
50
  duplicates: duplicates,
44
51
  choice: choice,
45
52
  id: dataset.id,
46
- onChange: onChange
53
+ emptyResponseAreaWidth: emptyResponseAreaWidth,
54
+ emptyResponseAreaHeight: emptyResponseAreaHeight,
55
+ onChange: function onChange(id, choiceId) {
56
+ var newData = _objectSpread({}, data);
57
+ if (choiceId === undefined) {
58
+ delete newData[id];
59
+ } else {
60
+ newData[id] = choiceId;
61
+ }
62
+ _onChange(newData);
63
+ },
64
+ instanceId: instanceId,
65
+ isDragging: isDragging
47
66
  });
48
67
  }
49
68
  };
50
69
  });
51
- var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
52
- (0, _inherits2["default"])(DragInTheBlank, _React$Component);
53
- var _super = _createSuper(DragInTheBlank);
54
- function DragInTheBlank() {
70
+ var DragInTheBlank = exports["default"] = /*#__PURE__*/function (_React$Component) {
71
+ function DragInTheBlank(props) {
55
72
  var _this;
56
73
  (0, _classCallCheck2["default"])(this, DragInTheBlank);
57
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
58
- args[_key] = arguments[_key];
59
- }
60
- _this = _super.call.apply(_super, [this].concat(args));
61
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPositionDirection", function (choicePosition) {
74
+ _this = _callSuper(this, DragInTheBlank, [props]);
75
+ (0, _defineProperty2["default"])(_this, "handleDragStart", function (event) {
76
+ var _active$data;
77
+ var active = event.active;
78
+ if (active !== null && active !== void 0 && (_active$data = active.data) !== null && _active$data !== void 0 && _active$data.current) {
79
+ _this.setState({
80
+ activeDragItem: active.data.current
81
+ });
82
+ }
83
+ });
84
+ (0, _defineProperty2["default"])(_this, "renderDragOverlay", function () {
85
+ var activeDragItem = _this.state.activeDragItem;
86
+ if (!activeDragItem) return null;
87
+ if (activeDragItem.type === 'MaskBlank') {
88
+ return /*#__PURE__*/_react["default"].createElement(_choice["default"], {
89
+ disabled: activeDragItem.disabled,
90
+ choice: activeDragItem.choice,
91
+ instanceId: activeDragItem.instanceId
92
+ });
93
+ }
94
+ return null;
95
+ });
96
+ (0, _defineProperty2["default"])(_this, "handleDragEnd", function (event) {
97
+ var _dropData$accepts;
98
+ var active = event.active,
99
+ over = event.over;
100
+ var _this$props = _this.props,
101
+ onChange = _this$props.onChange,
102
+ value = _this$props.value;
103
+ if (!over || !active || !onChange) {
104
+ return;
105
+ }
106
+ var draggedData = active.data.current;
107
+ var dropData = over.data.current;
108
+ 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')) {
109
+ var draggedItem = draggedData;
110
+ var targetId = dropData.id;
111
+
112
+ // drop from choice to blank (placing choice into response)
113
+ if (draggedItem.fromChoice === true) {
114
+ var newValue = _objectSpread({}, value);
115
+ newValue[targetId] = draggedItem.choice.id;
116
+ onChange(newValue);
117
+ } else if (dropData.toChoiceBoard === true) {
118
+ // handle drop from blank to choice board (removal from blank)
119
+ var _newValue = _objectSpread({}, value);
120
+ delete _newValue[draggedItem.id];
121
+ onChange(_newValue);
122
+ }
123
+ // handle drop from blank to blank (changing position)
124
+ else if (draggedItem.id !== targetId) {
125
+ var _newValue2 = _objectSpread({}, value);
126
+ _newValue2[targetId] = draggedItem.choice.id;
127
+ delete _newValue2[draggedItem.id];
128
+ onChange(_newValue2);
129
+ }
130
+ }
131
+ _this.setState({
132
+ activeDragItem: null
133
+ });
134
+ });
135
+ (0, _defineProperty2["default"])(_this, "getPositionDirection", function (choicePosition) {
62
136
  var flexDirection;
137
+ var justifyContent;
138
+ var alignItems;
63
139
  switch (choicePosition) {
64
140
  case 'left':
65
141
  flexDirection = 'row';
142
+ alignItems = 'center';
66
143
  break;
67
144
  case 'right':
68
145
  flexDirection = 'row-reverse';
146
+ justifyContent = 'flex-end';
147
+ alignItems = 'center';
69
148
  break;
70
149
  case 'below':
71
150
  flexDirection = 'column-reverse';
@@ -75,55 +154,60 @@ var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
75
154
  flexDirection = 'column';
76
155
  break;
77
156
  }
78
- return flexDirection;
157
+ return {
158
+ flexDirection: flexDirection,
159
+ justifyContent: justifyContent,
160
+ alignItems: alignItems
161
+ };
79
162
  });
163
+ _this.state = {
164
+ activeDragItem: null
165
+ };
80
166
  return _this;
81
167
  }
82
- (0, _createClass2["default"])(DragInTheBlank, [{
83
- key: "UNSAFE_componentWillReceiveProps",
84
- value: function UNSAFE_componentWillReceiveProps() {
85
- if (this.rootRef) {
86
- (0, _mathRendering.renderMath)(this.rootRef);
87
- }
88
- }
89
- }, {
90
- key: "componentDidUpdate",
91
- value: function componentDidUpdate() {
92
- (0, _mathRendering.renderMath)(this.rootRef);
93
- }
94
- }, {
168
+ (0, _inherits2["default"])(DragInTheBlank, _React$Component);
169
+ return (0, _createClass2["default"])(DragInTheBlank, [{
95
170
  key: "render",
96
171
  value: function render() {
97
172
  var _this2 = this;
98
- var _this$props = this.props,
99
- markup = _this$props.markup,
100
- duplicates = _this$props.duplicates,
101
- layout = _this$props.layout,
102
- value = _this$props.value,
103
- onChange = _this$props.onChange,
104
- choicesPosition = _this$props.choicesPosition,
105
- choices = _this$props.choices,
106
- correctResponse = _this$props.correctResponse,
107
- disabled = _this$props.disabled,
108
- feedback = _this$props.feedback,
109
- showCorrectAnswer = _this$props.showCorrectAnswer;
173
+ var _this$props2 = this.props,
174
+ markup = _this$props2.markup,
175
+ duplicates = _this$props2.duplicates,
176
+ value = _this$props2.value,
177
+ onChange = _this$props2.onChange,
178
+ choicesPosition = _this$props2.choicesPosition,
179
+ choices = _this$props2.choices,
180
+ correctResponse = _this$props2.correctResponse,
181
+ disabled = _this$props2.disabled,
182
+ feedback = _this$props2.feedback,
183
+ showCorrectAnswer = _this$props2.showCorrectAnswer,
184
+ emptyResponseAreaWidth = _this$props2.emptyResponseAreaWidth,
185
+ emptyResponseAreaHeight = _this$props2.emptyResponseAreaHeight,
186
+ layout = _this$props2.layout,
187
+ instanceId = _this$props2.instanceId;
110
188
  var choicePosition = choicesPosition || 'below';
111
- var style = {
189
+ var style = _objectSpread({
112
190
  display: 'flex',
113
- flexDirection: this.getPositionDirection(choicePosition)
114
- };
115
- return /*#__PURE__*/_react["default"].createElement("div", {
191
+ minWidth: '100px'
192
+ }, this.getPositionDirection(choicePosition));
193
+ return /*#__PURE__*/_react["default"].createElement(_drag.DragProvider, {
194
+ onDragStart: this.handleDragStart,
195
+ onDragEnd: this.handleDragEnd,
196
+ collisionDetection: _core.closestCenter
197
+ }, /*#__PURE__*/_react["default"].createElement("div", {
116
198
  ref: function ref(_ref) {
117
- return _ref && (_this2.rootRef = _ref);
199
+ return _this2.rootRef = _ref;
118
200
  },
119
201
  style: style
120
202
  }, /*#__PURE__*/_react["default"].createElement(_choices["default"], {
121
203
  choicePosition: choicePosition,
122
- duplicates: duplicates,
123
204
  choices: choices,
124
205
  value: value,
125
- disabled: disabled
206
+ duplicates: duplicates,
207
+ disabled: disabled,
208
+ instanceId: instanceId
126
209
  }), /*#__PURE__*/_react["default"].createElement(Masked, {
210
+ elementType: "drag-in-the-blank",
127
211
  markup: markup,
128
212
  layout: layout,
129
213
  value: value,
@@ -133,27 +217,36 @@ var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
133
217
  duplicates: duplicates,
134
218
  feedback: feedback,
135
219
  correctResponse: correctResponse,
136
- showCorrectAnswer: showCorrectAnswer
137
- }));
220
+ showCorrectAnswer: showCorrectAnswer,
221
+ emptyResponseAreaWidth: emptyResponseAreaWidth,
222
+ emptyResponseAreaHeight: emptyResponseAreaHeight,
223
+ instanceId: instanceId,
224
+ isDragging: !!this.state.activeDragItem
225
+ }), /*#__PURE__*/_react["default"].createElement(_core.DragOverlay, {
226
+ style: {
227
+ pointerEvents: "none"
228
+ }
229
+ }, this.renderDragOverlay())));
138
230
  }
139
231
  }]);
140
- return DragInTheBlank;
141
232
  }(_react["default"].Component);
142
- exports["default"] = DragInTheBlank;
143
233
  (0, _defineProperty2["default"])(DragInTheBlank, "propTypes", {
144
234
  markup: _propTypes["default"].string,
145
235
  layout: _propTypes["default"].object,
146
236
  choicesPosition: _propTypes["default"].string,
147
- choices: _propTypes["default"].arrayOf(_propTypes["default"].shape({
148
- label: _propTypes["default"].string,
149
- value: _propTypes["default"].string
150
- })),
237
+ choices: _propTypes["default"].array,
151
238
  value: _propTypes["default"].object,
152
239
  onChange: _propTypes["default"].func,
153
240
  duplicates: _propTypes["default"].bool,
154
241
  disabled: _propTypes["default"].bool,
155
242
  feedback: _propTypes["default"].object,
156
243
  correctResponse: _propTypes["default"].object,
157
- showCorrectAnswer: _propTypes["default"].bool
244
+ showCorrectAnswer: _propTypes["default"].bool,
245
+ emptyResponseAreaWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
246
+ emptyResponseAreaHeight: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
247
+ instanceId: _propTypes["default"].string
248
+ });
249
+ (0, _defineProperty2["default"])(DragInTheBlank, "defaultProps", {
250
+ instanceId: 'drag-in-the-blank'
158
251
  });
159
- //# sourceMappingURL=drag-in-the-blank.js.map
252
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfZHJhZyIsIl9jb3JlIiwiX2Nob2ljZXMiLCJfY2hvaWNlIiwiX2JsYW5rIiwiX3dpdGhNYXNrIiwiX2NhbGxTdXBlciIsInQiLCJvIiwiZSIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJvd25LZXlzIiwiciIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJNYXNrZWQiLCJ3aXRoTWFzayIsInByb3BzIiwibm9kZSIsImRhdGEiLCJvbkNoYW5nZSIsIl9ub2RlJGRhdGEiLCJkYXRhc2V0IiwiY29tcG9uZW50IiwiZGlzYWJsZWQiLCJkdXBsaWNhdGVzIiwiY29ycmVjdFJlc3BvbnNlIiwiZmVlZGJhY2siLCJzaG93Q29ycmVjdEFuc3dlciIsImVtcHR5UmVzcG9uc2VBcmVhV2lkdGgiLCJlbXB0eVJlc3BvbnNlQXJlYUhlaWdodCIsImluc3RhbmNlSWQiLCJpc0RyYWdnaW5nIiwiY2hvaWNlSWQiLCJpZCIsImNob2ljZSIsImNob2ljZXMiLCJmaW5kIiwiYyIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJjb25jYXQiLCJ0eXBlIiwiY29ycmVjdCIsIm5ld0RhdGEiLCJ1bmRlZmluZWQiLCJEcmFnSW5UaGVCbGFuayIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiZXZlbnQiLCJfYWN0aXZlJGRhdGEiLCJhY3RpdmUiLCJjdXJyZW50Iiwic2V0U3RhdGUiLCJhY3RpdmVEcmFnSXRlbSIsInN0YXRlIiwiX2Ryb3BEYXRhJGFjY2VwdHMiLCJvdmVyIiwiX3RoaXMkcHJvcHMiLCJ2YWx1ZSIsImRyYWdnZWREYXRhIiwiZHJvcERhdGEiLCJhY2NlcHRzIiwiaW5jbHVkZXMiLCJkcmFnZ2VkSXRlbSIsInRhcmdldElkIiwiZnJvbUNob2ljZSIsIm5ld1ZhbHVlIiwidG9DaG9pY2VCb2FyZCIsImNob2ljZVBvc2l0aW9uIiwiZmxleERpcmVjdGlvbiIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMyIiwibWFya3VwIiwiY2hvaWNlc1Bvc2l0aW9uIiwibGF5b3V0Iiwic3R5bGUiLCJkaXNwbGF5IiwibWluV2lkdGgiLCJnZXRQb3NpdGlvbkRpcmVjdGlvbiIsIkRyYWdQcm92aWRlciIsIm9uRHJhZ1N0YXJ0IiwiaGFuZGxlRHJhZ1N0YXJ0Iiwib25EcmFnRW5kIiwiaGFuZGxlRHJhZ0VuZCIsImNvbGxpc2lvbkRldGVjdGlvbiIsImNsb3Nlc3RDZW50ZXIiLCJyZWYiLCJyb290UmVmIiwiZWxlbWVudFR5cGUiLCJEcmFnT3ZlcmxheSIsInBvaW50ZXJFdmVudHMiLCJyZW5kZXJEcmFnT3ZlcmxheSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib2JqZWN0IiwiYXJyYXkiLCJmdW5jIiwiYm9vbCIsIm9uZU9mVHlwZSIsIm51bWJlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kcmFnLWluLXRoZS1ibGFuay5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBEcmFnUHJvdmlkZXIgfSBmcm9tICdAcGllLWxpYi9kcmFnJztcbmltcG9ydCB7IERyYWdPdmVybGF5LCBjbG9zZXN0Q2VudGVyIH0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5cbmltcG9ydCBDaG9pY2VzIGZyb20gJy4vY2hvaWNlcyc7XG5pbXBvcnQgQ2hvaWNlIGZyb20gJy4vY2hvaWNlcy9jaG9pY2UnO1xuaW1wb3J0IEJsYW5rIGZyb20gJy4vY29tcG9uZW50cy9ibGFuayc7XG5pbXBvcnQgeyB3aXRoTWFzayB9IGZyb20gJy4vd2l0aC1tYXNrJztcblxuY29uc3QgTWFza2VkID0gd2l0aE1hc2soJ2JsYW5rJywgKHByb3BzKSA9PiAobm9kZSwgZGF0YSwgb25DaGFuZ2UpID0+IHtcbiAgY29uc3QgZGF0YXNldCA9IG5vZGUuZGF0YT8uZGF0YXNldCB8fCB7fTtcbiAgaWYgKGRhdGFzZXQuY29tcG9uZW50ID09PSAnYmxhbmsnKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBjb25zdCB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGR1cGxpY2F0ZXMsXG4gICAgICBjb3JyZWN0UmVzcG9uc2UsXG4gICAgICBmZWVkYmFjayxcbiAgICAgIHNob3dDb3JyZWN0QW5zd2VyLFxuICAgICAgZW1wdHlSZXNwb25zZUFyZWFXaWR0aCxcbiAgICAgIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0LFxuICAgICAgaW5zdGFuY2VJZCxcbiAgICAgIGlzRHJhZ2dpbmdcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2hvaWNlSWQgPSBzaG93Q29ycmVjdEFuc3dlciA/IGNvcnJlY3RSZXNwb25zZVtkYXRhc2V0LmlkXSA6IGRhdGFbZGF0YXNldC5pZF07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBjb25zdCBjaG9pY2UgPSBjaG9pY2VJZCAmJiBwcm9wcy5jaG9pY2VzLmZpbmQoKGMpID0+IGMuaWQgPT09IGNob2ljZUlkKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8QmxhbmtcbiAgICAgICAga2V5PXtgJHtub2RlLnR5cGV9LSR7ZGF0YXNldC5pZH1gfVxuICAgICAgICBjb3JyZWN0PXtzaG93Q29ycmVjdEFuc3dlciB8fCAoZmVlZGJhY2sgJiYgZmVlZGJhY2tbZGF0YXNldC5pZF0pfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGR1cGxpY2F0ZXM9e2R1cGxpY2F0ZXN9XG4gICAgICAgIGNob2ljZT17Y2hvaWNlfVxuICAgICAgICBpZD17ZGF0YXNldC5pZH1cbiAgICAgICAgZW1wdHlSZXNwb25zZUFyZWFXaWR0aD17ZW1wdHlSZXNwb25zZUFyZWFXaWR0aH1cbiAgICAgICAgZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ9e2VtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0fVxuICAgICAgICBvbkNoYW5nZT17KGlkLCBjaG9pY2VJZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgICBpZiAoY2hvaWNlSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZGVsZXRlIG5ld0RhdGFbaWRdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdEYXRhW2lkXSA9IGNob2ljZUlkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvbkNoYW5nZShuZXdEYXRhKTtcbiAgICAgICAgfX1cbiAgICAgICAgaW5zdGFuY2VJZD17aW5zdGFuY2VJZH1cbiAgICAgICAgaXNEcmFnZ2luZz17aXNEcmFnZ2luZ31cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYWdJblRoZUJsYW5rIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGFjdGl2ZURyYWdJdGVtOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG1hcmt1cDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYXlvdXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2hvaWNlc1Bvc2l0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNob2ljZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZHVwbGljYXRlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGZlZWRiYWNrOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNvcnJlY3RSZXNwb25zZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzaG93Q29ycmVjdEFuc3dlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgZW1wdHlSZXNwb25zZUFyZWFXaWR0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICAgIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gICAgaW5zdGFuY2VJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGluc3RhbmNlSWQ6ICdkcmFnLWluLXRoZS1ibGFuaycsXG4gIH07XG5cbiAgaGFuZGxlRHJhZ1N0YXJ0ID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBhY3RpdmUgfSA9IGV2ZW50O1xuXG4gICAgaWYgKGFjdGl2ZT8uZGF0YT8uY3VycmVudCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGFjdGl2ZURyYWdJdGVtOiBhY3RpdmUuZGF0YS5jdXJyZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlckRyYWdPdmVybGF5ID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgYWN0aXZlRHJhZ0l0ZW0gfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFhY3RpdmVEcmFnSXRlbSkgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAoYWN0aXZlRHJhZ0l0ZW0udHlwZSA9PT0gJ01hc2tCbGFuaycpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDaG9pY2VcbiAgICAgICAgICBkaXNhYmxlZD17YWN0aXZlRHJhZ0l0ZW0uZGlzYWJsZWR9XG4gICAgICAgICAgY2hvaWNlPXthY3RpdmVEcmFnSXRlbS5jaG9pY2V9XG4gICAgICAgICAgaW5zdGFuY2VJZD17YWN0aXZlRHJhZ0l0ZW0uaW5zdGFuY2VJZH1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgaGFuZGxlRHJhZ0VuZCA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgYWN0aXZlLCBvdmVyIH0gPSBldmVudDtcbiAgICBjb25zdCB7IG9uQ2hhbmdlLCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghb3ZlciB8fCAhYWN0aXZlIHx8ICFvbkNoYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdnZWREYXRhID0gYWN0aXZlLmRhdGEuY3VycmVudDtcbiAgICBjb25zdCBkcm9wRGF0YSA9IG92ZXIuZGF0YS5jdXJyZW50O1xuXG4gICAgaWYgKGRyYWdnZWREYXRhPy50eXBlID09PSAnTWFza0JsYW5rJyAmJiBkcm9wRGF0YT8uYWNjZXB0cz8uaW5jbHVkZXMoJ01hc2tCbGFuaycpKSB7XG4gICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IGRyYWdnZWREYXRhO1xuICAgICAgY29uc3QgdGFyZ2V0SWQgPSBkcm9wRGF0YS5pZDtcblxuICAgICAgLy8gZHJvcCBmcm9tIGNob2ljZSB0byBibGFuayAocGxhY2luZyBjaG9pY2UgaW50byByZXNwb25zZSlcbiAgICAgIGlmIChkcmFnZ2VkSXRlbS5mcm9tQ2hvaWNlID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0geyAuLi52YWx1ZSB9O1xuICAgICAgICBuZXdWYWx1ZVt0YXJnZXRJZF0gPSBkcmFnZ2VkSXRlbS5jaG9pY2UuaWQ7XG4gICAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoZHJvcERhdGEudG9DaG9pY2VCb2FyZCA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBoYW5kbGUgZHJvcCBmcm9tIGJsYW5rIHRvIGNob2ljZSBib2FyZCAocmVtb3ZhbCBmcm9tIGJsYW5rKVxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHsgLi4udmFsdWUgfTtcbiAgICAgICAgZGVsZXRlIG5ld1ZhbHVlW2RyYWdnZWRJdGVtLmlkXTtcbiAgICAgICAgb25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgfVxuICAgICAgLy8gaGFuZGxlIGRyb3AgZnJvbSBibGFuayB0byBibGFuayAoY2hhbmdpbmcgcG9zaXRpb24pXG4gICAgICBlbHNlIGlmIChkcmFnZ2VkSXRlbS5pZCAhPT0gdGFyZ2V0SWQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB7IC4uLnZhbHVlIH07XG4gICAgICAgIG5ld1ZhbHVlW3RhcmdldElkXSA9IGRyYWdnZWRJdGVtLmNob2ljZS5pZDtcbiAgICAgICAgZGVsZXRlIG5ld1ZhbHVlW2RyYWdnZWRJdGVtLmlkXTtcbiAgICAgICAgb25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKHsgYWN0aXZlRHJhZ0l0ZW06IG51bGwgfSk7XG4gIH07XG5cbiAgZ2V0UG9zaXRpb25EaXJlY3Rpb24gPSAoY2hvaWNlUG9zaXRpb24pID0+IHtcbiAgICBsZXQgZmxleERpcmVjdGlvbjtcbiAgICBsZXQganVzdGlmeUNvbnRlbnQ7XG4gICAgbGV0IGFsaWduSXRlbXM7XG5cbiAgICBzd2l0Y2ggKGNob2ljZVBvc2l0aW9uKSB7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgZmxleERpcmVjdGlvbiA9ICdyb3cnO1xuICAgICAgICBhbGlnbkl0ZW1zID0gJ2NlbnRlcic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBmbGV4RGlyZWN0aW9uID0gJ3Jvdy1yZXZlcnNlJztcbiAgICAgICAganVzdGlmeUNvbnRlbnQgPSAnZmxleC1lbmQnO1xuICAgICAgICBhbGlnbkl0ZW1zID0gJ2NlbnRlcic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmVsb3cnOlxuICAgICAgICBmbGV4RGlyZWN0aW9uID0gJ2NvbHVtbi1yZXZlcnNlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBhYm92ZVxuICAgICAgICBmbGV4RGlyZWN0aW9uID0gJ2NvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiB7IGZsZXhEaXJlY3Rpb24sIGp1c3RpZnlDb250ZW50LCBhbGlnbkl0ZW1zIH07XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1hcmt1cCxcbiAgICAgIGR1cGxpY2F0ZXMsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgY2hvaWNlc1Bvc2l0aW9uLFxuICAgICAgY2hvaWNlcyxcbiAgICAgIGNvcnJlY3RSZXNwb25zZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZmVlZGJhY2ssXG4gICAgICBzaG93Q29ycmVjdEFuc3dlcixcbiAgICAgIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGgsXG4gICAgICBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodCxcbiAgICAgIGxheW91dCxcbiAgICAgIGluc3RhbmNlSWRcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNob2ljZVBvc2l0aW9uID0gY2hvaWNlc1Bvc2l0aW9uIHx8ICdiZWxvdyc7XG4gICAgY29uc3Qgc3R5bGUgPSB7IGRpc3BsYXk6ICdmbGV4JywgbWluV2lkdGg6ICcxMDBweCcsIC4uLnRoaXMuZ2V0UG9zaXRpb25EaXJlY3Rpb24oY2hvaWNlUG9zaXRpb24pIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERyYWdQcm92aWRlclxuICAgICAgICBvbkRyYWdTdGFydD17dGhpcy5oYW5kbGVEcmFnU3RhcnR9XG4gICAgICAgIG9uRHJhZ0VuZD17dGhpcy5oYW5kbGVEcmFnRW5kfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICA+XG4gICAgICAgIDxkaXYgcmVmPXsocmVmKSA9PiAodGhpcy5yb290UmVmID0gcmVmKX0gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICA8Q2hvaWNlc1xuICAgICAgICAgICAgY2hvaWNlUG9zaXRpb249e2Nob2ljZVBvc2l0aW9ufVxuICAgICAgICAgICAgY2hvaWNlcz17Y2hvaWNlc31cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIGR1cGxpY2F0ZXM9e2R1cGxpY2F0ZXN9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpbnN0YW5jZUlkPXtpbnN0YW5jZUlkfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE1hc2tlZFxuICAgICAgICAgICAgZWxlbWVudFR5cGU9XCJkcmFnLWluLXRoZS1ibGFua1wiXG4gICAgICAgICAgICBtYXJrdXA9e21hcmt1cH1cbiAgICAgICAgICAgIGxheW91dD17bGF5b3V0fVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgY2hvaWNlcz17Y2hvaWNlc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGR1cGxpY2F0ZXM9e2R1cGxpY2F0ZXN9XG4gICAgICAgICAgICBmZWVkYmFjaz17ZmVlZGJhY2t9XG4gICAgICAgICAgICBjb3JyZWN0UmVzcG9uc2U9e2NvcnJlY3RSZXNwb25zZX1cbiAgICAgICAgICAgIHNob3dDb3JyZWN0QW5zd2VyPXtzaG93Q29ycmVjdEFuc3dlcn1cbiAgICAgICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGg9e2VtcHR5UmVzcG9uc2VBcmVhV2lkdGh9XG4gICAgICAgICAgICBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodD17ZW1wdHlSZXNwb25zZUFyZWFIZWlnaHR9XG4gICAgICAgICAgICBpbnN0YW5jZUlkPXtpbnN0YW5jZUlkfVxuICAgICAgICAgICAgaXNEcmFnZ2luZz17ISF0aGlzLnN0YXRlLmFjdGl2ZURyYWdJdGVtfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPERyYWdPdmVybGF5IHN0eWxlPXt7IHBvaW50ZXJFdmVudHM6IFwibm9uZVwiIH19PlxuICAgICAgICAgICAge3RoaXMucmVuZGVyRHJhZ092ZXJsYXkoKX1cbiAgICAgICAgICA8L0RyYWdPdmVybGF5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRHJhZ1Byb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUF1QyxTQUFBUSxXQUFBQyxDQUFBLEVB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
@@ -1 +1 @@
1
- {"version":3,"file":"drag-in-the-blank.js","names":["_react","_interopRequireDefault","require","_propTypes","_mathRendering","_choices","_blank","_withMask","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Masked","withMask","props","node","data","onChange","dataset","component","disabled","duplicates","correctResponse","feedback","showCorrectAnswer","choiceId","id","choice","choices","find","c","createElement","key","concat","type","correct","DragInTheBlank","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","_defineProperty2","_assertThisInitialized2","choicePosition","flexDirection","_createClass2","value","UNSAFE_componentWillReceiveProps","rootRef","renderMath","componentDidUpdate","render","_this2","_this$props","markup","layout","choicesPosition","style","display","getPositionDirection","ref","React","Component","exports","PropTypes","string","object","arrayOf","shape","label","func","bool"],"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 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 { disabled, duplicates, correctResponse, feedback, showCorrectAnswer } = 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 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 };\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\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row';\n break;\n case 'right':\n flexDirection = 'row-reverse';\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;\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 } = this.props;\n\n const choicePosition = choicesPosition || 'below';\n const style = {\n display: 'flex',\n flexDirection: 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 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 />\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAAuC,SAAAM,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,aAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,mBAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,mBAAAP,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAEvC;AACA,IAAMC,MAAM,GAAG,IAAAC,kBAAQ,EAAC,OAAO,EAAE,UAACC,KAAK;EAAA,OAAK,UAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAK;IACpE,IAAMC,OAAO,GAAGH,IAAI,CAACC,IAAI,GAAGD,IAAI,CAACC,IAAI,CAACE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,IAAIA,OAAO,CAACC,SAAS,KAAK,OAAO,EAAE;MACjC;MACA,IAAQC,QAAQ,GAA+DN,KAAK,CAA5EM,QAAQ;QAAEC,UAAU,GAAmDP,KAAK,CAAlEO,UAAU;QAAEC,eAAe,GAAkCR,KAAK,CAAtDQ,eAAe;QAAEC,QAAQ,GAAwBT,KAAK,CAArCS,QAAQ;QAAEC,iBAAiB,GAAKV,KAAK,CAA3BU,iBAAiB;MAC1E,IAAMC,QAAQ,GAAGD,iBAAiB,GAAGF,eAAe,CAACJ,OAAO,CAACQ,EAAE,CAAC,GAAGV,IAAI,CAACE,OAAO,CAACQ,EAAE,CAAC;MACnF;MACA,IAAMC,MAAM,GAAGF,QAAQ,IAAIX,KAAK,CAACc,OAAO,CAACC,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACJ,EAAE,KAAKD,QAAQ;MAAA,EAAC;MAEvE,oBACE3C,MAAA,YAAAiD,aAAA,CAAC3C,MAAA,WAAK;QACJ4C,GAAG,KAAAC,MAAA,CAAKlB,IAAI,CAACmB,IAAI,OAAAD,MAAA,CAAIf,OAAO,CAACQ,EAAE,CAAG;QAClCS,OAAO,EAAEX,iBAAiB,IAAKD,QAAQ,IAAIA,QAAQ,CAACL,OAAO,CAACQ,EAAE,CAAG;QACjEN,QAAQ,EAAEA,QAAS;QACnBC,UAAU,EAAEA,UAAW;QACvBM,MAAM,EAAEA,MAAO;QACfD,EAAE,EAAER,OAAO,CAACQ,EAAG;QACfT,QAAQ,EAAEA;MAAS,CACpB,CAAC;IAEN;EACF,CAAC;AAAA,EAAC;AAAC,IAEkBmB,cAAc,0BAAAC,gBAAA;EAAA,IAAAC,UAAA,aAAAF,cAAA,EAAAC,gBAAA;EAAA,IAAAE,MAAA,GAAAjD,YAAA,CAAA8C,cAAA;EAAA,SAAAA,eAAA;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,mBAAAL,cAAA;IAAA,SAAAM,IAAA,GAAAxC,SAAA,CAAAyC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAH,IAAA,GAAAI,IAAA,MAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAA5C,SAAA,CAAA4C,IAAA;IAAA;IAAAN,KAAA,GAAAD,MAAA,CAAA7B,IAAA,CAAAP,KAAA,CAAAoC,MAAA,SAAAN,MAAA,CAAAW,IAAA;IAAA,IAAAG,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,2BAyBV,UAACS,cAAc,EAAK;MACzC,IAAIC,aAAa;MAEjB,QAAQD,cAAc;QACpB,KAAK,MAAM;UACTC,aAAa,GAAG,KAAK;UACrB;QACF,KAAK,OAAO;UACVA,aAAa,GAAG,aAAa;UAC7B;QACF,KAAK,OAAO;UACVA,aAAa,GAAG,gBAAgB;UAChC;QACF;UACE;UACAA,aAAa,GAAG,QAAQ;UACxB;MACJ;MAEA,OAAOA,aAAa;IACtB,CAAC;IAAA,OAAAV,KAAA;EAAA;EAAA,IAAAW,aAAA,aAAAf,cAAA;IAAAJ,GAAA;IAAAoB,KAAA,EA9BD,SAAAC,iCAAA,EAAmC;MACjC,IAAI,IAAI,CAACC,OAAO,EAAE;QAChB,IAAAC,yBAAU,EAAC,IAAI,CAACD,OAAO,CAAC;MAC1B;IACF;EAAC;IAAAtB,GAAA;IAAAoB,KAAA,EAED,SAAAI,mBAAA,EAAqB;MACnB,IAAAD,yBAAU,EAAC,IAAI,CAACD,OAAO,CAAC;IAC1B;EAAC;IAAAtB,GAAA;IAAAoB,KAAA,EAwBD,SAAAK,OAAA,EAAS;MAAA,IAAAC,MAAA;MACP,IAAAC,WAAA,GAYI,IAAI,CAAC7C,KAAK;QAXZ8C,MAAM,GAAAD,WAAA,CAANC,MAAM;QACNvC,UAAU,GAAAsC,WAAA,CAAVtC,UAAU;QACVwC,MAAM,GAAAF,WAAA,CAANE,MAAM;QACNT,KAAK,GAAAO,WAAA,CAALP,KAAK;QACLnC,QAAQ,GAAA0C,WAAA,CAAR1C,QAAQ;QACR6C,eAAe,GAAAH,WAAA,CAAfG,eAAe;QACflC,OAAO,GAAA+B,WAAA,CAAP/B,OAAO;QACPN,eAAe,GAAAqC,WAAA,CAAfrC,eAAe;QACfF,QAAQ,GAAAuC,WAAA,CAARvC,QAAQ;QACRG,QAAQ,GAAAoC,WAAA,CAARpC,QAAQ;QACRC,iBAAiB,GAAAmC,WAAA,CAAjBnC,iBAAiB;MAGnB,IAAMyB,cAAc,GAAGa,eAAe,IAAI,OAAO;MACjD,IAAMC,KAAK,GAAG;QACZC,OAAO,EAAE,MAAM;QACfd,aAAa,EAAE,IAAI,CAACe,oBAAoB,CAAChB,cAAc;MACzD,CAAC;MAED,oBACEnE,MAAA,YAAAiD,aAAA;QAAKmC,GAAG,EAAE,SAAAA,IAACA,IAAG;UAAA,OAAKA,IAAG,KAAKR,MAAI,CAACJ,OAAO,GAAGY,IAAG,CAAC;QAAA,CAAC;QAACH,KAAK,EAAEA;MAAM,gBAC3DjF,MAAA,YAAAiD,aAAA,CAAC5C,QAAA,WAAO;QACN8D,cAAc,EAAEA,cAAe;QAC/B5B,UAAU,EAAEA,UAAW;QACvBO,OAAO,EAAEA,OAAQ;QACjBwB,KAAK,EAAEA,KAAM;QACbhC,QAAQ,EAAEA;MAAS,CACpB,CAAC,eACFtC,MAAA,YAAAiD,aAAA,CAACnB,MAAM;QACLgD,MAAM,EAAEA,MAAO;QACfC,MAAM,EAAEA,MAAO;QACfT,KAAK,EAAEA,KAAM;QACbxB,OAAO,EAAEA,OAAQ;QACjBX,QAAQ,EAAEA,QAAS;QACnBG,QAAQ,EAAEA,QAAS;QACnBC,UAAU,EAAEA,UAAW;QACvBE,QAAQ,EAAEA,QAAS;QACnBD,eAAe,EAAEA,eAAgB;QACjCE,iBAAiB,EAAEA;MAAkB,CACtC,CACE,CAAC;IAEV;EAAC;EAAA,OAAAY,cAAA;AAAA,EA3FyC+B,iBAAK,CAACC,SAAS;AAAAC,OAAA,cAAAjC,cAAA;AAAA,IAAAW,gBAAA,aAAtCX,cAAc,eACd;EACjBwB,MAAM,EAAEU,qBAAS,CAACC,MAAM;EACxBV,MAAM,EAAES,qBAAS,CAACE,MAAM;EACxBV,eAAe,EAAEQ,qBAAS,CAACC,MAAM;EACjC3C,OAAO,EAAE0C,qBAAS,CAACG,OAAO,CAACH,qBAAS,CAACI,KAAK,CAAC;IAAEC,KAAK,EAAEL,qBAAS,CAACC,MAAM;IAAEnB,KAAK,EAAEkB,qBAAS,CAACC;EAAO,CAAC,CAAC,CAAC;EACjGnB,KAAK,EAAEkB,qBAAS,CAACE,MAAM;EACvBvD,QAAQ,EAAEqD,qBAAS,CAACM,IAAI;EACxBvD,UAAU,EAAEiD,qBAAS,CAACO,IAAI;EAC1BzD,QAAQ,EAAEkD,qBAAS,CAACO,IAAI;EACxBtD,QAAQ,EAAE+C,qBAAS,CAACE,MAAM;EAC1BlD,eAAe,EAAEgD,qBAAS,CAACE,MAAM;EACjChD,iBAAiB,EAAE8C,qBAAS,CAACO;AAC/B,CAAC"}
1
+ {"version":3,"file":"drag-in-the-blank.js","names":["_react","_interopRequireDefault","require","_propTypes","_drag","_core","_choices","_choice","_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","isDragging","choiceId","id","choice","choices","find","c","createElement","key","concat","type","correct","newData","undefined","DragInTheBlank","exports","_React$Component","_this","_classCallCheck2","event","_active$data","active","current","setState","activeDragItem","state","_dropData$accepts","over","_this$props","value","draggedData","dropData","accepts","includes","draggedItem","targetId","fromChoice","newValue","toChoiceBoard","choicePosition","flexDirection","justifyContent","alignItems","_inherits2","_createClass2","render","_this2","_this$props2","markup","choicesPosition","layout","style","display","minWidth","getPositionDirection","DragProvider","onDragStart","handleDragStart","onDragEnd","handleDragEnd","collisionDetection","closestCenter","ref","rootRef","elementType","DragOverlay","pointerEvents","renderDragOverlay","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 { DragProvider } from '@pie-lib/drag';\nimport { DragOverlay, closestCenter } from '@dnd-kit/core';\n\nimport Choices from './choices';\nimport Choice from './choices/choice';\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 isDragging\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 isDragging={isDragging}\n />\n );\n }\n});\n\nexport default class DragInTheBlank extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeDragItem: null,\n };\n }\n\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 handleDragStart = (event) => {\n const { active } = event;\n\n if (active?.data?.current) {\n this.setState({\n activeDragItem: active.data.current,\n });\n }\n };\n\n renderDragOverlay = () => {\n const { activeDragItem } = this.state;\n if (!activeDragItem) return null;\n\n if (activeDragItem.type === 'MaskBlank') {\n return (\n <Choice\n disabled={activeDragItem.disabled}\n choice={activeDragItem.choice}\n instanceId={activeDragItem.instanceId}\n />\n );\n }\n\n return null;\n };\n\n handleDragEnd = (event) => {\n const { active, over } = event;\n const { onChange, value } = this.props;\n\n if (!over || !active || !onChange) {\n return;\n }\n\n const draggedData = active.data.current;\n const dropData = over.data.current;\n\n if (draggedData?.type === 'MaskBlank' && dropData?.accepts?.includes('MaskBlank')) {\n const draggedItem = draggedData;\n const targetId = dropData.id;\n\n // drop from choice to blank (placing choice into response)\n if (draggedItem.fromChoice === true) {\n const newValue = { ...value };\n newValue[targetId] = draggedItem.choice.id;\n onChange(newValue);\n } else if (dropData.toChoiceBoard === true) {\n // handle drop from blank to choice board (removal from blank)\n const newValue = { ...value };\n delete newValue[draggedItem.id];\n onChange(newValue);\n }\n // handle drop from blank to blank (changing position)\n else if (draggedItem.id !== targetId) {\n const newValue = { ...value };\n newValue[targetId] = draggedItem.choice.id;\n delete newValue[draggedItem.id];\n onChange(newValue);\n }\n }\n this.setState({ activeDragItem: null });\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\n onDragStart={this.handleDragStart}\n onDragEnd={this.handleDragEnd}\n collisionDetection={closestCenter}\n >\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 isDragging={!!this.state.activeDragItem}\n />\n <DragOverlay style={{ pointerEvents: \"none\" }}>\n {this.renderDragOverlay()}\n </DragOverlay>\n </div>\n </DragProvider>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "ConstructedResponse", {
10
10
  return _constructedResponse["default"];
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "Customizable", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _customizable["default"];
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "DragInTheBlank", {
14
20
  enumerable: true,
15
21
  get: function get() {
@@ -43,6 +49,7 @@ Object.defineProperty(exports, "withMask", {
43
49
  var _withMask = require("./with-mask");
44
50
  var _dragInTheBlank = _interopRequireDefault(require("./drag-in-the-blank"));
45
51
  var _constructedResponse = _interopRequireDefault(require("./constructed-response"));
52
+ var _customizable = _interopRequireDefault(require("./customizable"));
46
53
  var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
47
54
  var _componentize = _interopRequireDefault(require("./componentize"));
48
- //# sourceMappingURL=index.js.map
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2l0aE1hc2siLCJyZXF1aXJlIiwiX2RyYWdJblRoZUJsYW5rIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdHJ1Y3RlZFJlc3BvbnNlIiwiX2N1c3RvbWl6YWJsZSIsIl9pbmxpbmVEcm9wZG93biIsIl9jb21wb25lbnRpemUiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2l0aE1hc2ssIGJ1aWxkTGF5b3V0RnJvbU1hcmt1cCB9IGZyb20gJy4vd2l0aC1tYXNrJztcbmltcG9ydCBEcmFnSW5UaGVCbGFuayBmcm9tICcuL2RyYWctaW4tdGhlLWJsYW5rJztcbmltcG9ydCBDb25zdHJ1Y3RlZFJlc3BvbnNlIGZyb20gJy4vY29uc3RydWN0ZWQtcmVzcG9uc2UnO1xuaW1wb3J0IEN1c3RvbWl6YWJsZSBmcm9tICcuL2N1c3RvbWl6YWJsZSc7XG5pbXBvcnQgSW5saW5lRHJvcGRvd24gZnJvbSAnLi9pbmxpbmUtZHJvcGRvd24nO1xuaW1wb3J0IGNvbXBvbmVudGl6ZSBmcm9tICcuL2NvbXBvbmVudGl6ZSc7XG5cbmV4cG9ydCB7XG4gIHdpdGhNYXNrLFxuICBidWlsZExheW91dEZyb21NYXJrdXAsXG4gIERyYWdJblRoZUJsYW5rLFxuICBDb25zdHJ1Y3RlZFJlc3BvbnNlLFxuICBJbmxpbmVEcm9wZG93bixcbiAgY29tcG9uZW50aXplLFxuICBDdXN0b21pemFibGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBIiwiaWdub3JlTGlzdCI6W119
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_withMask","require","_dragInTheBlank","_interopRequireDefault","_constructedResponse","_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 InlineDropdown from './inline-dropdown';\nimport componentize from './componentize';\n\nexport { withMask, buildLayoutFromMarkup, DragInTheBlank, ConstructedResponse, InlineDropdown, componentize };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,eAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA"}
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":[]}
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _dropdown = _interopRequireDefault(require("./components/dropdown"));
10
10
  var _withMask = require("./with-mask");
11
11
  // eslint-disable-next-line react/display-name
12
- var _default = (0, _withMask.withMask)('dropdown', function (props) {
12
+ var _default = exports["default"] = (0, _withMask.withMask)('dropdown', function (props) {
13
13
  return function (node, data, onChange) {
14
14
  var dataset = node.data ? node.data.dataset || {} : {};
15
15
  if (dataset.component === 'dropdown') {
@@ -27,13 +27,14 @@ var _default = (0, _withMask.withMask)('dropdown', function (props) {
27
27
  correct: feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct',
28
28
  disabled: disabled || showCorrectAnswer,
29
29
  value: finalChoice,
30
+ correctValue: showCorrectAnswer ? correctAnswer && correctAnswer.label : undefined,
30
31
  id: dataset.id,
31
32
  onChange: onChange,
32
33
  choices: choices[dataset.id],
33
- showCorrectAnswer: showCorrectAnswer
34
+ showCorrectAnswer: showCorrectAnswer,
35
+ singleQuery: Object.keys(choices).length == 1
34
36
  });
35
37
  }
36
38
  };
37
39
  });
38
- exports["default"] = _default;
39
- //# sourceMappingURL=inline-dropdown.js.map
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9kcm9wZG93biIsIl93aXRoTWFzayIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIndpdGhNYXNrIiwicHJvcHMiLCJub2RlIiwiZGF0YSIsIm9uQ2hhbmdlIiwiZGF0YXNldCIsImNvbXBvbmVudCIsImNob2ljZXMiLCJkaXNhYmxlZCIsImZlZWRiYWNrIiwic2hvd0NvcnJlY3RBbnN3ZXIiLCJjb3JyZWN0QW5zd2VyIiwiaWQiLCJmaW5kIiwiYyIsImNvcnJlY3QiLCJmaW5hbENob2ljZSIsInZhbHVlIiwiY3JlYXRlRWxlbWVudCIsImtleSIsImNvbmNhdCIsInR5cGUiLCJjb3JyZWN0VmFsdWUiLCJsYWJlbCIsInVuZGVmaW5lZCIsInNpbmdsZVF1ZXJ5IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmxpbmUtZHJvcGRvd24uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IHdpdGhNYXNrIH0gZnJvbSAnLi93aXRoLW1hc2snO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZGlzcGxheS1uYW1lXG5leHBvcnQgZGVmYXVsdCB3aXRoTWFzaygnZHJvcGRvd24nLCAocHJvcHMpID0+IChub2RlLCBkYXRhLCBvbkNoYW5nZSkgPT4ge1xuICBjb25zdCBkYXRhc2V0ID0gbm9kZS5kYXRhID8gbm9kZS5kYXRhLmRhdGFzZXQgfHwge30gOiB7fTtcbiAgaWYgKGRhdGFzZXQuY29tcG9uZW50ID09PSAnZHJvcGRvd24nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBjb25zdCB7IGNob2ljZXMsIGRpc2FibGVkLCBmZWVkYmFjaywgc2hvd0NvcnJlY3RBbnN3ZXIgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvcnJlY3RBbnN3ZXIgPSBjaG9pY2VzICYmIGNob2ljZXNbZGF0YXNldC5pZF0gJiYgY2hvaWNlc1tkYXRhc2V0LmlkXS5maW5kKChjKSA9PiBjLmNvcnJlY3QpO1xuICAgIGNvbnN0IGZpbmFsQ2hvaWNlID0gc2hvd0NvcnJlY3RBbnN3ZXIgPyBjb3JyZWN0QW5zd2VyICYmIGNvcnJlY3RBbnN3ZXIudmFsdWUgOiBkYXRhW2RhdGFzZXQuaWRdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEcm9wZG93blxuICAgICAgICBrZXk9e2Ake25vZGUudHlwZX0tZHJvcGRvd24tJHtkYXRhc2V0LmlkfWB9XG4gICAgICAgIGNvcnJlY3Q9e2ZlZWRiYWNrICYmIGZlZWRiYWNrW2RhdGFzZXQuaWRdICYmIGZlZWRiYWNrW2RhdGFzZXQuaWRdID09PSAnY29ycmVjdCd9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZCB8fCBzaG93Q29ycmVjdEFuc3dlcn1cbiAgICAgICAgdmFsdWU9e2ZpbmFsQ2hvaWNlfVxuICAgICAgICBjb3JyZWN0VmFsdWU9e3Nob3dDb3JyZWN0QW5zd2VyID8gY29ycmVjdEFuc3dlciAmJiBjb3JyZWN0QW5zd2VyLmxhYmVsIDogdW5kZWZpbmVkfVxuICAgICAgICBpZD17ZGF0YXNldC5pZH1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICBjaG9pY2VzPXtjaG9pY2VzW2RhdGFzZXQuaWRdfVxuICAgICAgICBzaG93Q29ycmVjdEFuc3dlcj17c2hvd0NvcnJlY3RBbnN3ZXJ9XG4gICAgICAgIHNpbmdsZVF1ZXJ5PXtPYmplY3Qua2V5cyhjaG9pY2VzKS5sZW5ndGggPT0gMX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFFQTtBQUFBLElBQUFHLFFBQUEsR0FBQUMsT0FBQSxjQUNlLElBQUFDLGtCQUFRLEVBQUMsVUFBVSxFQUFFLFVBQUNDLEtBQUs7RUFBQSxPQUFLLFVBQUNDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUs7SUFDdkUsSUFBTUMsT0FBTyxHQUFHSCxJQUFJLENBQUNDLElBQUksR0FBR0QsSUFBSSxDQUFDQyxJQUFJLENBQUNFLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsSUFBSUEsT0FBTyxDQUFDQyxTQUFTLEtBQUssVUFBVSxFQUFFO01BQ3BDO01BQ0EsSUFBUUMsT0FBTyxHQUE0Q04sS0FBSyxDQUF4RE0sT0FBTztRQUFFQyxRQUFRLEdBQWtDUCxLQUFLLENBQS9DTyxRQUFRO1FBQUVDLFFBQVEsR0FBd0JSLEtBQUssQ0FBckNRLFFBQVE7UUFBRUMsaUJBQWlCLEdBQUtULEtBQUssQ0FBM0JTLGlCQUFpQjtNQUN0RCxJQUFNQyxhQUFhLEdBQUdKLE9BQU8sSUFBSUEsT0FBTyxDQUFDRixPQUFPLENBQUNPLEVBQUUsQ0FBQyxJQUFJTCxPQUFPLENBQUNGLE9BQU8sQ0FBQ08sRUFBRSxDQUFDLENBQUNDLElBQUksQ0FBQyxVQUFDQyxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDQyxPQUFPO01BQUEsRUFBQztNQUNsRyxJQUFNQyxXQUFXLEdBQUdOLGlCQUFpQixHQUFHQyxhQUFhLElBQUlBLGFBQWEsQ0FBQ00sS0FBSyxHQUFHZCxJQUFJLENBQUNFLE9BQU8sQ0FBQ08sRUFBRSxDQUFDO01BRS9GLG9CQUNFbkIsTUFBQSxZQUFBeUIsYUFBQSxDQUFDdEIsU0FBQSxXQUFRO1FBQ1B1QixHQUFHLEtBQUFDLE1BQUEsQ0FBS2xCLElBQUksQ0FBQ21CLElBQUksZ0JBQUFELE1BQUEsQ0FBYWYsT0FBTyxDQUFDTyxFQUFFLENBQUc7UUFDM0NHLE9BQU8sRUFBRU4sUUFBUSxJQUFJQSxRQUFRLENBQUNKLE9BQU8sQ0FBQ08sRUFBRSxDQUFDLElBQUlILFFBQVEsQ0FBQ0osT0FBTyxDQUFDTyxFQUFFLENBQUMsS0FBSyxTQUFVO1FBQ2hGSixRQUFRLEVBQUVBLFFBQVEsSUFBSUUsaUJBQWtCO1FBQ3hDTyxLQUFLLEVBQUVELFdBQVk7UUFDbkJNLFlBQVksRUFBRVosaUJBQWlCLEdBQUdDLGFBQWEsSUFBSUEsYUFBYSxDQUFDWSxLQUFLLEdBQUdDLFNBQVU7UUFDbkZaLEVBQUUsRUFBRVAsT0FBTyxDQUFDTyxFQUFHO1FBQ2ZSLFFBQVEsRUFBRUEsUUFBUztRQUNuQkcsT0FBTyxFQUFFQSxPQUFPLENBQUNGLE9BQU8sQ0FBQ08sRUFBRSxDQUFFO1FBQzdCRixpQkFBaUIsRUFBRUEsaUJBQWtCO1FBQ3JDZSxXQUFXLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDcEIsT0FBTyxDQUFDLENBQUNxQixNQUFNLElBQUk7TUFBRSxDQUMvQyxDQUFDO0lBRU47RUFDRixDQUFDO0FBQUEsRUFBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"inline-dropdown.js","names":["_react","_interopRequireDefault","require","_dropdown","_withMask","_default","withMask","props","node","data","onChange","dataset","component","choices","disabled","feedback","showCorrectAnswer","correctAnswer","id","find","c","correct","finalChoice","value","createElement","key","concat","type","exports"],"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 id={dataset.id}\n onChange={onChange}\n choices={choices[dataset.id]}\n showCorrectAnswer={showCorrectAnswer}\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,GACe,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,oBACElB,MAAA,YAAAwB,aAAA,CAACrB,SAAA,WAAQ;QACPsB,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;QACnBJ,EAAE,EAAEP,OAAO,CAACO,EAAG;QACfR,QAAQ,EAAEA,QAAS;QACnBG,OAAO,EAAEA,OAAO,CAACF,OAAO,CAACO,EAAE,CAAE;QAC7BF,iBAAiB,EAAEA;MAAkB,CACtC,CAAC;IAEN;EACF,CAAC;AAAA,EAAC;AAAAY,OAAA,cAAAvB,QAAA"}
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":[]}