@pie-lib/editable-html-tip-tap 1.0.2 → 1.0.3

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 (129) hide show
  1. package/lib/components/CharacterPicker.js +221 -0
  2. package/lib/components/EditableHtml.js +323 -0
  3. package/lib/components/MenuBar.js +693 -0
  4. package/lib/components/TiptapContainer.js +90 -0
  5. package/lib/components/buttons/done-button.js +53 -0
  6. package/lib/components/characters/characterUtils.js +112 -0
  7. package/lib/components/characters/custom-popper.js +73 -0
  8. package/lib/components/common/done-button.js +53 -0
  9. package/lib/components/icons/CssIcon.js +37 -0
  10. package/lib/components/icons/RespArea.js +95 -0
  11. package/lib/components/icons/TableIcons.js +69 -0
  12. package/lib/components/icons/TextAlign.js +194 -0
  13. package/lib/components/icons/index.js +194 -0
  14. package/lib/components/image/ImageToolbar.js +16 -0
  15. package/lib/components/image/InsertImageHandler.js +16 -0
  16. package/lib/components/media/MediaDialog.js +16 -0
  17. package/lib/components/media/MediaToolbar.js +16 -0
  18. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +94 -0
  19. package/lib/components/respArea/DragInTheBlank/choice.js +289 -0
  20. package/lib/components/respArea/DragInTheBlank.js +94 -0
  21. package/lib/components/respArea/ExplicitConstructedResponse.js +120 -0
  22. package/lib/components/respArea/InlineDropdown.js +126 -0
  23. package/lib/components/respArea/ToolbarIcon.js +105 -0
  24. package/lib/components/respArea/choice.js +2 -0
  25. package/lib/extensions/component.js +5 -5
  26. package/lib/extensions/custom-toolbar-wrapper.js +2 -4
  27. package/lib/extensions/extended-table.js +30 -0
  28. package/lib/extensions/index.js +52 -0
  29. package/lib/extensions/media.js +5 -5
  30. package/lib/extensions/responseArea.js +7 -7
  31. package/lib/index.js +16 -1481
  32. package/lib/plugins/index.js +8 -80
  33. package/lib/styles/editorContainerStyles.js +200 -0
  34. package/lib/utils/size.js +34 -0
  35. package/package.json +1 -1
  36. package/src/components/CharacterPicker.jsx +185 -0
  37. package/src/components/EditableHtml.jsx +306 -0
  38. package/src/components/MenuBar.jsx +630 -0
  39. package/src/components/TiptapContainer.jsx +96 -0
  40. package/src/components/characters/characterUtils.js +127 -0
  41. package/src/components/image/ImageToolbar.jsx +1 -0
  42. package/src/components/image/InsertImageHandler.js +1 -0
  43. package/src/components/media/MediaDialog.js +1 -0
  44. package/src/components/media/MediaToolbar.jsx +1 -0
  45. package/src/{plugins/respArea/drag-in-the-blank → components/respArea/DragInTheBlank}/choice.jsx +1 -1
  46. package/src/{plugins/respArea/inline-dropdown/index.jsx → components/respArea/InlineDropdown.jsx} +1 -1
  47. package/src/components/respArea/ToolbarIcon.jsx +68 -0
  48. package/src/extensions/component.jsx +2 -2
  49. package/src/extensions/custom-toolbar-wrapper.jsx +6 -7
  50. package/src/extensions/extended-table.js +27 -0
  51. package/src/extensions/index.js +76 -0
  52. package/src/extensions/media.js +10 -4
  53. package/src/extensions/responseArea.js +7 -7
  54. package/src/index.jsx +3 -1440
  55. package/src/styles/editorContainerStyles.js +203 -0
  56. package/src/utils/size.js +32 -0
  57. package/src/__tests__/editor.test.jsx +0 -363
  58. package/src/__tests__/serialization.test.js +0 -291
  59. package/src/block-tags.js +0 -17
  60. package/src/editor.jsx +0 -1197
  61. package/src/extensions/characters.js +0 -46
  62. package/src/old-index.jsx +0 -162
  63. package/src/parse-html.js +0 -8
  64. package/src/plugins/README.md +0 -27
  65. package/src/plugins/characters/index.jsx +0 -284
  66. package/src/plugins/characters/utils.js +0 -447
  67. package/src/plugins/css/index.jsx +0 -340
  68. package/src/plugins/customPlugin/index.jsx +0 -85
  69. package/src/plugins/html/icons/index.jsx +0 -19
  70. package/src/plugins/html/index.jsx +0 -72
  71. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
  72. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
  73. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
  74. package/src/plugins/image/__tests__/component.test.jsx +0 -41
  75. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -42
  76. package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -11
  77. package/src/plugins/image/__tests__/index.test.js +0 -95
  78. package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
  79. package/src/plugins/image/__tests__/mock-change.js +0 -15
  80. package/src/plugins/image/alt-dialog.jsx +0 -82
  81. package/src/plugins/image/component.jsx +0 -343
  82. package/src/plugins/image/image-toolbar.jsx +0 -100
  83. package/src/plugins/image/index.jsx +0 -227
  84. package/src/plugins/image/insert-image-handler.js +0 -79
  85. package/src/plugins/index.jsx +0 -377
  86. package/src/plugins/list/__tests__/index.test.js +0 -54
  87. package/src/plugins/list/index.jsx +0 -305
  88. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
  89. package/src/plugins/math/__tests__/index.test.jsx +0 -245
  90. package/src/plugins/math/index.jsx +0 -379
  91. package/src/plugins/media/__tests__/index.test.js +0 -75
  92. package/src/plugins/media/index.jsx +0 -325
  93. package/src/plugins/media/media-dialog.js +0 -624
  94. package/src/plugins/media/media-toolbar.jsx +0 -56
  95. package/src/plugins/media/media-wrapper.jsx +0 -43
  96. package/src/plugins/rendering/index.js +0 -31
  97. package/src/plugins/respArea/index.jsx +0 -299
  98. package/src/plugins/respArea/math-templated/index.jsx +0 -104
  99. package/src/plugins/respArea/utils.jsx +0 -90
  100. package/src/plugins/table/CustomTablePlugin.js +0 -113
  101. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
  102. package/src/plugins/table/__tests__/index.test.jsx +0 -401
  103. package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -42
  104. package/src/plugins/table/index.jsx +0 -427
  105. package/src/plugins/table/table-toolbar.jsx +0 -136
  106. package/src/plugins/textAlign/index.jsx +0 -23
  107. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
  108. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
  109. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
  110. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
  111. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -94
  112. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -37
  113. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -51
  114. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +0 -106
  115. package/src/plugins/toolbar/default-toolbar.jsx +0 -206
  116. package/src/plugins/toolbar/editor-and-toolbar.jsx +0 -257
  117. package/src/plugins/toolbar/index.jsx +0 -23
  118. package/src/plugins/toolbar/toolbar-buttons.jsx +0 -138
  119. package/src/plugins/toolbar/toolbar.jsx +0 -338
  120. package/src/plugins/utils.js +0 -31
  121. package/src/serialization.jsx +0 -621
  122. /package/src/{plugins → components}/characters/custom-popper.js +0 -0
  123. /package/src/{plugins/toolbar → components/common}/done-button.jsx +0 -0
  124. /package/src/{plugins/css/icons/index.jsx → components/icons/CssIcon.jsx} +0 -0
  125. /package/src/{plugins/respArea/icons/index.jsx → components/icons/RespArea.jsx} +0 -0
  126. /package/src/{plugins/table/icons/index.jsx → components/icons/TableIcons.jsx} +0 -0
  127. /package/src/{plugins/textAlign/icons/index.jsx → components/icons/TextAlign.jsx} +0 -0
  128. /package/src/{plugins/respArea/drag-in-the-blank/index.jsx → components/respArea/DragInTheBlank/DragInTheBlank.jsx} +0 -0
  129. /package/src/{plugins/respArea/explicit-constructed-response/index.jsx → components/respArea/ExplicitConstructedResponse.jsx} +0 -0
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.tileTarget = exports.tileSource = exports["default"] = exports.BlankContent = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
31
+
32
+ var _drag = require("@pie-lib/drag");
33
+
34
+ var _renderUi = require("@pie-lib/render-ui");
35
+
36
+ var _mathRendering = require("@pie-lib/math-rendering");
37
+
38
+ var _styles = require("@material-ui/core/styles");
39
+
40
+ var _classnames = _interopRequireDefault(require("classnames"));
41
+
42
+ var _RespArea = require("../../icons/RespArea");
43
+
44
+ var _excluded = ["connectDropTarget", "connectDragSource"];
45
+
46
+ 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); }; }
47
+
48
+ 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; } }
49
+
50
+ var useStyles = (0, _styles.withStyles)(function (theme) {
51
+ return {
52
+ content: {
53
+ border: "solid 0px ".concat(theme.palette.primary.main),
54
+ '& mjx-frac': {
55
+ fontSize: '120% !important'
56
+ }
57
+ },
58
+ chip: {
59
+ minWidth: '90px'
60
+ },
61
+ correct: {
62
+ border: "solid 1px ".concat(_renderUi.color.correct())
63
+ },
64
+ incorrect: {
65
+ border: "solid 1px ".concat(theme.palette.error.main)
66
+ },
67
+ selected: {
68
+ border: "2px solid ".concat(_renderUi.color.primaryDark(), " !important")
69
+ }
70
+ };
71
+ });
72
+
73
+ var BlankContent = /*#__PURE__*/function (_React$Component) {
74
+ (0, _inherits2["default"])(BlankContent, _React$Component);
75
+
76
+ var _super = _createSuper(BlankContent);
77
+
78
+ function BlankContent(props) {
79
+ var _this;
80
+
81
+ (0, _classCallCheck2["default"])(this, BlankContent);
82
+ _this = _super.call(this, props);
83
+ _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2["default"])(_this));
84
+ _this.state = {
85
+ hoveredElementSize: null
86
+ };
87
+ return _this;
88
+ }
89
+
90
+ (0, _createClass2["default"])(BlankContent, [{
91
+ key: "componentDidMount",
92
+ value: function componentDidMount() {
93
+ document.addEventListener('click', this.handleClick);
94
+ }
95
+ }, {
96
+ key: "componentWillUnmount",
97
+ value: function componentWillUnmount() {
98
+ document.removeEventListener('click', this.handleClick);
99
+ }
100
+ }, {
101
+ key: "handleClick",
102
+ value: function handleClick(event) {
103
+ var classes = this.props.classes;
104
+
105
+ if (this.elementRef) {
106
+ this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';
107
+ }
108
+ }
109
+ }, {
110
+ key: "getSnapshotBeforeUpdate",
111
+ value: function getSnapshotBeforeUpdate(prevProps) {
112
+ if (!prevProps.isOver && this.props.isOver && this.elementRef) {
113
+ var node = this.elementRef;
114
+ return {
115
+ width: node.offsetWidth,
116
+ height: node.offsetHeight
117
+ };
118
+ }
119
+
120
+ return null;
121
+ }
122
+ }, {
123
+ key: "componentDidUpdate",
124
+ value: function componentDidUpdate(prevProps, prevState, snapshot) {
125
+ if (this.elementRef && typeof _mathRendering.renderMath === 'function') {
126
+ (0, _mathRendering.renderMath)(this.elementRef);
127
+ }
128
+
129
+ if (snapshot && (!this.state.hoveredElementSize || this.state.hoveredElementSize.width !== snapshot.width || this.state.hoveredElementSize.height !== snapshot.height)) {
130
+ this.setState({
131
+ hoveredElementSize: snapshot
132
+ });
133
+ return;
134
+ }
135
+
136
+ if (prevProps.isOver && !this.props.isOver && this.state.hoveredElementSize) {
137
+ this.setState({
138
+ hoveredElementSize: null
139
+ });
140
+ }
141
+ }
142
+ }, {
143
+ key: "render",
144
+ value: function render() {
145
+ var _this2 = this;
146
+
147
+ var _this$props = this.props,
148
+ n = _this$props.n,
149
+ children = _this$props.children,
150
+ isDragging = _this$props.isDragging,
151
+ dragItem = _this$props.dragItem,
152
+ isOver = _this$props.isOver,
153
+ value = _this$props.value;
154
+ var hoveredElementSize = this.state.hoveredElementSize;
155
+ var label = dragItem && isOver ? dragItem.value.value : value.value || "\xA0";
156
+ var finalLabel = isDragging ? "\xA0" : label;
157
+ var hasGrip = finalLabel !== "\xA0";
158
+ var isPreview = dragItem && isOver;
159
+ return /*#__PURE__*/_react["default"].createElement("div", {
160
+ ref: function ref(_ref) {
161
+ return _this2.elementRef = _ref;
162
+ },
163
+ style: {
164
+ display: 'inline-flex',
165
+ minWidth: '178px',
166
+ minHeight: '36px',
167
+ background: isPreview ? "".concat(_renderUi.color.defaults.BORDER_LIGHT) : "".concat(_renderUi.color.defaults.WHITE),
168
+ border: isPreview ? "1px solid ".concat(_renderUi.color.defaults.BORDER_DARK) : "1px solid ".concat(_renderUi.color.defaults.BORDER_LIGHT),
169
+ boxSizing: 'border-box',
170
+ borderRadius: '3px',
171
+ overflow: 'hidden',
172
+ position: 'relative',
173
+ padding: '8px 8px 8px 35px',
174
+ width: hoveredElementSize ? hoveredElementSize.width : undefined,
175
+ height: hoveredElementSize ? hoveredElementSize.height : undefined
176
+ },
177
+ "data-key": n.key,
178
+ contentEditable: false
179
+ }, hasGrip && /*#__PURE__*/_react["default"].createElement(_RespArea.GripIcon, {
180
+ style: {
181
+ position: 'absolute',
182
+ top: '6px',
183
+ left: '15px',
184
+ color: '#9B9B9B'
185
+ },
186
+ contentEditable: false
187
+ }), /*#__PURE__*/_react["default"].createElement("span", {
188
+ dangerouslySetInnerHTML: {
189
+ __html: finalLabel
190
+ }
191
+ }), children);
192
+ }
193
+ }]);
194
+ return BlankContent;
195
+ }(_react["default"].Component);
196
+
197
+ exports.BlankContent = BlankContent;
198
+ (0, _defineProperty2["default"])(BlankContent, "propTypes", {
199
+ n: _propTypes["default"].object,
200
+ children: _propTypes["default"].func,
201
+ isDragging: _propTypes["default"].bool,
202
+ isOver: _propTypes["default"].bool,
203
+ dragItem: _propTypes["default"].object,
204
+ value: _propTypes["default"].object,
205
+ classes: _propTypes["default"].object
206
+ });
207
+ var StyledBlankContent = useStyles(BlankContent);
208
+ var connectedBlankContent = useStyles(function (_ref2) {
209
+ var connectDropTarget = _ref2.connectDropTarget,
210
+ connectDragSource = _ref2.connectDragSource,
211
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
212
+ var classes = props.classes,
213
+ isOver = props.isOver,
214
+ value = props.value;
215
+
216
+ var dragContent = /*#__PURE__*/_react["default"].createElement(StyledBlankContent, props);
217
+
218
+ var dragEl = !value ? dragContent : connectDragSource( /*#__PURE__*/_react["default"].createElement("span", null, dragContent));
219
+
220
+ var content = /*#__PURE__*/_react["default"].createElement("span", {
221
+ className: (0, _classnames["default"])(classes.content, isOver && classes.over)
222
+ }, dragEl);
223
+
224
+ return connectDropTarget ? connectDropTarget(content) : content;
225
+ });
226
+ var tileTarget = {
227
+ drop: function drop(props, monitor) {
228
+ var draggedItem = monitor.getItem();
229
+ var shouldDrop = (0, _isUndefined["default"])(draggedItem.value.index) || (0, _isUndefined["default"])(props.value.index) || draggedItem.value.index !== props.value.index;
230
+
231
+ if (shouldDrop) {
232
+ props.onChange(draggedItem.value);
233
+ }
234
+
235
+ return {
236
+ dropped: shouldDrop
237
+ };
238
+ },
239
+ canDrop: function canDrop(props, monitor) {
240
+ var draggedItem = monitor.getItem();
241
+ return draggedItem.instanceId === props.instanceId;
242
+ }
243
+ };
244
+ exports.tileTarget = tileTarget;
245
+ var DropTile = (0, _drag.DropTarget)('drag-in-the-blank-choice', tileTarget, function (connect, monitor) {
246
+ return {
247
+ connectDropTarget: connect.dropTarget(),
248
+ isOver: monitor.isOver({
249
+ shallow: true
250
+ }),
251
+ dragItem: monitor.getItem()
252
+ };
253
+ })(connectedBlankContent);
254
+ var tileSource = {
255
+ canDrag: function canDrag(props) {
256
+ return !props.disabled && !!props.value;
257
+ },
258
+ beginDrag: function beginDrag(props) {
259
+ return {
260
+ id: props.targetId,
261
+ value: props.value,
262
+ instanceId: props.instanceId,
263
+ fromChoice: true
264
+ };
265
+ },
266
+ endDrag: function endDrag(props, monitor) {
267
+ // this will be null if it did not drop
268
+ var dropResult = monitor.getDropResult();
269
+
270
+ if (!dropResult || dropResult.dropped && !props.duplicates) {
271
+ var draggedItem = monitor.getItem();
272
+
273
+ if (draggedItem.fromChoice) {
274
+ props.removeResponse(draggedItem.value);
275
+ }
276
+ }
277
+ }
278
+ };
279
+ exports.tileSource = tileSource;
280
+
281
+ var _default = (0, _drag.DragSource)('drag-in-the-blank-choice', tileSource, function (connect, monitor) {
282
+ return {
283
+ connectDragSource: connect.dragSource(),
284
+ isDragging: monitor.isDragging()
285
+ };
286
+ })(DropTile);
287
+
288
+ exports["default"] = _default;
289
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3BBcmVhL0RyYWdJblRoZUJsYW5rL2Nob2ljZS5qc3giXSwibmFtZXMiOlsidXNlU3R5bGVzIiwidGhlbWUiLCJjb250ZW50IiwiYm9yZGVyIiwicGFsZXR0ZSIsInByaW1hcnkiLCJtYWluIiwiZm9udFNpemUiLCJjaGlwIiwibWluV2lkdGgiLCJjb3JyZWN0IiwiY29sb3IiLCJpbmNvcnJlY3QiLCJlcnJvciIsInNlbGVjdGVkIiwicHJpbWFyeURhcmsiLCJCbGFua0NvbnRlbnQiLCJwcm9wcyIsImhhbmRsZUNsaWNrIiwiYmluZCIsInN0YXRlIiwiaG92ZXJlZEVsZW1lbnRTaXplIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwiY2xhc3NlcyIsImVsZW1lbnRSZWYiLCJjbGFzc05hbWUiLCJjb250YWlucyIsInRhcmdldCIsInByZXZQcm9wcyIsImlzT3ZlciIsIm5vZGUiLCJ3aWR0aCIsIm9mZnNldFdpZHRoIiwiaGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwicHJldlN0YXRlIiwic25hcHNob3QiLCJyZW5kZXJNYXRoIiwic2V0U3RhdGUiLCJuIiwiY2hpbGRyZW4iLCJpc0RyYWdnaW5nIiwiZHJhZ0l0ZW0iLCJ2YWx1ZSIsImxhYmVsIiwiZmluYWxMYWJlbCIsImhhc0dyaXAiLCJpc1ByZXZpZXciLCJyZWYiLCJkaXNwbGF5IiwibWluSGVpZ2h0IiwiYmFja2dyb3VuZCIsImRlZmF1bHRzIiwiQk9SREVSX0xJR0hUIiwiV0hJVEUiLCJCT1JERVJfREFSSyIsImJveFNpemluZyIsImJvcmRlclJhZGl1cyIsIm92ZXJmbG93IiwicG9zaXRpb24iLCJwYWRkaW5nIiwidW5kZWZpbmVkIiwia2V5IiwidG9wIiwibGVmdCIsIl9faHRtbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiZnVuYyIsImJvb2wiLCJTdHlsZWRCbGFua0NvbnRlbnQiLCJjb25uZWN0ZWRCbGFua0NvbnRlbnQiLCJjb25uZWN0RHJvcFRhcmdldCIsImNvbm5lY3REcmFnU291cmNlIiwiZHJhZ0NvbnRlbnQiLCJkcmFnRWwiLCJvdmVyIiwidGlsZVRhcmdldCIsImRyb3AiLCJtb25pdG9yIiwiZHJhZ2dlZEl0ZW0iLCJnZXRJdGVtIiwic2hvdWxkRHJvcCIsImluZGV4Iiwib25DaGFuZ2UiLCJkcm9wcGVkIiwiY2FuRHJvcCIsImluc3RhbmNlSWQiLCJEcm9wVGlsZSIsImNvbm5lY3QiLCJkcm9wVGFyZ2V0Iiwic2hhbGxvdyIsInRpbGVTb3VyY2UiLCJjYW5EcmFnIiwiZGlzYWJsZWQiLCJiZWdpbkRyYWciLCJpZCIsInRhcmdldElkIiwiZnJvbUNob2ljZSIsImVuZERyYWciLCJkcm9wUmVzdWx0IiwiZ2V0RHJvcFJlc3VsdCIsImR1cGxpY2F0ZXMiLCJyZW1vdmVSZXNwb25zZSIsImRyYWdTb3VyY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7QUFFQSxJQUFNQSxTQUFTLEdBQUcsd0JBQVcsVUFBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDdkNDLElBQUFBLE9BQU8sRUFBRTtBQUNQQyxNQUFBQSxNQUFNLHNCQUFlRixLQUFLLENBQUNHLE9BQU4sQ0FBY0MsT0FBZCxDQUFzQkMsSUFBckMsQ0FEQztBQUVQLG9CQUFjO0FBQ1pDLFFBQUFBLFFBQVEsRUFBRTtBQURFO0FBRlAsS0FEOEI7QUFPdkNDLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSxRQUFRLEVBQUU7QUFETixLQVBpQztBQVV2Q0MsSUFBQUEsT0FBTyxFQUFFO0FBQ1BQLE1BQUFBLE1BQU0sc0JBQWVRLGdCQUFNRCxPQUFOLEVBQWY7QUFEQyxLQVY4QjtBQWF2Q0UsSUFBQUEsU0FBUyxFQUFFO0FBQ1RULE1BQUFBLE1BQU0sc0JBQWVGLEtB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QUNBLFFBQU1xQixVQUFVLEdBQUdyQixPQUFPLENBQUNzQixhQUFSLEVBQW5COztBQUVBLFFBQUksQ0FBQ0QsVUFBRCxJQUFnQkEsVUFBVSxDQUFDZixPQUFYLElBQXNCLENBQUN6RSxLQUFLLENBQUMwRixVQUFqRCxFQUE4RDtBQUM1RCxVQUFNdEIsV0FBVyxHQUFHRCxPQUFPLENBQUNFLE9BQVIsRUFBcEI7O0FBRUEsVUFBSUQsV0FBVyxDQUFDa0IsVUFBaEIsRUFBNEI7QUFDMUJ0RixRQUFBQSxLQUFLLENBQUMyRixjQUFOLENBQXFCdkIsV0FBVyxDQUFDdkMsS0FBakM7QUFDRDtBQUNGO0FBQ0Y7QUF2QnVCLENBQW5COzs7ZUEwQlEsc0JBQVcsMEJBQVgsRUFBdUNtRCxVQUF2QyxFQUFtRCxVQUFDSCxPQUFELEVBQVVWLE9BQVY7QUFBQSxTQUF1QjtBQUN2Rk4sSUFBQUEsaUJBQWlCLEVBQUVnQixPQUFPLENBQUNlLFVBQVIsRUFEb0U7QUFFdkZqRSxJQUFBQSxVQUFVLEVBQUV3QyxPQUFPLENBQUN4QyxVQUFSO0FBRjJFLEdBQXZCO0FBQUEsQ0FBbkQsRUFHWGlELFFBSFcsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGlzVW5kZWZpbmVkIGZyb20gJ2xvZGFzaC9pc1VuZGVmaW5lZCc7XG5pbXBvcnQgeyBEcmFnU291cmNlLCBEcm9wVGFyZ2V0IH0gZnJvbSAnQHBpZS1saWIvZHJhZyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgeyByZW5kZXJNYXRoIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHsgR3JpcEljb24gfSBmcm9tICcuLi8uLi9pY29ucy9SZXNwQXJlYSc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IHdpdGhTdHlsZXMoKHRoZW1lKSA9PiAoe1xuICBjb250ZW50OiB7XG4gICAgYm9yZGVyOiBgc29saWQgMHB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICAnJiBtangtZnJhYyc6IHtcbiAgICAgIGZvbnRTaXplOiAnMTIwJSAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxuICBjaGlwOiB7XG4gICAgbWluV2lkdGg6ICc5MHB4JyxcbiAgfSxcbiAgY29ycmVjdDoge1xuICAgIGJvcmRlcjogYHNvbGlkIDFweCAke2NvbG9yLmNvcnJlY3QoKX1gLFxuICB9LFxuICBpbmNvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGBzb2xpZCAxcHggJHt0aGVtZS5wYWxldHRlLmVycm9yLm1haW59YCxcbiAgfSxcbiAgc2VsZWN0ZWQ6IHtcbiAgICBib3JkZXI6IGAycHggc29saWQgJHtjb2xvci5wcmltYXJ5RGFyaygpfSAhaW1wb3J0YW50YCxcbiAgfSxcbn0pKTtcblxuZXhwb3J0IGNsYXNzIEJsYW5rQ29udGVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaXNEcmFnZ2luZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNPdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkcmFnSXRlbTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5oYW5kbGVDbGljayA9IHRoaXMuaGFuZGxlQ2xpY2suYmluZCh0aGlzKTtcbiAgICB0aGlzLnN0YXRlID0geyBob3ZlcmVkRWxlbWVudFNpemU6IG51bGwgfTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVDbGljayk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2spO1xuICB9XG5cbiAgaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodGhpcy5lbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYuY2xhc3NOYW1lID0gdGhpcy5lbGVtZW50UmVmLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgPyBjbGFzc2VzLnNlbGVjdGVkIDogJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzKSB7XG4gICAgaWYgKCFwcmV2UHJvcHMuaXNPdmVyICYmIHRoaXMucHJvcHMuaXNPdmVyICYmIHRoaXMuZWxlbWVudFJlZikge1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZWxlbWVudFJlZjtcbiAgICAgIHJldHVybiB7IHdpZHRoOiBub2RlLm9mZnNldFdpZHRoLCBoZWlnaHQ6IG5vZGUub2Zmc2V0SGVpZ2h0IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlLCBzbmFwc2hvdCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYgJiYgdHlwZW9mIHJlbmRlck1hdGggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlbmRlck1hdGgodGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzbmFwc2hvdCAmJlxuICAgICAgKCF0aGlzLnN0YXRlLmhvdmVyZWRFbGVtZW50U2l6ZSB8fFxuICAgICAgICB0aGlzLnN0YXRlLmhvdmVyZWRFbGVtZW50U2l6ZS53aWR0aCAhPT0gc25hcHNob3Qud2lkdGggfHxcbiAgICAgICAgdGhpcy5zdGF0ZS5ob3ZlcmVkRWxlbWVudFNpemUuaGVpZ2h0ICE9PSBzbmFwc2hvdC5oZWlnaHQpXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgaG92ZXJlZEVsZW1lbnRTaXplOiBzbmFwc2hvdCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJldlByb3BzLmlzT3ZlciAmJiAhdGhpcy5wcm9wcy5pc092ZXIgJiYgdGhpcy5zdGF0ZS5ob3ZlcmVkRWxlbWVudFNpemUpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBob3ZlcmVkRWxlbWVudFNpemU6IG51bGwgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgbiwgY2hpbGRyZW4sIGlzRHJhZ2dpbmcsIGRyYWdJdGVtLCBpc092ZXIsIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgaG92ZXJlZEVsZW1lbnRTaXplIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgbGFiZWwgPSBkcmFnSXRlbSAmJiBpc092ZXIgPyBkcmFnSXRlbS52YWx1ZS52YWx1ZSA6IHZhbHVlLnZhbHVlIHx8ICdcXHUwMEEwJztcbiAgICBjb25zdCBmaW5hbExhYmVsID0gaXNEcmFnZ2luZyA/ICdcXHUwMEEwJyA6IGxhYmVsO1xuICAgIGNvbnN0IGhhc0dyaXAgPSBmaW5hbExhYmVsICE9PSAnXFx1MDBBMCc7XG4gICAgY29uc3QgaXNQcmV2aWV3ID0gZHJhZ0l0ZW0gJiYgaXNPdmVyO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXsocmVmKSA9PiAodGhpcy5lbGVtZW50UmVmID0gcmVmKX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgIG1pbldpZHRoOiAnMTc4cHgnLFxuICAgICAgICAgIG1pbkhlaWdodDogJzM2cHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6IGlzUHJldmlldyA/IGAke2NvbG9yLmRlZmF1bHRzLkJPUkRFUl9MSUdIVH1gIDogYCR7Y29sb3IuZGVmYXVsdHMuV0hJVEV9YCxcbiAgICAgICAgICBib3JkZXI6IGlzUHJldmlldyA/IGAxcHggc29saWQgICR7Y29sb3IuZGVmYXVsdHMuQk9SREVSX0RBUkt9YCA6IGAxcHggc29saWQgICR7Y29sb3IuZGVmYXVsdHMuQk9SREVSX0xJR0hUfWAsXG4gICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAnM3B4JyxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgcGFkZGluZzogJzhweCA4cHggOHB4IDM1cHgnLFxuICAgICAgICAgIHdpZHRoOiBob3ZlcmVkRWxlbWVudFNpemUgPyBob3ZlcmVkRWxlbWVudFNpemUud2lkdGggOiB1bmRlZmluZWQsXG4gICAgICAgICAgaGVpZ2h0OiBob3ZlcmVkRWxlbWVudFNpemUgPyBob3ZlcmVkRWxlbWVudFNpemUuaGVpZ2h0IDogdW5kZWZpbmVkLFxuICAgICAgICB9fVxuICAgICAgICBkYXRhLWtleT17bi5rZXl9XG4gICAgICAgIGNvbnRlbnRFZGl0YWJsZT17ZmFsc2V9XG4gICAgICA+XG4gICAgICAgIHtoYXNHcmlwICYmIChcbiAgICAgICAgICA8R3JpcEljb25cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICB0b3A6ICc2cHgnLFxuICAgICAgICAgICAgICBsZWZ0OiAnMTVweCcsXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzlCOUI5QicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXtmYWxzZX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICBfX2h0bWw6IGZpbmFsTGFiZWwsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBTdHlsZWRCbGFua0NvbnRlbnQgPSB1c2VTdHlsZXMoQmxhbmtDb250ZW50KTtcblxuY29uc3QgY29ubmVjdGVkQmxhbmtDb250ZW50ID0gdXNlU3R5bGVzKCh7IGNvbm5lY3REcm9wVGFyZ2V0LCBjb25uZWN0RHJhZ1NvdXJjZSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IGNsYXNzZXMsIGlzT3ZlciwgdmFsdWUgfSA9IHByb3BzO1xuICBjb25zdCBkcmFnQ29udGVudCA9IDxTdHlsZWRCbGFua0NvbnRlbnQgey4uLnByb3BzfSAvPjtcbiAgY29uc3QgZHJhZ0VsID0gIXZhbHVlID8gZHJhZ0NvbnRlbnQgOiBjb25uZWN0RHJhZ1NvdXJjZSg8c3Bhbj57ZHJhZ0NvbnRlbnR9PC9zcGFuPik7XG4gIGNvbnN0IGNvbnRlbnQgPSA8c3BhbiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jb250ZW50LCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyKX0+e2RyYWdFbH08L3NwYW4+O1xuXG4gIHJldHVybiBjb25uZWN0RHJvcFRhcmdldCA/IGNvbm5lY3REcm9wVGFyZ2V0KGNvbnRlbnQpIDogY29udGVudDtcbn0pO1xuXG5leHBvcnQgY29uc3QgdGlsZVRhcmdldCA9IHtcbiAgZHJvcChwcm9wcywgbW9uaXRvcikge1xuICAgIGNvbnN0IGRyYWdnZWRJdGVtID0gbW9uaXRvci5nZXRJdGVtKCk7XG4gICAgY29uc3Qgc2hvdWxkRHJvcCA9XG4gICAgICBpc1VuZGVmaW5lZChkcmFnZ2VkSXRlbS52YWx1ZS5pbmRleCkgfHxcbiAgICAgIGlzVW5kZWZpbmVkKHByb3BzLnZhbHVlLmluZGV4KSB8fFxuICAgICAgZHJhZ2dlZEl0ZW0udmFsdWUuaW5kZXggIT09IHByb3BzLnZhbHVlLmluZGV4O1xuXG4gICAgaWYgKHNob3VsZERyb3ApIHtcbiAgICAgIHByb3BzLm9uQ2hhbmdlKGRyYWdnZWRJdGVtLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZHJvcHBlZDogc2hvdWxkRHJvcCxcbiAgICB9O1xuICB9LFxuICBjYW5Ecm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIHJldHVybiBkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkID09PSBwcm9wcy5pbnN0YW5jZUlkO1xuICB9LFxufTtcblxuY29uc3QgRHJvcFRpbGUgPSBEcm9wVGFyZ2V0KCdkcmFnLWluLXRoZS1ibGFuay1jaG9pY2UnLCB0aWxlVGFyZ2V0LCAoY29ubmVjdCwgbW9uaXRvcikgPT4gKHtcbiAgY29ubmVjdERyb3BUYXJnZXQ6IGNvbm5lY3QuZHJvcFRhcmdldCgpLFxuICBpc092ZXI6IG1vbml0b3IuaXNPdmVyKHsgc2hhbGxvdzogdHJ1ZSB9KSxcbiAgZHJhZ0l0ZW06IG1vbml0b3IuZ2V0SXRlbSgpLFxufSkpKGNvbm5lY3RlZEJsYW5rQ29udGVudCk7XG5cbmV4cG9ydCBjb25zdCB0aWxlU291cmNlID0ge1xuICBjYW5EcmFnKHByb3BzKSB7XG4gICAgcmV0dXJuICFwcm9wcy5kaXNhYmxlZCAmJiAhIXByb3BzLnZhbHVlO1xuICB9LFxuICBiZWdpbkRyYWcocHJvcHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHByb3BzLnRhcmdldElkLFxuICAgICAgdmFsdWU6IHByb3BzLnZhbHVlLFxuICAgICAgaW5zdGFuY2VJZDogcHJvcHMuaW5zdGFuY2VJZCxcbiAgICAgIGZyb21DaG9pY2U6IHRydWUsXG4gICAgfTtcbiAgfSxcbiAgZW5kRHJhZyhwcm9wcywgbW9uaXRvcikge1xuICAgIC8vIHRoaXMgd2lsbCBiZSBudWxsIGlmIGl0IGRpZCBub3QgZHJvcFxuICAgIGNvbnN0IGRyb3BSZXN1bHQgPSBtb25pdG9yLmdldERyb3BSZXN1bHQoKTtcblxuICAgIGlmICghZHJvcFJlc3VsdCB8fCAoZHJvcFJlc3VsdC5kcm9wcGVkICYmICFwcm9wcy5kdXBsaWNhdGVzKSkge1xuICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtLmZyb21DaG9pY2UpIHtcbiAgICAgICAgcHJvcHMucmVtb3ZlUmVzcG9uc2UoZHJhZ2dlZEl0ZW0udmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdTb3VyY2UoJ2RyYWctaW4tdGhlLWJsYW5rLWNob2ljZScsIHRpbGVTb3VyY2UsIChjb25uZWN0LCBtb25pdG9yKSA9PiAoe1xuICBjb25uZWN0RHJhZ1NvdXJjZTogY29ubmVjdC5kcmFnU291cmNlKCksXG4gIGlzRHJhZ2dpbmc6IG1vbml0b3IuaXNEcmFnZ2luZygpLFxufSkpKERyb3BUaWxlKTtcbiJdfQ==
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.onValueChange = exports.onRemoveResponse = exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _react2 = require("@tiptap/react");
19
+
20
+ var _choice = _interopRequireDefault(require("./choice"));
21
+
22
+ var _omit = _interopRequireDefault(require("lodash/omit"));
23
+
24
+ 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; }
25
+
26
+ 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; }
27
+
28
+ var onValueChange = function onValueChange(editor, node, pos, choice) {
29
+ var tr = editor.state.tr; // Merge old and new attributes
30
+
31
+ tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node.attrs), choice));
32
+ tr.isDone = true;
33
+ editor.view.dispatch(tr);
34
+ };
35
+
36
+ exports.onValueChange = onValueChange;
37
+
38
+ var onRemoveResponse = function onRemoveResponse(editor, node, pos) {
39
+ var tr = editor.state.tr; // Merge old and new attributes
40
+
41
+ tr.setNodeMarkup(pos, undefined, (0, _omit["default"])(node.attrs, ['value', 'id']));
42
+ tr.isDone = true;
43
+ editor.view.dispatch(tr);
44
+ };
45
+
46
+ exports.onRemoveResponse = onRemoveResponse;
47
+
48
+ var DragDrop = function DragDrop(props) {
49
+ var editor = props.editor,
50
+ node = props.node,
51
+ getPos = props.getPos,
52
+ options = props.options,
53
+ selected = props.selected;
54
+ var attributes = node.attrs;
55
+ var inTable = attributes.inTable;
56
+ var pos = getPos(); // console.log({nodeProps.children})
57
+
58
+ return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
59
+ className: "drag-in-the-blank",
60
+ "data-selected": selected
61
+ }, /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
62
+ style: {
63
+ display: 'inline-flex',
64
+ minHeight: '50px',
65
+ minWidth: '178px',
66
+ position: 'relative',
67
+ margin: inTable ? '10px' : '0 10px',
68
+ cursor: 'pointer'
69
+ }
70
+ }), /*#__PURE__*/_react["default"].createElement(_choice["default"], {
71
+ n: attributes,
72
+ dragKey: attributes.id,
73
+ targetId: "0",
74
+ value: attributes,
75
+ duplicates: options.duplicates,
76
+ onChange: function onChange(choice) {
77
+ return onValueChange(editor, node, pos, choice);
78
+ },
79
+ removeResponse: function removeResponse() {
80
+ return onRemoveResponse(editor, node, pos);
81
+ }
82
+ })));
83
+ };
84
+
85
+ DragDrop.propTypes = {
86
+ attributes: _propTypes["default"].object,
87
+ data: _propTypes["default"].object,
88
+ n: _propTypes["default"].object,
89
+ nodeProps: _propTypes["default"].object,
90
+ opts: _propTypes["default"].object
91
+ };
92
+ var _default = DragDrop;
93
+ exports["default"] = _default;
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3BBcmVhL0RyYWdJblRoZUJsYW5rLmpzeCJdLCJuYW1lcyI6WyJvblZhbHVlQ2hhbmdlIiwiZWRpdG9yIiwibm9kZSIsInBvcyIsImNob2ljZSIsInRyIiwic3RhdGUiLCJzZXROb2RlTWFya3VwIiwidW5kZWZpbmVkIiwiYXR0cnMiLCJpc0RvbmUiLCJ2aWV3IiwiZGlzcGF0Y2giLCJvblJlbW92ZVJlc3BvbnNlIiwiRHJhZ0Ryb3AiLCJwcm9wcyIsImdldFBvcyIsIm9wdGlvbnMiLCJzZWxlY3RlZCIsImF0dHJpYnV0ZXMiLCJpblRhYmxlIiwiZGlzcGxheSIsIm1pbkhlaWdodCIsIm1pbldpZHRoIiwicG9zaXRpb24iLCJtYXJnaW4iLCJjdXJzb3IiLCJpZCIsImR1cGxpY2F0ZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJkYXRhIiwibiIsIm5vZGVQcm9wcyIsIm9wdHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsR0FBZixFQUFvQkMsTUFBcEIsRUFBK0I7QUFDMUQsTUFBUUMsRUFBUixHQUFlSixNQUFNLENBQUNLLEtBQXRCLENBQVFELEVBQVIsQ0FEMEQsQ0FHMUQ7O0FBQ0FBLEVBQUFBLEVBQUUsQ0FBQ0UsYUFBSCxDQUFpQkosR0FBakIsRUFBc0JLLFNBQXRCLGtDQUNLTixJQUFJLENBQUNPLEtBRFYsR0FFS0wsTUFGTDtBQUlBQyxFQUFBQSxFQUFFLENBQUNLLE1BQUgsR0FBWSxJQUFaO0FBQ0FULEVBQUFBLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZQyxRQUFaLENBQXFCUCxFQUFyQjtBQUNELENBVk07Ozs7QUFZQSxJQUFNUSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNaLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxHQUFmLEVBQXVCO0FBQ3JELE1BQVFFLEVBQVIsR0FBZUosTUFBTSxDQUFDSyxLQUF0QixDQUFRRCxFQUFSLENBRHFELENBR3JEOztBQUNBQSxFQUFBQSxFQUFFLENBQUNFLGFBQUgsQ0FBaUJKLEdBQWpCLEVBQXNCSyxTQUF0QixFQUFpQyxzQkFBS04sSUFBSSxDQUFDTyxLQUFWLEVBQWlCLENBQUMsT0FBRCxFQUFVLElBQVYsQ0FBakIsQ0FBakM7QUFDQUosRUFBQUEsRUFBRSxDQUFDSyxNQUFILEdBQVksSUFBWjtBQUNBVCxFQUFBQSxNQUFNLENBQUNVLElBQVAsQ0FBWUMsUUFBWixDQUFxQlAsRUFBckI7QUFDRCxDQVBNOzs7O0FBU1AsSUFBTVMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsS0FBRCxFQUFXO0FBQzFCLE1BQVFkLE1BQVIsR0FBb0RjLEtBQXBELENBQVFkLE1BQVI7QUFBQSxNQUFnQkMsSUFBaEIsR0FBb0RhLEtBQXBELENBQWdCYixJQUFoQjtBQUFBLE1BQXNCYyxNQUF0QixHQUFvREQsS0FBcEQsQ0FBc0JDLE1BQXRCO0FBQUEsTUFBOEJDLE9BQTlCLEdBQW9ERixLQUFwRCxDQUE4QkUsT0FBOUI7QUFBQSxNQUF1Q0MsUUFBdkMsR0FBb0RILEtBQXBELENBQXVDRyxRQUF2QztBQUNBLE1BQWVDLFVBQWYsR0FBOEJqQixJQUE5QixDQUFRTyxLQUFSO0FBQ0EsTUFBUVcsT0FBUixHQUFvQkQsVUFBcEIsQ0FBUUMsT0FBUjtBQUNBLE1BQU1qQixHQUFHLEdBQUdhLE1BQU0sRUFBbEIsQ0FKMEIsQ0FNMUI7O0FBQ0Esc0JBQ0UsZ0NBQUMsdUJBQUQ7QUFBaUIsSUFBQSxTQUFTLEVBQUMsbUJBQTNCO0FBQStDLHFCQUFlRTtBQUE5RCxrQkFDRSxzRUFDTUMsVUFETjtBQUVFLElBQUEsS0FBSyxFQUFFO0FBQ0xFLE1BQUFBLE9BQU8sRUFBRSxhQURKO0FBRUxDLE1BQUFBLFNBQVMsRUFBRSxNQUZOO0FBR0xDLE1BQUFBLFFBQVEsRUFBRSxPQUhMO0FBSUxDLE1BQUFBLFFBQVEsRUFBRSxVQUpMO0FBS0xDLE1BQUFBLE1BQU0sRUFBRUwsT0FBTyxHQUFHLE1BQUgsR0FBWSxRQUx0QjtBQU1MTSxNQUFBQSxNQUFNLEVBQUU7QUFOSDtBQUZULG1CQVdFLGdDQUFDLGtCQUFEO0FBQ0UsSUFBQSxDQUFDLEVBQUVQLFVBREw7QUFFRSxJQUFBLE9BQU8sRUFBRUEsVUFBVSxDQUFDUSxFQUZ0QjtBQUdFLElBQUEsUUFBUSxFQUFDLEdBSFg7QUFJRSxJQUFBLEtBQUssRUFBRVIsVUFKVDtBQUtFLElBQUEsVUFBVSxFQUFFRixPQUFPLENBQUNXLFVBTHRCO0FBTUUsSUFBQSxRQUFRLEVBQUUsa0JBQUN4QixNQUFEO0FBQUEsYUFBWUosYUFBYSxDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsR0FBZixFQUFvQkMsTUFBcEIsQ0FBekI7QUFBQSxLQU5aO0FBT0UsSUFBQSxjQUFjLEVBQUU7QUFBQSxhQUFNUyxnQkFBZ0IsQ0FBQ1osTUFBRCxFQUFTQyxJQUFULEVBQWVDLEdBQWYsQ0FBdEI7QUFBQTtBQVBsQixJQVhGLENBREYsQ0FERjtBQXlCRCxDQWhDRDs7QUFrQ0FXLFFBQVEsQ0FBQ2UsU0FBVCxHQUFxQjtBQUNuQlYsRUFBQUEsVUFBVSxFQUFFVyxzQkFBVUMsTUFESDtBQUVuQkMsRUFBQUEsSUFBSSxFQUFFRixzQkFBVUMsTUFGRztBQUduQkUsRUFBQUEsQ0FBQyxFQUFFSCxzQkFBVUMsTUFITTtBQUluQkcsRUFBQUEsU0FBUyxFQUFFSixzQkFBVUMsTUFKRjtBQUtuQkksRUFBQUEsSUFBSSxFQUFFTCxzQkFBVUM7QUFMRyxDQUFyQjtlQVFlakIsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTm9kZVZpZXdXcmFwcGVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgRHJhZ0Ryb3BUaWxlIGZyb20gJy4vY2hvaWNlJztcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0JztcblxuZXhwb3J0IGNvbnN0IG9uVmFsdWVDaGFuZ2UgPSAoZWRpdG9yLCBub2RlLCBwb3MsIGNob2ljZSkgPT4ge1xuICBjb25zdCB7IHRyIH0gPSBlZGl0b3Iuc3RhdGU7XG5cbiAgLy8gTWVyZ2Ugb2xkIGFuZCBuZXcgYXR0cmlidXRlc1xuICB0ci5zZXROb2RlTWFya3VwKHBvcywgdW5kZWZpbmVkLCB7XG4gICAgLi4ubm9kZS5hdHRycyxcbiAgICAuLi5jaG9pY2UsXG4gIH0pO1xuICB0ci5pc0RvbmUgPSB0cnVlO1xuICBlZGl0b3Iudmlldy5kaXNwYXRjaCh0cik7XG59O1xuXG5leHBvcnQgY29uc3Qgb25SZW1vdmVSZXNwb25zZSA9IChlZGl0b3IsIG5vZGUsIHBvcykgPT4ge1xuICBjb25zdCB7IHRyIH0gPSBlZGl0b3Iuc3RhdGU7XG5cbiAgLy8gTWVyZ2Ugb2xkIGFuZCBuZXcgYXR0cmlidXRlc1xuICB0ci5zZXROb2RlTWFya3VwKHBvcywgdW5kZWZpbmVkLCBvbWl0KG5vZGUuYXR0cnMsIFsndmFsdWUnLCAnaWQnXSkpO1xuICB0ci5pc0RvbmUgPSB0cnVlO1xuICBlZGl0b3Iudmlldy5kaXNwYXRjaCh0cik7XG59O1xuXG5jb25zdCBEcmFnRHJvcCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGVkaXRvciwgbm9kZSwgZ2V0UG9zLCBvcHRpb25zLCBzZWxlY3RlZCB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgYXR0cnM6IGF0dHJpYnV0ZXMgfSA9IG5vZGU7XG4gIGNvbnN0IHsgaW5UYWJsZSB9ID0gYXR0cmlidXRlcztcbiAgY29uc3QgcG9zID0gZ2V0UG9zKCk7XG5cbiAgLy8gY29uc29sZS5sb2coe25vZGVQcm9wcy5jaGlsZHJlbn0pXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlciBjbGFzc05hbWU9XCJkcmFnLWluLXRoZS1ibGFua1wiIGRhdGEtc2VsZWN0ZWQ9e3NlbGVjdGVkfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgbWluSGVpZ2h0OiAnNTBweCcsXG4gICAgICAgICAgbWluV2lkdGg6ICcxNzhweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgbWFyZ2luOiBpblRhYmxlID8gJzEwcHgnIDogJzAgMTBweCcsXG4gICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEcmFnRHJvcFRpbGVcbiAgICAgICAgICBuPXthdHRyaWJ1dGVzfVxuICAgICAgICAgIGRyYWdLZXk9e2F0dHJpYnV0ZXMuaWR9XG4gICAgICAgICAgdGFyZ2V0SWQ9XCIwXCJcbiAgICAgICAgICB2YWx1ZT17YXR0cmlidXRlc31cbiAgICAgICAgICBkdXBsaWNhdGVzPXtvcHRpb25zLmR1cGxpY2F0ZXN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhjaG9pY2UpID0+IG9uVmFsdWVDaGFuZ2UoZWRpdG9yLCBub2RlLCBwb3MsIGNob2ljZSl9XG4gICAgICAgICAgcmVtb3ZlUmVzcG9uc2U9eygpID0+IG9uUmVtb3ZlUmVzcG9uc2UoZWRpdG9yLCBub2RlLCBwb3MpfVxuICAgICAgICA+PC9EcmFnRHJvcFRpbGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9Ob2RlVmlld1dyYXBwZXI+XG4gICk7XG59O1xuXG5EcmFnRHJvcC5wcm9wVHlwZXMgPSB7XG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGRhdGE6IFByb3BUeXBlcy5vYmplY3QsXG4gIG46IFByb3BUeXBlcy5vYmplY3QsXG4gIG5vZGVQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdEcm9wO1xuIl19
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _react2 = require("@tiptap/react");
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
27
+ var editor = props.editor,
28
+ node = props.node,
29
+ getPos = props.getPos,
30
+ options = props.options,
31
+ selected = props.selected;
32
+ var attributes = node.attrs;
33
+ var value = attributes.value,
34
+ error = attributes.error;
35
+ var pos = getPos();
36
+
37
+ var _useState = (0, _react.useState)(false),
38
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
39
+ showToolbar = _useState2[0],
40
+ setShowToolbar = _useState2[1];
41
+
42
+ var EcrToolbar = options.respAreaToolbar(node, editor, function () {});
43
+ var toolbarRef = (0, _react.useRef)(null);
44
+
45
+ var handleDone = function handleDone(newLatex) {
46
+ updateAttributes({
47
+ latex: newLatex
48
+ });
49
+ setShowToolbar(false);
50
+ editor.commands.focus();
51
+ };
52
+
53
+ (0, _react.useEffect)(function () {
54
+ setShowToolbar(selected);
55
+ }, [selected]);
56
+ (0, _react.useEffect)(function () {
57
+ var handleClickOutside = function handleClickOutside(event) {
58
+ if (toolbarRef.current && !toolbarRef.current.contains(event.target) && !event.target.closest('[data-inline-node]')) {
59
+ setShowToolbar(false);
60
+ }
61
+ };
62
+
63
+ if (showToolbar) {
64
+ document.addEventListener('mousedown', handleClickOutside);
65
+ } else {
66
+ document.removeEventListener('mousedown', handleClickOutside);
67
+ }
68
+
69
+ return function () {
70
+ return document.removeEventListener('mousedown', handleClickOutside);
71
+ };
72
+ }, [showToolbar]);
73
+ return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
74
+ className: "drag-in-the-blank",
75
+ "data-selected": selected,
76
+ style: {
77
+ display: 'inline-flex',
78
+ minHeight: '55px',
79
+ position: 'relative',
80
+ cursor: 'pointer'
81
+ }
82
+ }, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, attributes, {
83
+ style: {
84
+ display: 'inline-flex',
85
+ width: '100%',
86
+ minHeight: '46px',
87
+ height: '46px',
88
+ backgroundColor: '#FFF',
89
+ border: "1px solid ".concat(error ? 'red' : '#C0C3CF'),
90
+ boxSizing: 'border-box',
91
+ borderRadius: '4px',
92
+ overflow: 'hidden',
93
+ padding: '12px 21px',
94
+ margin: '0 4px',
95
+ visibility: showToolbar ? 'hidden' : 'visible'
96
+ },
97
+ onClick: function onClick() {
98
+ return setShowToolbar(true);
99
+ },
100
+ dangerouslySetInnerHTML: {
101
+ __html: value || '<div>&nbsp;</div>'
102
+ }
103
+ })), showToolbar && /*#__PURE__*/_react["default"].createElement("div", {
104
+ ref: toolbarRef,
105
+ className: "absolute z-50 bg-white shadow-lg rounded p-2",
106
+ style: {
107
+ zIndex: 1
108
+ }
109
+ }, /*#__PURE__*/_react["default"].createElement(EcrToolbar, null)));
110
+ };
111
+
112
+ ExplicitConstructedResponse.propTypes = {
113
+ attributes: _propTypes["default"].object,
114
+ error: _propTypes["default"].any,
115
+ value: _propTypes["default"].string,
116
+ isFocused: _propTypes["default"].bool
117
+ };
118
+ var _default = ExplicitConstructedResponse;
119
+ exports["default"] = _default;
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3BBcmVhL0V4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZS5qc3giXSwibmFtZXMiOlsiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIiwicHJvcHMiLCJlZGl0b3IiLCJub2RlIiwiZ2V0UG9zIiwib3B0aW9ucyIsInNlbGVjdGVkIiwiYXR0cmlidXRlcyIsImF0dHJzIiwidmFsdWUiLCJlcnJvciIsInBvcyIsInNob3dUb29sYmFyIiwic2V0U2hvd1Rvb2xiYXIiLCJFY3JUb29sYmFyIiwicmVzcEFyZWFUb29sYmFyIiwidG9vbGJhclJlZiIsImhhbmRsZURvbmUiLCJuZXdMYXRleCIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJsYXRleCIsImNvbW1hbmRzIiwiZm9jdXMiLCJoYW5kbGVDbGlja091dHNpZGUiLCJldmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImNsb3Nlc3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGlzcGxheSIsIm1pbkhlaWdodCIsInBvc2l0aW9uIiwiY3Vyc29yIiwid2lkdGgiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3hTaXppbmciLCJib3JkZXJSYWRpdXMiLCJvdmVyZmxvdyIsInBhZGRpbmciLCJtYXJnaW4iLCJ2aXNpYmlsaXR5IiwiX19odG1sIiwiekluZGV4IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiYW55Iiwic3RyaW5nIiwiaXNGb2N1c2VkIiwiYm9vbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsQ0FBQ0MsS0FBRCxFQUFXO0FBQzdDLE1BQVFDLE1BQVIsR0FBb0RELEtBQXBELENBQVFDLE1BQVI7QUFBQSxNQUFnQkMsSUFBaEIsR0FB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QSxZQUFZLEVBQUUsS0FSVDtBQVNMQyxNQUFBQSxRQUFRLEVBQUUsUUFUTDtBQVVMQyxNQUFBQSxPQUFPLEVBQUUsV0FWSjtBQVdMQyxNQUFBQSxNQUFNLEVBQUUsT0FYSDtBQVlMQyxNQUFBQSxVQUFVLEVBQUVqQyxXQUFXLEdBQUcsUUFBSCxHQUFjO0FBWmhDLEtBRlQ7QUFnQkUsSUFBQSxPQUFPLEVBQUU7QUFBQSxhQUFNQyxjQUFjLENBQUMsSUFBRCxDQUFwQjtBQUFBLEtBaEJYO0FBaUJFLElBQUEsdUJBQXVCLEVBQUU7QUFDdkJpQyxNQUFBQSxNQUFNLEVBQUVyQyxLQUFLLElBQUk7QUFETTtBQWpCM0IsS0FWRixFQStCR0csV0FBVyxpQkFDVjtBQUFLLElBQUEsR0FBRyxFQUFFSSxVQUFWO0FBQXNCLElBQUEsU0FBUyxFQUFDLDhDQUFoQztBQUErRSxJQUFBLEtBQUssRUFBRTtBQUFFK0IsTUFBQUEsTUFBTSxFQUFFO0FBQVY7QUFBdEYsa0JBQ0UsZ0NBQUMsVUFBRCxPQURGLENBaENKLENBREY7QUF1Q0QsQ0E5RUQ7O0FBZ0ZBL0MsMkJBQTJCLENBQUNnRCxTQUE1QixHQUF3QztBQUN0Q3pDLEVBQUFBLFVBQVUsRUFBRTBDLHNCQUFVQyxNQURnQjtBQUV0Q3hDLEVBQUFBLEtBQUssRUFBRXVDLHNCQUFVRSxHQUZxQjtBQUd0QzFDLEVBQUFBLEtBQUssRUFBRXdDLHNCQUFVRyxNQUhxQjtBQUl0Q0MsRUFBQUEsU0FBUyxFQUFFSixzQkFBVUs7QUFKaUIsQ0FBeEM7ZUFPZXRELDJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE5vZGVWaWV3V3JhcHBlciB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZWRpdG9yLCBub2RlLCBnZXRQb3MsIG9wdGlvbnMsIHNlbGVjdGVkIH0gPSBwcm9wcztcbiAgY29uc3QgeyBhdHRyczogYXR0cmlidXRlcyB9ID0gbm9kZTtcbiAgY29uc3QgeyB2YWx1ZSwgZXJyb3IgfSA9IGF0dHJpYnV0ZXM7XG4gIGNvbnN0IHBvcyA9IGdldFBvcygpO1xuICBjb25zdCBbc2hvd1Rvb2xiYXIsIHNldFNob3dUb29sYmFyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgRWNyVG9vbGJhciA9IG9wdGlvbnMucmVzcEFyZWFUb29sYmFyKG5vZGUsIGVkaXRvciwgKCkgPT4ge30pO1xuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZURvbmUgPSAobmV3TGF0ZXgpID0+IHtcbiAgICB1cGRhdGVBdHRyaWJ1dGVzKHsgbGF0ZXg6IG5ld0xhdGV4IH0pO1xuICAgIHNldFNob3dUb29sYmFyKGZhbHNlKTtcbiAgICBlZGl0b3IuY29tbWFuZHMuZm9jdXMoKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFNob3dUb29sYmFyKHNlbGVjdGVkKTtcbiAgfSwgW3NlbGVjdGVkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdG9vbGJhclJlZi5jdXJyZW50ICYmXG4gICAgICAgICF0b29sYmFyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAhZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWlubGluZS1ub2RlXScpXG4gICAgICApIHtcbiAgICAgICAgc2V0U2hvd1Rvb2xiYXIoZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoc2hvd1Rvb2xiYXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH0sIFtzaG93VG9vbGJhcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlclxuICAgICAgY2xhc3NOYW1lPVwiZHJhZy1pbi10aGUtYmxhbmtcIlxuICAgICAgZGF0YS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICBtaW5IZWlnaHQ6ICc1NXB4JyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtaW5IZWlnaHQ6ICc0NnB4JyxcbiAgICAgICAgICBoZWlnaHQ6ICc0NnB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGJyxcbiAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHtlcnJvciA/ICdyZWQnIDogJyNDMEMzQ0YnfWAsXG4gICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEycHggMjFweCcsXG4gICAgICAgICAgbWFyZ2luOiAnMCA0cHgnLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHNob3dUb29sYmFyID8gJ2hpZGRlbicgOiAndmlzaWJsZScsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dUb29sYmFyKHRydWUpfVxuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgIF9faHRtbDogdmFsdWUgfHwgJzxkaXY+Jm5ic3A7PC9kaXY+JyxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICB7c2hvd1Rvb2xiYXIgJiYgKFxuICAgICAgICA8ZGl2IHJlZj17dG9vbGJhclJlZn0gY2xhc3NOYW1lPVwiYWJzb2x1dGUgei01MCBiZy13aGl0ZSBzaGFkb3ctbGcgcm91bmRlZCBwLTJcIiBzdHlsZT17eyB6SW5kZXg6IDEgfX0+XG4gICAgICAgICAgPEVjclRvb2xiYXIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvTm9kZVZpZXdXcmFwcGVyPlxuICApO1xufTtcblxuRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlLnByb3BUeXBlcyA9IHtcbiAgYXR0cmlidXRlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZXJyb3I6IFByb3BUeXBlcy5hbnksXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc0ZvY3VzZWQ6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlO1xuIl19