@pie-element/inline-dropdown 4.10.16-next.1 → 4.11.2
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.
- package/CHANGELOG.md +461 -0
- package/LICENSE.md +5 -0
- package/configure/CHANGELOG.md +405 -0
- package/configure/lib/defaults.js +18 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +15 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/inline-dropdown-toolbar.js +54 -47
- package/configure/lib/inline-dropdown-toolbar.js.map +1 -1
- package/configure/lib/main.js +227 -159
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/markupUtils.js +1 -1
- package/configure/lib/markupUtils.js.map +1 -1
- package/configure/lib/utils.js +17 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +85 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +28 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -1
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +94 -0
- package/docs/config-schema.json.md +73 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +19 -20
- package/docs/pie-schema.json +27 -0
- package/docs/pie-schema.json.md +20 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +31 -21
- package/lib/inline-dropdown.js.map +1 -1
- package/package.json +6 -6
- package/configure/lib/__tests__/inline-dropdown-toolbar.test.js +0 -124
- package/configure/lib/__tests__/main.test.js +0 -516
- package/configure/lib/__tests__/markupUtils.test.js +0 -108
- package/controller/lib/__tests__/index.test.js +0 -942
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/inline-dropdown.test.js +0 -121
|
@@ -109,33 +109,35 @@ var MenuItemComp = /*#__PURE__*/function (_React$Component) {
|
|
|
109
109
|
onRemoveChoice: _propTypes["default"].func.isRequired,
|
|
110
110
|
value: _propTypes["default"].string.isRequired
|
|
111
111
|
});
|
|
112
|
-
var MenuItem = (0, _styles.withStyles)({
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
112
|
+
var MenuItem = (0, _styles.withStyles)(function (theme) {
|
|
113
|
+
return {
|
|
114
|
+
wrapper: {
|
|
115
|
+
background: theme.palette.common.white,
|
|
116
|
+
borderBottom: "1px solid ".concat(theme.palette.common.black),
|
|
117
|
+
boxSizing: 'border-box',
|
|
118
|
+
display: 'block',
|
|
119
|
+
cursor: 'pointer',
|
|
120
|
+
lineHeight: '30px',
|
|
121
|
+
padding: '10px 25px 10px 10px',
|
|
122
|
+
position: 'relative'
|
|
123
|
+
},
|
|
124
|
+
correct: {
|
|
125
|
+
background: '#C4DCFA'
|
|
126
|
+
},
|
|
127
|
+
removeIcon: {
|
|
128
|
+
cursor: 'pointer',
|
|
129
|
+
fontSize: '20px',
|
|
130
|
+
fontStyle: 'normal',
|
|
131
|
+
position: 'absolute',
|
|
132
|
+
transform: 'translate(0, -50%)',
|
|
133
|
+
top: '50%',
|
|
134
|
+
right: '5px',
|
|
135
|
+
zIndex: 3
|
|
136
|
+
},
|
|
137
|
+
valueHolder: {
|
|
138
|
+
wordBreak: 'break-all'
|
|
139
|
+
}
|
|
140
|
+
};
|
|
139
141
|
})(MenuItemComp);
|
|
140
142
|
|
|
141
143
|
var findSlateNode = function findSlateNode(key) {
|
|
@@ -313,7 +315,8 @@ var RespAreaToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
313
315
|
var _this$props2 = this.props,
|
|
314
316
|
classes = _this$props2.classes,
|
|
315
317
|
choices = _this$props2.choices,
|
|
316
|
-
spellCheck = _this$props2.spellCheck
|
|
318
|
+
spellCheck = _this$props2.spellCheck,
|
|
319
|
+
uploadSoundSupport = _this$props2.uploadSoundSupport;
|
|
317
320
|
var _this$state = this.state,
|
|
318
321
|
respAreaMarkup = _this$state.respAreaMarkup,
|
|
319
322
|
toolbarStyle = _this$state.toolbarStyle;
|
|
@@ -363,7 +366,8 @@ var RespAreaToolbar = /*#__PURE__*/function (_React$Component2) {
|
|
|
363
366
|
activePlugins: filteredDefaultPlugins,
|
|
364
367
|
pluginProps: labelPlugins,
|
|
365
368
|
onBlur: this.onBlur,
|
|
366
|
-
spellCheck: spellCheck
|
|
369
|
+
spellCheck: spellCheck,
|
|
370
|
+
uploadSoundSupport: uploadSoundSupport
|
|
367
371
|
}), /*#__PURE__*/_react["default"].createElement("i", {
|
|
368
372
|
style: {
|
|
369
373
|
cursor: 'pointer',
|
|
@@ -407,6 +411,7 @@ exports.RespAreaToolbar = RespAreaToolbar;
|
|
|
407
411
|
(0, _defineProperty2["default"])(RespAreaToolbar, "propTypes", {
|
|
408
412
|
classes: _propTypes["default"].object,
|
|
409
413
|
node: _propTypes["default"].object,
|
|
414
|
+
uploadSoundSupport: _propTypes["default"].object,
|
|
410
415
|
onDone: _propTypes["default"].func,
|
|
411
416
|
choices: _propTypes["default"].array,
|
|
412
417
|
onAddChoice: _propTypes["default"].func.isRequired,
|
|
@@ -420,25 +425,27 @@ exports.RespAreaToolbar = RespAreaToolbar;
|
|
|
420
425
|
})
|
|
421
426
|
})
|
|
422
427
|
});
|
|
423
|
-
var StyledRespAreaToolbar = (0, _styles.withStyles)({
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
428
|
+
var StyledRespAreaToolbar = (0, _styles.withStyles)(function (theme) {
|
|
429
|
+
return {
|
|
430
|
+
respArea: {
|
|
431
|
+
backgroundColor: theme.palette.common.white,
|
|
432
|
+
'& [data-slate-editor="true"]': {
|
|
433
|
+
minHeight: 'initial !important'
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
choicesHolder: {
|
|
437
|
+
display: 'flex',
|
|
438
|
+
flexDirection: 'column',
|
|
439
|
+
'& > div:last-child': {
|
|
440
|
+
border: 'none'
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
itemBuilder: {
|
|
444
|
+
padding: theme.spacing.unit,
|
|
445
|
+
position: 'relative'
|
|
435
446
|
}
|
|
436
|
-
}
|
|
437
|
-
itemBuilder: {
|
|
438
|
-
padding: '8px',
|
|
439
|
-
position: 'relative'
|
|
440
|
-
}
|
|
447
|
+
};
|
|
441
448
|
})(RespAreaToolbar);
|
|
442
449
|
var _default = StyledRespAreaToolbar;
|
|
443
450
|
exports["default"] = _default;
|
|
444
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmxpbmUtZHJvcGRvd24tdG9vbGJhci5qc3giXSwibmFtZXMiOlsiTWVudUl0ZW1Db21wIiwiZSIsIm9uUmVtb3ZlQ2hvaWNlIiwicHJvcHMiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImNsYXNzZXMiLCJjb3JyZWN0Iiwib25DbGljayIsInZhbHVlIiwid3JhcHBlciIsInZhbHVlSG9sZGVyIiwiX19odG1sIiwicmVtb3ZlSWNvbiIsIm9uUmVtb3ZlQ2xpY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJib29sIiwiZnVuYyIsInN0cmluZyIsIk1lbnVJdGVtIiwiYmFja2dyb3VuZCIsImJvcmRlckJvdHRvbSIsImJveFNpemluZyIsImRpc3BsYXkiLCJjdXJzb3IiLCJsaW5lSGVpZ2h0IiwicGFkZGluZyIsInBvc2l0aW9uIiwiZm9udFNpemUiLCJmb250U3R5bGUiLCJ0cmFuc2Zvcm0iLCJ0b3AiLCJyaWdodCIsInpJbmRleCIsIndvcmRCcmVhayIsImZpbmRTbGF0ZU5vZGUiLCJrZXkiLCJ3aW5kb3ciLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjcmVhdGVFbGVtZW50RnJvbUhUTUwiLCJodG1sU3RyaW5nIiwiZGl2IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsInRyaW0iLCJSZXNwQXJlYVRvb2xiYXIiLCJyZXNwQXJlYU1hcmt1cCIsInNldFN0YXRlIiwiZWRpdG9yUmVmIiwiZmluaXNoRWRpdGluZyIsInZhbCIsIm5vZGUiLCJvbkFkZENob2ljZSIsIm9ubHlUZXh0IiwidGV4dENvbnRlbnQiLCJkYXRhIiwiZ2V0IiwibmV3VmFsdWUiLCJpbmRleCIsIm9uVG9vbGJhckRvbmUiLCJvblNlbGVjdENob2ljZSIsInVwZGF0ZSIsInRvSlNPTiIsImNoYW5nZSIsInNldE5vZGVCeUtleSIsIm5leHRUZXh0IiwiZ2V0TmV4dFRleHQiLCJtb3ZlRm9jdXNUbyIsIm1vdmVBbmNob3JUbyIsImV2ZW50IiwiY2xpY2tlZEluc2lkZSIsImNob2ljZXMiLCJvbkNoZWNrIiwiY29ycmVjdFJlc3BvbnNlIiwiZmluZCIsImNob2ljZSIsImxlbmd0aCIsInJlbW92ZU5vZGVCeUtleSIsInNsYXRlRWRpdG9yUmVmIiwicm9vdFJlZiIsInNsYXRlRWRpdG9yIiwiaW5wdXRSZWYiLCJlbGVtZW50IiwiZm9jdXMiLCJkb21Ob2RlIiwiZG9tTm9kZVJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJlZGl0b3IiLCJjbG9zZXN0IiwiZWRpdG9yUmVjdCIsImxlZnQiLCJ0b29sYmFyU3R5bGUiLCJoZWlnaHQiLCJ3aWR0aCIsIlJlYWN0RE9NIiwiZmluZERPTU5vZGUiLCJzcGVsbENoZWNrIiwic3RhdGUiLCJmaWx0ZXJlZERlZmF1bHRQbHVnaW5zIiwiREVGQVVMVF9QTFVHSU5TIiwiZmlsdGVyIiwicCIsImxhYmVsUGx1Z2lucyIsImF1ZGlvIiwiZGlzYWJsZWQiLCJ2aWRlbyIsImJhY2tncm91bmRDb2xvciIsIm9uQ2xpY2tJbnNpZGUiLCJpdGVtQnVpbGRlciIsInJlZiIsInJlc3BBcmVhIiwiYWx3YXlzVmlzaWJsZSIsInNob3dEb25lIiwiZG9uZU9uIiwib25LZXlEb3duIiwib25SZXNwQXJlYUNoYW5nZSIsIm9uRG9uZSIsIm9uQmx1ciIsImZvY3VzSW5wdXQiLCJjaG9pY2VzSG9sZGVyIiwibWFwIiwibGFiZWwiLCJhcnJheSIsInNoYXBlIiwiU3R5bGVkUmVzcEFyZWFUb29sYmFyIiwibWluSGVpZ2h0IiwiZmxleERpcmVjdGlvbiIsImJvcmRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztJQUdNQSxZOzs7Ozs7Ozs7Ozs7Ozs7c0dBU1ksVUFBQUMsQ0FBQyxFQUFJO0FBQ25CLFVBQVFDLGNBQVIsR0FB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QU9qQjhDLEVBQUFBLGNBQWMsRUFBRWhELHNCQUFVSSxJQUFWLENBQWVGLFVBUGQ7QUFRakI2QyxFQUFBQSxhQUFhLEVBQUUvQyxzQkFBVUksSUFBVixDQUFlRixVQVJiO0FBU2pCVixFQUFBQSxLQUFLLEVBQUVRLHNCQUFVK0csS0FBVixDQUFnQjtBQUNyQjVELElBQUFBLE1BQU0sRUFBRW5ELHNCQUFVSSxJQUFWLENBQWVGLFVBREY7QUFFckJ1QixJQUFBQSxRQUFRLEVBQUV6QixzQkFBVStHLEtBQVYsQ0FBZ0I7QUFDeEJ6RCxNQUFBQSxXQUFXLEVBQUV0RCxzQkFBVUksSUFBVixDQUFlRjtBQURKLEtBQWhCO0FBRlcsR0FBaEI7QUFUVSxDO0FBK05yQixJQUFNOEcscUJBQXFCLEdBQUcsd0JBQVc7QUFDdkNkLEVBQUFBLFFBQVEsRUFBRTtBQUNSSixJQUFBQSxlQUFlLEVBQUUsTUFEVDtBQUVSLG9DQUFnQztBQUM5Qm1CLE1BQUFBLFNBQVMsRUFBRTtBQURtQjtBQUZ4QixHQUQ2QjtBQU92Q04sRUFBQUEsYUFBYSxFQUFFO0FBQ2JqRyxJQUFBQSxPQUFPLEVBQUUsTUFESTtBQUVid0csSUFBQUEsYUFBYSxFQUFFLFFBRkY7QUFHYiwwQkFBc0I7QUFDcEJDLE1BQUFBLE1BQU0sRUFBRTtBQURZO0FBSFQsR0FQd0I7QUFjdkNuQixFQUFBQSxXQUFXLEVBQUU7QUFDWG5GLElBQUFBLE9BQU8sRUFBRSxLQURFO0FBRVhDLElBQUFBLFFBQVEsRUFBRTtBQUZDO0FBZDBCLENBQVgsRUFrQjNCbUIsZUFsQjJCLENBQTlCO2VBb0JlK0UscUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9QTFVHSU5TIH0gZnJvbSAnQHBpZS1saWIvZWRpdGFibGUtaHRtbCc7XG5cbmNsYXNzIE1lbnVJdGVtQ29tcCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGNvcnJlY3Q6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlbW92ZUNob2ljZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH07XG5cbiAgb25SZW1vdmVDbGljayA9IGUgPT4ge1xuICAgIGNvbnN0IHsgb25SZW1vdmVDaG9pY2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIG9uUmVtb3ZlQ2hvaWNlKCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgY29ycmVjdCwgb25DbGljaywgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy53cmFwcGVyLCB7IFtjbGFzc2VzLmNvcnJlY3RdOiBjb3JyZWN0IH0pfSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy52YWx1ZUhvbGRlcn1cbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiB2YWx1ZVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxpIGNsYXNzTmFtZT17Y2xhc3Nlcy5yZW1vdmVJY29ufSBvbkNsaWNrPXt0aGlzLm9uUmVtb3ZlQ2xpY2t9PlxuICAgICAgICAgIHhcbiAgICAgICAgPC9pPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBNZW51SXRlbSA9IHdpdGhTdHlsZXMoe1xuICB3cmFwcGVyOiB7XG4gICAgYmFja2dyb3VuZDogJyNmZmYnLFxuICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCBibGFjaycsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBsaW5lSGVpZ2h0OiAnMzBweCcsXG4gICAgcGFkZGluZzogJzEwcHggMjVweCAxMHB4IDEwcHgnLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gIH0sXG4gIGNvcnJlY3Q6IHtcbiAgICBiYWNrZ3JvdW5kOiAnI0M0RENGQSdcbiAgfSxcbiAgcmVtb3ZlSWNvbjoge1xuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGZvbnRTaXplOiAnMjBweCcsXG4gICAgZm9udFN0eWxlOiAnbm9ybWFsJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgIHRvcDogJzUwJScsXG4gICAgcmlnaHQ6ICc1cHgnLFxuICAgIHpJbmRleDogM1xuICB9LFxuICB2YWx1ZUhvbGRlcjoge1xuICAgIHdvcmRCcmVhazogJ2JyZWFrLWFsbCdcbiAgfVxufSkoTWVudUl0ZW1Db21wKTtcblxuY29uc3QgZmluZFNsYXRlTm9kZSA9IGtleSA9PiB7XG4gIHJldHVybiB3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEta2V5PVwiJyArIGtleSArICdcIl0nKTtcbn07XG5cbmNvbnN0IGNyZWF0ZUVsZW1lbnRGcm9tSFRNTCA9IGh0bWxTdHJpbmcgPT4ge1xuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICBkaXYuaW5uZXJIVE1MID0gKGh0bWxTdHJpbmcgfHwgJycpLnRyaW0oKTtcblxuICByZXR1cm4gZGl2O1xufTtcblxuZXhwb3J0IGNsYXNzIFJlc3BBcmVhVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBub2RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9uRG9uZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hvaWNlczogUHJvcFR5cGVzLmFycmF5LFxuICAgIG9uQWRkQ2hvaWNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUmVtb3ZlQ2hvaWNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uU2VsZWN0Q2hvaWNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uVG9vbGJhckRvbmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBjaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBkb2N1bWVudDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgZ2V0TmV4dFRleHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICAgIH0pXG4gICAgfSlcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICByZXNwQXJlYU1hcmt1cDogJydcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IG5vZGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBkb21Ob2RlID0gZmluZFNsYXRlTm9kZShub2RlLmtleSk7XG5cbiAgICBpZiAoZG9tTm9kZSkge1xuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnN0IGRvbU5vZGVSZWN0ID0gZG9tTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGRvbU5vZGUuY2xvc2VzdCgnW2RhdGEtc2xhdGUtZWRpdG9yXScpO1xuICAgICAgY29uc3QgZWRpdG9yUmVjdCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvcCA9IGRvbU5vZGVSZWN0LnRvcCAtIGVkaXRvclJlY3QudG9wO1xuICAgICAgY29uc3QgbGVmdCA9IGRvbU5vZGVSZWN0LmxlZnQgLSBlZGl0b3JSZWN0LmxlZnQ7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB0b29sYmFyU3R5bGU6IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICB0b3A6IGAke3RvcCArIGRvbU5vZGVSZWN0LmhlaWdodCArIDYwfXB4YCxcbiAgICAgICAgICBsZWZ0OiBgJHtsZWZ0ICsgMjV9cHhgLFxuICAgICAgICAgIHdpZHRoOiBkb21Ob2RlUmVjdC53aWR0aFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBkb21Ob2RlID0gUmVhY3RET00uZmluZERPTU5vZGUodGhpcyk7XG5cbiAgICByZW5kZXJNYXRoKGRvbU5vZGUpO1xuICB9XG5cbiAgb25SZXNwQXJlYUNoYW5nZSA9IHJlc3BBcmVhTWFya3VwID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgcmVzcEFyZWFNYXJrdXAgfSk7XG4gIH07XG5cbiAgb25BZGRDaG9pY2UgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuZWRpdG9yUmVmKSB7XG4gICAgICB0aGlzLmVkaXRvclJlZi5maW5pc2hFZGl0aW5nKCk7XG4gICAgfVxuICB9O1xuXG4gIG9uRG9uZSA9ICh2YWwpID0+IHtcbiAgICBjb25zdCB7IG5vZGUsIG9uQWRkQ2hvaWNlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IG9ubHlUZXh0ID0gY3JlYXRlRWxlbWVudEZyb21IVE1MKHZhbCkudGV4dENvbnRlbnQudHJpbSgpO1xuXG4gICAgaWYgKCFpc0VtcHR5KG9ubHlUZXh0KSkge1xuICAgICAgb25BZGRDaG9pY2Uobm9kZS5kYXRhLmdldCgnaW5kZXgnKSwgdmFsKTtcbiAgICB9XG4gIH07XG5cbiAgb25TZWxlY3RDaG9pY2UgPSAobmV3VmFsdWUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBub2RlLCB2YWx1ZSwgb25Ub29sYmFyRG9uZSwgb25TZWxlY3RDaG9pY2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0geyAuLi5ub2RlLmRhdGEudG9KU09OKCksIHZhbHVlOiBuZXdWYWx1ZSB9O1xuICAgIGNvbnN0IGNoYW5nZSA9IHZhbHVlLmNoYW5nZSgpLnNldE5vZGVCeUtleShub2RlLmtleSwgeyBkYXRhOiB1cGRhdGUgfSk7XG5cbiAgICBjb25zdCBuZXh0VGV4dCA9IHZhbHVlLmRvY3VtZW50LmdldE5leHRUZXh0KG5vZGUua2V5KTtcblxuICAgIGNoYW5nZS5tb3ZlRm9jdXNUbyhuZXh0VGV4dC5rZXksIDApLm1vdmVBbmNob3JUbyhuZXh0VGV4dC5rZXksIDApO1xuXG4gICAgb25Ub29sYmFyRG9uZShjaGFuZ2UsIGZhbHNlKTtcblxuICAgIG9uU2VsZWN0Q2hvaWNlKGluZGV4KTtcbiAgfTtcblxuICBvblJlbW92ZUNob2ljZSA9ICh2YWwsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBub2RlLCB2YWx1ZSwgb25Ub29sYmFyRG9uZSwgb25SZW1vdmVDaG9pY2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoaXNFcXVhbCh2YWwsIG5vZGUuZGF0YS5nZXQoJ3ZhbHVlJykpKSB7XG4gICAgICBjb25zdCB1cGRhdGUgPSB7IC4uLm5vZGUuZGF0YS50b0pTT04oKSwgdmFsdWU6IG51bGwgfTtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IHZhbHVlLmNoYW5nZSgpLnNldE5vZGVCeUtleShub2RlLmtleSwgeyBkYXRhOiB1cGRhdGUgfSk7XG5cbiAgICAgIG9uVG9vbGJhckRvbmUoY2hhbmdlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVDaG9pY2UoaW5kZXgpO1xuICB9O1xuXG4gIG9uS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uQWRkQ2hvaWNlKCk7XG4gICAgICAvLyBDYW5jZWxsaW5nIGV2ZW50XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIG9uQmx1ciA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5jbGlja2VkSW5zaWRlKSB7XG4gICAgICB0aGlzLmNsaWNrZWRJbnNpZGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vZGUsIGNob2ljZXMsIG9uQ2hlY2ssIG9uVG9vbGJhckRvbmUsIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNvcnJlY3RSZXNwb25zZSA9IChjaG9pY2VzIHx8IFtdKS5maW5kKGNob2ljZSA9PiBjaG9pY2UuY29ycmVjdCk7XG5cbiAgICB0aGlzLm9uQWRkQ2hvaWNlKCk7XG4gICAgaWYgKCFjaG9pY2VzIHx8IChjaG9pY2VzICYmIGNob2ljZXMubGVuZ3RoIDwgMikgfHwgIWNvcnJlY3RSZXNwb25zZSkge1xuICAgICAgb25DaGVjaygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHZhbHVlLmNoYW5nZSgpO1xuXG4gICAgICAgIGNoYW5nZS5yZW1vdmVOb2RlQnlLZXkobm9kZS5nZXQoJ2tleScpKTtcbiAgICAgICAgb25Ub29sYmFyRG9uZShjaGFuZ2UsIGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBvbkNsaWNrSW5zaWRlID0gKCkgPT4ge1xuICAgIHRoaXMuY2xpY2tlZEluc2lkZSA9IHRydWU7XG4gIH07XG5cbiAgZm9jdXNJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB3ZSBuZWVkIHRvIGZvY3VzIHRoZSBpbnB1dCBzbyB0aGF0IG1hdGggaXMgc2F2ZWQgZXZlbiB3aXRob3V0IHByZXNzaW5nIHRoZSBncmVlbiBjaGVja21hcmtcbiAgICBjb25zdCBzbGF0ZUVkaXRvclJlZiA9IHRoaXMuZWRpdG9yUmVmICYmIHRoaXMuZWRpdG9yUmVmLnJvb3RSZWYgJiYgdGhpcy5lZGl0b3JSZWYucm9vdFJlZi5zbGF0ZUVkaXRvcjtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHNsYXRlRWRpdG9yUmVmICYmIHNsYXRlRWRpdG9yUmVmLmVkaXRvclJlZiAmJiBzbGF0ZUVkaXRvclJlZi5lZGl0b3JSZWYuZWxlbWVudDtcblxuICAgIGlmIChpbnB1dFJlZikge1xuICAgICAgaW5wdXRSZWYuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgY2hvaWNlcywgc3BlbGxDaGVjayB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHJlc3BBcmVhTWFya3VwLCB0b29sYmFyU3R5bGUgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBmaWx0ZXJlZERlZmF1bHRQbHVnaW5zID0gKERFRkFVTFRfUExVR0lOUyB8fCBbXSkuZmlsdGVyKHAgPT4gcCAhPT0gJ3RhYmxlJyAmJiBwICE9PSAnYnVsbGV0ZWQtbGlzdCcgJiYgcCAhPT0gJ251bWJlcmVkLWxpc3QnKTtcbiAgICBjb25zdCBsYWJlbFBsdWdpbnMgPSB7XG4gICAgICBhdWRpbzogeyBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgdmlkZW86IHsgZGlzYWJsZWQ6IHRydWUgfVxuICAgIH07XG5cbiAgICBpZiAoIXRvb2xiYXJTdHlsZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAuLi50b29sYmFyU3R5bGUsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0UwRTFFNidcbiAgICAgICAgfX1cbiAgICAgICAgb25Nb3VzZURvd249e3RoaXMub25DbGlja0luc2lkZX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuaXRlbUJ1aWxkZXJ9PlxuICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgIHJlZj17cmVmID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yUmVmID0gcmVmO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgYXV0b1NhdmVcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5yZXNwQXJlYX1cbiAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICAgICAgICAgICAgYWx3YXlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIHNob3dEb25lOiBmYWxzZSxcbiAgICAgICAgICAgICAgZG9uZU9uOiAnYmx1cidcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBtYXJrdXA9e3Jlc3BBcmVhTWFya3VwfVxuICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLm9uS2V5RG93bn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uUmVzcEFyZWFDaGFuZ2V9XG4gICAgICAgICAgICBvbkRvbmU9e3RoaXMub25Eb25lfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgQ2hvaWNlXCJcbiAgICAgICAgICAgIGFjdGl2ZVBsdWdpbnM9e2ZpbHRlcmVkRGVmYXVsdFBsdWdpbnN9XG4gICAgICAgICAgICBwbHVnaW5Qcm9wcz17bGFiZWxQbHVnaW5zfVxuICAgICAgICAgICAgb25CbHVyPXt0aGlzLm9uQmx1cn1cbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2t9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgIGZvbnRTaXplOiAnMjBweCcsXG4gICAgICAgICAgICAgIGZvbnRTdHlsZTogJ25vcm1hbCcsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICB0b3A6ICc1MCUnLFxuICAgICAgICAgICAgICByaWdodDogJzE1cHgnLFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgLTUwJSknXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB0aGlzLmZvY3VzSW5wdXQoKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMub25BZGRDaG9pY2UoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICArXG4gICAgICAgICAgPC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2Nob2ljZXMgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmNob2ljZXNIb2xkZXJ9PlxuICAgICAgICAgICAge2Nob2ljZXMubWFwKCh7IGxhYmVsLCBjb3JyZWN0IH0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5vblNlbGVjdENob2ljZShsYWJlbCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgIG9uUmVtb3ZlQ2hvaWNlPXsoKSA9PiB0aGlzLm9uUmVtb3ZlQ2hvaWNlKGxhYmVsLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgICAgICAgICAgIGNvcnJlY3Q9e2NvcnJlY3R9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgU3R5bGVkUmVzcEFyZWFUb29sYmFyID0gd2l0aFN0eWxlcyh7XG4gIHJlc3BBcmVhOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgJyYgW2RhdGEtc2xhdGUtZWRpdG9yPVwidHJ1ZVwiXSc6IHtcbiAgICAgIG1pbkhlaWdodDogJ2luaXRpYWwgIWltcG9ydGFudCdcbiAgICB9XG4gIH0sXG4gIGNob2ljZXNIb2xkZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgJyYgPiBkaXY6bGFzdC1jaGlsZCc6IHtcbiAgICAgIGJvcmRlcjogJ25vbmUnXG4gICAgfVxuICB9LFxuICBpdGVtQnVpbGRlcjoge1xuICAgIHBhZGRpbmc6ICc4cHgnLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gIH1cbn0pKFJlc3BBcmVhVG9vbGJhcik7XG5cbmV4cG9ydCBkZWZhdWx0IFN0eWxlZFJlc3BBcmVhVG9vbGJhcjtcbiJdfQ==
|
|
451
|
+
//# sourceMappingURL=inline-dropdown-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/inline-dropdown-toolbar.jsx"],"names":["MenuItemComp","e","onRemoveChoice","props","preventDefault","stopPropagation","classes","correct","onClick","value","wrapper","valueHolder","__html","removeIcon","onRemoveClick","React","Component","PropTypes","object","isRequired","bool","func","string","MenuItem","background","borderBottom","boxSizing","display","cursor","lineHeight","padding","position","fontSize","fontStyle","transform","top","right","zIndex","wordBreak","findSlateNode","key","window","document","querySelector","createElementFromHTML","htmlString","div","createElement","innerHTML","trim","RespAreaToolbar","respAreaMarkup","setState","editorRef","finishEditing","val","node","onAddChoice","onlyText","textContent","data","get","newValue","index","onToolbarDone","onSelectChoice","update","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","event","clickedInside","choices","onCheck","correctResponse","find","choice","length","removeNodeByKey","slateEditorRef","rootRef","slateEditor","inputRef","element","focus","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","left","toolbarStyle","height","width","ReactDOM","findDOMNode","spellCheck","state","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","labelPlugins","audio","disabled","video","backgroundColor","onClickInside","itemBuilder","ref","respArea","alwaysVisible","showDone","doneOn","onKeyDown","onRespAreaChange","onDone","onBlur","focusInput","choicesHolder","map","label","array","shape","StyledRespAreaToolbar","minHeight","flexDirection","border"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport classnames from 'classnames';\nimport { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\n\nclass MenuItemComp extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correct: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired\n };\n\n onRemoveClick = e => {\n const { onRemoveChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice();\n };\n\n render() {\n const { classes, correct, onClick, value } = this.props;\n\n return (\n <div className={classnames(classes.wrapper, { [classes.correct]: correct })} onClick={onClick}>\n <div\n className={classes.valueHolder}\n dangerouslySetInnerHTML={{\n __html: value\n }}\n />\n <i className={classes.removeIcon} onClick={this.onRemoveClick}>\n x\n </i>\n </div>\n );\n }\n}\n\nconst MenuItem = withStyles({\n wrapper: {\n background: '#fff',\n borderBottom: '1px solid black',\n boxSizing: 'border-box',\n display: 'block',\n cursor: 'pointer',\n lineHeight: '30px',\n padding: '10px 25px 10px 10px',\n position: 'relative'\n },\n correct: {\n background: '#C4DCFA'\n },\n removeIcon: {\n cursor: 'pointer',\n fontSize: '20px',\n fontStyle: 'normal',\n position: 'absolute',\n transform: 'translate(0, -50%)',\n top: '50%',\n right: '5px',\n zIndex: 3\n },\n valueHolder: {\n wordBreak: 'break-all'\n }\n})(MenuItemComp);\n\nconst findSlateNode = key => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nconst createElementFromHTML = htmlString => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class RespAreaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n node: PropTypes.object,\n onDone: PropTypes.func,\n choices: PropTypes.array,\n onAddChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired\n })\n })\n };\n\n state = {\n respAreaMarkup: ''\n };\n\n componentDidMount() {\n const { node } = this.props;\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 60}px`,\n left: `${left + 25}px`,\n width: domNodeRect.width\n }\n });\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onRespAreaChange = respAreaMarkup => {\n this.setState({ respAreaMarkup });\n };\n\n onAddChoice = () => {\n if (this.editorRef) {\n this.editorRef.finishEditing();\n }\n };\n\n onDone = (val) => {\n const { node, onAddChoice } = this.props;\n const onlyText = createElementFromHTML(val).textContent.trim();\n\n if (!isEmpty(onlyText)) {\n onAddChoice(node.data.get('index'), val);\n }\n };\n\n onSelectChoice = (newValue, index) => {\n const { node, value, onToolbarDone, onSelectChoice } = this.props;\n const update = { ...node.data.toJSON(), value: newValue };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n onToolbarDone(change, false);\n\n onSelectChoice(index);\n };\n\n onRemoveChoice = (val, index) => {\n const { node, value, onToolbarDone, onRemoveChoice } = this.props;\n\n if (isEqual(val, node.data.get('value'))) {\n const update = { ...node.data.toJSON(), value: null };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n onToolbarDone(change, false);\n }\n\n onRemoveChoice(index);\n };\n\n onKeyDown = event => {\n if (event.key === 'Enter') {\n this.onAddChoice();\n // Cancelling event\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n return;\n }\n\n const { node, choices, onCheck, onToolbarDone, value } = this.props;\n const correctResponse = (choices || []).find(choice => choice.correct);\n\n this.onAddChoice();\n if (!choices || (choices && choices.length < 2) || !correctResponse) {\n onCheck(() => {\n const change = value.change();\n\n change.removeNodeByKey(node.get('key'));\n onToolbarDone(change, false);\n });\n }\n };\n\n onClickInside = () => {\n this.clickedInside = true;\n };\n\n focusInput = () => {\n // we need to focus the input so that math is saved even without pressing the green checkmark\n const slateEditorRef = this.editorRef && this.editorRef.rootRef && this.editorRef.rootRef.slateEditor;\n const inputRef = slateEditorRef && slateEditorRef.editorRef && slateEditorRef.editorRef.element;\n\n if (inputRef) {\n inputRef.focus();\n }\n };\n\n render() {\n const { classes, choices, spellCheck } = this.props;\n const { respAreaMarkup, toolbarStyle } = this.state;\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(p => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list');\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n if (!toolbarStyle) {\n return null;\n }\n\n return (\n <div\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6'\n }}\n onMouseDown={this.onClickInside}\n >\n <div className={classes.itemBuilder}>\n <EditableHtml\n ref={ref => {\n if (ref) {\n this.editorRef = ref;\n }\n }}\n autoFocus={true}\n autoSave\n className={classes.respArea}\n toolbarOpts={{\n position: 'top',\n alwaysVisible: false,\n showDone: false,\n doneOn: 'blur'\n }}\n markup={respAreaMarkup}\n onKeyDown={this.onKeyDown}\n onChange={this.onRespAreaChange}\n onDone={this.onDone}\n placeholder=\"Add Choice\"\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n onBlur={this.onBlur}\n spellCheck={spellCheck}\n />\n <i\n style={{\n cursor: 'pointer',\n fontSize: '20px',\n fontStyle: 'normal',\n position: 'absolute',\n top: '50%',\n right: '15px',\n transform: 'translate(0, -50%)'\n }}\n contentEditable={false}\n onMouseDown={() => this.focusInput()}\n onClick={() => this.onAddChoice()}\n >\n +\n </i>\n </div>\n {choices && (\n <div className={classes.choicesHolder}>\n {choices.map(({ label, correct }, index) => (\n <MenuItem\n key={index}\n onClick={() => this.onSelectChoice(label, index)}\n onRemoveChoice={() => this.onRemoveChoice(label, index)}\n value={label}\n correct={correct}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst StyledRespAreaToolbar = withStyles({\n respArea: {\n backgroundColor: '#fff',\n '& [data-slate-editor=\"true\"]': {\n minHeight: 'initial !important'\n }\n },\n choicesHolder: {\n display: 'flex',\n flexDirection: 'column',\n '& > div:last-child': {\n border: 'none'\n }\n },\n itemBuilder: {\n padding: '8px',\n position: 'relative'\n }\n})(RespAreaToolbar);\n\nexport default StyledRespAreaToolbar;\n"],"file":"inline-dropdown-toolbar.js"}
|
|
1
|
+
{"version":3,"sources":["../src/inline-dropdown-toolbar.jsx"],"names":["MenuItemComp","e","onRemoveChoice","props","preventDefault","stopPropagation","classes","correct","onClick","value","wrapper","valueHolder","__html","removeIcon","onRemoveClick","React","Component","PropTypes","object","isRequired","bool","func","string","MenuItem","theme","background","palette","common","white","borderBottom","black","boxSizing","display","cursor","lineHeight","padding","position","fontSize","fontStyle","transform","top","right","zIndex","wordBreak","findSlateNode","key","window","document","querySelector","createElementFromHTML","htmlString","div","createElement","innerHTML","trim","RespAreaToolbar","respAreaMarkup","setState","editorRef","finishEditing","val","node","onAddChoice","onlyText","textContent","data","get","newValue","index","onToolbarDone","onSelectChoice","update","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","event","clickedInside","choices","onCheck","correctResponse","find","choice","length","removeNodeByKey","slateEditorRef","rootRef","slateEditor","inputRef","element","focus","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","left","toolbarStyle","height","width","ReactDOM","findDOMNode","spellCheck","uploadSoundSupport","state","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","labelPlugins","audio","disabled","video","backgroundColor","onClickInside","itemBuilder","ref","respArea","alwaysVisible","showDone","doneOn","onKeyDown","onRespAreaChange","onDone","onBlur","focusInput","choicesHolder","map","label","array","shape","StyledRespAreaToolbar","minHeight","flexDirection","border","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport classnames from 'classnames';\nimport { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\n\nclass MenuItemComp extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correct: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n };\n\n onRemoveClick = (e) => {\n const { onRemoveChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice();\n };\n\n render() {\n const { classes, correct, onClick, value } = this.props;\n\n return (\n <div className={classnames(classes.wrapper, { [classes.correct]: correct })} onClick={onClick}>\n <div\n className={classes.valueHolder}\n dangerouslySetInnerHTML={{\n __html: value,\n }}\n />\n <i className={classes.removeIcon} onClick={this.onRemoveClick}>\n x\n </i>\n </div>\n );\n }\n}\n\nconst MenuItem = withStyles((theme) => ({\n wrapper: {\n background: theme.palette.common.white,\n borderBottom: `1px solid ${theme.palette.common.black}`,\n boxSizing: 'border-box',\n display: 'block',\n cursor: 'pointer',\n lineHeight: '30px',\n padding: '10px 25px 10px 10px',\n position: 'relative',\n },\n correct: {\n background: '#C4DCFA',\n },\n removeIcon: {\n cursor: 'pointer',\n fontSize: '20px',\n fontStyle: 'normal',\n position: 'absolute',\n transform: 'translate(0, -50%)',\n top: '50%',\n right: '5px',\n zIndex: 3,\n },\n valueHolder: {\n wordBreak: 'break-all',\n },\n}))(MenuItemComp);\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class RespAreaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n node: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n onDone: PropTypes.func,\n choices: PropTypes.array,\n onAddChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired,\n }),\n }),\n };\n\n state = {\n respAreaMarkup: '',\n };\n\n componentDidMount() {\n const { node } = this.props;\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 60}px`,\n left: `${left + 25}px`,\n width: domNodeRect.width,\n },\n });\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onAddChoice = () => {\n if (this.editorRef) {\n this.editorRef.finishEditing();\n }\n };\n\n onDone = (val) => {\n const { node, onAddChoice } = this.props;\n const onlyText = createElementFromHTML(val).textContent.trim();\n\n if (!isEmpty(onlyText)) {\n onAddChoice(node.data.get('index'), val);\n }\n };\n\n onSelectChoice = (newValue, index) => {\n const { node, value, onToolbarDone, onSelectChoice } = this.props;\n const update = { ...node.data.toJSON(), value: newValue };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n onToolbarDone(change, false);\n\n onSelectChoice(index);\n };\n\n onRemoveChoice = (val, index) => {\n const { node, value, onToolbarDone, onRemoveChoice } = this.props;\n\n if (isEqual(val, node.data.get('value'))) {\n const update = { ...node.data.toJSON(), value: null };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n onToolbarDone(change, false);\n }\n\n onRemoveChoice(index);\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n this.onAddChoice();\n // Cancelling event\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n return;\n }\n\n const { node, choices, onCheck, onToolbarDone, value } = this.props;\n const correctResponse = (choices || []).find((choice) => choice.correct);\n\n this.onAddChoice();\n if (!choices || (choices && choices.length < 2) || !correctResponse) {\n onCheck(() => {\n const change = value.change();\n\n change.removeNodeByKey(node.get('key'));\n onToolbarDone(change, false);\n });\n }\n };\n\n onClickInside = () => {\n this.clickedInside = true;\n };\n\n focusInput = () => {\n // we need to focus the input so that math is saved even without pressing the green checkmark\n const slateEditorRef = this.editorRef && this.editorRef.rootRef && this.editorRef.rootRef.slateEditor;\n const inputRef = slateEditorRef && slateEditorRef.editorRef && slateEditorRef.editorRef.element;\n\n if (inputRef) {\n inputRef.focus();\n }\n };\n\n render() {\n const { classes, choices, spellCheck, uploadSoundSupport } = this.props;\n const { respAreaMarkup, toolbarStyle } = this.state;\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n if (!toolbarStyle) {\n return null;\n }\n\n return (\n <div\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6',\n }}\n onMouseDown={this.onClickInside}\n >\n <div className={classes.itemBuilder}>\n <EditableHtml\n ref={(ref) => {\n if (ref) {\n this.editorRef = ref;\n }\n }}\n autoFocus={true}\n autoSave\n className={classes.respArea}\n toolbarOpts={{\n position: 'top',\n alwaysVisible: false,\n showDone: false,\n doneOn: 'blur',\n }}\n markup={respAreaMarkup}\n onKeyDown={this.onKeyDown}\n onChange={this.onRespAreaChange}\n onDone={this.onDone}\n placeholder=\"Add Choice\"\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n onBlur={this.onBlur}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n <i\n style={{\n cursor: 'pointer',\n fontSize: '20px',\n fontStyle: 'normal',\n position: 'absolute',\n top: '50%',\n right: '15px',\n transform: 'translate(0, -50%)',\n }}\n contentEditable={false}\n onMouseDown={() => this.focusInput()}\n onClick={() => this.onAddChoice()}\n >\n +\n </i>\n </div>\n {choices && (\n <div className={classes.choicesHolder}>\n {choices.map(({ label, correct }, index) => (\n <MenuItem\n key={index}\n onClick={() => this.onSelectChoice(label, index)}\n onRemoveChoice={() => this.onRemoveChoice(label, index)}\n value={label}\n correct={correct}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst StyledRespAreaToolbar = withStyles((theme) => ({\n respArea: {\n backgroundColor: theme.palette.common.white,\n '& [data-slate-editor=\"true\"]': {\n minHeight: 'initial !important',\n },\n },\n choicesHolder: {\n display: 'flex',\n flexDirection: 'column',\n '& > div:last-child': {\n border: 'none',\n },\n },\n itemBuilder: {\n padding: theme.spacing.unit,\n position: 'relative',\n },\n}))(RespAreaToolbar);\n\nexport default StyledRespAreaToolbar;\n"],"file":"inline-dropdown-toolbar.js"}
|