@pie-lib/editable-html-tip-tap 1.0.20 → 1.0.21-next.6057

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 (103) hide show
  1. package/CHANGELOG.md +7 -73
  2. package/LICENSE.md +5 -0
  3. package/NEXT.CHANGELOG.json +1 -0
  4. package/lib/components/CharacterPicker.js +20 -60
  5. package/lib/components/CharacterPicker.js.map +1 -1
  6. package/lib/components/EditableHtml.js +50 -121
  7. package/lib/components/EditableHtml.js.map +1 -1
  8. package/lib/components/MenuBar.js +96 -128
  9. package/lib/components/MenuBar.js.map +1 -1
  10. package/lib/components/TiptapContainer.js +162 -45
  11. package/lib/components/TiptapContainer.js.map +1 -1
  12. package/lib/components/characters/characterUtils.js +4 -7
  13. package/lib/components/characters/characterUtils.js.map +1 -1
  14. package/lib/components/characters/custom-popper.js +22 -51
  15. package/lib/components/characters/custom-popper.js.map +1 -1
  16. package/lib/components/common/done-button.js +17 -36
  17. package/lib/components/common/done-button.js.map +1 -1
  18. package/lib/components/common/toolbar-buttons.js +57 -107
  19. package/lib/components/common/toolbar-buttons.js.map +1 -1
  20. package/lib/components/icons/CssIcon.js +14 -26
  21. package/lib/components/icons/CssIcon.js.map +1 -1
  22. package/lib/components/icons/RespArea.js +23 -46
  23. package/lib/components/icons/RespArea.js.map +1 -1
  24. package/lib/components/icons/TableIcons.js +20 -36
  25. package/lib/components/icons/TableIcons.js.map +1 -1
  26. package/lib/components/icons/TextAlign.js +16 -53
  27. package/lib/components/icons/TextAlign.js.map +1 -1
  28. package/lib/components/image/AltDialog.js +18 -49
  29. package/lib/components/image/AltDialog.js.map +1 -1
  30. package/lib/components/image/ImageToolbar.js +50 -90
  31. package/lib/components/image/ImageToolbar.js.map +1 -1
  32. package/lib/components/image/InsertImageHandler.js +17 -35
  33. package/lib/components/image/InsertImageHandler.js.map +1 -1
  34. package/lib/components/media/MediaDialog.js +195 -309
  35. package/lib/components/media/MediaDialog.js.map +1 -1
  36. package/lib/components/media/MediaToolbar.js +39 -66
  37. package/lib/components/media/MediaToolbar.js.map +1 -1
  38. package/lib/components/media/MediaWrapper.js +30 -56
  39. package/lib/components/media/MediaWrapper.js.map +1 -1
  40. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +21 -36
  41. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  42. package/lib/components/respArea/DragInTheBlank/choice.js +215 -262
  43. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  44. package/lib/components/respArea/ExplicitConstructedResponse.js +11 -33
  45. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  46. package/lib/components/respArea/InlineDropdown.js +19 -41
  47. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  48. package/lib/components/respArea/ToolbarIcon.js +21 -45
  49. package/lib/components/respArea/ToolbarIcon.js.map +1 -1
  50. package/lib/constants.js +3 -5
  51. package/lib/constants.js.map +1 -1
  52. package/lib/extensions/component.js +94 -148
  53. package/lib/extensions/component.js.map +1 -1
  54. package/lib/extensions/css.js +9 -44
  55. package/lib/extensions/css.js.map +1 -1
  56. package/lib/extensions/custom-toolbar-wrapper.js +66 -94
  57. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  58. package/lib/extensions/extended-table.js +2 -6
  59. package/lib/extensions/extended-table.js.map +1 -1
  60. package/lib/extensions/image.js +4 -17
  61. package/lib/extensions/image.js.map +1 -1
  62. package/lib/extensions/index.js +13 -23
  63. package/lib/extensions/index.js.map +1 -1
  64. package/lib/extensions/math.js +45 -96
  65. package/lib/extensions/math.js.map +1 -1
  66. package/lib/extensions/media.js +21 -59
  67. package/lib/extensions/media.js.map +1 -1
  68. package/lib/extensions/responseArea.js +43 -89
  69. package/lib/extensions/responseArea.js.map +1 -1
  70. package/lib/index.js +9 -11
  71. package/lib/index.js.map +1 -1
  72. package/lib/styles/editorContainerStyles.js +2 -7
  73. package/lib/styles/editorContainerStyles.js.map +1 -1
  74. package/lib/theme.js +2 -3
  75. package/lib/theme.js.map +1 -1
  76. package/lib/utils/size.js +2 -10
  77. package/lib/utils/size.js.map +1 -1
  78. package/package.json +15 -13
  79. package/src/components/EditableHtml.jsx +21 -33
  80. package/src/components/MenuBar.jsx +66 -37
  81. package/src/components/TiptapContainer.jsx +133 -34
  82. package/src/components/characters/custom-popper.js +18 -28
  83. package/src/components/common/done-button.jsx +15 -26
  84. package/src/components/common/toolbar-buttons.jsx +28 -44
  85. package/src/components/icons/CssIcon.jsx +11 -13
  86. package/src/components/icons/RespArea.jsx +16 -16
  87. package/src/components/icons/TableIcons.jsx +15 -16
  88. package/src/components/icons/TextAlign.jsx +3 -3
  89. package/src/components/image/AltDialog.jsx +6 -6
  90. package/src/components/image/ImageToolbar.jsx +28 -29
  91. package/src/components/media/MediaDialog.js +61 -78
  92. package/src/components/media/MediaToolbar.jsx +30 -37
  93. package/src/components/media/MediaWrapper.jsx +12 -16
  94. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +5 -4
  95. package/src/components/respArea/DragInTheBlank/choice.jsx +191 -185
  96. package/src/components/respArea/ToolbarIcon.jsx +13 -15
  97. package/src/extensions/component.jsx +61 -89
  98. package/src/extensions/css.js +6 -5
  99. package/src/extensions/custom-toolbar-wrapper.jsx +61 -81
  100. package/src/extensions/index.js +2 -2
  101. package/src/index.jsx +2 -2
  102. package/lib/__tests__/utils.js +0 -106
  103. package/src/__tests__/utils.js +0 -36
@@ -1,44 +1,28 @@
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.ResponseAreaExtension = exports.MathTemplatedNode = exports.InlineDropdownNode = exports.ExplicitConstructedResponseNode = exports.DragInTheBlankNode = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _prosemirrorState = require("prosemirror-state");
15
-
16
11
  var _core = require("@tiptap/core");
17
-
18
12
  var _react2 = require("@tiptap/react");
19
-
20
13
  var _ExplicitConstructedResponse = _interopRequireDefault(require("../components/respArea/ExplicitConstructedResponse"));
21
-
22
14
  var _DragInTheBlank = _interopRequireDefault(require("../components/respArea/DragInTheBlank/DragInTheBlank"));
23
-
24
15
  var _InlineDropdown = _interopRequireDefault(require("../components/respArea/InlineDropdown"));
25
-
26
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- 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; }
29
-
30
- 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; }
31
-
17
+ 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; }
18
+ 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; }
32
19
  var lastIndexMap = {};
33
-
34
20
  var normalizeType = function normalizeType(type) {
35
21
  return String(type || '').replace(/-/g, '_');
36
22
  };
37
-
38
23
  var getAttrIndex = function getAttrIndex(node) {
39
24
  return node && node.attrs && node.attrs.index != null ? String(node.attrs.index) : null;
40
25
  };
41
-
42
26
  var collectNodesOfType = function collectNodesOfType(doc, typeName) {
43
27
  var results = [];
44
28
  doc.descendants(function (node, pos) {
@@ -50,12 +34,10 @@ var collectNodesOfType = function collectNodesOfType(doc, typeName) {
50
34
  node: node
51
35
  });
52
36
  }
53
-
54
37
  return true;
55
38
  });
56
39
  return results;
57
40
  };
58
-
59
41
  var countNodesOfType = function countNodesOfType(doc, typeName) {
60
42
  var count = 0;
61
43
  doc.descendants(function (node) {
@@ -64,29 +46,28 @@ var countNodesOfType = function countNodesOfType(doc, typeName) {
64
46
  });
65
47
  return count;
66
48
  };
67
-
68
49
  var getDefaultNode = function getDefaultNode(_ref) {
69
50
  var schema = _ref.schema,
70
- typeName = _ref.typeName,
71
- index = _ref.index;
51
+ typeName = _ref.typeName,
52
+ index = _ref.index;
72
53
  var nodeType = schema.nodes[typeName];
73
- if (!nodeType) return null; // mirror your Slate "getDefaultElement(opts, newIndex)"
74
- // customize attrs as needed:
54
+ if (!nodeType) return null;
75
55
 
56
+ // mirror your Slate "getDefaultElement(opts, newIndex)"
57
+ // customize attrs as needed:
76
58
  return nodeType.create({
77
59
  index: String(index),
78
60
  id: String(index),
79
61
  value: ''
80
62
  });
81
- }; // Find a good cursor position *after* an inserted node.
82
-
63
+ };
83
64
 
65
+ // Find a good cursor position *after* an inserted node.
84
66
  var selectionAfterPos = function selectionAfterPos(doc, pos) {
85
67
  var $pos = doc.resolve(Math.min(pos, doc.content.size));
86
68
  return _prosemirrorState.TextSelection.near($pos, 1);
87
69
  };
88
-
89
- var ResponseAreaExtension = _core.Extension.create({
70
+ var ResponseAreaExtension = exports.ResponseAreaExtension = _core.Extension.create({
90
71
  name: 'responseArea',
91
72
  addOptions: function addOptions() {
92
73
  return {
@@ -99,11 +80,9 @@ var ResponseAreaExtension = _core.Extension.create({
99
80
  },
100
81
  addProseMirrorPlugins: function addProseMirrorPlugins() {
101
82
  var _this = this;
102
-
103
83
  if (!this.options.type) {
104
84
  return [];
105
85
  }
106
-
107
86
  var typeName = normalizeType(this.options.type);
108
87
  var key = new _prosemirrorState.PluginKey("response-area-watcher:".concat(typeName));
109
88
  return [new _prosemirrorState.Plugin({
@@ -112,36 +91,30 @@ var ResponseAreaExtension = _core.Extension.create({
112
91
  // Lazy init lastIndexMap[typeName]
113
92
  if (lastIndexMap[typeName] === undefined) {
114
93
  lastIndexMap[typeName] = 0;
115
-
116
94
  _view.state.doc.descendants(function (node) {
117
95
  if (node.type && node.type.name === typeName) {
118
96
  var idx = getAttrIndex(node);
119
-
120
97
  if (idx != null) {
121
98
  var n = parseInt(idx, 10);
122
-
123
99
  if (!Number.isNaN(n) && n > lastIndexMap[typeName]) {
124
100
  lastIndexMap[typeName] = n;
125
101
  }
126
102
  }
127
103
  }
128
-
129
104
  return true;
130
105
  });
131
106
  }
132
-
133
107
  return {
134
108
  update: function update(view, prevState) {
135
109
  var state = view.state;
136
110
  if (prevState.doc.eq(state.doc)) return;
137
111
  var currentList = collectNodesOfType(state.doc, typeName);
138
112
  var oldList = collectNodesOfType(prevState.doc, typeName);
139
-
140
113
  if (_this.options.toolbar) {
141
114
  _this.options.toolbar.disabled = currentList.length >= _this.options.maxResponseAreas;
142
- } // Removed elements (same logic as Slate)
143
-
115
+ }
144
116
 
117
+ // Removed elements (same logic as Slate)
145
118
  if (oldList.length > currentList.length) {
146
119
  var currentIndexSet = new Set(currentList.map(function (x) {
147
120
  return x.index;
@@ -149,7 +122,6 @@ var ResponseAreaExtension = _core.Extension.create({
149
122
  var removed = oldList.filter(function (x) {
150
123
  return !currentIndexSet.has(x.index);
151
124
  });
152
-
153
125
  if (removed.length && typeof _this.options.onHandleAreaChange === 'function') {
154
126
  _this.options.onHandleAreaChange(removed);
155
127
  }
@@ -161,40 +133,42 @@ var ResponseAreaExtension = _core.Extension.create({
161
133
  },
162
134
  addCommands: function addCommands() {
163
135
  var _this2 = this;
164
-
165
136
  return {
166
137
  insertResponseArea: function insertResponseArea(type) {
167
138
  return function (_ref2) {
168
139
  var tr = _ref2.tr,
169
- state = _ref2.state,
170
- dispatch = _ref2.dispatch,
171
- commands = _ref2.commands;
172
- var typeName = normalizeType(type); // --- Slate: currentRespAreaList + max check ---
140
+ state = _ref2.state,
141
+ dispatch = _ref2.dispatch,
142
+ commands = _ref2.commands;
143
+ var typeName = normalizeType(type);
173
144
 
145
+ // --- Slate: currentRespAreaList + max check ---
174
146
  var currentCount = countNodesOfType(state.doc, typeName);
175
-
176
147
  if (currentCount >= _this2.options.maxResponseAreas) {
177
148
  return false;
178
- } // --- Slate: indexing logic (kept identical) ---
179
-
149
+ }
180
150
 
151
+ // --- Slate: indexing logic (kept identical) ---
181
152
  if (lastIndexMap[typeName] === undefined) lastIndexMap[typeName] = 0;
182
153
  var prevIndex = lastIndexMap[typeName];
183
- var newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1; // Slate increments map even if newIndex === 0
154
+ var newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;
184
155
 
156
+ // Slate increments map even if newIndex === 0
185
157
  lastIndexMap[typeName] += 1;
186
158
  var newInline = getDefaultNode({
187
159
  schema: state.schema,
188
160
  typeName: typeName,
189
161
  index: newIndex
190
162
  });
191
- if (!newInline) return false; // --- Insert logic ---
163
+ if (!newInline) return false;
192
164
 
165
+ // --- Insert logic ---
193
166
  var selection = state.selection;
194
- var insertPos = selection.from; // If we're in a NodeSelection, insert before/after is ambiguous;
167
+ var insertPos = selection.from;
168
+
169
+ // If we're in a NodeSelection, insert before/after is ambiguous;
195
170
  // We'll insert at its "from" (like your current code).
196
171
  // If insertion fails, we fallback to end of doc.
197
-
198
172
  var tryInsertAt = function tryInsertAt(pos) {
199
173
  try {
200
174
  tr.insert(pos, newInline);
@@ -203,19 +177,20 @@ var ResponseAreaExtension = _core.Extension.create({
203
177
  return null;
204
178
  }
205
179
  };
180
+ var usedPos = tryInsertAt(insertPos);
206
181
 
207
- var usedPos = tryInsertAt(insertPos); // Slate branch: "markup empty and there's no focus"
182
+ // Slate branch: "markup empty and there's no focus"
208
183
  // ProseMirror doesn't expose "no focus" the same way, so the closest
209
184
  // equivalent fallback is inserting at end of document.
210
-
211
185
  if (usedPos == null) {
212
186
  usedPos = tryInsertAt(tr.doc.content.size);
213
187
  }
188
+ if (usedPos == null) return false;
214
189
 
215
- if (usedPos == null) return false; // Optionally select the node you just inserted (like your original command)
190
+ // Optionally select the node you just inserted (like your original command)
216
191
  // tr.setSelection(NodeSelection.create(tr.doc, usedPos))
217
- // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---
218
192
 
193
+ // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---
219
194
  if (['math_templated', 'inline_dropdown', 'drag_in_the_blank', 'explicit_constructed_response'].includes(typeName)) {
220
195
  tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, usedPos));
221
196
  } else {
@@ -223,21 +198,19 @@ var ResponseAreaExtension = _core.Extension.create({
223
198
  var after = usedPos + newInline.nodeSize;
224
199
  tr.setSelection(selectionAfterPos(tr.doc, after));
225
200
  }
226
-
227
201
  if (dispatch) {
228
202
  commands.focus();
229
203
  dispatch(tr);
230
204
  }
231
-
232
205
  return true;
233
206
  };
234
207
  },
235
208
  refreshResponseArea: function refreshResponseArea() {
236
209
  return function (_ref3) {
237
210
  var tr = _ref3.tr,
238
- state = _ref3.state,
239
- commands = _ref3.commands,
240
- dispatch = _ref3.dispatch;
211
+ state = _ref3.state,
212
+ commands = _ref3.commands,
213
+ dispatch = _ref3.dispatch;
241
214
  var selection = state.selection;
242
215
  var node = selection.$from.nodeAfter;
243
216
  var nodePos = selection.from;
@@ -245,26 +218,21 @@ var ResponseAreaExtension = _core.Extension.create({
245
218
  updated: "".concat(Date.now())
246
219
  }));
247
220
  tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, nodePos));
248
-
249
221
  if (dispatch) {
250
222
  commands.focus();
251
223
  dispatch(tr);
252
224
  }
253
-
254
225
  return true;
255
226
  };
256
227
  }
257
228
  };
258
229
  }
259
230
  });
231
+
260
232
  /**
261
233
  * ExplicitConstructedResponse Node
262
234
  */
263
-
264
-
265
- exports.ResponseAreaExtension = ResponseAreaExtension;
266
-
267
- var ExplicitConstructedResponseNode = _react2.Node.create({
235
+ var ExplicitConstructedResponseNode = exports.ExplicitConstructedResponseNode = _react2.Node.create({
268
236
  name: 'explicit_constructed_response',
269
237
  group: 'inline',
270
238
  inline: true,
@@ -303,7 +271,6 @@ var ExplicitConstructedResponseNode = _react2.Node.create({
303
271
  },
304
272
  addNodeView: function addNodeView() {
305
273
  var _this3 = this;
306
-
307
274
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
308
275
  return /*#__PURE__*/_react["default"].createElement(_ExplicitConstructedResponse["default"], _objectSpread(_objectSpread({}, props), {}, {
309
276
  options: _this3.options
@@ -311,14 +278,11 @@ var ExplicitConstructedResponseNode = _react2.Node.create({
311
278
  });
312
279
  }
313
280
  });
281
+
314
282
  /**
315
283
  * MathTemplated Node
316
284
  */
317
-
318
-
319
- exports.ExplicitConstructedResponseNode = ExplicitConstructedResponseNode;
320
-
321
- var MathTemplatedNode = _react2.Node.create({
285
+ var MathTemplatedNode = exports.MathTemplatedNode = _react2.Node.create({
322
286
  name: 'math_templated',
323
287
  group: 'inline',
324
288
  inline: true,
@@ -361,14 +325,11 @@ var MathTemplatedNode = _react2.Node.create({
361
325
  });
362
326
  }
363
327
  });
328
+
364
329
  /**
365
330
  * DragInTheBlank Node
366
331
  */
367
-
368
-
369
- exports.MathTemplatedNode = MathTemplatedNode;
370
-
371
- var DragInTheBlankNode = _react2.Node.create({
332
+ var DragInTheBlankNode = exports.DragInTheBlankNode = _react2.Node.create({
372
333
  name: 'drag_in_the_blank',
373
334
  group: 'inline',
374
335
  inline: true,
@@ -417,7 +378,6 @@ var DragInTheBlankNode = _react2.Node.create({
417
378
  },
418
379
  addNodeView: function addNodeView() {
419
380
  var _this4 = this;
420
-
421
381
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
422
382
  return /*#__PURE__*/_react["default"].createElement(_DragInTheBlank["default"], _objectSpread(_objectSpread({}, props), {}, {
423
383
  options: _this4.options
@@ -425,14 +385,11 @@ var DragInTheBlankNode = _react2.Node.create({
425
385
  });
426
386
  }
427
387
  });
388
+
428
389
  /**
429
390
  * InlineDropdown Node
430
391
  */
431
-
432
-
433
- exports.DragInTheBlankNode = DragInTheBlankNode;
434
-
435
- var InlineDropdownNode = _react2.Node.create({
392
+ var InlineDropdownNode = exports.InlineDropdownNode = _react2.Node.create({
436
393
  name: 'inline_dropdown',
437
394
  group: 'inline',
438
395
  inline: true,
@@ -471,7 +428,6 @@ var InlineDropdownNode = _react2.Node.create({
471
428
  },
472
429
  addNodeView: function addNodeView() {
473
430
  var _this5 = this;
474
-
475
431
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
476
432
  return /*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], _objectSpread(_objectSpread({}, props), {}, {
477
433
  options: _this5.options
@@ -479,6 +435,4 @@ var InlineDropdownNode = _react2.Node.create({
479
435
  });
480
436
  }
481
437
  });
482
-
483
- exports.InlineDropdownNode = InlineDropdownNode;
484
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3Jlc3BvbnNlQXJlYS5qcyJdLCJuYW1lcyI6WyJsYXN0SW5kZXhNYXAiLCJub3JtYWxpemVUeXBlIiwidHlwZSIsIlN0cmluZyIsInJlcGxhY2UiLCJnZXRBdHRySW5kZXgiLCJub2RlIiwiYXR0cnMiLCJpbmRleCIsImNvbGxlY3ROb2Rlc09mVHlwZSIsImRvYyIsInR5cGVOYW1lIiwicmVzdWx0cyIsImRlc2NlbmRhbnRzIiwicG9zIiwibmFtZSIsInB1c2giLCJjb3VudE5vZGVzT2ZUeXBlIiwiY291bnQiLCJnZXREZWZhdWx0Tm9kZSIsInNjaGVtYSIsIm5vZGVUeXBlIiwibm9kZXMiLCJjcmVhdGUiLCJpZCIsInZhbHVlIiwic2VsZWN0aW9uQWZ0ZXJQb3MiLCIkcG9zIiwicmVzb2x2ZSIsIk1hdGgiLCJtaW4iLCJjb250ZW50Iiwic2l6ZSIsIlRleHRTZWxlY3Rpb24iLCJuZWFyIiwiUmVzcG9uc2VBcmVhRXh0ZW5zaW9uIiwiRXh0ZW5zaW9uIiwiYWRkT3B0aW9ucyIsIm1heFJlc3BvbnNlQXJlYXMiLCJlcnJvciIsIm9wdGlvbnMiLCJyZXNwQXJlYVRvb2xiYXIiLCJvbkhhbmRsZUFyZWFDaGFuZ2UiLCJhZGRQcm9zZU1pcnJvclBsdWdpbnMiLCJrZXkiLCJQbHVnaW5LZXkiLCJQbHVnaW4iLCJ2aWV3IiwidW5kZWZpbmVkIiwic3RhdGUiLCJpZHgiLCJuIiwicGFyc2VJbnQiLCJOdW1iZXIiLCJpc05hTiIsInVwZGF0ZSIsInByZXZTdGF0ZSIsImVxIiwiY3VycmVudExpc3QiLCJvbGRMaXN0IiwidG9vbGJhciIsImRpc2FibGVkIiwibGVuZ3RoIiwiY3VycmVudEluZGV4U2V0IiwiU2V0IiwibWFwIiwieCIsInJlbW92ZWQiLCJmaWx0ZXIiLCJoYXMiLCJhZGRDb21tYW5kcyIsImluc2VydFJlc3BvbnNlQXJlYSIsInRyIiwiZGlzcGF0Y2giLCJjb21tYW5kcyIsImN1cnJlbnRDb3VudCIsInByZXZJbmRleCIsIm5ld0luZGV4IiwibmV3SW5saW5lIiwic2VsZWN0aW9uIiwiaW5zZXJ0UG9zIiwiZnJvbSIsInRyeUluc2VydEF0IiwiaW5zZXJ0IiwiZSIsInVzZWRQb3MiLCJpbmNsdWRlcyIsInNldFNlbGVjdGlvbiIsIk5vZGVTZWxlY3Rpb24iLCJhZnRlciIsIm5vZGVTaXplIiwiZm9jdXMiLCJyZWZyZXNoUmVzcG9uc2VBcmVhIiwiJGZyb20iLCJub2RlQWZ0ZXIiLCJub2RlUG9zIiwic2V0Tm9kZU1hcmt1cCIsInVwZGF0ZWQiLCJEYXRlIiwibm93IiwiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSIsIk5vZGUiLCJncm91cCIsImlubGluZSIsImF0b20iLCJhZGRBdHRyaWJ1dGVzIiwicGFyc2VIVE1MIiwidGFnIiwiZ2V0QXR0cnMiLCJlbCIsImRhdGFzZXQiLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsInByb3BzIiwiTWF0aFRlbXBsYXRlZE5vZGUiLCJEcmFnSW5UaGVCbGFua05vZGUiLCJpblRhYmxlIiwiSW5saW5lRHJvcGRvd25Ob2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxZQUFZLEdBQUcsRUFBckI7O0FBRUEsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxJQUFEO0FBQUEsU0FBVUMsTUFBTSxDQUFDRCxJQUFJLElBQUksRUFBVCxDQUFOLENBQW1CRSxPQUFuQixDQUEyQixJQUEzQixFQUFpQyxHQUFqQyxDQUFWO0FBQUEsQ0FBdEI7O0FBRUEsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsSUFBRDtBQUFBLFNBQVdBLElBQUksSUFBSUEsSUFBSSxDQUFDQyxLQUFiLElBQXNCRCxJQUFJLENBQUNDLEtBQUwsQ0FBV0MsS0FBWCxJQUFvQixJQUExQyxHQUFpREwsTUFBTSxDQUFDRyxJQUFJLENB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V0FBTyxDQUNMO0FBQ0VDLE1BQUFBLEdBQUcsRUFBRSxtQ0FEUDtBQUVFQyxNQUFBQSxRQUFRLEVBQUUsa0JBQUNDLEVBQUQ7QUFBQSxlQUFTO0FBQ2pCckcsVUFBQUEsS0FBSyxFQUFFcUcsRUFBRSxDQUFDQyxPQUFILENBQVd0RyxLQUREO0FBRWpCaUIsVUFBQUEsS0FBSyxFQUFFb0YsRUFBRSxDQUFDQyxPQUFILENBQVdyRjtBQUZELFNBQVQ7QUFBQTtBQUZaLEtBREssQ0FBUDtBQVNELEdBdEIyQztBQXVCNUNzRixFQUFBQSxVQXZCNEMsNkJBdUJiO0FBQUEsUUFBbEJDLGNBQWtCLFNBQWxCQSxjQUFrQjtBQUM3QixXQUFPLENBQ0wsTUFESyxFQUVMO0FBQ0UsbUJBQWEsaUJBRGY7QUFFRSxvQkFBY0EsY0FBYyxDQUFDeEcsS0FGL0I7QUFHRSxvQkFBY3dHLGNBQWMsQ0FBQ3ZGO0FBSC9CLEtBRkssQ0FBUDtBQVFELEdBaEMyQztBQWlDNUN3RixFQUFBQSxXQWpDNEMseUJBaUM5QjtBQUFBOztBQUNaLFdBQU8sbUNBQXNCLFVBQUNDLEtBQUQ7QUFBQSwwQkFBVyxnQ0FBQywwQkFBRCxrQ0FBeUJBLEtBQXpCO0FBQWdDMUUsUUFBQUEsT0FBTyxFQUFFLE1BQUksQ0FBQ0E7QUFBOUMsU0FBWDtBQUFBLEtBQXRCLENBQVA7QUFDRDtBQW5DMkMsQ0FBWixDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQbHVnaW4sIFBsdWdpbktleSwgVGV4dFNlbGVjdGlvbiwgTm9kZVNlbGVjdGlvbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7IEV4dGVuc2lvbiB9IGZyb20gJ0B0aXB0YXAvY29yZSc7XG5pbXBvcnQgeyBOb2RlLCBSZWFjdE5vZGVWaWV3UmVuZGVyZXIgfSBmcm9tICdAdGlwdGFwL3JlYWN0JztcbmltcG9ydCBFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2UgZnJvbSAnLi4vY29tcG9uZW50cy9yZXNwQXJlYS9FeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2UnO1xuaW1wb3J0IERyYWdJblRoZUJsYW5rIGZyb20gJy4uL2NvbXBvbmVudHMvcmVzcEFyZWEvRHJhZ0luVGhlQmxhbmsvRHJhZ0luVGhlQmxhbmsnO1xuaW1wb3J0IElubGluZURyb3Bkb3duIGZyb20gJy4uL2NvbXBvbmVudHMvcmVzcEFyZWEvSW5saW5lRHJvcGRvd24nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgbGFzdEluZGV4TWFwID0ge307XG5cbmNvbnN0IG5vcm1hbGl6ZVR5cGUgPSAodHlwZSkgPT4gU3RyaW5nKHR5cGUgfHwgJycpLnJlcGxhY2UoLy0vZywgJ18nKTtcblxuY29uc3QgZ2V0QXR0ckluZGV4ID0gKG5vZGUpID0+IChub2RlICYmIG5vZGUuYXR0cnMgJiYgbm9kZS5hdHRycy5pbmRleCAhPSBudWxsID8gU3RyaW5nKG5vZGUuYXR0cnMuaW5kZXgpIDogbnVsbCk7XG5cbmNvbnN0IGNvbGxlY3ROb2Rlc09mVHlwZSA9IChkb2MsIHR5cGVOYW1lKSA9PiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICBkb2MuZGVzY2VuZGFudHMoKG5vZGUsIHBvcykgPT4ge1xuICAgIGlmIChub2RlLnR5cGUgJiYgbm9kZS50eXBlLm5hbWUgPT09IHR5cGVOYW1lKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGdldEF0dHJJbmRleChub2RlKTtcbiAgICAgIGlmIChpbmRleCAhPSBudWxsKSByZXN1bHRzLnB1c2goeyBpbmRleCwgcG9zLCBub2RlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59O1xuXG5jb25zdCBjb3VudE5vZGVzT2ZUeXBlID0gKGRvYywgdHlwZU5hbWUpID0+IHtcbiAgbGV0IGNvdW50ID0gMDtcbiAgZG9jLmRlc2NlbmRhbnRzKChub2RlKSA9PiB7XG4gICAgaWYgKG5vZGUudHlwZSAmJiBub2RlLnR5cGUubmFtZSA9PT0gdHlwZU5hbWUpIGNvdW50ICs9IDE7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuICByZXR1cm4gY291bnQ7XG59O1xuXG5jb25zdCBnZXREZWZhdWx0Tm9kZSA9ICh7IHNjaGVtYSwgdHlwZU5hbWUsIGluZGV4IH0pID0+IHtcbiAgY29uc3Qgbm9kZVR5cGUgPSBzY2hlbWEubm9kZXNbdHlwZU5hbWVdO1xuICBpZiAoIW5vZGVUeXBlKSByZXR1cm4gbnVsbDtcblxuICAvLyBtaXJyb3IgeW91ciBTbGF0ZSBcImdldERlZmF1bHRFbGVtZW50KG9wdHMsIG5ld0luZGV4KVwiXG4gIC8vIGN1c3RvbWl6ZSBhdHRycyBhcyBuZWVkZWQ6XG4gIHJldHVybiBub2RlVHlwZS5jcmVhdGUoe1xuICAgIGluZGV4OiBTdHJpbmcoaW5kZXgpLFxuICAgIGlkOiBTdHJpbmcoaW5kZXgpLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG59O1xuXG4vLyBGaW5kIGEgZ29vZCBjdXJzb3IgcG9zaXRpb24gKmFmdGVyKiBhbiBpbnNlcnRlZCBub2RlLlxuY29uc3Qgc2VsZWN0aW9uQWZ0ZXJQb3MgPSAoZG9jLCBwb3MpID0+IHtcbiAgY29uc3QgJHBvcyA9IGRvYy5yZXNvbHZlKE1hdGgubWluKHBvcywgZG9jLmNvbnRlbnQuc2l6ZSkpO1xuICByZXR1cm4gVGV4dFNlbGVjdGlvbi5uZWFyKCRwb3MsIDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IFJlc3BvbnNlQXJlYUV4dGVuc2lvbiA9IEV4dGVuc2lvbi5jcmVhdGUoe1xuICBuYW1lOiAncmVzcG9uc2VBcmVhJyxcblxuICBhZGRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtYXhSZXNwb25zZUFyZWFzOiBudWxsLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBvcHRpb25zOiBudWxsLFxuICAgICAgcmVzcEFyZWFUb29sYmFyOiBudWxsLFxuICAgICAgb25IYW5kbGVBcmVhQ2hhbmdlOiBudWxsLFxuICAgIH07XG4gIH0sXG5cbiAgYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnR5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IG5vcm1hbGl6ZVR5cGUodGhpcy5vcHRpb25zLnR5cGUpO1xuICAgIGNvbnN0IGtleSA9IG5ldyBQbHVnaW5LZXkoYHJlc3BvbnNlLWFyZWEtd2F0Y2hlcjoke3R5cGVOYW1lfWApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBQbHVnaW4oe1xuICAgICAgICBrZXksXG5cbiAgICAgICAgdmlldzogKHZpZXcpID0+IHtcbiAgICAgICAgICAvLyBMYXp5IGluaXQgbGFzdEluZGV4TWFwW3R5cGVOYW1lXVxuICAgICAgICAgIGlmIChsYXN0SW5kZXhNYXBbdHlwZU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxhc3RJbmRleE1hcFt0eXBlTmFtZV0gPSAwO1xuXG4gICAgICAgICAgICB2aWV3LnN0YXRlLmRvYy5kZXNjZW5kYW50cygobm9kZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAobm9kZS50eXBlICYmIG5vZGUudHlwZS5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IGdldEF0dHJJbmRleChub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChpZHgsIDEwKTtcbiAgICAgICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG4pICYmIG4gPiBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleE1hcFt0eXBlTmFtZV0gPSBuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cGRhdGU6ICh2aWV3LCBwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB2aWV3LnN0YXRlO1xuICAgICAgICAgICAgICBpZiAocHJldlN0YXRlLmRvYy5lcShzdGF0ZS5kb2MpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpc3QgPSBjb2xsZWN0Tm9kZXNPZlR5cGUoc3RhdGUuZG9jLCB0eXBlTmFtZSk7XG4gICAgICAgICAgICAgIGNvbnN0IG9sZExpc3QgPSBjb2xsZWN0Tm9kZXNPZlR5cGUocHJldlN0YXRlLmRvYywgdHlwZU5hbWUpO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9vbGJhcikge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy50b29sYmFyLmRpc2FibGVkID0gY3VycmVudExpc3QubGVuZ3RoID49IHRoaXMub3B0aW9ucy5tYXhSZXNwb25zZUFyZWFzO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gUmVtb3ZlZCBlbGVtZW50cyAoc2FtZSBsb2dpYyBhcyBTbGF0ZSlcbiAgICAgICAgICAgICAgaWYgKG9sZExpc3QubGVuZ3RoID4gY3VycmVudExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4U2V0ID0gbmV3IFNldChjdXJyZW50TGlzdC5tYXAoKHgpID0+IHguaW5kZXgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBvbGRMaXN0LmZpbHRlcigoeCkgPT4gIWN1cnJlbnRJbmRleFNldC5oYXMoeC5pbmRleCkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlbW92ZWQubGVuZ3RoICYmIHR5cGVvZiB0aGlzLm9wdGlvbnMub25IYW5kbGVBcmVhQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25IYW5kbGVBcmVhQ2hhbmdlKHJlbW92ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zZXJ0UmVzcG9uc2VBcmVhOiAodHlwZSkgPT4gKHsgdHIsIHN0YXRlLCBkaXNwYXRjaCwgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IG5vcm1hbGl6ZVR5cGUodHlwZSk7XG5cbiAgICAgICAgLy8gLS0tIFNsYXRlOiBjdXJyZW50UmVzcEFyZWFMaXN0ICsgbWF4IGNoZWNrIC0tLVxuICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBjb3VudE5vZGVzT2ZUeXBlKHN0YXRlLmRvYywgdHlwZU5hbWUpO1xuICAgICAgICBpZiAoY3VycmVudENvdW50ID49IHRoaXMub3B0aW9ucy5tYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gLS0tIFNsYXRlOiBpbmRleGluZyBsb2dpYyAoa2VwdCBpZGVudGljYWwpIC0tLVxuICAgICAgICBpZiAobGFzdEluZGV4TWFwW3R5cGVOYW1lXSA9PT0gdW5kZWZpbmVkKSBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdID0gMDtcblxuICAgICAgICBjb25zdCBwcmV2SW5kZXggPSBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IHByZXZJbmRleCA9PT0gMCA/IHByZXZJbmRleCA6IHByZXZJbmRleCArIDE7XG5cbiAgICAgICAgLy8gU2xhdGUgaW5jcmVtZW50cyBtYXAgZXZlbiBpZiBuZXdJbmRleCA9PT0gMFxuICAgICAgICBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdICs9IDE7XG5cbiAgICAgICAgY29uc3QgbmV3SW5saW5lID0gZ2V0RGVmYXVsdE5vZGUoe1xuICAgICAgICAgIHNjaGVtYTogc3RhdGUuc2NoZW1hLFxuICAgICAgICAgIHR5cGVOYW1lLFxuICAgICAgICAgIGluZGV4OiBuZXdJbmRleCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFuZXdJbmxpbmUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAvLyAtLS0gSW5zZXJ0IGxvZ2ljIC0tLVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gc3RhdGU7XG4gICAgICAgIGxldCBpbnNlcnRQb3MgPSBzZWxlY3Rpb24uZnJvbTtcblxuICAgICAgICAvLyBJZiB3ZSdyZSBpbiBhIE5vZGVTZWxlY3Rpb24sIGluc2VydCBiZWZvcmUvYWZ0ZXIgaXMgYW1iaWd1b3VzO1xuICAgICAgICAvLyBXZSdsbCBpbnNlcnQgYXQgaXRzIFwiZnJvbVwiIChsaWtlIHlvdXIgY3VycmVudCBjb2RlKS5cbiAgICAgICAgLy8gSWYgaW5zZXJ0aW9uIGZhaWxzLCB3ZSBmYWxsYmFjayB0byBlbmQgb2YgZG9jLlxuICAgICAgICBjb25zdCB0cnlJbnNlcnRBdCA9IChwb3MpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHIuaW5zZXJ0KHBvcywgbmV3SW5saW5lKTtcbiAgICAgICAgICAgIHJldHVybiBwb3M7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCB1c2VkUG9zID0gdHJ5SW5zZXJ0QXQoaW5zZXJ0UG9zKTtcblxuICAgICAgICAvLyBTbGF0ZSBicmFuY2g6IFwibWFya3VwIGVtcHR5IGFuZCB0aGVyZSdzIG5vIGZvY3VzXCJcbiAgICAgICAgLy8gUHJvc2VNaXJyb3IgZG9lc24ndCBleHBvc2UgXCJubyBmb2N1c1wiIHRoZSBzYW1lIHdheSwgc28gdGhlIGNsb3Nlc3RcbiAgICAgICAgLy8gZXF1aXZhbGVudCBmYWxsYmFjayBpcyBpbnNlcnRpbmcgYXQgZW5kIG9mIGRvY3VtZW50LlxuICAgICAgICBpZiAodXNlZFBvcyA9PSBudWxsKSB7XG4gICAgICAgICAgdXNlZFBvcyA9IHRyeUluc2VydEF0KHRyLmRvYy5jb250ZW50LnNpemUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VkUG9zID09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAvLyBPcHRpb25hbGx5IHNlbGVjdCB0aGUgbm9kZSB5b3UganVzdCBpbnNlcnRlZCAobGlrZSB5b3VyIG9yaWdpbmFsIGNvbW1hbmQpXG4gICAgICAgIC8vIHRyLnNldFNlbGVjdGlvbihOb2RlU2VsZWN0aW9uLmNyZWF0ZSh0ci5kb2MsIHVzZWRQb3MpKVxuXG4gICAgICAgIC8vIC0tLSBDdXJzb3IgbW92ZSBiZWhhdmlvciBmb3IgY2VydGFpbiB0eXBlcyAoU2xhdGU6IG1vdmVGb2N1c1RvIG5leHQgdGV4dCkgLS0tXG4gICAgICAgIGlmIChcbiAgICAgICAgICBbJ21hdGhfdGVtcGxhdGVkJywgJ2lubGluZV9kcm9wZG93bicsICdkcmFnX2luX3RoZV9ibGFuaycsICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZSddLmluY2x1ZGVzKHR5cGVOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICB0ci5zZXRTZWxlY3Rpb24oTm9kZVNlbGVjdGlvbi5jcmVhdGUodHIuZG9jLCB1c2VkUG9zKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGVmYXVsdDogcHV0IGN1cnNvciBhZnRlciBpbnNlcnRlZCBub2RlXG4gICAgICAgICAgY29uc3QgYWZ0ZXIgPSB1c2VkUG9zICsgbmV3SW5saW5lLm5vZGVTaXplO1xuICAgICAgICAgIHRyLnNldFNlbGVjdGlvbihzZWxlY3Rpb25BZnRlclBvcyh0ci5kb2MsIGFmdGVyKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGlzcGF0Y2gpIHtcbiAgICAgICAgICBjb21tYW5kcy5mb2N1cygpO1xuICAgICAgICAgIGRpc3BhdGNoKHRyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIHJlZnJlc2hSZXNwb25zZUFyZWE6ICgpID0+ICh7IHRyLCBzdGF0ZSwgY29tbWFuZHMsIGRpc3BhdGNoIH0pID0+IHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IHN0YXRlO1xuICAgICAgICBjb25zdCBub2RlID0gc2VsZWN0aW9uLiRmcm9tLm5vZGVBZnRlcjtcbiAgICAgICAgY29uc3Qgbm9kZVBvcyA9IHNlbGVjdGlvbi5mcm9tO1xuXG4gICAgICAgIHRyLnNldE5vZGVNYXJrdXAobm9kZVBvcywgdW5kZWZpbmVkLCB7IC4uLm5vZGUuYXR0cnMsIHVwZGF0ZWQ6IGAke0RhdGUubm93KCl9YCB9KTtcbiAgICAgICAgdHIuc2V0U2VsZWN0aW9uKE5vZGVTZWxlY3Rpb24uY3JlYXRlKHRyLmRvYywgbm9kZVBvcykpO1xuXG4gICAgICAgIGlmIChkaXNwYXRjaCkge1xuICAgICAgICAgIGNvbW1hbmRzLmZvY3VzKCk7XG4gICAgICAgICAgZGlzcGF0Y2godHIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuLyoqXG4gKiBFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2UgTm9kZVxuICovXG5leHBvcnQgY29uc3QgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyxcbiAgZ3JvdXA6ICdpbmxpbmUnLFxuICBpbmxpbmU6IHRydWUsXG4gIGF0b206IHRydWUsXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHZhbHVlOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgICB1cGRhdGVkOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgfTtcbiAgfSxcbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIl0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBlbC5kYXRhc2V0LnZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICAnZGF0YS10eXBlJzogJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyxcbiAgICAgICAgJ2RhdGEtaW5kZXgnOiBIVE1MQXR0cmlidXRlcy5pbmRleCxcbiAgICAgICAgJ2RhdGEtdmFsdWUnOiBIVE1MQXR0cmlidXRlcy52YWx1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2Ugey4uLnsgLi4ucHJvcHMsIG9wdGlvbnM6IHRoaXMub3B0aW9ucyB9fSAvPik7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBNYXRoVGVtcGxhdGVkIE5vZGVcbiAqL1xuZXhwb3J0IGNvbnN0IE1hdGhUZW1wbGF0ZWROb2RlID0gTm9kZS5jcmVhdGUoe1xuICBuYW1lOiAnbWF0aF90ZW1wbGF0ZWQnLFxuICBncm91cDogJ2lubGluZScsXG4gIGlubGluZTogdHJ1ZSxcbiAgYXRvbTogdHJ1ZSxcbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5kZXg6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgdmFsdWU6IHsgZGVmYXVsdDogJycgfSxcbiAgICAgIHVwZGF0ZWQ6IHsgZGVmYXVsdDogJycgfSxcbiAgICB9O1xuICB9LFxuICBwYXJzZUhUTUwoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnc3BhbltkYXRhLXR5cGU9XCJtYXRoX3RlbXBsYXRlZFwiXScsXG4gICAgICAgIGdldEF0dHJzOiAoZWwpID0+ICh7XG4gICAgICAgICAgaW5kZXg6IGVsLmRhdGFzZXQuaW5kZXgsXG4gICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWUsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbXG4gICAgICAnc3BhbicsXG4gICAgICB7XG4gICAgICAgICdkYXRhLXR5cGUnOiAnbWF0aF90ZW1wbGF0ZWQnLFxuICAgICAgICAnZGF0YS1pbmRleCc6IEhUTUxBdHRyaWJ1dGVzLmluZGV4LFxuICAgICAgICAnZGF0YS12YWx1ZSc6IEhUTUxBdHRyaWJ1dGVzLnZhbHVlLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuICBhZGROb2RlVmlldygpIHtcbiAgICByZXR1cm4gUmVhY3ROb2RlVmlld1JlbmRlcmVyKCgpID0+IDxkaXY+PC9kaXY+KTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIERyYWdJblRoZUJsYW5rIE5vZGVcbiAqL1xuZXhwb3J0IGNvbnN0IERyYWdJblRoZUJsYW5rTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ2RyYWdfaW5fdGhlX2JsYW5rJyxcbiAgZ3JvdXA6ICdpbmxpbmUnLFxuICBpbmxpbmU6IHRydWUsXG4gIGF0b206IHRydWUsXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIGlkOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHZhbHVlOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgICBpblRhYmxlOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHVwZGF0ZWQ6IHsgZGVmYXVsdDogJycgfSxcbiAgICB9O1xuICB9LFxuICBwYXJzZUhUTUwoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnc3BhbltkYXRhLXR5cGU9XCJkcmFnX2luX3RoZV9ibGFua1wiXScsXG4gICAgICAgIGdldEF0dHJzOiAoZWwpID0+ICh7XG4gICAgICAgICAgaW5kZXg6IGVsLmRhdGFzZXQuaW5kZXgsXG4gICAgICAgICAgaWQ6IGVsLmRhdGFzZXQuaWQsXG4gICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWUsXG4gICAgICAgICAgaW5UYWJsZTogZWwuZGF0YXNldC5pblRhYmxlLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICAnZGF0YS10eXBlJzogJ2RyYWdfaW5fdGhlX2JsYW5rJyxcbiAgICAgICAgJ2RhdGEtaW5kZXgnOiBIVE1MQXR0cmlidXRlcy5pbmRleCxcbiAgICAgICAgJ2RhdGEtaWQnOiBIVE1MQXR0cmlidXRlcy5pZCxcbiAgICAgICAgJ2RhdGEtdmFsdWUnOiBIVE1MQXR0cmlidXRlcy52YWx1ZSxcbiAgICAgICAgJ2RhdGEtaW4tdGFibGUnOiBIVE1MQXR0cmlidXRlcy5pblRhYmxlLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuICBhZGROb2RlVmlldygpIHtcbiAgICByZXR1cm4gUmVhY3ROb2RlVmlld1JlbmRlcmVyKChwcm9wcykgPT4gPERyYWdJblRoZUJsYW5rIHsuLi57IC4uLnByb3BzLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfX0gLz4pO1xuICB9LFxufSk7XG5cbi8qKlxuICogSW5saW5lRHJvcGRvd24gTm9kZVxuICovXG5leHBvcnQgY29uc3QgSW5saW5lRHJvcGRvd25Ob2RlID0gTm9kZS5jcmVhdGUoe1xuICBuYW1lOiAnaW5saW5lX2Ryb3Bkb3duJyxcbiAgZ3JvdXA6ICdpbmxpbmUnLFxuICBpbmxpbmU6IHRydWUsXG4gIGF0b206IHRydWUsXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHZhbHVlOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgICB1cGRhdGVkOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgfTtcbiAgfSxcbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCJdJyxcbiAgICAgICAgZ2V0QXR0cnM6IChlbCkgPT4gKHtcbiAgICAgICAgICBpbmRleDogZWwuZGF0YXNldC5pbmRleCxcbiAgICAgICAgICB2YWx1ZTogZWwuZGF0YXNldC52YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG4gIHJlbmRlckhUTUwoeyBIVE1MQXR0cmlidXRlcyB9KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdzcGFuJyxcbiAgICAgIHtcbiAgICAgICAgJ2RhdGEtdHlwZSc6ICdpbmxpbmVfZHJvcGRvd24nLFxuICAgICAgICAnZGF0YS1pbmRleCc6IEhUTUxBdHRyaWJ1dGVzLmluZGV4LFxuICAgICAgICAnZGF0YS12YWx1ZSc6IEhUTUxBdHRyaWJ1dGVzLnZhbHVlLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuICBhZGROb2RlVmlldygpIHtcbiAgICByZXR1cm4gUmVhY3ROb2RlVmlld1JlbmRlcmVyKChwcm9wcykgPT4gPElubGluZURyb3Bkb3duIHsuLi57IC4uLnByb3BzLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfX0gLz4pO1xuICB9LFxufSk7XG4iXX0=
438
+ //# sourceMappingURL=responseArea.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/extensions/responseArea.js"],"names":["lastIndexMap","normalizeType","type","String","replace","getAttrIndex","node","attrs","index","collectNodesOfType","doc","typeName","results","descendants","pos","name","push","countNodesOfType","count","getDefaultNode","schema","nodeType","nodes","create","id","value","selectionAfterPos","$pos","resolve","Math","min","content","size","TextSelection","near","ResponseAreaExtension","Extension","addOptions","maxResponseAreas","error","options","respAreaToolbar","onHandleAreaChange","addProseMirrorPlugins","key","PluginKey","Plugin","view","undefined","state","idx","n","parseInt","Number","isNaN","update","prevState","eq","currentList","oldList","toolbar","disabled","length","currentIndexSet","Set","map","x","removed","filter","has","addCommands","insertResponseArea","tr","dispatch","commands","currentCount","prevIndex","newIndex","newInline","selection","insertPos","from","tryInsertAt","insert","e","usedPos","includes","setSelection","NodeSelection","after","nodeSize","focus","refreshResponseArea","$from","nodeAfter","nodePos","setNodeMarkup","updated","Date","now","ExplicitConstructedResponseNode","Node","group","inline","atom","addAttributes","parseHTML","tag","getAttrs","el","dataset","renderHTML","HTMLAttributes","addNodeView","props","MathTemplatedNode","DragInTheBlankNode","inTable","InlineDropdownNode"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Plugin, PluginKey, TextSelection, NodeSelection } from 'prosemirror-state';\nimport { Extension } from '@tiptap/core';\nimport { Node, ReactNodeViewRenderer } from '@tiptap/react';\nimport ExplicitConstructedResponse from '../components/respArea/ExplicitConstructedResponse';\nimport DragInTheBlank from '../components/respArea/DragInTheBlank/DragInTheBlank';\nimport InlineDropdown from '../components/respArea/InlineDropdown';\nimport PropTypes from 'prop-types';\n\nconst lastIndexMap = {};\n\nconst normalizeType = (type) => String(type || '').replace(/-/g, '_');\n\nconst getAttrIndex = (node) => (node && node.attrs && node.attrs.index != null ? String(node.attrs.index) : null);\n\nconst collectNodesOfType = (doc, typeName) => {\n const results = [];\n\n doc.descendants((node, pos) => {\n if (node.type && node.type.name === typeName) {\n const index = getAttrIndex(node);\n if (index != null) results.push({ index, pos, node });\n }\n return true;\n });\n\n return results;\n};\n\nconst countNodesOfType = (doc, typeName) => {\n let count = 0;\n doc.descendants((node) => {\n if (node.type && node.type.name === typeName) count += 1;\n return true;\n });\n return count;\n};\n\nconst getDefaultNode = ({ schema, typeName, index }) => {\n const nodeType = schema.nodes[typeName];\n if (!nodeType) return null;\n\n // mirror your Slate \"getDefaultElement(opts, newIndex)\"\n // customize attrs as needed:\n return nodeType.create({\n index: String(index),\n id: String(index),\n value: '',\n });\n};\n\n// Find a good cursor position *after* an inserted node.\nconst selectionAfterPos = (doc, pos) => {\n const $pos = doc.resolve(Math.min(pos, doc.content.size));\n return TextSelection.near($pos, 1);\n};\n\nexport const ResponseAreaExtension = Extension.create({\n name: 'responseArea',\n\n addOptions() {\n return {\n maxResponseAreas: null,\n error: null,\n options: null,\n respAreaToolbar: null,\n onHandleAreaChange: null,\n };\n },\n\n addProseMirrorPlugins() {\n if (!this.options.type) {\n return [];\n }\n\n const typeName = normalizeType(this.options.type);\n const key = new PluginKey(`response-area-watcher:${typeName}`);\n\n return [\n new Plugin({\n key,\n\n view: (view) => {\n // Lazy init lastIndexMap[typeName]\n if (lastIndexMap[typeName] === undefined) {\n lastIndexMap[typeName] = 0;\n\n view.state.doc.descendants((node) => {\n if (node.type && node.type.name === typeName) {\n const idx = getAttrIndex(node);\n if (idx != null) {\n const n = parseInt(idx, 10);\n if (!Number.isNaN(n) && n > lastIndexMap[typeName]) {\n lastIndexMap[typeName] = n;\n }\n }\n }\n return true;\n });\n }\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n if (prevState.doc.eq(state.doc)) return;\n\n const currentList = collectNodesOfType(state.doc, typeName);\n const oldList = collectNodesOfType(prevState.doc, typeName);\n\n if (this.options.toolbar) {\n this.options.toolbar.disabled = currentList.length >= this.options.maxResponseAreas;\n }\n\n // Removed elements (same logic as Slate)\n if (oldList.length > currentList.length) {\n const currentIndexSet = new Set(currentList.map((x) => x.index));\n\n const removed = oldList.filter((x) => !currentIndexSet.has(x.index));\n\n if (removed.length && typeof this.options.onHandleAreaChange === 'function') {\n this.options.onHandleAreaChange(removed);\n }\n }\n },\n };\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n insertResponseArea: (type) => ({ tr, state, dispatch, commands }) => {\n const typeName = normalizeType(type);\n\n // --- Slate: currentRespAreaList + max check ---\n const currentCount = countNodesOfType(state.doc, typeName);\n if (currentCount >= this.options.maxResponseAreas) {\n return false;\n }\n\n // --- Slate: indexing logic (kept identical) ---\n if (lastIndexMap[typeName] === undefined) lastIndexMap[typeName] = 0;\n\n const prevIndex = lastIndexMap[typeName];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n\n // Slate increments map even if newIndex === 0\n lastIndexMap[typeName] += 1;\n\n const newInline = getDefaultNode({\n schema: state.schema,\n typeName,\n index: newIndex,\n });\n\n if (!newInline) return false;\n\n // --- Insert logic ---\n const { selection } = state;\n let insertPos = selection.from;\n\n // If we're in a NodeSelection, insert before/after is ambiguous;\n // We'll insert at its \"from\" (like your current code).\n // If insertion fails, we fallback to end of doc.\n const tryInsertAt = (pos) => {\n try {\n tr.insert(pos, newInline);\n return pos;\n } catch (e) {\n return null;\n }\n };\n\n let usedPos = tryInsertAt(insertPos);\n\n // Slate branch: \"markup empty and there's no focus\"\n // ProseMirror doesn't expose \"no focus\" the same way, so the closest\n // equivalent fallback is inserting at end of document.\n if (usedPos == null) {\n usedPos = tryInsertAt(tr.doc.content.size);\n }\n if (usedPos == null) return false;\n\n // Optionally select the node you just inserted (like your original command)\n // tr.setSelection(NodeSelection.create(tr.doc, usedPos))\n\n // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---\n if (\n ['math_templated', 'inline_dropdown', 'drag_in_the_blank', 'explicit_constructed_response'].includes(typeName)\n ) {\n tr.setSelection(NodeSelection.create(tr.doc, usedPos));\n } else {\n // Default: put cursor after inserted node\n const after = usedPos + newInline.nodeSize;\n tr.setSelection(selectionAfterPos(tr.doc, after));\n }\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n refreshResponseArea: () => ({ tr, state, commands, dispatch }) => {\n const { selection } = state;\n const node = selection.$from.nodeAfter;\n const nodePos = selection.from;\n\n tr.setNodeMarkup(nodePos, undefined, { ...node.attrs, updated: `${Date.now()}` });\n tr.setSelection(NodeSelection.create(tr.doc, nodePos));\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n };\n },\n});\n\n/**\n * ExplicitConstructedResponse Node\n */\nexport const ExplicitConstructedResponseNode = Node.create({\n name: 'explicit_constructed_response',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"explicit_constructed_response\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'explicit_constructed_response',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ExplicitConstructedResponse {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * MathTemplated Node\n */\nexport const MathTemplatedNode = Node.create({\n name: 'math_templated',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"math_templated\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'math_templated',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer(() => <div></div>);\n },\n});\n\n/**\n * DragInTheBlank Node\n */\nexport const DragInTheBlankNode = Node.create({\n name: 'drag_in_the_blank',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n id: { default: null },\n value: { default: '' },\n inTable: { default: null },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"drag_in_the_blank\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'drag_in_the_blank',\n 'data-index': HTMLAttributes.index,\n 'data-id': HTMLAttributes.id,\n 'data-value': HTMLAttributes.value,\n 'data-in-table': HTMLAttributes.inTable,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <DragInTheBlank {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * InlineDropdown Node\n */\nexport const InlineDropdownNode = Node.create({\n name: 'inline_dropdown',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"inline_dropdown\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'inline_dropdown',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <InlineDropdown {...{ ...props, options: this.options }} />);\n },\n});\n"],"file":"responseArea.js"}
1
+ {"version":3,"file":"responseArea.js","names":["_react","_interopRequireDefault","require","_prosemirrorState","_core","_react2","_ExplicitConstructedResponse","_DragInTheBlank","_InlineDropdown","_propTypes","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","lastIndexMap","normalizeType","type","String","replace","getAttrIndex","node","attrs","index","collectNodesOfType","doc","typeName","results","descendants","pos","name","countNodesOfType","count","getDefaultNode","_ref","schema","nodeType","nodes","create","id","value","selectionAfterPos","$pos","resolve","Math","min","content","size","TextSelection","near","ResponseAreaExtension","exports","Extension","addOptions","maxResponseAreas","error","options","respAreaToolbar","onHandleAreaChange","addProseMirrorPlugins","_this","key","PluginKey","concat","Plugin","view","undefined","state","idx","n","parseInt","Number","isNaN","update","prevState","eq","currentList","oldList","toolbar","disabled","currentIndexSet","Set","map","x","removed","has","addCommands","_this2","insertResponseArea","_ref2","tr","dispatch","commands","currentCount","prevIndex","newIndex","newInline","selection","insertPos","from","tryInsertAt","insert","usedPos","includes","setSelection","NodeSelection","after","nodeSize","focus","refreshResponseArea","_ref3","$from","nodeAfter","nodePos","setNodeMarkup","updated","Date","now","ExplicitConstructedResponseNode","Node","group","inline","atom","addAttributes","parseHTML","tag","getAttrs","el","dataset","renderHTML","_ref4","HTMLAttributes","addNodeView","_this3","ReactNodeViewRenderer","props","createElement","MathTemplatedNode","_ref5","DragInTheBlankNode","inTable","_ref6","_this4","InlineDropdownNode","_ref7","_this5"],"sources":["../../src/extensions/responseArea.js"],"sourcesContent":["import React from 'react';\nimport { Plugin, PluginKey, TextSelection, NodeSelection } from 'prosemirror-state';\nimport { Extension } from '@tiptap/core';\nimport { Node, ReactNodeViewRenderer } from '@tiptap/react';\nimport ExplicitConstructedResponse from '../components/respArea/ExplicitConstructedResponse';\nimport DragInTheBlank from '../components/respArea/DragInTheBlank/DragInTheBlank';\nimport InlineDropdown from '../components/respArea/InlineDropdown';\nimport PropTypes from 'prop-types';\n\nconst lastIndexMap = {};\n\nconst normalizeType = (type) => String(type || '').replace(/-/g, '_');\n\nconst getAttrIndex = (node) => (node && node.attrs && node.attrs.index != null ? String(node.attrs.index) : null);\n\nconst collectNodesOfType = (doc, typeName) => {\n const results = [];\n\n doc.descendants((node, pos) => {\n if (node.type && node.type.name === typeName) {\n const index = getAttrIndex(node);\n if (index != null) results.push({ index, pos, node });\n }\n return true;\n });\n\n return results;\n};\n\nconst countNodesOfType = (doc, typeName) => {\n let count = 0;\n doc.descendants((node) => {\n if (node.type && node.type.name === typeName) count += 1;\n return true;\n });\n return count;\n};\n\nconst getDefaultNode = ({ schema, typeName, index }) => {\n const nodeType = schema.nodes[typeName];\n if (!nodeType) return null;\n\n // mirror your Slate \"getDefaultElement(opts, newIndex)\"\n // customize attrs as needed:\n return nodeType.create({\n index: String(index),\n id: String(index),\n value: '',\n });\n};\n\n// Find a good cursor position *after* an inserted node.\nconst selectionAfterPos = (doc, pos) => {\n const $pos = doc.resolve(Math.min(pos, doc.content.size));\n return TextSelection.near($pos, 1);\n};\n\nexport const ResponseAreaExtension = Extension.create({\n name: 'responseArea',\n\n addOptions() {\n return {\n maxResponseAreas: null,\n error: null,\n options: null,\n respAreaToolbar: null,\n onHandleAreaChange: null,\n };\n },\n\n addProseMirrorPlugins() {\n if (!this.options.type) {\n return [];\n }\n\n const typeName = normalizeType(this.options.type);\n const key = new PluginKey(`response-area-watcher:${typeName}`);\n\n return [\n new Plugin({\n key,\n\n view: (view) => {\n // Lazy init lastIndexMap[typeName]\n if (lastIndexMap[typeName] === undefined) {\n lastIndexMap[typeName] = 0;\n\n view.state.doc.descendants((node) => {\n if (node.type && node.type.name === typeName) {\n const idx = getAttrIndex(node);\n if (idx != null) {\n const n = parseInt(idx, 10);\n if (!Number.isNaN(n) && n > lastIndexMap[typeName]) {\n lastIndexMap[typeName] = n;\n }\n }\n }\n return true;\n });\n }\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n if (prevState.doc.eq(state.doc)) return;\n\n const currentList = collectNodesOfType(state.doc, typeName);\n const oldList = collectNodesOfType(prevState.doc, typeName);\n\n if (this.options.toolbar) {\n this.options.toolbar.disabled = currentList.length >= this.options.maxResponseAreas;\n }\n\n // Removed elements (same logic as Slate)\n if (oldList.length > currentList.length) {\n const currentIndexSet = new Set(currentList.map((x) => x.index));\n\n const removed = oldList.filter((x) => !currentIndexSet.has(x.index));\n\n if (removed.length && typeof this.options.onHandleAreaChange === 'function') {\n this.options.onHandleAreaChange(removed);\n }\n }\n },\n };\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n insertResponseArea: (type) => ({ tr, state, dispatch, commands }) => {\n const typeName = normalizeType(type);\n\n // --- Slate: currentRespAreaList + max check ---\n const currentCount = countNodesOfType(state.doc, typeName);\n if (currentCount >= this.options.maxResponseAreas) {\n return false;\n }\n\n // --- Slate: indexing logic (kept identical) ---\n if (lastIndexMap[typeName] === undefined) lastIndexMap[typeName] = 0;\n\n const prevIndex = lastIndexMap[typeName];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n\n // Slate increments map even if newIndex === 0\n lastIndexMap[typeName] += 1;\n\n const newInline = getDefaultNode({\n schema: state.schema,\n typeName,\n index: newIndex,\n });\n\n if (!newInline) return false;\n\n // --- Insert logic ---\n const { selection } = state;\n let insertPos = selection.from;\n\n // If we're in a NodeSelection, insert before/after is ambiguous;\n // We'll insert at its \"from\" (like your current code).\n // If insertion fails, we fallback to end of doc.\n const tryInsertAt = (pos) => {\n try {\n tr.insert(pos, newInline);\n return pos;\n } catch (e) {\n return null;\n }\n };\n\n let usedPos = tryInsertAt(insertPos);\n\n // Slate branch: \"markup empty and there's no focus\"\n // ProseMirror doesn't expose \"no focus\" the same way, so the closest\n // equivalent fallback is inserting at end of document.\n if (usedPos == null) {\n usedPos = tryInsertAt(tr.doc.content.size);\n }\n if (usedPos == null) return false;\n\n // Optionally select the node you just inserted (like your original command)\n // tr.setSelection(NodeSelection.create(tr.doc, usedPos))\n\n // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---\n if (\n ['math_templated', 'inline_dropdown', 'drag_in_the_blank', 'explicit_constructed_response'].includes(typeName)\n ) {\n tr.setSelection(NodeSelection.create(tr.doc, usedPos));\n } else {\n // Default: put cursor after inserted node\n const after = usedPos + newInline.nodeSize;\n tr.setSelection(selectionAfterPos(tr.doc, after));\n }\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n refreshResponseArea: () => ({ tr, state, commands, dispatch }) => {\n const { selection } = state;\n const node = selection.$from.nodeAfter;\n const nodePos = selection.from;\n\n tr.setNodeMarkup(nodePos, undefined, { ...node.attrs, updated: `${Date.now()}` });\n tr.setSelection(NodeSelection.create(tr.doc, nodePos));\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n };\n },\n});\n\n/**\n * ExplicitConstructedResponse Node\n */\nexport const ExplicitConstructedResponseNode = Node.create({\n name: 'explicit_constructed_response',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"explicit_constructed_response\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'explicit_constructed_response',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ExplicitConstructedResponse {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * MathTemplated Node\n */\nexport const MathTemplatedNode = Node.create({\n name: 'math_templated',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"math_templated\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'math_templated',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer(() => <div></div>);\n },\n});\n\n/**\n * DragInTheBlank Node\n */\nexport const DragInTheBlankNode = Node.create({\n name: 'drag_in_the_blank',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n id: { default: null },\n value: { default: '' },\n inTable: { default: null },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"drag_in_the_blank\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'drag_in_the_blank',\n 'data-index': HTMLAttributes.index,\n 'data-id': HTMLAttributes.id,\n 'data-value': HTMLAttributes.value,\n 'data-in-table': HTMLAttributes.inTable,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <DragInTheBlank {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * InlineDropdown Node\n */\nexport const InlineDropdownNode = Node.create({\n name: 'inline_dropdown',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"inline_dropdown\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'inline_dropdown',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <InlineDropdown {...{ ...props, options: this.options }} />);\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 _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,6 +10,12 @@ Object.defineProperty(exports, "ALL_PLUGINS", {
11
10
  return _extensions.ALL_PLUGINS;
12
11
  }
13
12
  });
13
+ Object.defineProperty(exports, "DEFAULT_PLUGINS", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _extensions.DEFAULT_PLUGINS;
17
+ }
18
+ });
14
19
  Object.defineProperty(exports, "EditableHtml", {
15
20
  enumerable: true,
16
21
  get: function get() {
@@ -18,15 +23,8 @@ Object.defineProperty(exports, "EditableHtml", {
18
23
  }
19
24
  });
20
25
  exports["default"] = void 0;
21
-
22
26
  var _EditableHtml = _interopRequireWildcard(require("./components/EditableHtml"));
23
-
24
27
  var _extensions = require("./extensions");
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
- var _default = _EditableHtml["default"];
31
- exports["default"] = _default;
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwibmFtZXMiOlsiU3R5bGVkRWRpdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7O2VBR2VBLHdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0eWxlZEVkaXRvciwgeyBFZGl0YWJsZUh0bWwgfSBmcm9tICcuL2NvbXBvbmVudHMvRWRpdGFibGVIdG1sJztcbmltcG9ydCB7IEFMTF9QTFVHSU5TIH0gZnJvbSAnLi9leHRlbnNpb25zJztcblxuZXhwb3J0IHsgRWRpdGFibGVIdG1sLCBBTExfUExVR0lOUyB9O1xuZXhwb3J0IGRlZmF1bHQgU3R5bGVkRWRpdG9yO1xuIl19
28
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
29
+ var _default = exports["default"] = _EditableHtml["default"];
30
+ //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["StyledEditor"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;eAGeA,wB","sourcesContent":["import StyledEditor, { EditableHtml } from './components/EditableHtml';\nimport { ALL_PLUGINS } from './extensions';\n\nexport { EditableHtml, ALL_PLUGINS };\nexport default StyledEditor;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_EditableHtml","_interopRequireWildcard","require","_extensions","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","StyledEditor"],"sources":["../src/index.jsx"],"sourcesContent":["import StyledEditor, { EditableHtml } from './components/EditableHtml';\nimport { ALL_PLUGINS, DEFAULT_PLUGINS } from './extensions';\n\nexport { EditableHtml, ALL_PLUGINS, DEFAULT_PLUGINS };\nexport default StyledEditor;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAA4D,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,wBAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,IAAAmB,QAAA,GAAAC,OAAA,cAG7CC,wBAAY","ignoreList":[]}