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

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 (56) hide show
  1. package/lib/components/CharacterPicker.js.map +1 -0
  2. package/lib/components/EditableHtml.js.map +1 -0
  3. package/lib/components/MenuBar.js +3 -2
  4. package/lib/components/MenuBar.js.map +1 -0
  5. package/lib/components/TiptapContainer.js.map +1 -0
  6. package/lib/components/characters/characterUtils.js.map +1 -0
  7. package/lib/components/characters/custom-popper.js.map +1 -0
  8. package/lib/components/common/done-button.js.map +1 -0
  9. package/lib/components/common/toolbar-buttons.js +194 -0
  10. package/lib/components/icons/CssIcon.js.map +1 -0
  11. package/lib/components/icons/RespArea.js.map +1 -0
  12. package/lib/components/icons/TableIcons.js.map +1 -0
  13. package/lib/components/icons/TextAlign.js.map +1 -0
  14. package/lib/components/image/AltDialog.js +129 -0
  15. package/lib/components/image/ImageToolbar.js +167 -6
  16. package/lib/components/image/ImageToolbar.js.map +1 -0
  17. package/lib/components/image/InsertImageHandler.js +106 -7
  18. package/lib/components/image/InsertImageHandler.js.map +1 -0
  19. package/lib/components/image/alt-dialog.js +2 -0
  20. package/lib/components/media/MediaDialog.js +699 -6
  21. package/lib/components/media/MediaDialog.js.map +1 -0
  22. package/lib/components/media/MediaToolbar.js +91 -6
  23. package/lib/components/media/MediaToolbar.js.map +1 -0
  24. package/lib/components/media/MediaWrapper.js +93 -0
  25. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -0
  26. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -0
  27. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
  28. package/lib/components/respArea/InlineDropdown.js.map +1 -0
  29. package/lib/components/respArea/ToolbarIcon.js.map +1 -0
  30. package/lib/constants.js.map +1 -0
  31. package/lib/extensions/component.js.map +1 -0
  32. package/lib/extensions/css.js.map +1 -0
  33. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -0
  34. package/lib/extensions/extended-table.js.map +1 -0
  35. package/lib/extensions/image.js +2 -8
  36. package/lib/extensions/image.js.map +1 -0
  37. package/lib/extensions/index.js.map +1 -0
  38. package/lib/extensions/math.js.map +1 -0
  39. package/lib/extensions/media.js +3 -3
  40. package/lib/extensions/media.js.map +1 -0
  41. package/lib/extensions/responseArea.js.map +1 -0
  42. package/lib/index.js.map +1 -0
  43. package/lib/styles/editorContainerStyles.js.map +1 -0
  44. package/lib/theme.js.map +1 -0
  45. package/lib/utils/size.js.map +1 -0
  46. package/package.json +1 -1
  47. package/src/components/MenuBar.jsx +2 -2
  48. package/src/components/common/toolbar-buttons.jsx +138 -0
  49. package/src/components/image/AltDialog.jsx +82 -0
  50. package/src/components/image/ImageToolbar.jsx +100 -1
  51. package/src/components/image/InsertImageHandler.js +78 -1
  52. package/src/components/media/MediaDialog.js +624 -1
  53. package/src/components/media/MediaToolbar.jsx +56 -1
  54. package/src/components/media/MediaWrapper.jsx +43 -0
  55. package/src/extensions/image.js +2 -2
  56. package/src/extensions/media.js +2 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/media/MediaDialog.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from '../../plugins/media/media-dialog';\n"],"file":"MediaDialog.js"}
@@ -5,12 +5,97 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "default", {
9
- enumerable: true,
10
- get: function get() {
11
- return _mediaToolbar["default"];
8
+ exports["default"] = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
22
+ var _react = _interopRequireDefault(require("react"));
23
+
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
26
+ var _styles = require("@material-ui/core/styles");
27
+
28
+ 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); }; }
29
+
30
+ 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; } }
31
+
32
+ var useStyles = (0, _styles.withStyles)(function (theme) {
33
+ return {
34
+ root: {
35
+ position: 'relative',
36
+ bottom: '5px',
37
+ left: 0,
38
+ width: '100%',
39
+ background: theme.palette.common.white,
40
+ display: 'inline-flex',
41
+ padding: '5px',
42
+ boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)'
43
+ },
44
+ editContainer: {
45
+ cursor: 'pointer',
46
+ flex: 3,
47
+ border: "solid ".concat(theme.palette.common.black),
48
+ textAlign: 'right',
49
+ borderWidth: '0 2px 0 0',
50
+ marginRight: '5px',
51
+ paddingRight: '5px'
52
+ },
53
+ removeContainer: {
54
+ cursor: 'pointer'
55
+ }
56
+ };
57
+ });
58
+
59
+ var MediaToolbar = /*#__PURE__*/function (_React$Component) {
60
+ (0, _inherits2["default"])(MediaToolbar, _React$Component);
61
+
62
+ var _super = _createSuper(MediaToolbar);
63
+
64
+ function MediaToolbar() {
65
+ (0, _classCallCheck2["default"])(this, MediaToolbar);
66
+ return _super.apply(this, arguments);
12
67
  }
68
+
69
+ (0, _createClass2["default"])(MediaToolbar, [{
70
+ key: "render",
71
+ value: function render() {
72
+ var _this$props = this.props,
73
+ classes = _this$props.classes,
74
+ hideEdit = _this$props.hideEdit,
75
+ onEdit = _this$props.onEdit,
76
+ onRemove = _this$props.onRemove;
77
+ return /*#__PURE__*/_react["default"].createElement("span", {
78
+ className: classes.root
79
+ }, hideEdit ? null : /*#__PURE__*/_react["default"].createElement("span", {
80
+ className: classes.editContainer,
81
+ onClick: onEdit
82
+ }, "Edit Settings"), /*#__PURE__*/_react["default"].createElement("span", {
83
+ className: classes.removeContainer,
84
+ onClick: onRemove
85
+ }, "Remove"));
86
+ }
87
+ }]);
88
+ return MediaToolbar;
89
+ }(_react["default"].Component);
90
+
91
+ (0, _defineProperty2["default"])(MediaToolbar, "propTypes", {
92
+ classes: _propTypes["default"].object,
93
+ onEdit: _propTypes["default"].func,
94
+ hideEdit: _propTypes["default"].bool,
95
+ onRemove: _propTypes["default"].func
13
96
  });
14
97
 
15
- var _mediaToolbar = _interopRequireDefault(require("../../plugins/media/media-toolbar"));
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21lZGlhL01lZGlhVG9vbGJhci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL21lZGlhL21lZGlhLXRvb2xiYXInO1xuIl19
98
+ var _default = useStyles(MediaToolbar);
99
+
100
+ exports["default"] = _default;
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21lZGlhL01lZGlhVG9vbGJhci5qc3giXSwibmFtZXMiOlsidXNlU3R5bGVzIiwidGhlbWUiLCJyb290IiwicG9zaXRpb24iLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJiYWNrZ3JvdW5kIiwicGFsZXR0ZSIsImNvbW1vbiIsIndoaXRlIiwiZGlzcGxheSIsInBhZGRpbmciLCJib3hTaGFkb3ciLCJlZGl0Q29udGFpbmVyIiwiY3Vyc29yIiwiZmxleCIsImJvcmRlciIsImJsYWNrIiwidGV4dEFsaWduIiwiYm9yZGVyV2lkdGgiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdSaWdodCIsInJlbW92ZUNvbnRhaW5lciIsIk1lZGlhVG9vbGJhciIsInByb3BzIiwiY2xhc3NlcyIsImhpZGVFZGl0Iiwib25FZGl0Iiwib25SZW1vdmUiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJib29sIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsU0FBUyxHQUFHLHdCQUFXLFVBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3ZDQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsUUFBUSxFQUFFLFVBRE47QUFFSkMsTUFBQUEsTUFBTSxFQUFFLEtBRko7QUFHSkMsTUFBQUEsSUFBSSxFQUFFLENBSEY7QUFJSkMsTUFBQUEsS0FBSyxFQUFFLE1BSkg7QUFLSkMsTUFBQUEsVUFBVSxFQUFFTixLQUFLLENBQUNPLE9BQU4sQ0FBY0MsTUFBZCxDQUFxQkMsS0FMN0I7QUFNSkMsTUFBQUEsT0FBTyxFQUFFLGFBTkw7QUFPSkMsTUFBQUEsT0FBTyxFQUFFLEtBUEw7QUFRSkMsTUFBQUEsU0FBUyxFQUFFO0FBUlAsS0FEaUM7QUFXdkNDLElBQUFBLGFBQWEsRUFBRTtBQUNiQyxNQUFBQSxNQUFNLEVBQUUsU0FESztBQUViQyxNQUFBQSxJQUFJLEVBQUUsQ0FGTztBQUdiQyxNQUFBQSxNQUFNLGtCQUFXaEIsS0FBSyxDQUFDTyxPQUFOLENBQWNDLE1BQWQsQ0FBcUJTLEtBQWhDLENBSE87QUFJYkMsTUFBQUEsU0FBUyxFQUFFLE9BSkU7QUFLYkMsTUFBQUEsV0FBVyxFQUFFLFdBTEE7QUFNYkMsTUFBQUEsV0FBVyxFQUFFLEtBTkE7QUFPYkMsTUFBQUEsWUFBWSxFQUFFO0FBUEQsS0FYd0I7QUFvQnZDQyxJQUFBQSxlQUFlLEVBQUU7QUFDZlIsTUFBQUEsTUFBTSxFQUFFO0FBRE87QUFwQnNCLEdBQVo7QUFBQSxDQUFYLENBQWxCOztJQXlCTVMsWTs7Ozs7Ozs7Ozs7O1dBUUosa0JBQVM7QUFDUCx3QkFBZ0QsS0FBS0MsS0FBckQ7QUFBQSxVQUFRQyxPQUFSLGVBQVFBLE9BQVI7QUFBQSxVQUFpQkMsUUFBakIsZUFBaUJBLFFBQWpCO0FBQUEsVUFBMkJDLE1BQTNCLGVBQTJCQSxNQUEzQjtBQUFBLFVBQW1DQyxRQUFuQyxlQUFtQ0EsUUFBbkM7QUFFQSwwQkFDRTtBQUFNLFFBQUEsU0FBUyxFQUFFSCxPQUFPLENBQUN4QjtBQUF6QixTQUNHeUIsUUFBUSxHQUFHLElBQUgsZ0JBQ1A7QUFBTSxRQUFBLFNBQVMsRUFBRUQsT0FBTyxDQUFDWixhQUF6QjtBQUF3QyxRQUFBLE9BQU8sRUFBRWM7QUFBakQseUJBRkosZUFNRTtBQUFNLFFBQUEsU0FBUyxFQUFFRixPQUFPLENBQUNILGVBQXpCO0FBQTBDLFFBQUEsT0FBTyxFQUFFTTtBQUFuRCxrQkFORixDQURGO0FBWUQ7OztFQXZCd0JDLGtCQUFNQyxTOztpQ0FBM0JQLFksZUFDZTtBQUNqQkUsRUFBQUEsT0FBTyxFQUFFTSxzQkFBVUMsTUFERjtBQUVqQkwsRUFBQUEsTUFBTSxFQUFFSSxzQkFBVUUsSUFGRDtBQUdqQlAsRUFBQUEsUUFBUSxFQUFFSyxzQkFBVUcsSUFISDtBQUlqQk4sRUFBQUEsUUFBUSxFQUFFRyxzQkFBVUU7QUFKSCxDOztlQXlCTmxDLFNBQVMsQ0FBQ3dCLFlBQUQsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IHdpdGhTdHlsZXMoKHRoZW1lKSA9PiAoe1xuICByb290OiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm90dG9tOiAnNXB4JyxcbiAgICBsZWZ0OiAwLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgYmFja2dyb3VuZDogdGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGUsXG4gICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICBib3hTaGFkb3c6ICcwcHggNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpJyxcbiAgfSxcbiAgZWRpdENvbnRhaW5lcjoge1xuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGZsZXg6IDMsXG4gICAgYm9yZGVyOiBgc29saWQgJHt0aGVtZS5wYWxldHRlLmNvbW1vbi5ibGFja31gLFxuICAgIHRleHRBbGlnbjogJ3JpZ2h0JyxcbiAgICBib3JkZXJXaWR0aDogJzAgMnB4IDAgMCcsXG4gICAgbWFyZ2luUmlnaHQ6ICc1cHgnLFxuICAgIHBhZGRpbmdSaWdodDogJzVweCcsXG4gIH0sXG4gIHJlbW92ZUNvbnRhaW5lcjoge1xuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9LFxufSkpO1xuXG5jbGFzcyBNZWRpYVRvb2xiYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25FZGl0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBoaWRlRWRpdDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25SZW1vdmU6IFByb3BUeXBlcy5mdW5jLFxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIGhpZGVFZGl0LCBvbkVkaXQsIG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fT5cbiAgICAgICAge2hpZGVFZGl0ID8gbnVsbCA6IChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMuZWRpdENvbnRhaW5lcn0gb25DbGljaz17b25FZGl0fT5cbiAgICAgICAgICAgIEVkaXQgU2V0dGluZ3NcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5yZW1vdmVDb250YWluZXJ9IG9uQ2xpY2s9e29uUmVtb3ZlfT5cbiAgICAgICAgICBSZW1vdmVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlU3R5bGVzKE1lZGlhVG9vbGJhcik7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/media/MediaToolbar.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from '../../plugins/media/media-toolbar';\n"],"file":"MediaToolbar.js"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
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 _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _styles = require("@material-ui/core/styles");
33
+
34
+ var _excluded = ["editor", "classes", "children", "width"];
35
+
36
+ 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); }; }
37
+
38
+ 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; } }
39
+
40
+ var useStyles = (0, _styles.withStyles)(function () {
41
+ return {
42
+ root: {
43
+ position: 'relative'
44
+ },
45
+ editor: {
46
+ display: 'inline-block',
47
+ overflow: 'hidden'
48
+ }
49
+ };
50
+ });
51
+
52
+ var MediaWrapper = /*#__PURE__*/function (_React$Component) {
53
+ (0, _inherits2["default"])(MediaWrapper, _React$Component);
54
+
55
+ var _super = _createSuper(MediaWrapper);
56
+
57
+ function MediaWrapper() {
58
+ (0, _classCallCheck2["default"])(this, MediaWrapper);
59
+ return _super.apply(this, arguments);
60
+ }
61
+
62
+ (0, _createClass2["default"])(MediaWrapper, [{
63
+ key: "render",
64
+ value: function render() {
65
+ var _this$props = this.props,
66
+ editor = _this$props.editor,
67
+ classes = _this$props.classes,
68
+ children = _this$props.children,
69
+ width = _this$props.width,
70
+ rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
71
+ return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({
72
+ className: (0, _classnames["default"])(classes.root, (0, _defineProperty2["default"])({}, classes.editor, editor))
73
+ }, rest, {
74
+ style: {
75
+ width: width || 300
76
+ }
77
+ }), children);
78
+ }
79
+ }]);
80
+ return MediaWrapper;
81
+ }(_react["default"].Component);
82
+
83
+ (0, _defineProperty2["default"])(MediaWrapper, "propTypes", {
84
+ classes: _propTypes["default"].object,
85
+ children: _propTypes["default"].array,
86
+ editor: _propTypes["default"].bool,
87
+ width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string])
88
+ });
89
+
90
+ var _default = useStyles(MediaWrapper);
91
+
92
+ exports["default"] = _default;
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21lZGlhL01lZGlhV3JhcHBlci5qc3giXSwibmFtZXMiOlsidXNlU3R5bGVzIiwicm9vdCIsInBvc2l0aW9uIiwiZWRpdG9yIiwiZGlzcGxheSIsIm92ZXJmbG93IiwiTWVkaWFXcmFwcGVyIiwicHJvcHMiLCJjbGFzc2VzIiwiY2hpbGRyZW4iLCJ3aWR0aCIsInJlc3QiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImFycmF5IiwiYm9vbCIsIm9uZU9mVHlwZSIsIm51bWJlciIsInN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLElBQU1BLFNBQVMsR0FBRyx3QkFBVztBQUFBLFNBQU87QUFDbENDLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSxRQUFRLEVBQUU7QUFETixLQUQ0QjtBQUlsQ0MsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLE9BQU8sRUFBRSxjQURIO0FBRU5DLE1BQUFBLFFBQVEsRUFBRTtBQUZKO0FBSjBCLEdBQVA7QUFBQSxDQUFYLENBQWxCOztJQVVNQyxZOzs7Ozs7Ozs7Ozs7V0FRSixrQkFBUztBQUNQLHdCQUFzRCxLQUFLQyxLQUEzRDtBQUFBLFVBQVFKLE1BQVIsZUFBUUEsTUFBUjtBQUFBLFVBQWdCSyxPQUFoQixlQUFnQkEsT0FBaEI7QUFBQSxVQUF5QkMsUUFBekIsZUFBeUJBLFFBQXpCO0FBQUEsVUFBbUNDLEtBQW5DLGVBQW1DQSxLQUFuQztBQUFBLFVBQTZDQyxJQUE3QztBQUVBLDBCQUNFO0FBQ0UsUUFBQSxTQUFTLEVBQUUsNEJBQVdILE9BQU8sQ0FBQ1AsSUFBbkIsdUNBQ1JPLE9BQU8sQ0FBQ0wsTUFEQSxFQUNTQSxNQURUO0FBRGIsU0FJTVEsSUFKTjtBQUtFLFFBQUEsS0FBSyxFQUFFO0FBQ0xELFVBQUFBLEtBQUssRUFBRUEsS0FBSyxJQUFJO0FBRFg7QUFMVCxVQVNHRCxRQVRILENBREY7QUFhRDs7O0VBeEJ3Qkcsa0JBQU1DLFM7O2lDQUEzQlAsWSxlQUNlO0FBQ2pCRSxFQUFBQSxPQUFPLEVBQUVNLHNCQUFVQyxNQURGO0FBRWpCTixFQUFBQSxRQUFRLEVBQUVLLHNCQUFVRSxLQUZIO0FBR2pCYixFQUFBQSxNQUFNLEVBQUVXLHNCQUFVRyxJQUhEO0FBSWpCUCxFQUFBQSxLQUFLLEVBQUVJLHNCQUFVSSxTQUFWLENBQW9CLENBQUNKLHNCQUFVSyxNQUFYLEVBQW1CTCxzQkFBVU0sTUFBN0IsQ0FBcEI7QUFKVSxDOztlQTBCTnBCLFNBQVMsQ0FBQ00sWUFBRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIHJvb3Q6IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgfSxcbiAgZWRpdG9yOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICB9LFxufSkpO1xuXG5jbGFzcyBNZWRpYVdyYXBwZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5hcnJheSxcbiAgICBlZGl0b3I6IFByb3BUeXBlcy5ib29sLFxuICAgIHdpZHRoOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZWRpdG9yLCBjbGFzc2VzLCBjaGlsZHJlbiwgd2lkdGgsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucm9vdCwge1xuICAgICAgICAgIFtjbGFzc2VzLmVkaXRvcl06IGVkaXRvcixcbiAgICAgICAgfSl9XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHdpZHRoOiB3aWR0aCB8fCAzMDAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVN0eWxlcyhNZWRpYVdyYXBwZXIpO1xuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/respArea/DragInTheBlank/DragInTheBlank.jsx"],"names":["onValueChange","editor","node","pos","choice","tr","state","setNodeMarkup","undefined","attrs","isDone","view","dispatch","onRemoveResponse","DragDrop","props","getPos","options","selected","attributes","inTable","display","minHeight","minWidth","position","margin","cursor","id","duplicates","propTypes","PropTypes","object","data","n","nodeProps","opts"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD,EAASC,IAAT,EAAeC,GAAf,EAAoBC,MAApB,EAA+B;AAC1D,MAAQC,EAAR,GAAeJ,MAAM,CAACK,KAAtB,CAAQD,EAAR,CAD0D,CAG1D;;AACAA,EAAAA,EAAE,CAACE,aAAH,CAAiBJ,GAAjB,EAAsBK,SAAtB,kCACKN,IAAI,CAACO,KADV,GAEKL,MAFL;AAIAC,EAAAA,EAAE,CAACK,MAAH,GAAY,IAAZ;AACAT,EAAAA,MAAM,CAACU,IAAP,CAAYC,QAAZ,CAAqBP,EAArB;AACD,CAVM;;;;AAYA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACZ,MAAD,EAASC,IAAT,EAAeC,GAAf,EAAuB;AACrD,MAAQE,EAAR,GAAeJ,MAAM,CAACK,KAAtB,CAAQD,EAAR,CADqD,CAGrD;;AACAA,EAAAA,EAAE,CAACE,aAAH,CAAiBJ,GAAjB,EAAsBK,SAAtB,EAAiC,sBAAKN,IAAI,CAACO,KAAV,EAAiB,CAAC,OAAD,EAAU,IAAV,CAAjB,CAAjC;AACAJ,EAAAA,EAAE,CAACK,MAAH,GAAY,IAAZ;AACAT,EAAAA,MAAM,CAACU,IAAP,CAAYC,QAAZ,CAAqBP,EAArB;AACD,CAPM;;;;AASP,IAAMS,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,MAAQd,MAAR,GAAoDc,KAApD,CAAQd,MAAR;AAAA,MAAgBC,IAAhB,GAAoDa,KAApD,CAAgBb,IAAhB;AAAA,MAAsBc,MAAtB,GAAoDD,KAApD,CAAsBC,MAAtB;AAAA,MAA8BC,OAA9B,GAAoDF,KAApD,CAA8BE,OAA9B;AAAA,MAAuCC,QAAvC,GAAoDH,KAApD,CAAuCG,QAAvC;AACA,MAAeC,UAAf,GAA8BjB,IAA9B,CAAQO,KAAR;AACA,MAAQW,OAAR,GAAoBD,UAApB,CAAQC,OAAR;AACA,MAAMjB,GAAG,GAAGa,MAAM,EAAlB,CAJ0B,CAM1B;;AACA,sBACE,gCAAC,uBAAD;AAAiB,IAAA,SAAS,EAAC,mBAA3B;AAA+C,qBAAeE;AAA9D,kBACE,sEACMC,UADN;AAEE,IAAA,KAAK,EAAE;AACLE,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,QAAQ,EAAE,OAHL;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLC,MAAAA,MAAM,EAAEL,OAAO,GAAG,MAAH,GAAY,QALtB;AAMLM,MAAAA,MAAM,EAAE;AANH;AAFT,mBAWE,gCAAC,kBAAD;AACE,IAAA,CAAC,EAAEP,UADL;AAEE,IAAA,OAAO,EAAEA,UAAU,CAACQ,EAFtB;AAGE,IAAA,QAAQ,EAAC,GAHX;AAIE,IAAA,KAAK,EAAER,UAJT;AAKE,IAAA,UAAU,EAAEF,OAAO,CAACW,UALtB;AAME,IAAA,QAAQ,EAAE,kBAACxB,MAAD;AAAA,aAAYJ,aAAa,CAACC,MAAD,EAASC,IAAT,EAAeC,GAAf,EAAoBC,MAApB,CAAzB;AAAA,KANZ;AAOE,IAAA,cAAc,EAAE;AAAA,aAAMS,gBAAgB,CAACZ,MAAD,EAASC,IAAT,EAAeC,GAAf,CAAtB;AAAA;AAPlB,IAXF,CADF,CADF;AAyBD,CAhCD;;AAkCAW,QAAQ,CAACe,SAAT,GAAqB;AACnBV,EAAAA,UAAU,EAAEW,sBAAUC,MADH;AAEnBC,EAAAA,IAAI,EAAEF,sBAAUC,MAFG;AAGnBE,EAAAA,CAAC,EAAEH,sBAAUC,MAHM;AAInBG,EAAAA,SAAS,EAAEJ,sBAAUC,MAJF;AAKnBI,EAAAA,IAAI,EAAEL,sBAAUC;AALG,CAArB;eAQejB,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport DragDropTile from './choice';\nimport omit from 'lodash/omit';\n\nexport const onValueChange = (editor, node, pos, choice) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...choice,\n });\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nexport const onRemoveResponse = (editor, node, pos) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(pos, undefined, omit(node.attrs, ['value', 'id']));\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nconst DragDrop = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { inTable } = attributes;\n const pos = getPos();\n\n // console.log({nodeProps.children})\n return (\n <NodeViewWrapper className=\"drag-in-the-blank\" data-selected={selected}>\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer',\n }}\n >\n <DragDropTile\n n={attributes}\n dragKey={attributes.id}\n targetId=\"0\"\n value={attributes}\n duplicates={options.duplicates}\n onChange={(choice) => onValueChange(editor, node, pos, choice)}\n removeResponse={() => onRemoveResponse(editor, node, pos)}\n ></DragDropTile>\n </span>\n </NodeViewWrapper>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object,\n};\n\nexport default DragDrop;\n"],"file":"DragInTheBlank.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"names":["useStyles","theme","content","border","palette","primary","main","fontSize","chip","minWidth","correct","color","incorrect","error","selected","primaryDark","BlankContent","props","handleClick","bind","state","hoveredElementSize","document","addEventListener","removeEventListener","event","classes","elementRef","className","contains","target","prevProps","isOver","node","width","offsetWidth","height","offsetHeight","prevState","snapshot","renderMath","setState","n","children","isDragging","dragItem","value","label","finalLabel","hasGrip","isPreview","ref","display","minHeight","background","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","boxSizing","borderRadius","overflow","position","padding","undefined","key","top","left","__html","React","Component","PropTypes","object","func","bool","StyledBlankContent","connectedBlankContent","connectDropTarget","connectDragSource","dragContent","dragEl","over","tileTarget","drop","monitor","draggedItem","getItem","shouldDrop","index","onChange","dropped","canDrop","instanceId","DropTile","connect","dropTarget","shallow","tileSource","canDrag","disabled","beginDrag","id","targetId","fromChoice","endDrag","dropResult","getDropResult","duplicates","removeResponse","dragSource"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isUndefined from 'lodash/isUndefined';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst useStyles = withStyles((theme) => ({\n content: {\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n },\n chip: {\n minWidth: '90px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${theme.palette.error.main}`,\n },\n selected: {\n border: `2px solid ${color.primaryDark()} !important`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n classes: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.state = { hoveredElementSize: null };\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleClick);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClick);\n }\n\n handleClick(event) {\n const { classes } = this.props;\n\n if (this.elementRef) {\n this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';\n }\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (!prevProps.isOver && this.props.isOver && this.elementRef) {\n const node = this.elementRef;\n return { width: node.offsetWidth, height: node.offsetHeight };\n }\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.elementRef && typeof renderMath === 'function') {\n renderMath(this.elementRef);\n }\n\n if (\n snapshot &&\n (!this.state.hoveredElementSize ||\n this.state.hoveredElementSize.width !== snapshot.width ||\n this.state.hoveredElementSize.height !== snapshot.height)\n ) {\n this.setState({ hoveredElementSize: snapshot });\n return;\n }\n\n if (prevProps.isOver && !this.props.isOver && this.state.hoveredElementSize) {\n this.setState({ hoveredElementSize: null });\n }\n }\n\n render() {\n const { n, children, isDragging, dragItem, isOver, value } = this.props;\n const { hoveredElementSize } = this.state;\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n return (\n <div\n ref={(ref) => (this.elementRef = ref)}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: isPreview ? `1px solid ${color.defaults.BORDER_DARK}` : `1px solid ${color.defaults.BORDER_LIGHT}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.key}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDropTarget, connectDragSource, ...props }) => {\n const { classes, isOver, value } = props;\n const dragContent = <StyledBlankContent {...props} />;\n const dragEl = !value ? dragContent : connectDragSource(<span>{dragContent}</span>);\n const content = <span className={classnames(classes.content, isOver && classes.over)}>{dragEl}</span>;\n\n return connectDropTarget ? connectDropTarget(content) : content;\n});\n\nexport const tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n const shouldDrop =\n isUndefined(draggedItem.value.index) ||\n isUndefined(props.value.index) ||\n draggedItem.value.index !== props.value.index;\n\n if (shouldDrop) {\n props.onChange(draggedItem.value);\n }\n\n return {\n dropped: shouldDrop,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget('drag-in-the-blank-choice', tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver({ shallow: true }),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nexport const tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.value;\n },\n beginDrag(props) {\n return {\n id: props.targetId,\n value: props.value,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.removeResponse(draggedItem.value);\n }\n }\n },\n};\n\nexport default DragSource('drag-in-the-blank-choice', tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n"],"file":"choice.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/respArea/ExplicitConstructedResponse.jsx"],"names":["ExplicitConstructedResponse","props","editor","node","getPos","options","selected","attributes","attrs","value","error","pos","showToolbar","setShowToolbar","EcrToolbar","respAreaToolbar","toolbarRef","handleDone","newLatex","updateAttributes","latex","commands","focus","handleClickOutside","event","current","contains","target","closest","document","addEventListener","removeEventListener","display","minHeight","position","cursor","width","height","backgroundColor","border","boxSizing","borderRadius","overflow","padding","margin","visibility","__html","zIndex","propTypes","PropTypes","object","any","string","isFocused","bool"],"mappings":"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","sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { value, error } = attributes;\n const pos = getPos();\n const [showToolbar, setShowToolbar] = useState(false);\n const EcrToolbar = options.respAreaToolbar(node, editor, () => {});\n const toolbarRef = useRef(null);\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n editor.commands.focus();\n };\n\n useEffect(() => {\n setShowToolbar(selected);\n }, [selected]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n return (\n <NodeViewWrapper\n className=\"drag-in-the-blank\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n minHeight: '55px',\n position: 'relative',\n cursor: 'pointer',\n }}\n >\n <div\n {...attributes}\n style={{\n display: 'inline-flex',\n width: '100%',\n minHeight: '46px',\n height: '46px',\n backgroundColor: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '4px',\n overflow: 'hidden',\n padding: '12px 21px',\n margin: '0 4px',\n visibility: showToolbar ? 'hidden' : 'visible',\n }}\n onClick={() => setShowToolbar(true)}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>',\n }}\n />\n {showToolbar && (\n <div ref={toolbarRef} className=\"absolute z-50 bg-white shadow-lg rounded p-2\" style={{ zIndex: 1 }}>\n <EcrToolbar />\n </div>\n )}\n </NodeViewWrapper>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n error: PropTypes.any,\n value: PropTypes.string,\n isFocused: PropTypes.bool,\n};\n\nexport default ExplicitConstructedResponse;\n"],"file":"ExplicitConstructedResponse.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/respArea/InlineDropdown.jsx"],"names":["InlineDropdown","props","editor","node","getPos","options","selected","attributes","attrs","value","error","html","toolbarRef","showToolbar","setShowToolbar","InlineDropdownToolbar","respAreaToolbar","handleClickOutside","event","current","contains","target","closest","document","addEventListener","removeEventListener","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","alignItems","flex","overflow","padding","whiteSpace","textOverflow","verticalAlign","__html","top","right","zIndex","propTypes","PropTypes","object","selectedItem","oneOfType","string"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport { Chevron } from '../icons/RespArea';\n\nconst InlineDropdown = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { value, error } = attributes;\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = value || '<div>&nbsp</div>';\n const toolbarRef = useRef(null);\n const [showToolbar, setShowToolbar] = useState(false);\n const InlineDropdownToolbar = options.respAreaToolbar(node, editor, () => {});\n\n useEffect(() => {\n setShowToolbar(selected);\n }, [selected]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n return (\n <NodeViewWrapper\n className=\"inline-dropdown\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n margin: '0 4px',\n position: 'relative',\n alignItems: 'center',\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n <span\n style={{\n display: 'inline-block',\n verticalAlign: 'middle',\n }}\n dangerouslySetInnerHTML={{\n __html: html,\n }}\n />\n </div>\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px',\n }}\n />\n </div>\n {showToolbar && (\n <div ref={toolbarRef} className=\"absolute z-50 bg-white shadow-lg rounded p-2\" style={{ zIndex: 1 }}>\n <InlineDropdownToolbar />\n </div>\n )}\n </NodeViewWrapper>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\n\nexport default InlineDropdown;\n"],"file":"InlineDropdown.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/respArea/ToolbarIcon.jsx"],"names":["Chevron","props","direction","style","rotate","transform","GripIcon","margin","styles","theme","icon","fontFamily","fontSize","typography","fontWeight","lineHeight","position","top","width","height","whiteSpace","ToolbarIcon","classes"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AAChC,MAAQC,SAAR,GAA6BD,KAA7B,CAAQC,SAAR;AAAA,MAAmBC,KAAnB,GAA6BF,KAA7B,CAAmBE,KAAnB;;AACA,MAAMC,MAAM,GAAI,YAAM;AACpB,YAAQF,SAAR;AACE,WAAK,MAAL;AACE,eAAO,EAAP;;AACF,WAAK,IAAL;AACE,eAAO,CAAC,EAAR;;AACF,WAAK,MAAL;AACE,eAAO,GAAP;;AACF;AACE,eAAO,CAAP;AARJ;AAUD,GAXc,EAAf;;AAaA,sBACE;AACE,IAAA,KAAK;AACHG,MAAAA,SAAS,mBAAYD,MAAZ;AADN,OAEAD,KAFA,CADP;AAKE,IAAA,KAAK,EAAC,IALR;AAME,IAAA,MAAM,EAAC,IANT;AAOE,IAAA,OAAO,EAAC,WAPV;AAQE,IAAA,KAAK,EAAC;AARR,kBAUE;AAAM,IAAA,CAAC,EAAC,gDAAR;AAAyD,IAAA,IAAI,EAAC;AAA9D,IAVF,CADF;AAcD,CA7BM;;;;AA+BA,IAAMG,QAAQ,GAAG,SAAXA,QAAW;AAAA,MAAGH,KAAH,QAAGA,KAAH;AAAA,sBACtB;AAAM,IAAA,KAAK,EAAEA;AAAb,kBACE;AACE,IAAA,KAAK,EAAE;AACLI,MAAAA,MAAM,EAAE;AADH,KADT;AAIE,IAAA,KAAK,EAAC,IAJR;AAKE,IAAA,MAAM,EAAC,IALT;AAME,IAAA,OAAO,EAAC,WANV;AAOE,IAAA,KAAK,EAAC;AAPR,kBASE;AAAM,IAAA,CAAC,EAAC;AAAR,IATF,CADF,eAYE;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,KAAK,EAAC;AAAtD,kBACE;AAAM,IAAA,CAAC,EAAC;AAAR,IADF,CAZF,CADsB;AAAA,CAAjB;;;;AAmBP,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,IAAI,EAAE;AACJC,MAAAA,UAAU,EAAE,yBADR;AAEJC,MAAAA,QAAQ,EAAEH,KAAK,CAACI,UAAN,CAAiBD,QAFvB;AAGJE,MAAAA,UAAU,EAAE,MAHR;AAIJC,MAAAA,UAAU,EAAE,MAJR;AAKJC,MAAAA,QAAQ,EAAE,UALN;AAMJC,MAAAA,GAAG,EAAE,KAND;AAOJC,MAAAA,KAAK,EAAE,OAPH;AAQJC,MAAAA,MAAM,EAAE,MARJ;AASJC,MAAAA,UAAU,EAAE;AATR;AADmB,GAAZ;AAAA,CAAf;;AAcO,IAAMC,WAAW,GAAG,wBAAWb,MAAX,EAAmB;AAAA,MAAGc,OAAH,SAAGA,OAAH;AAAA,sBAAiB;AAAK,IAAA,SAAS,EAAEA,OAAO,CAACZ;AAAxB,uBAAjB;AAAA,CAAnB,CAApB","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport const Chevron = (props) => {\n const { direction, style } = props;\n const rotate = (() => {\n switch (direction) {\n case 'down':\n return 90;\n case 'up':\n return -90;\n case 'left':\n return 180;\n default:\n return 0;\n }\n })();\n\n return (\n <svg\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style,\n }}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport const GripIcon = ({ style }) => (\n <span style={style}>\n <svg\n style={{\n margin: '0 -16px',\n }}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 3H7v2h2V3zm0 4H7v2h2V7zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm4-16h-2v2h2V3zm0 4h-2v2h2V7zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2z\" />\n </svg>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 3H7v2h2V3zm0 4H7v2h2V7zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm4-16h-2v2h2V3zm0 4h-2v2h2V7zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2z\" />\n </svg>\n </span>\n);\n\nconst styles = (theme) => ({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: theme.typography.fontSize,\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap',\n },\n});\n\nexport const ToolbarIcon = withStyles(styles)(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n"],"file":"ToolbarIcon.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.js"],"names":["MAIN_CONTAINER_CLASS","PIE_TOOLBAR__CLASS"],"mappings":";;;;;;AAAO,IAAMA,oBAAoB,GAAG,gBAA7B;;AACA,IAAMC,kBAAkB,GAAG,aAA3B;;eAEQ;AACbD,EAAAA,oBAAoB,EAApBA,oBADa;AAEbC,EAAAA,kBAAkB,EAAlBA;AAFa,C","sourcesContent":["export const MAIN_CONTAINER_CLASS = 'main-container';\nexport const PIE_TOOLBAR__CLASS = 'pie-toolbar';\n\nexport default {\n MAIN_CONTAINER_CLASS,\n PIE_TOOLBAR__CLASS,\n};\n"],"file":"constants.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/component.jsx"],"names":["log","sizePx","s","ImageComponent","props","node","editor","classes","attributes","onFocus","selected","options","maxImageWidth","maxImageHeight","latex","handleChange","handleDone","alt","attrs","showToolbar","setShowToolbar","imgRef","resizeRef","toolbarRef","getPercentFromWidth","width","floored","current","naturalWidth","parseInt","toFixed","applySizeData","update","resizePercent","commands","updateAttributes","imageHandling","insertImageRequested","finish","InsertImageHandler","resizeHandle","addEventListener","initResize","removeEventListener","loadImage","box","style","w","Math","min","h","naturalHeight","height","updateAspect","initial","next","keepAspect","resizeType","ratio","startResize","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","onChange","newValues","stopResize","window","objectFit","flexAlign","center","right","alignment","root","loaded","loading","deleteStatus","pendingDelete","justifyContent","percent","progress","hideProgress","imageContainer","src","image","active","resize","position","zIndex","background","boxShadow","onDone","focus","disableImageAlignmentButtons","propTypes","PropTypes","object","isRequired","func","number","theme","portal","opacity","transition","floatingButtonRow","backgroundColor","palette","paper","borderRadius","display","padding","border","grey","common","white","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport InsertImageHandler from '../components/image/InsertImageHandler';\nimport ImageToolbar from '../components/image/ImageToolbar';\nimport CustomToolbarWrapper from './custom-toolbar-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst sizePx = (s) => (s ? `${s}px` : 'calc(20px)');\n\nfunction ImageComponent(props) {\n const {\n node,\n editor,\n classes,\n attributes,\n onFocus,\n selected,\n options,\n maxImageWidth = 700,\n maxImageHeight = 900,\n latex,\n handleChange,\n handleDone,\n } = props;\n const { alt } = node.attrs;\n\n const [showToolbar, setShowToolbar] = useState(false);\n\n const imgRef = useRef(null);\n const resizeRef = useRef(null);\n const toolbarRef = useRef(null);\n\n const getPercentFromWidth = useCallback((width) => {\n const floored = (width / imgRef.current.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n }, []);\n\n const applySizeData = useCallback(() => {\n if (!node.attrs.width || !imgRef.current) return;\n\n const update = {\n ...node.attrs,\n resizePercent: getPercentFromWidth(node.attrs.width),\n };\n\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }, [editor, node.attrs, getPercentFromWidth]);\n\n useEffect(() => {\n setShowToolbar(selected);\n }, [selected]);\n\n useEffect(() => {\n options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, finish));\n applySizeData();\n\n const resizeHandle = resizeRef.current;\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', initResize, false);\n }\n return () => {\n if (resizeHandle) resizeHandle.removeEventListener('mousedown', initResize, false);\n };\n }, []);\n\n useEffect(() => {\n applySizeData();\n });\n\n const loadImage = useCallback(() => {\n const box = imgRef.current;\n if (!box) return;\n\n if (!box.style.width || box.style.width === 'calc(20px)') {\n const w = Math.min(box.naturalWidth, maxImageWidth);\n const h = Math.min(box.naturalHeight, maxImageHeight);\n\n box.style.width = `${w}px`;\n box.style.height = `${h}px`;\n\n const update = { width: w, height: h };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n }, [editor, node.attrs, maxImageWidth, maxImageHeight]);\n\n const updateAspect = (initial, next, keepAspect = true, resizeType) => {\n if (keepAspect) {\n const ratio = initial.width / initial.height;\n if (resizeType === 'height') return { width: next.height * ratio, height: next.height };\n return { width: next.width, height: next.width / ratio };\n }\n return next;\n };\n\n const startResize = useCallback(\n (e) => {\n const box = imgRef.current;\n if (!box) return;\n\n const bounds = e.target.getBoundingClientRect();\n const initial = { width: box.naturalWidth, height: box.naturalHeight };\n\n const next = updateAspect(initial, {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n });\n\n if (next.width > 50 && next.height > 50 && next.width <= 700 && next.height <= 900) {\n box.style.width = `${next.width}px`;\n box.style.height = `${next.height}px`;\n\n const update = { width: next.width, height: next.height };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n },\n [editor, node.attrs],\n );\n\n const onChange = useCallback(\n (newValues) => {\n editor.commands.updateAttributes('imageUploadNode', newValues);\n },\n [editor],\n );\n\n const stopResize = useCallback(() => {\n window.removeEventListener('mousemove', startResize);\n window.removeEventListener('mouseup', stopResize);\n }, [startResize]);\n\n const initResize = useCallback(() => {\n window.addEventListener('mousemove', startResize);\n window.addEventListener('mouseup', stopResize);\n }, [startResize, stopResize]);\n\n const style = {\n width: sizePx(node.attrs.width),\n height: sizePx(node.attrs.height),\n objectFit: 'contain',\n };\n\n const flexAlign = { left: 'flex-start', center: 'center', right: 'flex-end' }[node.attrs.alignment] || 'flex-start';\n\n return (\n <NodeViewWrapper>\n <div\n onFocus={onFocus}\n className={classNames(\n classes.root,\n !node.attrs.loaded && classes.loading,\n node.attrs.deleteStatus === 'pending' && classes.pendingDelete,\n )}\n style={{ justifyContent: flexAlign }}\n >\n <LinearProgress\n mode=\"determinate\"\n value={node.attrs.percent || 0}\n className={classNames(classes.progress, node.attrs.loaded && classes.hideProgress)}\n />\n\n <div className={classes.imageContainer}>\n <img\n {...attributes}\n ref={imgRef}\n src={node.attrs.src}\n className={classNames(classes.image, selected && classes.active)}\n style={style}\n onLoad={loadImage}\n alt={node.attrs.alt}\n />\n <div ref={resizeRef} className={classNames(classes.resize, 'resize')} />\n </div>\n </div>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n width: '100%',\n }}\n >\n <CustomToolbarWrapper\n showDone\n {...options}\n onDone={() => {\n setShowToolbar(false);\n props.imageHandling?.onDone();\n props.editor.commands.focus('end');\n }}\n >\n <ImageToolbar\n disableImageAlignmentButtons={options.disableImageAlignmentButtons}\n alt={node.attrs.alt}\n imageLoaded={node.attrs.loaded}\n alignment={node.attrs.alignment || 'left'}\n onChange={onChange}\n />\n </CustomToolbarWrapper>\n </div>\n )}\n </NodeViewWrapper>\n );\n}\n\nImageComponent.propTypes = {\n node: PropTypes.object.isRequired,\n editor: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear',\n },\n floatingButtonRow: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n },\n hideProgress: {\n opacity: 0,\n },\n loading: {\n opacity: 0.3,\n },\n pendingDelete: {\n opacity: 0.3,\n },\n root: {\n position: 'relative',\n border: `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n}))(ImageComponent);\n"],"file":"component.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/css.js"],"names":["removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","editor","callback","opts","selectedText","parentNode","editorDOM","options","element","newEl","createElement","selection","state","className","popoverEl","closePopOver","firstCallMade","listener","e","focusIsInModals","contains","target","focusIsInEditor","handleClose","undefined","body","removeEventListener","handleChange","name","parentNodeClass","attrs","createHTML","html","tag","object","text","slice","$anchor","textOffset","$head","el","background","height","padding","overflow","display","flexFlow","names","map","i","marginRight","__html","ReactDOM","render","cursorItem","view","nodeDOM","from","cursorNode","bodyRect","parentElement","getBoundingClientRect","boundRect","appendChild","style","maxWidth","position","top","zIndex","leftValue","left","Math","abs","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CSSMark","Mark","create","addOptions","classes","addAttributes","parseHTML","getAttribute","renderHTML","attributes","getAttrs","cls","match","find","includes","HTMLAttributes","addCommands","setCSSClass","commands","setMark","unsetCSSClass","unsetMark","openCSSClassDialog","doc","textBetween","to","$from","nodeAfter","extraCSSRules","chain","focus","run"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACjC,MAAMC,WAAW,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,oBAA1B,CAApB;AAEAF,EAAAA,WAAW,CAACG,OAAZ,CAAoB,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,MAAF,EAAP;AAAA,GAApB;AACD,CAJM;;;;AAMP,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAA0D;AAAA,MAAvDC,MAAuD,QAAvDA,MAAuD;AAAA,MAA/CC,QAA+C,QAA/CA,QAA+C;AAAA,MAArCC,IAAqC,QAArCA,IAAqC;AAAA,MAA/BC,YAA+B,QAA/BA,YAA+B;AAAA,MAAjBC,UAAiB,QAAjBA,UAAiB;AAC7E,MAAMC,SAAS,GAAGL,MAAM,CAACM,OAAP,CAAeC,OAAjC;AACA,MAAMC,KAAK,GAAGd,QAAQ,CAACe,aAAT,CAAuB,KAAvB,CAAd;AACA,MAAQC,SAAR,GAAsBV,MAAM,CAACW,KAA7B,CAAQD,SAAR;AAEAlB,EAAAA,aAAa;AAEbgB,EAAAA,KAAK,CAACI,SAAN,GAAkB,mBAAlB;AAEA,MAAIC,SAAJ;;AAEA,MAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB,QAAID,SAAJ,EAAe;AACbA,MAAAA,SAAS,CAACf,MAAV;AACD;AACF,GAJD;;AAMA,MAAIiB,aAAa,GAAG,KAApB;;AAEA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,CAAD,EAAO;AACtB;AACA;AACA;AACA,QAAIF,aAAJ,EAAmB;AACjB,UAAMG,eAAe,GAAGV,KAAK,CAACW,QAAN,CAAeF,CAAC,CAACG,MAAjB,KAA6BP,SAAS,IAAIA,SAAS,CAACM,QAAV,CAAmBF,CAAC,CAACG,MAArB,CAAlE;AACA,UAAMC,eAAe,GAAGhB,SAAS,CAACc,QAAV,CAAmBF,CAAC,CAACG,MAArB,CAAxB;;AAEA,UAAI,EAAEF,eAAe,IAAIG,eAArB,CAAJ,EAA2C;AACzCC,QAAAA,WAAW;AACZ;AACF,KAPD,MAOO;AACLP,MAAAA,aAAa,GAAG,IAAhB;AACD;AACF,GAdD;;AAgBA,MAAMO,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBrB,IAAAA,QAAQ,CAACsB,SAAD,EAAY,IAAZ,CAAR;AACAf,IAAAA,KAAK,CAACV,MAAN;AACAgB,IAAAA,YAAY;AACZpB,IAAAA,QAAQ,CAAC8B,IAAT,CAAcC,mBAAd,CAAkC,OAAlC,EAA2CT,QAA3C;AACD,GALD;;AAOA,MAAMU,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAU;AAC7B1B,IAAAA,QAAQ,CAAC0B,IAAD,EAAO,IAAP,CAAR;AACAnB,IAAAA,KAAK,CAACV,MAAN;AACAgB,IAAAA,YAAY;AACZpB,IAAAA,QAAQ,CAAC8B,IAAT,CAAcC,mBAAd,CAAkC,OAAlC,EAA2CT,QAA3C;AACD,GALD;;AAOA,MAAMY,eAAe,GAAGxB,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEyB,KAAZ,SAAxB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAACH,IAAD,EAAU;AAC3B,QAAII,IAAI,2BAAmBJ,IAAnB,gBAA4BxB,YAA5B,YAAR;;AAEA,QAAIC,UAAJ,EAAgB;AACd,UAAI4B,GAAG,GAAG,MAAV;;AAEA,UAAI,CAAA5B,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAE6B,MAAZ,MAAuB,QAA3B,EAAqC;AACnCD,QAAAA,GAAG,GAAG,MAAN;AACD;;AAED,UAAI,CAAA5B,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAE6B,MAAZ,MAAuB,OAA3B,EAAoC;AAClCD,QAAAA,GAAG,GAAG,KAAN;AACD;;AAEDD,MAAAA,IAAI,cAAOC,GAAP,sBAAqBJ,eAArB,gBAAyCxB,UAAU,CAAC8B,IAAX,CAAgBC,KAAhB,CAAsB,CAAtB,EAAyBzB,SAAS,CAAC0B,OAAV,CAAkBC,UAA3C,CAAzC,SAAkGN,IAAlG,SAAyG3B,UAAU,CAAC8B,IAAX,CAAgBC,KAAhB,CAC3GzB,SAAS,CAAC4B,KAAV,CAAgBD,UAD2F,CAAzG,eAEEL,GAFF,MAAJ;AAGD;;AAED,WAAOD,IAAP;AACD,GApBD;;AAsBA,MAAMQ,EAAE,gBACN;AACE,IAAA,KAAK,EAAE;AAAEC,MAAAA,UAAU,EAAE,OAAd;AAAuBC,MAAAA,MAAM,EAAE,GAA/B;AAAoCC,MAAAA,OAAO,EAAE,EAA7C;AAAiDC,MAAAA,QAAQ,EAAE,QAA3D;AAAqEC,MAAAA,OAAO,EAAE,MAA9E;AAAsFC,MAAAA,QAAQ,EAAE;AAAhG;AADT,kBAGE,wEAHF,EAIGjB,eAAe,iBAAI,mFAAwCA,eAAxC,CAJtB,eAKE,gCAAC,gBAAD;AAAM,IAAA,SAAS,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAE;AAAEe,MAAAA,QAAQ,EAAE;AAAZ;AAA7B,KACGzC,IAAI,CAAC4C,KAAL,CAAWC,GAAX,CAAe,UAACpB,IAAD,EAAOqB,CAAP;AAAA,wBACd,gCAAC,oBAAD;AAAU,MAAA,GAAG,iBAAUA,CAAV,CAAb;AAA4B,MAAA,MAAM,MAAlC;AAAmC,MAAA,OAAO,EAAE;AAAA,eAAMtB,YAAY,CAACC,IAAD,CAAlB;AAAA;AAA5C,oBACE;AAAK,MAAA,KAAK,EAAE;AAAEsB,QAAAA,WAAW,EAAE;AAAf;AAAZ,OAAkCtB,IAAlC,CADF,eAEE;AACE,MAAA,uBAAuB,EAAE;AACvBuB,QAAAA,MAAM,EAAEpB,UAAU,CAACH,IAAD;AADK;AAD3B,MAFF,CADc;AAAA,GAAf,CADH,CALF,CADF;;AAqBAwB,uBAASC,MAAT,CAAgBb,EAAhB,EAAoB/B,KAApB,EAA2B,YAAM;AAC/B,QAAM6C,UAAU,GAAGrD,MAAM,CAACsD,IAAP,CAAYC,OAAZ,CAAoBvD,MAAM,CAACW,KAAP,CAAaD,SAAb,CAAuB8C,IAA3C,CAAnB;AACA,QAAMC,UAAU,GAAGJ,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEjD,UAA/B;;AAEA,QAAIqD,UAAJ,EAAgB;AACd,UAAMC,QAAQ,GAAGrD,SAAS,CAACsD,aAAV,CAAwBA,aAAxB,CAAsCA,aAAtC,CAAoDC,qBAApD,EAAjB;AACA,UAAMC,SAAS,GAAGJ,UAAU,CAACG,qBAAX,EAAlB;AAEAvD,MAAAA,SAAS,CAACsD,aAAV,CAAwBA,aAAxB,CAAsCA,aAAtC,CAAoDG,WAApD,CAAgEtD,KAAhE;AAEAA,MAAAA,KAAK,CAACuD,KAAN,CAAYC,QAAZ,GAAuB,OAAvB;AACAxD,MAAAA,KAAK,CAACuD,KAAN,CAAYE,QAAZ,GAAuB,UAAvB;AACAzD,MAAAA,KAAK,CAACuD,KAAN,CAAYG,GAAZ,GAAkB,CAAlB;AACA1D,MAAAA,KAAK,CAACuD,KAAN,CAAYI,MAAZ,GAAqB,KAArB;AAEA,UAAMC,SAAS,aAAMP,SAAS,CAACQ,IAAV,GAAiBC,IAAI,CAACC,GAAL,CAASb,QAAQ,CAACW,IAAlB,CAAjB,GAA2CZ,UAAU,CAACe,WAAtD,GAAoE,EAA1E,OAAf;AAEA,UAAMC,UAAU,aAAMZ,SAAS,CAACa,CAAhB,OAAhB;AAEAlE,MAAAA,KAAK,CAACuD,KAAN,CAAYM,IAAZ,GAAmBD,SAAnB;AAEA,UAAMO,gBAAgB,GAAGnE,KAAK,CAACgE,WAA/B;AAEAhE,MAAAA,KAAK,CAACuD,KAAN,CAAYM,IAAZ,GAAmB,OAAnB;AACA7D,MAAAA,KAAK,CAACuD,KAAN,CAAYa,KAAZ,GAAoBH,UAApB;AAEA,UAAMI,iBAAiB,GAAGrE,KAAK,CAACgE,WAAhC;AAEAhE,MAAAA,KAAK,CAACuD,KAAN,CAAYM,IAAZ,GAAmB,OAAnB;AACA7D,MAAAA,KAAK,CAACuD,KAAN,CAAYa,KAAZ,GAAoB,OAApB;;AAEA,UAAID,gBAAgB,IAAIE,iBAAxB,EAA2C;AACzCrE,QAAAA,KAAK,CAACuD,KAAN,CAAYM,IAAZ,GAAmBD,SAAnB;AACD,OAFD,MAEO;AACL5D,QAAAA,KAAK,CAACuD,KAAN,CAAYa,KAAZ,GAAoBH,UAApB;AACD;;AAED/E,MAAAA,QAAQ,CAAC8B,IAAT,CAAcsD,gBAAd,CAA+B,OAA/B,EAAwC9D,QAAxC;AACD;AACF,GAvCD;AAwCD,CArID;;AAuIO,IAAM+D,OAAO,GAAGC,WAAKC,MAAL,CAAY;AACjCtD,EAAAA,IAAI,EAAE,SAD2B;AAGjCuD,EAAAA,UAHiC,wBAGpB;AACX,WAAO;AACLC,MAAAA,OAAO,EAAE;AADJ,KAAP;AAGD,GAPgC;AASjCC,EAAAA,aATiC,2BASjB;AACd,WAAO;AACL,eAAO;AACL,mBAAS,IADJ;AAELC,QAAAA,SAAS,EAAE,mBAAC9C,EAAD;AAAA,iBAAQA,EAAE,CAAC+C,YAAH,CAAgB,OAAhB,CAAR;AAAA,SAFN;AAGLC,QAAAA,UAAU,EAAE,oBAACC,UAAD,EAAgB;AAC1B,cAAI,CAACA,UAAU,SAAf,EAAuB,OAAO,EAAP;AACvB,iBAAO;AAAE,qBAAOA,UAAU;AAAnB,WAAP;AACD;AANI;AADF,KAAP;AAUD,GApBgC;AAsBjCH,EAAAA,SAtBiC,uBAsBrB;AAAA;;AACV;AACA,WAAO,CACL;AACErD,MAAAA,GAAG,EAAE,aADP;AAEEyD,MAAAA,QAAQ,EAAE,kBAAClD,EAAD,EAAQ;AAChB,YAAMmD,GAAG,GAAGnD,EAAE,CAAC+C,YAAH,CAAgB,OAAhB,KAA4B,EAAxC;;AACA,YAAMK,KAAK,GAAG,KAAI,CAACrF,OAAL,CAAa6E,OAAb,CAAqBS,IAArB,CAA0B,UAACjE,IAAD;AAAA,iBAAU+D,GAAG,CAACG,QAAJ,CAAalE,IAAb,CAAV;AAAA,SAA1B,CAAd;;AACA,eAAOgE,KAAK,GAAG;AAAE,mBAAOA;AAAT,SAAH,GAAsB,KAAlC;AACD;AANH,KADK,CAAP;AAUD,GAlCgC;AAoCjCJ,EAAAA,UApCiC,6BAoCF;AAAA,QAAlBO,cAAkB,SAAlBA,cAAkB;AAC7B,WAAO,CAAC,MAAD,EAAS,2BAAgBA,cAAhB,CAAT,EAA0C,CAA1C,CAAP;AACD,GAtCgC;AAwCjCC,EAAAA,WAxCiC,yBAwCnB;AAAA;;AACZ,WAAO;AACLC,MAAAA,WAAW,EAAE,qBAACpF,SAAD;AAAA,eAAe,iBAAkB;AAAA,cAAfqF,QAAe,SAAfA,QAAe;AAC5C,iBAAOA,QAAQ,CAACC,OAAT,CAAiB,MAAI,CAACvE,IAAtB,EAA4B;AAAE,qBAAOf;AAAT,WAA5B,CAAP;AACD,SAFY;AAAA,OADR;AAKLuF,MAAAA,aAAa,EAAE;AAAA,eAAM,iBAAkB;AAAA,cAAfF,QAAe,SAAfA,QAAe;AACrC,iBAAOA,QAAQ,CAACG,SAAT,CAAmB,MAAI,CAACzE,IAAxB,CAAP;AACD,SAFc;AAAA,OALV;AASL0E,MAAAA,kBAAkB,EAAE;AAAA,eAAM,iBAAgB;AAAA,cAAbrG,MAAa,SAAbA,MAAa;AACxCD,UAAAA,YAAY,CAAC;AACXC,YAAAA,MAAM,EAANA,MADW;AAEXG,YAAAA,YAAY,EAAEH,MAAM,CAACW,KAAP,CAAa2F,GAAb,CAAiBC,WAAjB,CAA6BvG,MAAM,CAACW,KAAP,CAAaD,SAAb,CAAuB8C,IAApD,EAA0DxD,MAAM,CAACW,KAAP,CAAaD,SAAb,CAAuB8F,EAAjF,CAFH;AAGXpG,YAAAA,UAAU,EAAEJ,MAAM,CAACW,KAAP,CAAaD,SAAb,CAAuB+F,KAAvB,CAA6BC,SAH9B;AAIXxG,YAAAA,IAAI,EAAE,MAAI,CAACI,OAAL,CAAaqG,aAJR;AAKX1G,YAAAA,QAAQ,EAAE,kBAACW,SAAD,EAAe;AACvB,kBAAIA,SAAJ,EAAe;AACbZ,gBAAAA,MAAM,CACH4G,KADH,GAEGC,KAFH,GAGGb,WAHH,CAGepF,SAHf,EAIGkG,GAJH;AAKD;AACF;AAbU,WAAD,CAAZ;AAeD,SAhBmB;AAAA;AATf,KAAP;AA2BD;AApEgC,CAAZ,CAAhB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Mark, mergeAttributes } from '@tiptap/core';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-css-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nconst insertDialog = ({ editor, callback, opts, selectedText, parentNode }) => {\n const editorDOM = editor.options.element;\n const newEl = document.createElement('div');\n const { selection } = editor.state;\n\n removeDialogs();\n\n newEl.className = 'insert-css-dialog';\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals = newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (name) => {\n callback(name, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const parentNodeClass = parentNode?.attrs.class;\n const createHTML = (name) => {\n let html = `<span class=\"${name}\">${selectedText}</span>`;\n\n if (parentNode) {\n let tag = 'span';\n\n if (parentNode?.object === 'inline') {\n tag = 'span';\n }\n\n if (parentNode?.object === 'block') {\n tag = 'div';\n }\n\n html = `<${tag} class=\"${parentNodeClass}\">${parentNode.text.slice(0, selection.$anchor.textOffset)}${html}${parentNode.text.slice(\n selection.$head.textOffset,\n )}</${tag}>`;\n }\n\n return html;\n };\n\n const el = (\n <div\n style={{ background: 'white', height: 500, padding: 20, overflow: 'hidden', display: 'flex', flexFlow: 'column' }}\n >\n <h2>Please choose a css class</h2>\n {parentNodeClass && <div>The current parent has this class {parentNodeClass}</div>}\n <List component=\"nav\" style={{ overflow: 'scroll' }}>\n {opts.names.map((name, i) => (\n <ListItem key={`rule-${i}`} button onClick={() => handleChange(name)}>\n <div style={{ marginRight: 20 }}>{name}</div>\n <div\n dangerouslySetInnerHTML={{\n __html: createHTML(name),\n }}\n />\n </ListItem>\n ))}\n </List>\n </div>\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = editor.view.nodeDOM(editor.state.selection.from);\n const cursorNode = cursorItem?.parentNode;\n\n if (cursorNode) {\n const bodyRect = editorDOM.parentElement.parentElement.parentElement.getBoundingClientRect();\n const boundRect = cursorNode.getBoundingClientRect();\n\n editorDOM.parentElement.parentElement.parentElement.appendChild(newEl);\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = 0;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorNode.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nexport const CSSMark = Mark.create({\n name: 'cssmark',\n\n addOptions() {\n return {\n classes: [],\n };\n },\n\n addAttributes() {\n return {\n class: {\n default: null,\n parseHTML: (el) => el.getAttribute('class'),\n renderHTML: (attributes) => {\n if (!attributes.class) return {};\n return { class: attributes.class };\n },\n },\n };\n },\n\n parseHTML() {\n // Any span with a class that matches one of allowed classes\n return [\n {\n tag: 'span[class]',\n getAttrs: (el) => {\n const cls = el.getAttribute('class') || '';\n const match = this.options.classes.find((name) => cls.includes(name));\n return match ? { class: match } : false;\n },\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['span', mergeAttributes(HTMLAttributes), 0];\n },\n\n addCommands() {\n return {\n setCSSClass: (className) => ({ commands }) => {\n return commands.setMark(this.name, { class: className });\n },\n\n unsetCSSClass: () => ({ commands }) => {\n return commands.unsetMark(this.name);\n },\n\n openCSSClassDialog: () => ({ editor }) => {\n insertDialog({\n editor,\n selectedText: editor.state.doc.textBetween(editor.state.selection.from, editor.state.selection.to),\n parentNode: editor.state.selection.$from.nodeAfter,\n opts: this.options.extraCSSRules,\n callback: (className) => {\n if (className) {\n editor\n .chain()\n .focus()\n .setCSSClass(className)\n .run();\n }\n },\n });\n },\n };\n },\n});\n"],"file":"css.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/custom-toolbar-wrapper.jsx"],"names":["CustomToolbarWrapper","props","children","deletable","classes","toolbarOpts","autoWidth","isFocused","doneButtonRef","onDelete","showDone","onDone","names","toolbar","PIE_TOOLBAR__CLASS","toolbarWithNoDone","toolbarRight","alignment","focused","alwaysVisible","fullWidth","hidden","isHidden","customStyles","minWidth","undefined","shared","iconRoot","e","root","style","position","zIndex","cursor","justifyContent","background","margin","padding","boxShadow","boxSizing","display","opacity","right","width","visibility","height","verticalAlign","label","color","index"],"mappings":"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","sourcesContent":["import React, { useCallback } from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport classNames from 'classnames';\nimport { PIE_TOOLBAR__CLASS } from '../constants';\nimport { withStyles } from '@material-ui/core/styles';\nimport { DoneButton } from '../components/common/done-button';\n\nfunction CustomToolbarWrapper(props) {\n const {\n children,\n deletable,\n classes,\n toolbarOpts,\n autoWidth,\n isFocused,\n doneButtonRef,\n onDelete,\n showDone,\n onDone,\n } = props;\n const names = classNames(classes.toolbar, PIE_TOOLBAR__CLASS, {\n [classes.toolbarWithNoDone]: !showDone,\n [classes.toolbarRight]: toolbarOpts.alignment === 'right',\n [classes.focused]: toolbarOpts.alwaysVisible || isFocused,\n [classes.autoWidth]: autoWidth,\n [classes.fullWidth]: !autoWidth,\n [classes.hidden]: toolbarOpts.isHidden === true,\n });\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <div className={names} style={{ ...customStyles }}>\n {children}\n\n <div className={classes.shared}>\n {deletable && (\n <IconButton\n aria-label=\"Delete\"\n className={classes.iconRoot}\n onMouseDown={(e) => onDelete?.(e)}\n classes={{\n root: classes.iconRoot,\n }}\n >\n <Delete />\n </IconButton>\n )}\n {showDone && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </div>\n </div>\n );\n}\n\nconst style = {\n toolbar: {\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: '280px',\n margin: '5px 0 0 0',\n padding: '2px',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n boxSizing: 'border-box',\n display: 'flex',\n opacity: 1,\n },\n toolbarWithNoDone: {\n minWidth: '265px',\n },\n toolbarRight: {\n right: 0,\n },\n fullWidth: {\n width: '100%',\n },\n hidden: {\n visibility: 'hidden',\n },\n autoWidth: {\n width: 'auto',\n },\n iconRoot: {\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n },\n label: {\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n },\n shared: {\n display: 'flex',\n },\n};\nexport default withStyles(style, { index: 1000 })(CustomToolbarWrapper);\n"],"file":"custom-toolbar-wrapper.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/extended-table.js"],"names":["ExtendedTable","Table","extend","addAttributes","border","renderHTML","props","originalTable","parent","HTMLAttributes","previousStyle","style","match"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,aAAa,GAAGC,sBAAMC,MAAN,CAAa;AACjCC,EAAAA,aADiC,2BACjB;AACd,WAAO;AACLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX;AADH,KAAP;AAGD,GALgC;AAMjCC,EAAAA,UANiC,sBAMtBC,KANsB,EAMf;AAChB,QAAMC,aAAa,GAAG,KAAKC,MAAL,CAAYF,KAAZ,CAAtB;AACA,QAAQF,MAAR,GAAmBE,KAAK,CAACG,cAAzB,CAAQL,MAAR;AAEA,QAAMM,aAAa,aAAMH,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAvB,SAA+BJ,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAjB,CAAuBC,KAAvB,CAA6B,OAA7B,IAAwC,EAAxC,GAA6C,GAA5E,CAAnB;AAEAL,IAAAA,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAjB,aAA4BD,aAA5B;AAMAH,IAAAA,aAAa,CAAC,CAAD,CAAb,CAAiBH,MAAjB,GAA0BA,MAAM,GAAGA,MAAH,GAAY,GAA5C;AAEA,WAAOG,aAAP;AACD;AArBgC,CAAb,CAAtB;;eAwBeP,a","sourcesContent":["import { Table } from '@tiptap/extension-table';\n\nconst ExtendedTable = Table.extend({\n addAttributes() {\n return {\n border: { default: '1' },\n };\n },\n renderHTML(props) {\n const originalTable = this.parent(props);\n const { border } = props.HTMLAttributes;\n\n const previousStyle = `${originalTable[1].style}${originalTable[1].style.match(/.*; */) ? '' : ';'}`;\n\n originalTable[1].style = `${previousStyle}\n width: 100%;\n color: var(--pie-text, black);\n table-layout: fixed;\n border-collapse: collapse;\n background-color: var(--pie-background, rgba(255, 255, 255))`;\n originalTable[1].border = border ? border : '1';\n\n return originalTable;\n },\n});\n\nexport default ExtendedTable;\n"],"file":"extended-table.js"}
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -15,14 +13,10 @@ var _core = require("@tiptap/core");
15
13
 
16
14
  var _react = require("@tiptap/react");
17
15
 
18
- var _react2 = _interopRequireWildcard(require("react"));
16
+ var _react2 = _interopRequireDefault(require("react"));
19
17
 
20
18
  var _component = _interopRequireDefault(require("./component"));
21
19
 
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
20
  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; }
27
21
 
28
22
  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; }
@@ -103,4 +97,4 @@ var ImageUploadNode = _core.Node.create({
103
97
  });
104
98
 
105
99
  exports.ImageUploadNode = ImageUploadNode;
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2ltYWdlLmpzIl0sIm5hbWVzIjpbIkltYWdlVXBsb2FkTm9kZSIsIk5vZGUiLCJjcmVhdGUiLCJuYW1lIiwiZ3JvdXAiLCJhdG9tIiwic2VsZWN0YWJsZSIsImRyYWdnYWJsZSIsImFkZEF0dHJpYnV0ZXMiLCJsb2FkZWQiLCJkZWxldGVTdGF0dXMiLCJhbGlnbm1lbnQiLCJwZXJjZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJzcmMiLCJhbHQiLCJwYXJzZUhUTUwiLCJ0YWciLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsInByb3BzIiwib3B0aW9ucyIsImFkZENvbW1hbmRzIiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiY29tbWFuZHMiLCJpbnNlcnRDb250ZW50IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUE7QUFFTyxJQUFNQSxlQUFlLEdBQUdDLFdBQUtDLE1BQUwsQ0FBWTtBQUN6Q0MsRUFBQUEsSUFBSSxFQUFFLGlCQURtQztBQUd6Q0MsRUFBQUEsS0FBSyxFQUFFLE9BSGtDO0FBSXpDQyxFQUFBQSxJQUFJLEVBQUUsSUFKbUM7QUFJN0I7QUFDWkMsRUFBQUEsVUFBVSxFQUFFLElBTDZCO0FBS3ZCO0FBQ2xCQyxFQUFBQSxTQUFTLEVBQUUsSUFOOEI7QUFNeEI7QUFFakJDLEVBQUFBLGFBUnlDLDJCQVF6QjtBQUNkLFdBQU87QUFDTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQURIO0FBRUxDLE1BQUFBLFlBQVksRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FGVDtBQUdMQyxNQUFBQSxTQUFTLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BSE47QUFJTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQUpKO0FBS0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FMRjtBQU1MQyxNQUFBQSxNQUFNLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BTkg7QUFPTEMsTUFBQUEsR0FBRyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQVBBO0FBUUxDLE1BQUFBLEdBQUcsRUFBRTtBQUFFLG1CQUFTO0FBQVg7QUFSQSxLQUFQO0FBVUQsR0FuQndDO0FBcUJ6Q0MsRUFBQUEsU0FyQnlDLHVCQXFCN0I7QUFDVixXQUFPLENBQ0w7QUFDRUMsTUFBQUEsR0FBRyxFQUFFO0FBRFAsS0FESyxDQUFQO0FBS0QsR0EzQndDO0FBNkJ6QztBQUNBQyxFQUFBQSxVQTlCeUMsNEJBOEJWO0FBQUEsUUFBbEJDLGNBQWtCLFFBQWxCQSxjQUFrQjtBQUM3QixXQUFPLENBQUMsS0FBRCxFQUFRLDJCQUFnQkEsY0FBaEIsRUFBZ0M7QUFBRSxtQkFBYTtBQUFmLEtBQWhDLENBQVIsQ0FBUDtBQUNELEdBaEN3QztBQWtDekNDLEVBQUFBLFdBbEN5Qyx5QkFrQzNCO0FBQUE7O0FBQ1osV0FBTyxrQ0FBc0IsVUFBQ0MsS0FBRDtBQUFBLDBCQUFXLGlDQUFDLHFCQUFELGtDQUF5QkEsS0FBekI7QUFBZ0NDLFFBQUFBLE9BQU8sRUFBRSxLQUFJLENBQUNBO0FBQTlDLFNBQVg7QUFBQSxLQUF0QixDQUFQO0FBQ0QsR0FwQ3dDO0FBc0N6Q0MsRUFBQUEsV0F0Q3lDLHlCQXNDM0I7QUFBQTs7QUFDWixXQUFPO0FBQ0xDLE1BQUFBLGtCQUFrQixFQUFFO0FBQUEsZUFBTSxpQkFBa0I7QUFBQSxjQUFmQyxRQUFlLFNBQWZBLFFBQWU7QUFDMUMsaUJBQU9BLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QjtBQUM1QkMsWUFBQUEsSUFBSSxFQUFFLE1BQUksQ0FBQ3pCO0FBRGlCLFdBQXZCLENBQVA7QUFHRCxTQUptQjtBQUFBO0FBRGYsS0FBUDtBQU9EO0FBOUN3QyxDQUFaLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IE5vZGVWaWV3V3JhcHBlciwgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1hZ2VDb21wb25lbnQgZnJvbSAnLi9jb21wb25lbnQnO1xuXG4vLyAtLS0tIFRpcHRhcCBFeHRlbnNpb24gLS0tLSAvL1xuXG5leHBvcnQgY29uc3QgSW1hZ2VVcGxvYWROb2RlID0gTm9kZS5jcmVhdGUoe1xuICBuYW1lOiAnaW1hZ2VVcGxvYWROb2RlJyxcblxuICBncm91cDogJ2Jsb2NrJyxcbiAgYXRvbTogdHJ1ZSwgLy8g4pyFIHByZXZlbnRzIGNvbnRlbnQgaG9sZXNcbiAgc2VsZWN0YWJsZTogdHJ1ZSwgLy8gb3B0aW9uYWxcbiAgZHJhZ2dhYmxlOiB0cnVlLCAvLyBvcHRpb25hbFxuXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYWRlZDogeyBkZWZhdWx0OiBmYWxzZSB9LFxuICAgICAgZGVsZXRlU3RhdHVzOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIGFsaWdubWVudDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBwZXJjZW50OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHdpZHRoOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIGhlaWdodDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBzcmM6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgYWx0OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICB9O1xuICB9LFxuXG4gIHBhcnNlSFRNTCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0YWc6ICdkaXZbZGF0YS10eXBlPVwiaW1hZ2UtdXBsb2FkLW5vZGVcIl0nLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuXG4gIC8vIOKchSBObyBgMGAgaGVyZSFcbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gWydpbWcnLCBtZXJnZUF0dHJpYnV0ZXMoSFRNTEF0dHJpYnV0ZXMsIHsgJ2RhdGEtdHlwZSc6ICdpbWFnZS11cGxvYWQtbm9kZScgfSldO1xuICB9LFxuXG4gIGFkZE5vZGVWaWV3KCkge1xuICAgIHJldHVybiBSZWFjdE5vZGVWaWV3UmVuZGVyZXIoKHByb3BzKSA9PiA8SW1hZ2VDb21wb25lbnQgey4uLnsgLi4ucHJvcHMsIG9wdGlvbnM6IHRoaXMub3B0aW9ucyB9fSAvPik7XG4gIH0sXG5cbiAgYWRkQ29tbWFuZHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEltYWdlVXBsb2FkTm9kZTogKCkgPT4gKHsgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICByZXR1cm4gY29tbWFuZHMuaW5zZXJ0Q29udGVudCh7XG4gICAgICAgICAgdHlwZTogdGhpcy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2ltYWdlLmpzIl0sIm5hbWVzIjpbIkltYWdlVXBsb2FkTm9kZSIsIk5vZGUiLCJjcmVhdGUiLCJuYW1lIiwiZ3JvdXAiLCJhdG9tIiwic2VsZWN0YWJsZSIsImRyYWdnYWJsZSIsImFkZEF0dHJpYnV0ZXMiLCJsb2FkZWQiLCJkZWxldGVTdGF0dXMiLCJhbGlnbm1lbnQiLCJwZXJjZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJzcmMiLCJhbHQiLCJwYXJzZUhUTUwiLCJ0YWciLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsInByb3BzIiwib3B0aW9ucyIsImFkZENvbW1hbmRzIiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiY29tbWFuZHMiLCJpbnNlcnRDb250ZW50IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUE7QUFFTyxJQUFNQSxlQUFlLEdBQUdDLFdBQUtDLE1BQUwsQ0FBWTtBQUN6Q0MsRUFBQUEsSUFBSSxFQUFFLGlCQURtQztBQUd6Q0MsRUFBQUEsS0FBSyxFQUFFLE9BSGtDO0FBSXpDQyxFQUFBQSxJQUFJLEVBQUUsSUFKbUM7QUFJN0I7QUFDWkMsRUFBQUEsVUFBVSxFQUFFLElBTDZCO0FBS3ZCO0FBQ2xCQyxFQUFBQSxTQUFTLEVBQUUsSUFOOEI7QUFNeEI7QUFFakJDLEVBQUFBLGFBUnlDLDJCQVF6QjtBQUNkLFdBQU87QUFDTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQURIO0FBRUxDLE1BQUFBLFlBQVksRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FGVDtBQUdMQyxNQUFBQSxTQUFTLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BSE47QUFJTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQUpKO0FBS0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FMRjtBQU1MQyxNQUFBQSxNQUFNLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BTkg7QUFPTEMsTUFBQUEsR0FBRyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQVBBO0FBUUxDLE1BQUFBLEdBQUcsRUFBRTtBQUFFLG1CQUFTO0FBQVg7QUFSQSxLQUFQO0FBVUQsR0FuQndDO0FBcUJ6Q0MsRUFBQUEsU0FyQnlDLHVCQXFCN0I7QUFDVixXQUFPLENBQ0w7QUFDRUMsTUFBQUEsR0FBRyxFQUFFO0FBRFAsS0FESyxDQUFQO0FBS0QsR0EzQndDO0FBNkJ6QztBQUNBQyxFQUFBQSxVQTlCeUMsNEJBOEJWO0FBQUEsUUFBbEJDLGNBQWtCLFFBQWxCQSxjQUFrQjtBQUM3QixXQUFPLENBQUMsS0FBRCxFQUFRLDJCQUFnQkEsY0FBaEIsRUFBZ0M7QUFBRSxtQkFBYTtBQUFmLEtBQWhDLENBQVIsQ0FBUDtBQUNELEdBaEN3QztBQWtDekNDLEVBQUFBLFdBbEN5Qyx5QkFrQzNCO0FBQUE7O0FBQ1osV0FBTyxrQ0FBc0IsVUFBQ0MsS0FBRDtBQUFBLDBCQUFXLGlDQUFDLHFCQUFELGtDQUF5QkEsS0FBekI7QUFBZ0NDLFFBQUFBLE9BQU8sRUFBRSxLQUFJLENBQUNBO0FBQTlDLFNBQVg7QUFBQSxLQUF0QixDQUFQO0FBQ0QsR0FwQ3dDO0FBc0N6Q0MsRUFBQUEsV0F0Q3lDLHlCQXNDM0I7QUFBQTs7QUFDWixXQUFPO0FBQ0xDLE1BQUFBLGtCQUFrQixFQUFFO0FBQUEsZUFBTSxpQkFBa0I7QUFBQSxjQUFmQyxRQUFlLFNBQWZBLFFBQWU7QUFDMUMsaUJBQU9BLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QjtBQUM1QkMsWUFBQUEsSUFBSSxFQUFFLE1BQUksQ0FBQ3pCO0FBRGlCLFdBQXZCLENBQVA7QUFHRCxTQUptQjtBQUFBO0FBRGYsS0FBUDtBQU9EO0FBOUN3QyxDQUFaLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IFJlYWN0Tm9kZVZpZXdSZW5kZXJlciB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbWFnZUNvbXBvbmVudCBmcm9tICcuL2NvbXBvbmVudCc7XG5cbi8vIC0tLS0gVGlwdGFwIEV4dGVuc2lvbiAtLS0tIC8vXG5cbmV4cG9ydCBjb25zdCBJbWFnZVVwbG9hZE5vZGUgPSBOb2RlLmNyZWF0ZSh7XG4gIG5hbWU6ICdpbWFnZVVwbG9hZE5vZGUnLFxuXG4gIGdyb3VwOiAnYmxvY2snLFxuICBhdG9tOiB0cnVlLCAvLyDinIUgcHJldmVudHMgY29udGVudCBob2xlc1xuICBzZWxlY3RhYmxlOiB0cnVlLCAvLyBvcHRpb25hbFxuICBkcmFnZ2FibGU6IHRydWUsIC8vIG9wdGlvbmFsXG5cbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9hZGVkOiB7IGRlZmF1bHQ6IGZhbHNlIH0sXG4gICAgICBkZWxldGVTdGF0dXM6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgYWxpZ25tZW50OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHBlcmNlbnQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgd2lkdGg6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgaGVpZ2h0OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHNyYzogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBhbHQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgIH07XG4gIH0sXG5cbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ2RpdltkYXRhLXR5cGU9XCJpbWFnZS11cGxvYWQtbm9kZVwiXScsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG5cbiAgLy8g4pyFIE5vIGAwYCBoZXJlIVxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbJ2ltZycsIG1lcmdlQXR0cmlidXRlcyhIVE1MQXR0cmlidXRlcywgeyAnZGF0YS10eXBlJzogJ2ltYWdlLXVwbG9hZC1ub2RlJyB9KV07XG4gIH0sXG5cbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxJbWFnZUNvbXBvbmVudCB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0SW1hZ2VVcGxvYWROb2RlOiAoKSA9PiAoeyBjb21tYW5kcyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBjb21tYW5kcy5pbnNlcnRDb250ZW50KHtcbiAgICAgICAgICB0eXBlOiB0aGlzLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/image.js"],"names":["ImageUploadNode","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","props","options","addCommands","setImageUploadNode","commands","insertContent","type"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA;AAEO,IAAMA,eAAe,GAAGC,WAAKC,MAAL,CAAY;AACzCC,EAAAA,IAAI,EAAE,iBADmC;AAGzCC,EAAAA,KAAK,EAAE,OAHkC;AAIzCC,EAAAA,IAAI,EAAE,IAJmC;AAI7B;AACZC,EAAAA,UAAU,EAAE,IAL6B;AAKvB;AAClBC,EAAAA,SAAS,EAAE,IAN8B;AAMxB;AAEjBC,EAAAA,aARyC,2BAQzB;AACd,WAAO;AACLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OADH;AAELC,MAAAA,YAAY,EAAE;AAAE,mBAAS;AAAX,OAFT;AAGLC,MAAAA,SAAS,EAAE;AAAE,mBAAS;AAAX,OAHN;AAILC,MAAAA,OAAO,EAAE;AAAE,mBAAS;AAAX,OAJJ;AAKLC,MAAAA,KAAK,EAAE;AAAE,mBAAS;AAAX,OALF;AAMLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OANH;AAOLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX,OAPA;AAQLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX;AARA,KAAP;AAUD,GAnBwC;AAqBzCC,EAAAA,SArByC,uBAqB7B;AACV,WAAO,CACL;AACEC,MAAAA,GAAG,EAAE;AADP,KADK,CAAP;AAKD,GA3BwC;AA6BzC;AACAC,EAAAA,UA9ByC,4BA8BV;AAAA,QAAlBC,cAAkB,QAAlBA,cAAkB;AAC7B,WAAO,CAAC,KAAD,EAAQ,2BAAgBA,cAAhB,EAAgC;AAAE,mBAAa;AAAf,KAAhC,CAAR,CAAP;AACD,GAhCwC;AAkCzCC,EAAAA,WAlCyC,yBAkC3B;AAAA;;AACZ,WAAO,kCAAsB,UAACC,KAAD;AAAA,0BAAW,iCAAC,qBAAD,kCAAyBA,KAAzB;AAAgCC,QAAAA,OAAO,EAAE,KAAI,CAACA;AAA9C,SAAX;AAAA,KAAtB,CAAP;AACD,GApCwC;AAsCzCC,EAAAA,WAtCyC,yBAsC3B;AAAA;;AACZ,WAAO;AACLC,MAAAA,kBAAkB,EAAE;AAAA,eAAM,iBAAkB;AAAA,cAAfC,QAAe,SAAfA,QAAe;AAC1C,iBAAOA,QAAQ,CAACC,aAAT,CAAuB;AAC5BC,YAAAA,IAAI,EAAE,MAAI,CAACzB;AADiB,WAAvB,CAAP;AAGD,SAJmB;AAAA;AADf,KAAP;AAOD;AA9CwC,CAAZ,CAAxB","sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport React, { useRef, useState, useCallback } from 'react';\nimport ImageComponent from './component';\n\n// ---- Tiptap Extension ---- //\n\nexport const ImageUploadNode = Node.create({\n name: 'imageUploadNode',\n\n group: 'block',\n atom: true, // ✅ prevents content holes\n selectable: true, // optional\n draggable: true, // optional\n\n addAttributes() {\n return {\n loaded: { default: false },\n deleteStatus: { default: null },\n alignment: { default: null },\n percent: { default: null },\n width: { default: null },\n height: { default: null },\n src: { default: null },\n alt: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"image-upload-node\"]',\n },\n ];\n },\n\n // ✅ No `0` here!\n renderHTML({ HTMLAttributes }) {\n return ['img', mergeAttributes(HTMLAttributes, { 'data-type': 'image-upload-node' })];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ImageComponent {...{ ...props, options: this.options }} />);\n },\n\n addCommands() {\n return {\n setImageUploadNode: () => ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"file":"image.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/index.js"],"names":["log","ALL_PLUGINS","DEFAULT_EXTENSIONS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","extraCSSRules","languageCharactersPlugins","languageCharacters","map","plugin","html"],"mappings":"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","sourcesContent":["import React from 'react';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_EXTENSIONS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.onDelete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', respAreaPlugin),\n addIf('css', cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"file":"index.js"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/math.js"],"names":["ensureTextAfterMathPluginKey","PluginKey","EnsureTextAfterMathPlugin","mathNodeName","Plugin","key","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","name","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","from","empty","prevChar","textBetween","posBefore","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodePos","nodeResolved","setSelection","NodeSelection","create","TextSelection","MathNode","Node","group","inline","atom","addAttributes","latex","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","textContent","innerHTML","addCommands","insertMath","editor","nodes","math","$from","sel","renderHTML","HTMLAttributes","dangerouslySetInnerHTML","__html","addNodeView","options","MathNodeView","updateAttributes","selected","showToolbar","setShowToolbar","toolbarRef","attrs","_toolbarOpened","handleClickOutside","current","contains","target","closest","document","addEventListener","removeEventListener","handleChange","newLatex","handleDone","commands","focus","display","cursor","margin","position","top","left","zIndex","background","boxShadow"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Extension, Node, mergeAttributes } from '@tiptap/core';\nimport { NodeViewWrapper, ReactRenderer, ReactNodeViewRenderer } from '@tiptap/react';\nimport { Plugin, PluginKey, NodeSelection, TextSelection } from 'prosemirror-state';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, mmlToLatex, renderMath } from '@pie-lib/math-rendering';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) return null;\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n if (prevChar === '\\u200b') {\n const tr = state.tr.delete(from - 2, from);\n dispatch(tr);\n return true; // handled\n }\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n // If the previous character is the zero-width space...\n if (prevChar === '\\u200b') {\n const posBefore = from - 1;\n const resolved = state.doc.resolve(posBefore - 1); // look just before the zwsp\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodePos = posBefore - maybeNode.nodeSize;\n const nodeResolved = state.doc.resolve(nodePos);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n }\n\n return false;\n },\n },\n});\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath: (latex = '') => ({ tr, editor, dispatch }) => {\n // 2) Now the editor.view.state reflects the insertion\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n return true;\n },\n // insertMath: (latex = '') => ({ commands }) => {\n // return commands.insertContent({\n // type: this.name,\n // attrs: { latex },\n // });\n // },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n\n const latex = node.attrs.latex || '';\n\n useEffect(() => {\n if (selected) {\n setShowToolbar(true);\n }\n }, [selected]);\n\n useEffect(() => {\n editor._toolbarOpened = !!showToolbar;\n }, [showToolbar]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n editor._toolbarOpened = false;\n\n const { selection, tr, doc } = editor.state;\n const sel = TextSelection.create(doc, selection.from + 1);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n editor.view.dispatch(tr);\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n className=\"math-node\"\n style={{\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n }}\n data-selected={selected}\n >\n <div onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} />\n </div>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar latex={latex} autoFocus onChange={handleChange} onDone={handleDone} keypadMode=\"basic\" />\n </div>\n )}\n </NodeViewWrapper>\n );\n};\n"],"file":"math.js"}