@pie-lib/editable-html-tip-tap 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/constants.js +2 -5
- package/package.json +1 -1
- package/src/constants.js +0 -2
- package/lib/__tests__/editor.test.js +0 -470
- package/lib/__tests__/serialization.test.js +0 -246
- package/lib/block-tags.js +0 -25
- package/lib/components/CharacterPicker.js.map +0 -1
- package/lib/components/EditableHtml.js.map +0 -1
- package/lib/components/MenuBar.js.map +0 -1
- package/lib/components/TiptapContainer.js.map +0 -1
- package/lib/components/buttons/done-button.js +0 -53
- package/lib/components/characters/characterUtils.js.map +0 -1
- package/lib/components/characters/custom-popper.js.map +0 -1
- package/lib/components/common/done-button.js.map +0 -1
- package/lib/components/common/toolbar-buttons.js.map +0 -1
- package/lib/components/icons/CssIcon.js.map +0 -1
- package/lib/components/icons/RespArea.js.map +0 -1
- package/lib/components/icons/TableIcons.js.map +0 -1
- package/lib/components/icons/TextAlign.js.map +0 -1
- package/lib/components/icons/index.js +0 -194
- package/lib/components/image/AltDialog.js.map +0 -1
- package/lib/components/image/ImageToolbar.js.map +0 -1
- package/lib/components/image/InsertImageHandler.js.map +0 -1
- package/lib/components/image/alt-dialog.js +0 -2
- package/lib/components/media/MediaDialog.js.map +0 -1
- package/lib/components/media/MediaToolbar.js.map +0 -1
- package/lib/components/media/MediaWrapper.js.map +0 -1
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +0 -1
- package/lib/components/respArea/DragInTheBlank/choice.js.map +0 -1
- package/lib/components/respArea/DragInTheBlank.js +0 -94
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +0 -1
- package/lib/components/respArea/InlineDropdown.js.map +0 -1
- package/lib/components/respArea/ToolbarIcon.js.map +0 -1
- package/lib/components/respArea/choice.js +0 -2
- package/lib/constants.js.map +0 -1
- package/lib/editor.js +0 -1356
- package/lib/extensions/MediaView.js +0 -112
- package/lib/extensions/characters.js +0 -65
- package/lib/extensions/component.js.map +0 -1
- package/lib/extensions/css.js.map +0 -1
- package/lib/extensions/custom-toolbar-wrapper.js.map +0 -1
- package/lib/extensions/extended-table.js.map +0 -1
- package/lib/extensions/image.js.map +0 -1
- package/lib/extensions/index.js.map +0 -1
- package/lib/extensions/math.js.map +0 -1
- package/lib/extensions/media.js.map +0 -1
- package/lib/extensions/responseArea.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/old-index.js +0 -269
- package/lib/parse-html.js +0 -16
- package/lib/plugins/characters/custom-popper.js +0 -73
- package/lib/plugins/characters/index.js +0 -305
- package/lib/plugins/characters/utils.js +0 -381
- package/lib/plugins/css/icons/index.js +0 -37
- package/lib/plugins/css/index.js +0 -390
- package/lib/plugins/customPlugin/index.js +0 -114
- package/lib/plugins/html/icons/index.js +0 -38
- package/lib/plugins/html/index.js +0 -81
- package/lib/plugins/image/__tests__/component.test.js +0 -51
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -56
- package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -26
- package/lib/plugins/image/__tests__/index.test.js +0 -98
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -125
- package/lib/plugins/image/__tests__/mock-change.js +0 -25
- package/lib/plugins/image/alt-dialog.js +0 -129
- package/lib/plugins/image/component.js +0 -419
- package/lib/plugins/image/image-toolbar.js +0 -177
- package/lib/plugins/image/index.js +0 -263
- package/lib/plugins/image/insert-image-handler.js +0 -117
- package/lib/plugins/index.js +0 -341
- package/lib/plugins/list/__tests__/index.test.js +0 -79
- package/lib/plugins/list/index.js +0 -334
- package/lib/plugins/math/__tests__/index.test.js +0 -300
- package/lib/plugins/math/index.js +0 -454
- package/lib/plugins/media/__tests__/index.test.js +0 -71
- package/lib/plugins/media/index.js +0 -387
- package/lib/plugins/media/media-dialog.js +0 -709
- package/lib/plugins/media/media-toolbar.js +0 -101
- package/lib/plugins/media/media-wrapper.js +0 -93
- package/lib/plugins/rendering/index.js +0 -46
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -289
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -94
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -120
- package/lib/plugins/respArea/icons/index.js +0 -95
- package/lib/plugins/respArea/index.js +0 -341
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -126
- package/lib/plugins/respArea/math-templated/index.js +0 -130
- package/lib/plugins/respArea/utils.js +0 -125
- package/lib/plugins/table/CustomTablePlugin.js +0 -133
- package/lib/plugins/table/__tests__/index.test.js +0 -442
- package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -54
- package/lib/plugins/table/icons/index.js +0 -69
- package/lib/plugins/table/index.js +0 -483
- package/lib/plugins/table/table-toolbar.js +0 -187
- package/lib/plugins/textAlign/icons/index.js +0 -194
- package/lib/plugins/textAlign/index.js +0 -34
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -128
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -51
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -54
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -120
- package/lib/plugins/toolbar/default-toolbar.js +0 -229
- package/lib/plugins/toolbar/done-button.js +0 -53
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -286
- package/lib/plugins/toolbar/index.js +0 -34
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -194
- package/lib/plugins/toolbar/toolbar.js +0 -376
- package/lib/plugins/utils.js +0 -62
- package/lib/serialization.js +0 -677
- package/lib/shared/alert-dialog.js +0 -75
- package/lib/styles/editorContainerStyles.js.map +0 -1
- package/lib/theme.js.map +0 -1
- package/lib/utils/size.js.map +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
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"] = MediaNodeView;
|
|
9
|
-
exports.insertDialog = void 0;
|
|
10
|
-
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
|
|
13
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
|
-
|
|
15
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
16
|
-
|
|
17
|
-
var _react = _interopRequireDefault(require("react"));
|
|
18
|
-
|
|
19
|
-
var _react2 = require("@tiptap/react");
|
|
20
|
-
|
|
21
|
-
var _mediaToolbar = _interopRequireDefault(require("../plugins/media/media-toolbar"));
|
|
22
|
-
|
|
23
|
-
var _mediaDialog = require("../plugins/media/media-dialog");
|
|
24
|
-
|
|
25
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
26
|
-
|
|
27
|
-
var _excluded = ["type", "callback", "opts"];
|
|
28
|
-
|
|
29
|
-
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; }
|
|
30
|
-
|
|
31
|
-
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; }
|
|
32
|
-
|
|
33
|
-
var removeDialogs = function removeDialogs() {
|
|
34
|
-
var prevDialogs = document.querySelectorAll('.insert-media-dialog');
|
|
35
|
-
prevDialogs.forEach(function (s) {
|
|
36
|
-
return s.remove();
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
var insertDialog = function insertDialog(props) {
|
|
41
|
-
var newEl = document.createElement('div');
|
|
42
|
-
var type = props.type,
|
|
43
|
-
callback = props.callback,
|
|
44
|
-
opts = props.opts,
|
|
45
|
-
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
46
|
-
var initialBodyOverflow = document.body.style.overflow;
|
|
47
|
-
removeDialogs();
|
|
48
|
-
newEl.className = 'insert-media-dialog';
|
|
49
|
-
document.body.style.overflow = 'hidden';
|
|
50
|
-
|
|
51
|
-
var handleClose = function handleClose(val, data) {
|
|
52
|
-
callback(val, data);
|
|
53
|
-
newEl.remove();
|
|
54
|
-
document.body.style.overflow = initialBodyOverflow;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
var el = /*#__PURE__*/_react["default"].createElement(_mediaDialog.MediaDialog, (0, _extends2["default"])({}, rest, {
|
|
58
|
-
uploadSoundSupport: opts.uploadSoundSupport,
|
|
59
|
-
type: type,
|
|
60
|
-
disablePortal: true,
|
|
61
|
-
open: true,
|
|
62
|
-
handleClose: handleClose
|
|
63
|
-
}));
|
|
64
|
-
|
|
65
|
-
_reactDom["default"].render(el, newEl);
|
|
66
|
-
|
|
67
|
-
document.body.appendChild(newEl);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
exports.insertDialog = insertDialog;
|
|
71
|
-
|
|
72
|
-
function MediaNodeView(_ref) {
|
|
73
|
-
var node = _ref.node,
|
|
74
|
-
updateAttributes = _ref.updateAttributes,
|
|
75
|
-
deleteNode = _ref.deleteNode;
|
|
76
|
-
var _node$attrs = node.attrs,
|
|
77
|
-
type = _node$attrs.type,
|
|
78
|
-
src = _node$attrs.src,
|
|
79
|
-
width = _node$attrs.width,
|
|
80
|
-
height = _node$attrs.height,
|
|
81
|
-
tag = _node$attrs.tag;
|
|
82
|
-
|
|
83
|
-
var handleEdit = function handleEdit() {
|
|
84
|
-
insertDialog(_objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
85
|
-
edit: true,
|
|
86
|
-
callback: function callback(val, data) {
|
|
87
|
-
if (val) updateAttributes(data);
|
|
88
|
-
}
|
|
89
|
-
}));
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
|
|
93
|
-
"data-type": type,
|
|
94
|
-
style: {
|
|
95
|
-
width: width,
|
|
96
|
-
height: height
|
|
97
|
-
}
|
|
98
|
-
}, tag === 'audio' ? /*#__PURE__*/_react["default"].createElement("audio", {
|
|
99
|
-
controls: true,
|
|
100
|
-
controlsList: "nodownload"
|
|
101
|
-
}, /*#__PURE__*/_react["default"].createElement("source", {
|
|
102
|
-
src: src
|
|
103
|
-
})) : /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
104
|
-
src: src,
|
|
105
|
-
allowFullScreen: true,
|
|
106
|
-
frameBorder: "0"
|
|
107
|
-
}), /*#__PURE__*/_react["default"].createElement(_mediaToolbar["default"], {
|
|
108
|
-
onEdit: handleEdit,
|
|
109
|
-
onRemove: deleteNode
|
|
110
|
-
}));
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL01lZGlhVmlldy5qcyJdLCJuYW1lcyI6WyJyZW1vdmVEaWFsb2dzIiwicHJldkRpYWxvZ3MiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicyIsInJlbW92ZSIsImluc2VydERpYWxvZyIsInByb3BzIiwibmV3RWwiLCJjcmVhdGVFbGVtZW50IiwidHlwZSIsImNhbGxiYWNrIiwib3B0cyIsInJlc3QiLCJpbml0aWFsQm9keU92ZXJmbG93IiwiYm9keSIsInN0eWxlIiwib3ZlcmZsb3ciLCJjbGFzc05hbWUiLCJoYW5kbGVDbG9zZSIsInZhbCIsImRhdGEiLCJlbCIsInVwbG9hZFNvdW5kU3VwcG9ydCIsIlJlYWN0RE9NIiwicmVuZGVyIiwiYXBwZW5kQ2hpbGQiLCJNZWRpYU5vZGVWaWV3Iiwibm9kZSIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJkZWxldGVOb2RlIiwiYXR0cnMiLCJzcmMiLCJ3aWR0aCIsImhlaWdodCIsInRhZyIsImhhbmRsZUVkaXQiLCJlZGl0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0FBQzFCLE1BQU1DLFdBQVcsR0FBR0MsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixzQkFBMUIsQ0FBcEI7QUFFQUYsRUFBQUEsV0FBVyxDQUFDRyxPQUFaLENBQW9CLFVBQUNDLENBQUQ7QUFBQSxXQUFPQSxDQUFDLENBQUNDLE1BQUYsRUFBUDtBQUFBLEdBQXBCO0FBQ0QsQ0FKRDs7QUFNTyxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDQyxLQUFELEVBQVc7QUFDckMsTUFBTUMsS0FBSyxHQUFHUCxRQUFRLENBQUNRLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBZDtBQUNBLE1BQVFDLElBQVIsR0FBMENILEtBQTFDLENBQVFHLElBQVI7QUFB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XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTm9kZVZpZXdXcmFwcGVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgTWVkaWFUb29sYmFyIGZyb20gJy4uL3BsdWdpbnMvbWVkaWEvbWVkaWEtdG9vbGJhcic7XG5pbXBvcnQgeyBNZWRpYURpYWxvZyB9IGZyb20gXCIuLi9wbHVnaW5zL21lZGlhL21lZGlhLWRpYWxvZ1wiO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcblxuY29uc3QgcmVtb3ZlRGlhbG9ncyA9ICgpID0+IHtcbiAgY29uc3QgcHJldkRpYWxvZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaW5zZXJ0LW1lZGlhLWRpYWxvZycpO1xuXG4gIHByZXZEaWFsb2dzLmZvckVhY2goKHMpID0+IHMucmVtb3ZlKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydERpYWxvZyA9IChwcm9wcykgPT4ge1xuICBjb25zdCBuZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBjb25zdCB7IHR5cGUsIGNhbGxiYWNrLCBvcHRzLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgY29uc3QgaW5pdGlhbEJvZHlPdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG5cbiAgcmVtb3ZlRGlhbG9ncygpO1xuXG4gIG5ld0VsLmNsYXNzTmFtZSA9ICdpbnNlcnQtbWVkaWEtZGlhbG9nJztcbiAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKHZhbCwgZGF0YSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbCwgZGF0YSk7XG4gICAgbmV3RWwucmVtb3ZlKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IGluaXRpYWxCb2R5T3ZlcmZsb3c7XG4gIH07XG5cbiAgY29uc3QgZWwgPSAoXG4gICAgPE1lZGlhRGlhbG9nXG4gICAgICB7Li4ucmVzdH1cbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17b3B0cy51cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgZGlzYWJsZVBvcnRhbD17dHJ1ZX1cbiAgICAgIG9wZW49e3RydWV9XG4gICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgLz5cbiAgKTtcblxuICBSZWFjdERPTS5yZW5kZXIoZWwsIG5ld0VsKTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5ld0VsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1lZGlhTm9kZVZpZXcoeyBub2RlLCB1cGRhdGVBdHRyaWJ1dGVzLCBkZWxldGVOb2RlIH0pIHtcbiAgY29uc3QgeyB0eXBlLCBzcmMsIHdpZHRoLCBoZWlnaHQsIHRhZyB9ID0gbm9kZS5hdHRycztcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKCkgPT4ge1xuICAgIGluc2VydERpYWxvZyh7XG4gICAgICAuLi5ub2RlLmF0dHJzLFxuICAgICAgZWRpdDogdHJ1ZSxcbiAgICAgIGNhbGxiYWNrOiAodmFsLCBkYXRhKSA9PiB7XG4gICAgICAgIGlmICh2YWwpIHVwZGF0ZUF0dHJpYnV0ZXMoZGF0YSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHN0eWxlPXt7IHdpZHRoLCBoZWlnaHQgfX0+XG4gICAgICB7dGFnID09PSAnYXVkaW8nID8gKFxuICAgICAgICA8YXVkaW8gY29udHJvbHMgY29udHJvbHNMaXN0PVwibm9kb3dubG9hZFwiPlxuICAgICAgICAgIDxzb3VyY2Ugc3JjPXtzcmN9IC8+XG4gICAgICAgIDwvYXVkaW8+XG4gICAgICApIDogKFxuICAgICAgICA8aWZyYW1lIHNyYz17c3JjfSBhbGxvd0Z1bGxTY3JlZW4gZnJhbWVCb3JkZXI9XCIwXCIgLz5cbiAgICAgICl9XG5cbiAgICAgIDxNZWRpYVRvb2xiYXIgb25FZGl0PXtoYW5kbGVFZGl0fSBvblJlbW92ZT17ZGVsZXRlTm9kZX0gLz5cbiAgICA8L05vZGVWaWV3V3JhcHBlcj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.ExplicitConstructedResponseNode = void 0;
|
|
9
|
-
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var _react2 = require("@tiptap/react");
|
|
13
|
-
|
|
14
|
-
var _explicitConstructedResponse = _interopRequireDefault(require("../plugins/respArea/explicit-constructed-response"));
|
|
15
|
-
|
|
16
|
-
var _dragInTheBlank = _interopRequireDefault(require("../plugins/respArea/drag-in-the-blank"));
|
|
17
|
-
|
|
18
|
-
var _inlineDropdown = _interopRequireDefault(require("../plugins/respArea/inline-dropdown"));
|
|
19
|
-
|
|
20
|
-
// InlineNodes.js
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* ExplicitConstructedResponse Node
|
|
24
|
-
*/
|
|
25
|
-
var ExplicitConstructedResponseNode = _react2.Node.create({
|
|
26
|
-
name: 'explicit_constructed_response',
|
|
27
|
-
group: 'inline',
|
|
28
|
-
inline: true,
|
|
29
|
-
atom: true,
|
|
30
|
-
addAttributes: function addAttributes() {
|
|
31
|
-
return {
|
|
32
|
-
index: {
|
|
33
|
-
"default": null
|
|
34
|
-
},
|
|
35
|
-
value: {
|
|
36
|
-
"default": ''
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
},
|
|
40
|
-
parseHTML: function parseHTML() {
|
|
41
|
-
return [{
|
|
42
|
-
tag: 'span[data-type="explicit_constructed_response"]',
|
|
43
|
-
getAttrs: function getAttrs(el) {
|
|
44
|
-
return {
|
|
45
|
-
index: el.dataset.index,
|
|
46
|
-
value: el.dataset.value
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}];
|
|
50
|
-
},
|
|
51
|
-
renderHTML: function renderHTML(_ref) {
|
|
52
|
-
var HTMLAttributes = _ref.HTMLAttributes;
|
|
53
|
-
return ['span', {
|
|
54
|
-
'data-type': 'explicit_constructed_response',
|
|
55
|
-
'data-index': HTMLAttributes.index,
|
|
56
|
-
'data-value': HTMLAttributes.value
|
|
57
|
-
}];
|
|
58
|
-
},
|
|
59
|
-
addNodeView: function addNodeView() {
|
|
60
|
-
return (0, _react2.ReactNodeViewRenderer)(_explicitConstructedResponse["default"]);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
exports.ExplicitConstructedResponseNode = ExplicitConstructedResponseNode;
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NoYXJhY3RlcnMuanMiXSwibmFtZXMiOlsiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSIsIk5vZGUiLCJjcmVhdGUiLCJuYW1lIiwiZ3JvdXAiLCJpbmxpbmUiLCJhdG9tIiwiYWRkQXR0cmlidXRlcyIsImluZGV4IiwidmFsdWUiLCJwYXJzZUhUTUwiLCJ0YWciLCJnZXRBdHRycyIsImVsIiwiZGF0YXNldCIsInJlbmRlckhUTUwiLCJIVE1MQXR0cmlidXRlcyIsImFkZE5vZGVWaWV3IiwiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFMQTs7QUFPQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSwrQkFBK0IsR0FBR0MsYUFBS0MsTUFBTCxDQUFZO0FBQ3pEQyxFQUFBQSxJQUFJLEVBQUUsK0JBRG1EO0FBRXpEQyxFQUFBQSxLQUFLLEVBQUUsUUFGa0Q7QUFHekRDLEVBQUFBLE1BQU0sRUFBRSxJQUhpRDtBQUl6REMsRUFBQUEsSUFBSSxFQUFFLElBSm1EO0FBS3pEQyxFQUFBQSxhQUx5RCwyQkFLekM7QUFDZCxXQUFPO0FBQ0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FERjtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRSxtQkFBUztBQUFYO0FBRkYsS0FBUDtBQUlELEdBVndEO0FBV3pEQyxFQUFBQSxTQVh5RCx1QkFXN0M7QUFDVixXQUFPLENBQ0w7QUFDRUMsTUFBQUEsR0FBRyxFQUFFLGlEQURQO0FBRUVDLE1BQUFBLFFBQVEsRUFBRSxrQkFBQ0MsRUFBRDtBQUFBLGVBQVM7QUFDakJMLFVBQUFBLEtBQUssRUFBRUssRUFBRSxDQUFDQyxPQUFILENBQVdOLEtBREQ7QUFFakJDLFVBQUFBLEtBQUssRUFBRUksRUFBRSxDQUFDQyxPQUFILENBQVdMO0FBRkQsU0FBVDtBQUFBO0FBRlosS0FESyxDQUFQO0FBU0QsR0FyQndEO0FBc0J6RE0sRUFBQUEsVUF0QnlELDRCQXNCMUI7QUFBQSxRQUFsQkMsY0FBa0IsUUFBbEJBLGNBQWtCO0FBQzdCLFdBQU8sQ0FDTCxNQURLLEVBRUw7QUFDRSxtQkFBYSwrQkFEZjtBQUVFLG9CQUFjQSxjQUFjLENBQUNSLEtBRi9CO0FBR0Usb0JBQWNRLGNBQWMsQ0FBQ1A7QUFIL0IsS0FGSyxDQUFQO0FBUUQsR0EvQndEO0FBZ0N6RFEsRUFBQUEsV0FoQ3lELHlCQWdDM0M7QUFDWixXQUFPLG1DQUFzQkMsdUNBQXRCLENBQVA7QUFDRDtBQWxDd0QsQ0FBWixDQUF4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIElubGluZU5vZGVzLmpzXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTm9kZSwgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIGZyb20gJy4uL3BsdWdpbnMvcmVzcEFyZWEvZXhwbGljaXQtY29uc3RydWN0ZWQtcmVzcG9uc2UnO1xuaW1wb3J0IERyYWdJblRoZUJsYW5rIGZyb20gJy4uL3BsdWdpbnMvcmVzcEFyZWEvZHJhZy1pbi10aGUtYmxhbmsnO1xuaW1wb3J0IElubGluZURyb3Bkb3duIGZyb20gJy4uL3BsdWdpbnMvcmVzcEFyZWEvaW5saW5lLWRyb3Bkb3duJztcblxuLyoqXG4gKiBFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2UgTm9kZVxuICovXG5leHBvcnQgY29uc3QgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyxcbiAgZ3JvdXA6ICdpbmxpbmUnLFxuICBpbmxpbmU6IHRydWUsXG4gIGF0b206IHRydWUsXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHZhbHVlOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgfTtcbiAgfSxcbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIl0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBlbC5kYXRhc2V0LnZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICAnZGF0YS10eXBlJzogJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyxcbiAgICAgICAgJ2RhdGEtaW5kZXgnOiBIVE1MQXR0cmlidXRlcy5pbmRleCxcbiAgICAgICAgJ2RhdGEtdmFsdWUnOiBIVE1MQXR0cmlidXRlcy52YWx1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcihFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2UpO1xuICB9LFxufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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":"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","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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 { ReactNodeViewRenderer } from '@tiptap/react';\nimport React 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"}
|
|
@@ -1 +0,0 @@
|
|
|
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":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,gCAAN,CAAZ;AACO,IAAMC,WAAW,GAAG,CACzB,MADyB,EAEzB;AACA,MAHyB,EAIzB,eAJyB,EAKzB,QALyB,EAMzB,WANyB,EAOzB,eAPyB,EAQzB,eARyB,EASzB,eATyB,EAUzB,OAVyB,EAWzB,MAXyB,EAYzB,oBAZyB,EAazB,YAbyB,EAczB,YAdyB,EAezB,IAfyB,EAgBzB,OAhByB,EAiBzB,OAjByB,EAkBzB,OAlByB,EAmBzB,cAnByB,EAoBzB,MApByB,EAqBzB,MArByB,EAsBzB,aAtByB,EAuBzB,WAvByB,CAApB;;AA0BA,IAAMC,kBAAkB,GAAGD,WAAW,CAACE,MAAZ,CAAmB,UAACC,IAAD;AAAA,SAAU,CAAC,CAAC,cAAD,EAAiB,IAAjB,EAAuB,YAAvB,EAAqCC,QAArC,CAA8CD,IAA9C,CAAX;AAAA,CAAnB,CAA3B;;;AAEA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAACC,gBAAD,EAAmBC,gBAAnB,EAAqCC,IAArC,EAA8C;AAC3ET,EAAAA,GAAG,CAAC,uBAAD,EAA0BS,IAA1B,CAAH;AAEAF,EAAAA,gBAAgB,GAAGA,gBAAgB,IAAIL,kBAAvC;;AAEA,MAAMQ,KAAK,GAAG,SAARA,KAAQ,CAACC,GAAD;AAAA,QAAMC,SAAN,uEAAkB,IAAlB;AAAA,WAA2BL,gBAAgB,CAACF,QAAjB,CAA0BM,GAA1B,KAAkCC,SAAlC,IAA+CD,GAA1E;AAAA,GAAd;;AAEA,MAAME,WAAW,GAAGJ,IAAI,CAACK,KAAL,IAAcL,IAAI,CAACK,KAAL,CAAWC,QAA7C;AACA,MAAMC,UAAU,GAAGP,IAAI,CAACQ,IAAxB;AACA,MAAMC,cAAc,GAAGT,IAAI,CAACU,YAAL,IAAqBV,IAAI,CAACU,YAAL,CAAkBC,IAA9D;AACA,MAAMC,SAAS,GAAG,CAAC,yBAAQZ,IAAI,CAACa,aAAb,CAAnB;AAEA,MAAMC,yBAAyB,GAAG,CAAAd,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEe,kBAAN,KAA4B,EAA9D;AAEA,SAAO,0BACLd,KAAK,CAAC,OAAD,CADA,EAELA,KAAK,CAAC,MAAD,CAFA,EAGL;AACAA,EAAAA,KAAK,CAAC,QAAD,CAJA,EAKLA,KAAK,CAAC,eAAD,CALA,EAMLA,KAAK,CAAC,WAAD,CANA,EAOL;AACAA,EAAAA,KAAK,CAAC,aAAD,CARA,EASL;AACAA,EAAAA,KAAK,CAAC,WAAD,CAVA,EAWLA,KAAK,CAAC,OAAD,EAAUG,WAAV,CAXA,EAYLH,KAAK,CAAC,OAAD,CAZA,EAaLA,KAAK,CAAC,OAAD,CAbA,EAcLA,KAAK,CAAC,MAAD,EAASM,UAAT,CAdA,6CAeFO,yBAAyB,CAACE,GAA1B,CAA8B,UAACC,MAAD;AAAA,WAAYhB,KAAK,CAAC,oBAAD,EAAuBgB,MAAvB,CAAjB;AAAA,GAA9B,CAfE,IAgBLhB,KAAK,CAAC,YAAD,CAhBA,EAiBLA,KAAK,CAAC,YAAD,CAjBA,EAkBLA,KAAK,CAAC,IAAD,CAlBA,EAmBLA,KAAK,CAAC,eAAD,CAnBA,EAoBLA,KAAK,CAAC,eAAD,CApBA,EAqBLA,KAAK,CAAC,MAAD,CArBA,EAsBLA,KAAK,CAAC,MAAD,CAtBA,EAuBLA,KAAK,CAAC,cAAD,EAAiBQ,cAAjB,CAvBA,EAwBLR,KAAK,CAAC,KAAD,EAAQW,SAAR,CAxBA,EAyBLX,KAAK,CAAC,MAAD,EAAS,CAAC,CAACD,IAAI,CAACkB,IAAhB,CAzBA,GAAP;AA2BD,CAzCM","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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/media.js"],"names":["Media","Node","create","name","group","inline","atom","addAttributes","type","src","width","height","title","starts","ends","editing","tag","url","parseHTML","getAttrs","el","getAttribute","dataset","querySelector","renderHTML","HTMLAttributes","controls","controlsList","frameborder","allow","allowfullscreen","addCommands","insertMedia","attrs","commands","insertContent","updateMedia","updateAttributes","addNodeView","props","options","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","newEl","createElement","callback","rest","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","uploadSoundSupport","ReactDOM","render","appendChild","MediaNodeView","editor","node","deleteNode","handleEdit","edit","chain","focus","run"],"mappings":"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","sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { mergeAttributes, Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport MediaDialog from '../components/media/MediaDialog';\nimport MediaToolbar from '../components/media/MediaToolbar';\n\nexport const Media = Node.create({\n name: 'media',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n type: { default: 'video' },\n src: { default: null },\n width: { default: null },\n height: { default: null },\n title: { default: null },\n starts: { default: null },\n ends: { default: null },\n editing: { default: false },\n tag: { default: 'iframe' }, // 'iframe' or 'audio'\n url: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[data-type=\"video\"]',\n getAttrs: (el) => ({\n type: 'video',\n tag: 'iframe',\n src: el.getAttribute('src'),\n width: el.getAttribute('width'),\n height: el.getAttribute('height'),\n title: el.dataset.title,\n starts: el.dataset.starts,\n ends: el.dataset.ends,\n url: el.dataset.url,\n }),\n },\n {\n tag: 'audio',\n getAttrs: (el) => ({\n type: 'audio',\n tag: 'audio',\n src: el.querySelector('source')?.getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n const { tag, src, width, height } = HTMLAttributes;\n\n if (tag === 'audio') {\n return ['audio', { controls: 'controls', controlsList: 'nodownload' }, ['source', { src, type: 'audio/mp3' }]];\n }\n\n return [\n 'iframe',\n mergeAttributes(\n {\n 'data-type': 'video',\n frameborder: '0',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n allowfullscreen: '',\n src,\n },\n width ? { width } : {},\n height ? { height } : {},\n ),\n ];\n },\n\n addCommands() {\n return {\n insertMedia: (attrs) => ({ commands }) => {\n return commands.insertContent({ type: this.name, attrs });\n },\n updateMedia: (attrs) => ({ commands }) => {\n return commands.updateAttributes(this.name, attrs);\n },\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MediaNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nexport const insertDialog = (props) => {\n const newEl = document.createElement('div');\n const { type, callback, options, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={options.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nexport default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }) {\n const { type, src, width, height, tag } = node.attrs;\n\n const handleEdit = () => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n }\n\n editor\n .chain()\n .focus()\n .run();\n },\n });\n };\n\n useEffect(() => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n } else {\n deleteNode();\n }\n\n editor\n .chain()\n .focus()\n .run();\n },\n });\n }, []);\n\n return (\n <NodeViewWrapper data-type={type} style={{ width, height }}>\n {tag === 'audio' ? (\n <audio controls controlsList=\"nodownload\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n ) : (\n <iframe src={src} allowFullScreen frameBorder=\"0\" />\n )}\n\n <MediaToolbar onEdit={handleEdit} onRemove={deleteNode} />\n </NodeViewWrapper>\n );\n}\n"],"file":"media.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/responseArea.js"],"names":["ResponseAreaExtension","Extension","create","name","addCommands","insertResponseArea","type","tr","state","dispatch","schema","selection","position","$from","pos","RESP_MAP","node","nodes","index","id","value","insert","ExplicitConstructedResponseNode","Node","group","inline","atom","addAttributes","parseHTML","tag","getAttrs","el","dataset","renderHTML","HTMLAttributes","addNodeView","props","options","MathTemplatedNode","DragInTheBlankNode","inTable","InlineDropdownNode"],"mappings":"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","sourcesContent":["// InlineNodes.js\nimport React from 'react';\nimport { Node, ReactNodeViewRenderer, ReactRenderer } from '@tiptap/react';\nimport ExplicitConstructedResponse from '../components/respArea/ExplicitConstructedResponse';\nimport DragInTheBlank from '../components/respArea/DragInTheBlank/DragInTheBlank';\nimport InlineDropdown from '../components/respArea/InlineDropdown';\nimport { Extension } from '@tiptap/core';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport tippy from 'tippy.js';\n\nexport const ResponseAreaExtension = Extension.create({\n name: 'responseArea',\n addCommands() {\n return {\n insertResponseArea: (type) => ({ tr, state, dispatch }) => {\n const { schema, selection } = state;\n const position = selection.$from.pos;\n const RESP_MAP = {\n 'drag-in-the-blank': 'drag_in_the_blank',\n 'explicit-constructed-response': 'explicit_constructed_response',\n 'inline-dropdown': 'inline_dropdown',\n };\n\n const node = schema.nodes[RESP_MAP[type]].create({\n index: '1',\n id: '1',\n value: '',\n });\n\n if (dispatch) {\n tr.insert(position, node);\n dispatch(tr);\n }\n\n return true;\n },\n };\n },\n});\n\n/**\n * ExplicitConstructedResponse Node\n */\nexport const ExplicitConstructedResponseNode = Node.create({\n name: 'explicit_constructed_response',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"explicit_constructed_response\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'explicit_constructed_response',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ExplicitConstructedResponse {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * MathTemplated Node\n */\nexport const MathTemplatedNode = Node.create({\n name: 'math_templated',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"math_templated\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'math_templated',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer(() => <div></div>);\n },\n});\n\n/**\n * DragInTheBlank Node\n */\nexport const DragInTheBlankNode = Node.create({\n name: 'drag_in_the_blank',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n id: { default: null },\n value: { default: '' },\n inTable: { default: null },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"drag_in_the_blank\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'drag_in_the_blank',\n 'data-index': HTMLAttributes.index,\n 'data-id': HTMLAttributes.id,\n 'data-value': HTMLAttributes.value,\n 'data-in-table': HTMLAttributes.inTable,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <DragInTheBlank {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * InlineDropdown Node\n */\nexport const InlineDropdownNode = Node.create({\n name: 'inline_dropdown',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"inline_dropdown\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'inline_dropdown',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <InlineDropdown {...{ ...props, options: this.options }} />);\n },\n});\n"],"file":"responseArea.js"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.jsx"],"names":["StyledEditor"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;eAGeA,wB","sourcesContent":["import StyledEditor, { EditableHtml } from './components/EditableHtml';\nimport { ALL_PLUGINS } from './extensions';\n\nexport { EditableHtml, ALL_PLUGINS };\nexport default StyledEditor;\n"],"file":"index.js"}
|