@pie-lib/editable-html-tip-tap 2.1.2-next.30 → 2.1.2-next.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +32 -0
- package/CHANGELOG.md +2532 -0
- package/LICENSE.md +5 -0
- package/lib/components/CharacterPicker.js +201 -0
- package/lib/components/CharacterPicker.js.map +1 -0
- package/lib/components/EditableHtml.js +376 -0
- package/lib/components/EditableHtml.js.map +1 -0
- package/lib/components/MenuBar.js +696 -0
- package/lib/components/MenuBar.js.map +1 -0
- package/lib/components/TiptapContainer.js +234 -0
- package/lib/components/TiptapContainer.js.map +1 -0
- package/lib/components/characters/characterUtils.js +378 -0
- package/lib/components/characters/characterUtils.js.map +1 -0
- package/lib/components/characters/custom-popper.js +44 -0
- package/lib/components/characters/custom-popper.js.map +1 -0
- package/lib/components/common/done-button.js +34 -0
- package/lib/components/common/done-button.js.map +1 -0
- package/lib/components/common/toolbar-buttons.js +144 -0
- package/lib/components/common/toolbar-buttons.js.map +1 -0
- package/lib/components/icons/CssIcon.js +25 -0
- package/lib/components/icons/CssIcon.js.map +1 -0
- package/lib/components/icons/RespArea.js +72 -0
- package/lib/components/icons/RespArea.js.map +1 -0
- package/lib/components/icons/TableIcons.js +53 -0
- package/lib/components/icons/TableIcons.js.map +1 -0
- package/lib/components/icons/TextAlign.js +157 -0
- package/lib/components/icons/TextAlign.js.map +1 -0
- package/lib/components/image/AltDialog.js +98 -0
- package/lib/components/image/AltDialog.js.map +1 -0
- package/lib/components/image/ImageToolbar.js +137 -0
- package/lib/components/image/ImageToolbar.js.map +1 -0
- package/lib/components/image/InsertImageHandler.js +135 -0
- package/lib/components/image/InsertImageHandler.js.map +1 -0
- package/lib/components/media/MediaDialog.js +594 -0
- package/lib/components/media/MediaDialog.js.map +1 -0
- package/lib/components/media/MediaToolbar.js +74 -0
- package/lib/components/media/MediaToolbar.js.map +1 -0
- package/lib/components/media/MediaWrapper.js +67 -0
- package/lib/components/media/MediaWrapper.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +84 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/choice.js +250 -0
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js +136 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
- package/lib/components/respArea/InlineDropdown.js +209 -0
- package/lib/components/respArea/InlineDropdown.js.map +1 -0
- package/lib/components/respArea/MathTemplated.js +130 -0
- package/lib/components/respArea/MathTemplated.js.map +1 -0
- package/lib/components/respArea/ToolbarIcon.js +81 -0
- package/lib/components/respArea/ToolbarIcon.js.map +1 -0
- package/lib/components/respArea/inlineDropdownUtils.js +67 -0
- package/lib/components/respArea/inlineDropdownUtils.js.map +1 -0
- package/lib/constants.js +11 -0
- package/lib/constants.js.map +1 -0
- package/lib/extensions/css.js +217 -0
- package/lib/extensions/css.js.map +1 -0
- package/lib/extensions/custom-toolbar-wrapper.js +92 -0
- package/lib/extensions/custom-toolbar-wrapper.js.map +1 -0
- package/lib/extensions/div-node.js +83 -0
- package/lib/extensions/div-node.js.map +1 -0
- package/lib/extensions/ensure-empty-root-div.js +48 -0
- package/lib/extensions/ensure-empty-root-div.js.map +1 -0
- package/lib/extensions/ensure-list-item-content-is-div.js +64 -0
- package/lib/extensions/ensure-list-item-content-is-div.js.map +1 -0
- package/lib/extensions/extended-list-item.js +15 -0
- package/lib/extensions/extended-list-item.js.map +1 -0
- package/lib/extensions/extended-table-cell.js +22 -0
- package/lib/extensions/extended-table-cell.js.map +1 -0
- package/lib/extensions/extended-table.js +75 -0
- package/lib/extensions/extended-table.js.map +1 -0
- package/lib/extensions/heading-paragraph.js +61 -0
- package/lib/extensions/heading-paragraph.js.map +1 -0
- package/lib/extensions/image-component.js +348 -0
- package/lib/extensions/image-component.js.map +1 -0
- package/lib/extensions/image.js +134 -0
- package/lib/extensions/image.js.map +1 -0
- package/lib/extensions/index.js +46 -0
- package/lib/extensions/index.js.map +1 -0
- package/lib/extensions/math.js +342 -0
- package/lib/extensions/math.js.map +1 -0
- package/lib/extensions/media.js +243 -0
- package/lib/extensions/media.js.map +1 -0
- package/lib/extensions/responseArea.js +446 -0
- package/lib/extensions/responseArea.js.map +1 -0
- package/lib/index.js +37 -0
- package/lib/index.js.map +1 -0
- package/lib/styles/editorContainerStyles.js +137 -0
- package/lib/styles/editorContainerStyles.js.map +1 -0
- package/lib/theme.js +8 -0
- package/lib/theme.js.map +1 -0
- package/lib/utils/helper.js +73 -0
- package/lib/utils/helper.js.map +1 -0
- package/lib/utils/size.js +26 -0
- package/lib/utils/size.js.map +1 -0
- package/package.json +24 -40
- package/src/__tests__/EditableHtml.test.jsx +554 -0
- package/src/__tests__/constants.test.js +19 -0
- package/src/__tests__/div-to-paragraph-conversion.test.jsx +125 -0
- package/src/__tests__/extensions.test.js +208 -0
- package/src/__tests__/index.test.jsx +154 -0
- package/src/__tests__/size-utils.test.js +64 -0
- package/src/__tests__/theme.test.js +17 -0
- package/src/components/CharacterPicker.jsx +207 -0
- package/src/components/EditableHtml.jsx +440 -0
- package/src/components/MenuBar.jsx +554 -0
- package/src/components/TiptapContainer.jsx +219 -0
- package/src/components/__tests__/AltDialog.test.jsx +147 -0
- package/src/components/__tests__/CharacterPicker.test.jsx +261 -0
- package/src/components/__tests__/CssIcon.test.jsx +46 -0
- package/src/components/__tests__/DragInTheBlank.test.jsx +255 -0
- package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +204 -0
- package/src/components/__tests__/ImageToolbar.test.jsx +128 -0
- package/src/components/__tests__/InlineDropdown.test.jsx +388 -0
- package/src/components/__tests__/InsertImageHandler.test.js +161 -0
- package/src/components/__tests__/MediaDialog.test.jsx +293 -0
- package/src/components/__tests__/MediaToolbar.test.jsx +74 -0
- package/src/components/__tests__/MediaWrapper.test.jsx +81 -0
- package/src/components/__tests__/MenuBar.test.jsx +250 -0
- package/src/components/__tests__/RespArea.test.jsx +122 -0
- package/src/components/__tests__/TableIcons.test.jsx +149 -0
- package/src/components/__tests__/TextAlign.test.jsx +167 -0
- package/src/components/__tests__/TiptapContainer.test.jsx +138 -0
- package/src/components/__tests__/characterUtils.test.js +166 -0
- package/src/components/__tests__/choice.test.jsx +171 -0
- package/src/components/__tests__/custom-popper.test.jsx +82 -0
- package/src/components/__tests__/done-button.test.jsx +54 -0
- package/src/components/__tests__/toolbar-buttons.test.jsx +234 -0
- package/src/components/characters/characterUtils.js +447 -0
- package/src/components/characters/custom-popper.js +38 -0
- package/src/components/common/done-button.jsx +27 -0
- package/src/components/common/toolbar-buttons.jsx +122 -0
- package/src/components/icons/CssIcon.jsx +15 -0
- package/src/components/icons/RespArea.jsx +71 -0
- package/src/components/icons/TableIcons.jsx +52 -0
- package/src/components/icons/TextAlign.jsx +114 -0
- package/src/components/image/AltDialog.jsx +82 -0
- package/src/components/image/ImageToolbar.jsx +99 -0
- package/src/components/image/InsertImageHandler.js +107 -0
- package/src/components/media/MediaDialog.jsx +596 -0
- package/src/components/media/MediaToolbar.jsx +49 -0
- package/src/components/media/MediaWrapper.jsx +39 -0
- package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +76 -0
- package/src/components/respArea/DragInTheBlank/choice.jsx +256 -0
- package/src/components/respArea/ExplicitConstructedResponse.jsx +135 -0
- package/src/components/respArea/InlineDropdown.jsx +220 -0
- package/src/components/respArea/MathTemplated.jsx +124 -0
- package/src/components/respArea/ToolbarIcon.jsx +66 -0
- package/src/components/respArea/__tests__/MathTemplated.test.jsx +210 -0
- package/src/components/respArea/inlineDropdownUtils.js +79 -0
- package/src/constants.js +5 -0
- package/src/extensions/__tests__/css.test.js +196 -0
- package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +180 -0
- package/src/extensions/__tests__/divNode.test.js +87 -0
- package/src/extensions/__tests__/ensure-empty-root-div.test.js +57 -0
- package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +44 -0
- package/src/extensions/__tests__/extended-list-item.test.js +13 -0
- package/src/extensions/__tests__/extended-table-cell.test.js +22 -0
- package/src/extensions/__tests__/extended-table.test.js +183 -0
- package/src/extensions/__tests__/image-component.test.jsx +345 -0
- package/src/extensions/__tests__/image.test.js +237 -0
- package/src/extensions/__tests__/math.test.js +603 -0
- package/src/extensions/__tests__/media-node-view.test.jsx +298 -0
- package/src/extensions/__tests__/media.test.js +271 -0
- package/src/extensions/__tests__/responseArea.test.js +601 -0
- package/src/extensions/css.js +220 -0
- package/src/extensions/custom-toolbar-wrapper.jsx +78 -0
- package/src/extensions/div-node.js +86 -0
- package/src/extensions/ensure-empty-root-div.js +47 -0
- package/src/extensions/ensure-list-item-content-is-div.js +62 -0
- package/src/extensions/extended-list-item.js +10 -0
- package/src/extensions/extended-table-cell.js +19 -0
- package/src/extensions/extended-table.js +60 -0
- package/src/extensions/heading-paragraph.js +53 -0
- package/src/extensions/image-component.jsx +338 -0
- package/src/extensions/image.js +109 -0
- package/src/extensions/index.js +81 -0
- package/src/extensions/math.js +326 -0
- package/src/extensions/media.js +188 -0
- package/src/extensions/responseArea.js +401 -0
- package/src/index.jsx +5 -0
- package/src/styles/editorContainerStyles.js +145 -0
- package/src/theme.js +1 -0
- package/src/utils/__tests__/helper.test.js +126 -0
- package/src/utils/helper.js +69 -0
- package/src/utils/size.js +32 -0
- package/dist/components/CharacterPicker.d.ts +0 -31
- package/dist/components/CharacterPicker.js +0 -131
- package/dist/components/EditableHtml.d.ts +0 -11
- package/dist/components/EditableHtml.js +0 -291
- package/dist/components/MenuBar.d.ts +0 -11
- package/dist/components/MenuBar.js +0 -462
- package/dist/components/TiptapContainer.d.ts +0 -11
- package/dist/components/TiptapContainer.js +0 -154
- package/dist/components/characters/characterUtils.d.ts +0 -35
- package/dist/components/characters/characterUtils.js +0 -465
- package/dist/components/characters/custom-popper.d.ts +0 -14
- package/dist/components/characters/custom-popper.js +0 -32
- package/dist/components/common/done-button.d.ts +0 -30
- package/dist/components/common/done-button.js +0 -26
- package/dist/components/common/toolbar-buttons.d.ts +0 -38
- package/dist/components/common/toolbar-buttons.js +0 -91
- package/dist/components/icons/CssIcon.d.ts +0 -11
- package/dist/components/icons/CssIcon.js +0 -14
- package/dist/components/icons/RespArea.d.ts +0 -26
- package/dist/components/icons/RespArea.js +0 -42
- package/dist/components/icons/TableIcons.d.ts +0 -14
- package/dist/components/icons/TableIcons.js +0 -32
- package/dist/components/icons/TextAlign.d.ts +0 -18
- package/dist/components/icons/TextAlign.js +0 -134
- package/dist/components/image/AltDialog.d.ts +0 -22
- package/dist/components/image/AltDialog.js +0 -61
- package/dist/components/image/ImageToolbar.d.ts +0 -24
- package/dist/components/image/ImageToolbar.js +0 -80
- package/dist/components/image/InsertImageHandler.d.ts +0 -32
- package/dist/components/image/InsertImageHandler.js +0 -53
- package/dist/components/media/MediaDialog.d.ts +0 -43
- package/dist/components/media/MediaDialog.js +0 -389
- package/dist/components/media/MediaToolbar.d.ts +0 -19
- package/dist/components/media/MediaToolbar.js +0 -41
- package/dist/components/media/MediaWrapper.d.ts +0 -19
- package/dist/components/respArea/DragInTheBlank/DragInTheBlank.d.ts +0 -23
- package/dist/components/respArea/DragInTheBlank/DragInTheBlank.js +0 -58
- package/dist/components/respArea/DragInTheBlank/choice.d.ts +0 -56
- package/dist/components/respArea/DragInTheBlank/choice.js +0 -156
- package/dist/components/respArea/ExplicitConstructedResponse.d.ts +0 -20
- package/dist/components/respArea/ExplicitConstructedResponse.js +0 -83
- package/dist/components/respArea/InlineDropdown.d.ts +0 -18
- package/dist/components/respArea/InlineDropdown.js +0 -119
- package/dist/components/respArea/MathTemplated.d.ts +0 -19
- package/dist/components/respArea/MathTemplated.js +0 -97
- package/dist/components/respArea/ToolbarIcon.d.ts +0 -14
- package/dist/components/respArea/ToolbarIcon.js +0 -17
- package/dist/components/respArea/inlineDropdownUtils.d.ts +0 -15
- package/dist/components/respArea/inlineDropdownUtils.js +0 -15
- package/dist/constants.d.ts +0 -13
- package/dist/constants.js +0 -4
- package/dist/extensions/css.d.ts +0 -11
- package/dist/extensions/css.js +0 -115
- package/dist/extensions/custom-toolbar-wrapper.d.ts +0 -11
- package/dist/extensions/custom-toolbar-wrapper.js +0 -61
- package/dist/extensions/div-node.d.ts +0 -10
- package/dist/extensions/div-node.js +0 -42
- package/dist/extensions/ensure-empty-root-div.d.ts +0 -14
- package/dist/extensions/ensure-empty-root-div.js +0 -24
- package/dist/extensions/ensure-list-item-content-is-div.d.ts +0 -15
- package/dist/extensions/ensure-list-item-content-is-div.js +0 -31
- package/dist/extensions/extended-list-item.d.ts +0 -13
- package/dist/extensions/extended-list-item.js +0 -5
- package/dist/extensions/extended-table-cell.d.ts +0 -10
- package/dist/extensions/extended-table-cell.js +0 -6
- package/dist/extensions/extended-table.d.ts +0 -17
- package/dist/extensions/extended-table.js +0 -34
- package/dist/extensions/heading-paragraph.d.ts +0 -17
- package/dist/extensions/heading-paragraph.js +0 -30
- package/dist/extensions/image-component.d.ts +0 -22
- package/dist/extensions/image-component.js +0 -220
- package/dist/extensions/image.d.ts +0 -10
- package/dist/extensions/image.js +0 -68
- package/dist/extensions/index.d.ts +0 -16
- package/dist/extensions/index.js +0 -64
- package/dist/extensions/math.d.ts +0 -15
- package/dist/extensions/math.js +0 -158
- package/dist/extensions/media.d.ts +0 -19
- package/dist/extensions/media.js +0 -149
- package/dist/extensions/responseArea.d.ts +0 -27
- package/dist/extensions/responseArea.js +0 -259
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -7
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -16
- package/dist/styles/editorContainerStyles.d.ts +0 -134
- package/dist/theme.d.ts +0 -9
- package/dist/utils/helper.d.ts +0 -9
- package/dist/utils/helper.js +0 -27
- package/dist/utils/size.d.ts +0 -9
- package/dist/utils/size.js +0 -14
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ToolbarIcon = exports.GripIcon = exports.Chevron = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _styles = require("@mui/material/styles");
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
var Chevron = exports.Chevron = function Chevron(props) {
|
|
14
|
+
var direction = props.direction,
|
|
15
|
+
style = props.style;
|
|
16
|
+
var rotate = function () {
|
|
17
|
+
switch (direction) {
|
|
18
|
+
case 'down':
|
|
19
|
+
return 90;
|
|
20
|
+
case 'up':
|
|
21
|
+
return -90;
|
|
22
|
+
case 'left':
|
|
23
|
+
return 180;
|
|
24
|
+
default:
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
}();
|
|
28
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
29
|
+
style: _objectSpread({
|
|
30
|
+
transform: "rotate(".concat(rotate, "deg)")
|
|
31
|
+
}, style),
|
|
32
|
+
width: "24",
|
|
33
|
+
height: "24",
|
|
34
|
+
viewBox: "0 0 24 24",
|
|
35
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
36
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
37
|
+
d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z",
|
|
38
|
+
fill: "currentColor"
|
|
39
|
+
}));
|
|
40
|
+
};
|
|
41
|
+
var GripIcon = exports.GripIcon = function GripIcon(_ref) {
|
|
42
|
+
var style = _ref.style;
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
44
|
+
style: style
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", {
|
|
46
|
+
style: {
|
|
47
|
+
margin: '0 -16px'
|
|
48
|
+
},
|
|
49
|
+
width: "24",
|
|
50
|
+
height: "24",
|
|
51
|
+
viewBox: "0 0 24 24",
|
|
52
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
53
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
54
|
+
d: "M9 3H7v2h2V3zm0 4H7v2h2V7zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm4-16h-2v2h2V3zm0 4h-2v2h2V7zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2z"
|
|
55
|
+
})), /*#__PURE__*/_react["default"].createElement("svg", {
|
|
56
|
+
width: "24",
|
|
57
|
+
height: "24",
|
|
58
|
+
viewBox: "0 0 24 24",
|
|
59
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
60
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
61
|
+
d: "M9 3H7v2h2V3zm0 4H7v2h2V7zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm0 4H7v2h2v-2zm4-16h-2v2h2V3zm0 4h-2v2h2V7zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2z"
|
|
62
|
+
})));
|
|
63
|
+
};
|
|
64
|
+
var StyledToolbarIcon = (0, _styles.styled)('div')(function (_ref2) {
|
|
65
|
+
var theme = _ref2.theme;
|
|
66
|
+
return {
|
|
67
|
+
fontFamily: 'Cerebri Sans !important',
|
|
68
|
+
fontSize: theme.typography.fontSize,
|
|
69
|
+
fontWeight: 'bold',
|
|
70
|
+
lineHeight: '14px',
|
|
71
|
+
position: 'relative',
|
|
72
|
+
top: '7px',
|
|
73
|
+
width: '110px',
|
|
74
|
+
height: '28px',
|
|
75
|
+
whiteSpace: 'nowrap'
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
var ToolbarIcon = exports.ToolbarIcon = function ToolbarIcon() {
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement(StyledToolbarIcon, null, "+ Response Area");
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=ToolbarIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarIcon.js","names":["_react","_interopRequireDefault","require","_styles","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","Chevron","exports","props","direction","style","rotate","createElement","transform","concat","width","height","viewBox","xmlns","d","fill","GripIcon","_ref","margin","StyledToolbarIcon","styled","_ref2","theme","fontFamily","fontSize","typography","fontWeight","lineHeight","position","top","whiteSpace","ToolbarIcon"],"sources":["../../../src/components/respArea/ToolbarIcon.jsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/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 StyledToolbarIcon = styled('div')(({ theme }) => ({\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\nexport const ToolbarIcon = () => <StyledToolbarIcon>+ Response Area</StyledToolbarIcon>;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.selectInlineDropdownNode = exports.releaseInlineDropdownToolbarHold = exports.isInlineDropdownToolbarHeld = exports.holdInlineDropdownToolbar = exports.findInlineDropdownPos = exports.deleteInlineDropdownByIndex = exports.HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX = void 0;
|
|
7
|
+
var _prosemirrorState = require("prosemirror-state");
|
|
8
|
+
var HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX = exports.HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX = '_holdInlineDropdownToolbarIndex';
|
|
9
|
+
var findInlineDropdownPos = exports.findInlineDropdownPos = function findInlineDropdownPos(editor, index) {
|
|
10
|
+
var foundPos = null;
|
|
11
|
+
editor.state.doc.descendants(function (n, p) {
|
|
12
|
+
var _n$type, _n$attrs;
|
|
13
|
+
if (((_n$type = n.type) === null || _n$type === void 0 ? void 0 : _n$type.name) === 'inline_dropdown' && String((_n$attrs = n.attrs) === null || _n$attrs === void 0 ? void 0 : _n$attrs.index) === String(index)) {
|
|
14
|
+
foundPos = p;
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
});
|
|
19
|
+
return foundPos;
|
|
20
|
+
};
|
|
21
|
+
var holdInlineDropdownToolbar = exports.holdInlineDropdownToolbar = function holdInlineDropdownToolbar(editor, index) {
|
|
22
|
+
editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX] = index;
|
|
23
|
+
};
|
|
24
|
+
var releaseInlineDropdownToolbarHold = exports.releaseInlineDropdownToolbarHold = function releaseInlineDropdownToolbarHold(editor) {
|
|
25
|
+
delete editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX];
|
|
26
|
+
};
|
|
27
|
+
var isInlineDropdownToolbarHeld = exports.isInlineDropdownToolbarHeld = function isInlineDropdownToolbarHeld(editor, index) {
|
|
28
|
+
return editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX] != null && String(editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX]) === String(index);
|
|
29
|
+
};
|
|
30
|
+
var selectInlineDropdownNode = exports.selectInlineDropdownNode = function selectInlineDropdownNode(editor, index, fallbackPos) {
|
|
31
|
+
var _findInlineDropdownPo;
|
|
32
|
+
var pos = (_findInlineDropdownPo = findInlineDropdownPos(editor, index)) !== null && _findInlineDropdownPo !== void 0 ? _findInlineDropdownPo : fallbackPos;
|
|
33
|
+
if (pos == null) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
var tr = editor.state.tr;
|
|
37
|
+
var nodeAtPos = tr.doc.nodeAt(pos);
|
|
38
|
+
if (!nodeAtPos) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
var selection = tr.selection;
|
|
42
|
+
if (selection.from === pos && selection.to === pos + nodeAtPos.nodeSize) {
|
|
43
|
+
return pos;
|
|
44
|
+
}
|
|
45
|
+
tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, pos));
|
|
46
|
+
editor.view.dispatch(tr);
|
|
47
|
+
return pos;
|
|
48
|
+
};
|
|
49
|
+
var deleteInlineDropdownByIndex = exports.deleteInlineDropdownByIndex = function deleteInlineDropdownByIndex(editor, index, fallbackPos) {
|
|
50
|
+
var _findInlineDropdownPo2;
|
|
51
|
+
var pos = (_findInlineDropdownPo2 = findInlineDropdownPos(editor, index)) !== null && _findInlineDropdownPo2 !== void 0 ? _findInlineDropdownPo2 : fallbackPos;
|
|
52
|
+
if (pos == null) {
|
|
53
|
+
releaseInlineDropdownToolbarHold(editor);
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
var tr = editor.state.tr;
|
|
57
|
+
var nodeAtPos = tr.doc.nodeAt(pos);
|
|
58
|
+
if (!nodeAtPos) {
|
|
59
|
+
releaseInlineDropdownToolbarHold(editor);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
tr["delete"](pos, pos + nodeAtPos.nodeSize);
|
|
63
|
+
editor.view.dispatch(tr);
|
|
64
|
+
releaseInlineDropdownToolbarHold(editor);
|
|
65
|
+
return true;
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=inlineDropdownUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inlineDropdownUtils.js","names":["_prosemirrorState","require","HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX","exports","findInlineDropdownPos","editor","index","foundPos","state","doc","descendants","n","p","_n$type","_n$attrs","type","name","String","attrs","holdInlineDropdownToolbar","releaseInlineDropdownToolbarHold","isInlineDropdownToolbarHeld","selectInlineDropdownNode","fallbackPos","_findInlineDropdownPo","pos","tr","nodeAtPos","nodeAt","selection","from","to","nodeSize","setSelection","NodeSelection","create","view","dispatch","deleteInlineDropdownByIndex","_findInlineDropdownPo2"],"sources":["../../../src/components/respArea/inlineDropdownUtils.js"],"sourcesContent":["import { NodeSelection } from 'prosemirror-state';\n\nexport const HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX = '_holdInlineDropdownToolbarIndex';\n\nexport const findInlineDropdownPos = (editor, index) => {\n let foundPos = null;\n\n editor.state.doc.descendants((n, p) => {\n if (n.type?.name === 'inline_dropdown' && String(n.attrs?.index) === String(index)) {\n foundPos = p;\n return false;\n }\n\n return true;\n });\n\n return foundPos;\n};\n\nexport const holdInlineDropdownToolbar = (editor, index) => {\n editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX] = index;\n};\n\nexport const releaseInlineDropdownToolbarHold = (editor) => {\n delete editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX];\n};\n\nexport const isInlineDropdownToolbarHeld = (editor, index) =>\n editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX] != null &&\n String(editor[HOLD_INLINE_DROPDOWN_TOOLBAR_INDEX]) === String(index);\n\nexport const selectInlineDropdownNode = (editor, index, fallbackPos) => {\n const pos = findInlineDropdownPos(editor, index) ?? fallbackPos;\n\n if (pos == null) {\n return null;\n }\n\n const { tr } = editor.state;\n const nodeAtPos = tr.doc.nodeAt(pos);\n\n if (!nodeAtPos) {\n return null;\n }\n\n const { selection } = tr;\n\n if (selection.from === pos && selection.to === pos + nodeAtPos.nodeSize) {\n return pos;\n }\n\n tr.setSelection(NodeSelection.create(tr.doc, pos));\n editor.view.dispatch(tr);\n\n return pos;\n};\n\nexport const deleteInlineDropdownByIndex = (editor, index, fallbackPos) => {\n const pos = findInlineDropdownPos(editor, index) ?? fallbackPos;\n\n if (pos == null) {\n releaseInlineDropdownToolbarHold(editor);\n return false;\n }\n\n const { tr } = editor.state;\n const nodeAtPos = tr.doc.nodeAt(pos);\n\n if (!nodeAtPos) {\n releaseInlineDropdownToolbarHold(editor);\n return false;\n }\n\n tr.delete(pos, pos + nodeAtPos.nodeSize);\n editor.view.dispatch(tr);\n releaseInlineDropdownToolbarHold(editor);\n\n return true;\n};"],"mappings":"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","ignoreList":[]}
|
package/lib/constants.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.PIE_TOOLBAR__CLASS = void 0;
|
|
7
|
+
var PIE_TOOLBAR__CLASS = exports.PIE_TOOLBAR__CLASS = 'pie-toolbar';
|
|
8
|
+
var _default = exports["default"] = {
|
|
9
|
+
PIE_TOOLBAR__CLASS: PIE_TOOLBAR__CLASS
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PIE_TOOLBAR__CLASS","exports","_default"],"sources":["../src/constants.js"],"sourcesContent":["export const PIE_TOOLBAR__CLASS = 'pie-toolbar';\n\nexport default {\n PIE_TOOLBAR__CLASS,\n};\n"],"mappings":";;;;;;AAAO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,aAAa;AAAC,IAAAE,QAAA,GAAAD,OAAA,cAEjC;EACbD,kBAAkB,EAAlBA;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.removeDialogs = exports.CSSMark = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
|
+
var _core = require("@tiptap/core");
|
|
11
|
+
var _List = _interopRequireDefault(require("@mui/material/List"));
|
|
12
|
+
var _ListItem = _interopRequireDefault(require("@mui/material/ListItem"));
|
|
13
|
+
var removeDialogs = exports.removeDialogs = function removeDialogs() {
|
|
14
|
+
var prevDialogs = document.querySelectorAll('.insert-css-dialog');
|
|
15
|
+
prevDialogs.forEach(function (s) {
|
|
16
|
+
return s.remove();
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
var insertDialog = function insertDialog(_ref) {
|
|
20
|
+
var editor = _ref.editor,
|
|
21
|
+
callback = _ref.callback,
|
|
22
|
+
opts = _ref.opts,
|
|
23
|
+
selectedText = _ref.selectedText,
|
|
24
|
+
parentNode = _ref.parentNode;
|
|
25
|
+
var editorDOM = editor.options.element;
|
|
26
|
+
var newEl = document.createElement('div');
|
|
27
|
+
var selection = editor.state.selection;
|
|
28
|
+
removeDialogs();
|
|
29
|
+
newEl.className = 'insert-css-dialog';
|
|
30
|
+
var popoverEl;
|
|
31
|
+
var closePopOver = function closePopOver() {
|
|
32
|
+
if (popoverEl) {
|
|
33
|
+
popoverEl.remove();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var firstCallMade = false;
|
|
37
|
+
var listener = function listener(e) {
|
|
38
|
+
// this will be triggered right after setting it because
|
|
39
|
+
// this toolbar is added on the mousedown event
|
|
40
|
+
// so right after mouseup, the click will be triggered
|
|
41
|
+
if (firstCallMade) {
|
|
42
|
+
var focusIsInModals = newEl.contains(e.target) || popoverEl && popoverEl.contains(e.target);
|
|
43
|
+
var focusIsInEditor = editorDOM.contains(e.target);
|
|
44
|
+
if (!(focusIsInModals || focusIsInEditor)) {
|
|
45
|
+
handleClose();
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
firstCallMade = true;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var handleClose = function handleClose() {
|
|
52
|
+
callback(undefined, true);
|
|
53
|
+
newEl.remove();
|
|
54
|
+
closePopOver();
|
|
55
|
+
document.body.removeEventListener('click', listener);
|
|
56
|
+
};
|
|
57
|
+
var handleChange = function handleChange(name) {
|
|
58
|
+
callback(name, true);
|
|
59
|
+
newEl.remove();
|
|
60
|
+
closePopOver();
|
|
61
|
+
document.body.removeEventListener('click', listener);
|
|
62
|
+
};
|
|
63
|
+
var parentNodeClass = parentNode === null || parentNode === void 0 ? void 0 : parentNode.attrs["class"];
|
|
64
|
+
var createHTML = function createHTML(name) {
|
|
65
|
+
var html = "<span class=\"".concat(name, "\">").concat(selectedText, "</span>");
|
|
66
|
+
if (parentNode) {
|
|
67
|
+
var tag = 'span';
|
|
68
|
+
if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.object) === 'inline') {
|
|
69
|
+
tag = 'span';
|
|
70
|
+
}
|
|
71
|
+
if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.object) === 'block') {
|
|
72
|
+
tag = 'div';
|
|
73
|
+
}
|
|
74
|
+
html = "<".concat(tag, " class=\"").concat(parentNodeClass, "\">").concat(parentNode.text.slice(0, selection.$anchor.textOffset)).concat(html).concat(parentNode.text.slice(selection.$head.textOffset), "</").concat(tag, ">");
|
|
75
|
+
}
|
|
76
|
+
return html;
|
|
77
|
+
};
|
|
78
|
+
var el = /*#__PURE__*/_react["default"].createElement("div", {
|
|
79
|
+
style: {
|
|
80
|
+
background: 'white',
|
|
81
|
+
height: 500,
|
|
82
|
+
padding: 20,
|
|
83
|
+
overflow: 'hidden',
|
|
84
|
+
display: 'flex',
|
|
85
|
+
flexFlow: 'column'
|
|
86
|
+
}
|
|
87
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Please choose a css class"), parentNodeClass && /*#__PURE__*/_react["default"].createElement("div", null, "The current parent has this class ", parentNodeClass), /*#__PURE__*/_react["default"].createElement(_List["default"], {
|
|
88
|
+
component: "nav",
|
|
89
|
+
style: {
|
|
90
|
+
overflow: 'scroll'
|
|
91
|
+
}
|
|
92
|
+
}, opts.names.map(function (name, i) {
|
|
93
|
+
return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
94
|
+
key: "rule-".concat(i),
|
|
95
|
+
button: true,
|
|
96
|
+
onClick: function onClick() {
|
|
97
|
+
return handleChange(name);
|
|
98
|
+
}
|
|
99
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
|
+
style: {
|
|
101
|
+
marginRight: 20
|
|
102
|
+
}
|
|
103
|
+
}, name), /*#__PURE__*/_react["default"].createElement("div", {
|
|
104
|
+
dangerouslySetInnerHTML: {
|
|
105
|
+
__html: createHTML(name)
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
})));
|
|
109
|
+
_reactDom["default"].render(el, newEl, function () {
|
|
110
|
+
var cursorItem = editor.view.nodeDOM(editor.state.selection.from);
|
|
111
|
+
var cursorNode = cursorItem === null || cursorItem === void 0 ? void 0 : cursorItem.parentNode;
|
|
112
|
+
if (cursorNode) {
|
|
113
|
+
var bodyRect = editorDOM.parentElement.parentElement.parentElement.getBoundingClientRect();
|
|
114
|
+
var boundRect = cursorNode.getBoundingClientRect();
|
|
115
|
+
editorDOM.parentElement.parentElement.parentElement.appendChild(newEl);
|
|
116
|
+
newEl.style.maxWidth = '500px';
|
|
117
|
+
newEl.style.position = 'absolute';
|
|
118
|
+
newEl.style.top = 0;
|
|
119
|
+
newEl.style.zIndex = 99999;
|
|
120
|
+
var leftValue = "".concat(boundRect.left + Math.abs(bodyRect.left) + cursorNode.offsetWidth + 10, "px");
|
|
121
|
+
var rightValue = "".concat(boundRect.x, "px");
|
|
122
|
+
newEl.style.left = leftValue;
|
|
123
|
+
var leftAlignedWidth = newEl.offsetWidth;
|
|
124
|
+
newEl.style.left = 'unset';
|
|
125
|
+
newEl.style.right = rightValue;
|
|
126
|
+
var rightAlignedWidth = newEl.offsetWidth;
|
|
127
|
+
newEl.style.left = 'unset';
|
|
128
|
+
newEl.style.right = 'unset';
|
|
129
|
+
if (leftAlignedWidth >= rightAlignedWidth) {
|
|
130
|
+
newEl.style.left = leftValue;
|
|
131
|
+
} else {
|
|
132
|
+
newEl.style.right = rightValue;
|
|
133
|
+
}
|
|
134
|
+
document.body.addEventListener('click', listener);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
var CSSMark = exports.CSSMark = _core.Mark.create({
|
|
139
|
+
name: 'cssmark',
|
|
140
|
+
addOptions: function addOptions() {
|
|
141
|
+
return {
|
|
142
|
+
classes: []
|
|
143
|
+
};
|
|
144
|
+
},
|
|
145
|
+
addAttributes: function addAttributes() {
|
|
146
|
+
return {
|
|
147
|
+
"class": {
|
|
148
|
+
"default": null,
|
|
149
|
+
parseHTML: function parseHTML(el) {
|
|
150
|
+
return el.getAttribute('class');
|
|
151
|
+
},
|
|
152
|
+
renderHTML: function renderHTML(attributes) {
|
|
153
|
+
if (!attributes["class"]) return {};
|
|
154
|
+
return {
|
|
155
|
+
"class": attributes["class"]
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
parseHTML: function parseHTML() {
|
|
162
|
+
var _this = this;
|
|
163
|
+
// Any span with a class that matches one of allowed classes
|
|
164
|
+
return [{
|
|
165
|
+
tag: 'span[class]',
|
|
166
|
+
getAttrs: function getAttrs(el) {
|
|
167
|
+
var cls = el.getAttribute('class') || '';
|
|
168
|
+
var match = _this.options.classes.find(function (name) {
|
|
169
|
+
return cls.includes(name);
|
|
170
|
+
});
|
|
171
|
+
return match ? {
|
|
172
|
+
"class": match
|
|
173
|
+
} : false;
|
|
174
|
+
}
|
|
175
|
+
}];
|
|
176
|
+
},
|
|
177
|
+
renderHTML: function renderHTML(_ref2) {
|
|
178
|
+
var HTMLAttributes = _ref2.HTMLAttributes;
|
|
179
|
+
return ['span', (0, _core.mergeAttributes)(HTMLAttributes), 0];
|
|
180
|
+
},
|
|
181
|
+
addCommands: function addCommands() {
|
|
182
|
+
var _this2 = this;
|
|
183
|
+
return {
|
|
184
|
+
setCSSClass: function setCSSClass(className) {
|
|
185
|
+
return function (_ref3) {
|
|
186
|
+
var commands = _ref3.commands;
|
|
187
|
+
return commands.setMark(_this2.name, {
|
|
188
|
+
"class": className
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
},
|
|
192
|
+
unsetCSSClass: function unsetCSSClass() {
|
|
193
|
+
return function (_ref4) {
|
|
194
|
+
var commands = _ref4.commands;
|
|
195
|
+
return commands.unsetMark(_this2.name);
|
|
196
|
+
};
|
|
197
|
+
},
|
|
198
|
+
openCSSClassDialog: function openCSSClassDialog() {
|
|
199
|
+
return function (_ref5) {
|
|
200
|
+
var editor = _ref5.editor;
|
|
201
|
+
insertDialog({
|
|
202
|
+
editor: editor,
|
|
203
|
+
selectedText: editor.state.doc.textBetween(editor.state.selection.from, editor.state.selection.to),
|
|
204
|
+
parentNode: editor.state.selection.$from.nodeAfter,
|
|
205
|
+
opts: _this2.options.extraCSSRules,
|
|
206
|
+
callback: function callback(className) {
|
|
207
|
+
if (className) {
|
|
208
|
+
editor.chain().focus().setCSSClass(className).run();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","names":["_react","_interopRequireDefault","require","_reactDom","_core","_List","_ListItem","removeDialogs","exports","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","_ref","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","concat","tag","object","text","slice","$anchor","textOffset","$head","el","style","background","height","padding","overflow","display","flexFlow","component","names","map","i","key","button","onClick","marginRight","dangerouslySetInnerHTML","__html","ReactDOM","render","cursorItem","view","nodeDOM","from","cursorNode","bodyRect","parentElement","getBoundingClientRect","boundRect","appendChild","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","_this","getAttrs","cls","match","find","includes","_ref2","HTMLAttributes","mergeAttributes","addCommands","_this2","setCSSClass","_ref3","commands","setMark","unsetCSSClass","_ref4","unsetMark","openCSSClassDialog","_ref5","doc","textBetween","to","$from","nodeAfter","extraCSSRules","chain","focus","run"],"sources":["../../src/extensions/css.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Mark, mergeAttributes } from '@tiptap/core';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/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(\n 0,\n selection.$anchor.textOffset,\n )}${html}${parentNode.text.slice(selection.$head.textOffset)}</${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:\n (className) =>\n ({ commands }) => {\n return commands.setMark(this.name, { class: className });\n },\n\n unsetCSSClass:\n () =>\n ({ commands }) => {\n return commands.unsetMark(this.name);\n },\n\n openCSSClassDialog:\n () =>\n ({ 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.chain().focus().setCSSClass(className).run();\n }\n },\n });\n },\n };\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
11
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
12
|
+
var _constants = require("../constants");
|
|
13
|
+
var _styles = require("@mui/material/styles");
|
|
14
|
+
var _doneButton = require("../components/common/done-button");
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
var StyledToolbar = (0, _styles.styled)('div', {
|
|
18
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
19
|
+
return !['showDone', 'toolbarAlignment', 'isFocused', 'autoWidth', 'isHidden'].includes(prop);
|
|
20
|
+
}
|
|
21
|
+
})(function (_ref) {
|
|
22
|
+
var showDone = _ref.showDone,
|
|
23
|
+
toolbarAlignment = _ref.toolbarAlignment,
|
|
24
|
+
isFocused = _ref.isFocused,
|
|
25
|
+
autoWidth = _ref.autoWidth,
|
|
26
|
+
isHidden = _ref.isHidden;
|
|
27
|
+
return _objectSpread(_objectSpread(_objectSpread({
|
|
28
|
+
position: 'absolute',
|
|
29
|
+
zIndex: 10,
|
|
30
|
+
cursor: 'pointer',
|
|
31
|
+
justifyContent: 'space-between',
|
|
32
|
+
background: 'var(--editable-html-toolbar-bg, #efefef)',
|
|
33
|
+
minWidth: showDone ? '280px' : '265px',
|
|
34
|
+
margin: '5px 0 0 0',
|
|
35
|
+
padding: '2px',
|
|
36
|
+
boxShadow: '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)',
|
|
37
|
+
boxSizing: 'border-box',
|
|
38
|
+
display: 'flex',
|
|
39
|
+
opacity: 1
|
|
40
|
+
}, toolbarAlignment === 'right' && {
|
|
41
|
+
right: 0
|
|
42
|
+
}), autoWidth ? {
|
|
43
|
+
width: 'auto'
|
|
44
|
+
} : {
|
|
45
|
+
width: '100%'
|
|
46
|
+
}), isHidden && {
|
|
47
|
+
visibility: 'hidden'
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var StyledIconButton = (0, _styles.styled)(_IconButton["default"])({
|
|
51
|
+
width: '28px',
|
|
52
|
+
height: '28px',
|
|
53
|
+
padding: '4px',
|
|
54
|
+
verticalAlign: 'top'
|
|
55
|
+
});
|
|
56
|
+
var SharedContainer = (0, _styles.styled)('div')({
|
|
57
|
+
display: 'flex'
|
|
58
|
+
});
|
|
59
|
+
function CustomToolbarWrapper(props) {
|
|
60
|
+
var children = props.children,
|
|
61
|
+
deletable = props.deletable,
|
|
62
|
+
toolbarOpts = props.toolbarOpts,
|
|
63
|
+
autoWidth = props.autoWidth,
|
|
64
|
+
isFocused = props.isFocused,
|
|
65
|
+
doneButtonRef = props.doneButtonRef,
|
|
66
|
+
onDelete = props.onDelete,
|
|
67
|
+
showDone = props.showDone,
|
|
68
|
+
onDone = props.onDone,
|
|
69
|
+
style = props.style;
|
|
70
|
+
var customStyles = toolbarOpts.minWidth !== undefined ? {
|
|
71
|
+
minWidth: toolbarOpts.minWidth
|
|
72
|
+
} : {};
|
|
73
|
+
return /*#__PURE__*/_react["default"].createElement(StyledToolbar, {
|
|
74
|
+
className: _constants.PIE_TOOLBAR__CLASS,
|
|
75
|
+
showDone: showDone,
|
|
76
|
+
toolbarAlignment: toolbarOpts.alignment,
|
|
77
|
+
isFocused: toolbarOpts.alwaysVisible || isFocused,
|
|
78
|
+
autoWidth: autoWidth,
|
|
79
|
+
isHidden: toolbarOpts.isHidden === true,
|
|
80
|
+
style: _objectSpread(_objectSpread({}, customStyles), style)
|
|
81
|
+
}, children, /*#__PURE__*/_react["default"].createElement(SharedContainer, null, deletable && /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
|
|
82
|
+
"aria-label": "Delete",
|
|
83
|
+
onMouseDown: function onMouseDown(e) {
|
|
84
|
+
return onDelete === null || onDelete === void 0 ? void 0 : onDelete(e);
|
|
85
|
+
}
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)), showDone && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
|
|
87
|
+
doneButtonRef: doneButtonRef,
|
|
88
|
+
onClick: onDone
|
|
89
|
+
})));
|
|
90
|
+
}
|
|
91
|
+
var _default = exports["default"] = CustomToolbarWrapper;
|
|
92
|
+
//# sourceMappingURL=custom-toolbar-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-toolbar-wrapper.js","names":["_react","_interopRequireDefault","require","_IconButton","_Delete","_constants","_styles","_doneButton","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledToolbar","styled","shouldForwardProp","prop","includes","_ref","showDone","toolbarAlignment","isFocused","autoWidth","isHidden","position","zIndex","cursor","justifyContent","background","minWidth","margin","padding","boxShadow","boxSizing","display","opacity","right","width","visibility","StyledIconButton","IconButton","height","verticalAlign","SharedContainer","CustomToolbarWrapper","props","children","deletable","toolbarOpts","doneButtonRef","onDelete","onDone","style","customStyles","undefined","createElement","className","PIE_TOOLBAR__CLASS","alignment","alwaysVisible","onMouseDown","DoneButton","onClick","_default","exports"],"sources":["../../src/extensions/custom-toolbar-wrapper.jsx"],"sourcesContent":["import React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport Delete from '@mui/icons-material/Delete';\nimport { PIE_TOOLBAR__CLASS } from '../constants';\nimport { styled } from '@mui/material/styles';\nimport { DoneButton } from '../components/common/done-button';\n\nconst StyledToolbar = styled('div', {\n shouldForwardProp: (prop) => !['showDone', 'toolbarAlignment', 'isFocused', 'autoWidth', 'isHidden'].includes(prop),\n})(({ showDone, toolbarAlignment, isFocused, autoWidth, isHidden }) => ({\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: showDone ? '280px' : '265px',\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 ...(toolbarAlignment === 'right' && {\n right: 0,\n }),\n ...(autoWidth\n ? {\n width: 'auto',\n }\n : {\n width: '100%',\n }),\n ...(isHidden && {\n visibility: 'hidden',\n }),\n}));\n\nconst StyledIconButton = styled(IconButton)({\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n});\n\nconst SharedContainer = styled('div')({\n display: 'flex',\n});\n\nfunction CustomToolbarWrapper(props) {\n const { children, deletable, toolbarOpts, autoWidth, isFocused, doneButtonRef, onDelete, showDone, onDone, style } = props;\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <StyledToolbar\n className={PIE_TOOLBAR__CLASS}\n showDone={showDone}\n toolbarAlignment={toolbarOpts.alignment}\n isFocused={toolbarOpts.alwaysVisible || isFocused}\n autoWidth={autoWidth}\n isHidden={toolbarOpts.isHidden === true}\n style={{ ...customStyles, ...style }}\n >\n {children}\n\n <SharedContainer>\n {deletable && (\n <StyledIconButton aria-label=\"Delete\" onMouseDown={(e) => onDelete?.(e)}>\n <Delete />\n </StyledIconButton>\n )}\n {showDone && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </SharedContainer>\n </StyledToolbar>\n );\n}\n\nexport default CustomToolbarWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DivNode = void 0;
|
|
7
|
+
var _core = require("@tiptap/core");
|
|
8
|
+
// DivNode.ts
|
|
9
|
+
|
|
10
|
+
var DivNode = exports.DivNode = _core.Node.create({
|
|
11
|
+
name: 'div',
|
|
12
|
+
group: 'block',
|
|
13
|
+
content: 'inline*',
|
|
14
|
+
parseHTML: function parseHTML() {
|
|
15
|
+
return [{
|
|
16
|
+
tag: 'div'
|
|
17
|
+
}];
|
|
18
|
+
},
|
|
19
|
+
renderHTML: function renderHTML(_ref) {
|
|
20
|
+
var HTMLAttributes = _ref.HTMLAttributes;
|
|
21
|
+
return ['div', HTMLAttributes, 0];
|
|
22
|
+
},
|
|
23
|
+
addKeyboardShortcuts: function addKeyboardShortcuts() {
|
|
24
|
+
var _this = this;
|
|
25
|
+
var isInsideListItem = function isInsideListItem($from) {
|
|
26
|
+
for (var depth = $from.depth; depth >= 0; depth -= 1) {
|
|
27
|
+
if ($from.node(depth).type.name === 'listItem') {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
Enter: function Enter() {
|
|
35
|
+
var state = _this.editor.state;
|
|
36
|
+
var $from = state.selection.$from;
|
|
37
|
+
if ($from.parent.type.name !== 'div') {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (isInsideListItem($from)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return _this.editor.chain().focus().setNode('paragraph') // current div becomes <p>
|
|
44
|
+
.splitBlock() // create another <p>
|
|
45
|
+
.run();
|
|
46
|
+
},
|
|
47
|
+
// When the cursor is in a div and the user presses Backspace,
|
|
48
|
+
// ProseMirror's default handler may try to join/delete the block node
|
|
49
|
+
// once it becomes empty. That triggers the Enter shortcut above
|
|
50
|
+
// (div → p conversion + split), making it look like a new line is
|
|
51
|
+
// inserted instead of deleting.
|
|
52
|
+
// We handle two cases explicitly:
|
|
53
|
+
// 1. The div already IS empty → swallow the event (nothing to delete).
|
|
54
|
+
// 2. The div has exactly ONE character left → delete just that character
|
|
55
|
+
// using a precise transaction, then stop. This prevents ProseMirror
|
|
56
|
+
// from following up with a block-join that triggers the Enter handler.
|
|
57
|
+
Backspace: function Backspace() {
|
|
58
|
+
var state = _this.editor.state;
|
|
59
|
+
var _state$selection = state.selection,
|
|
60
|
+
$from = _state$selection.$from,
|
|
61
|
+
selectionEmpty = _state$selection.empty;
|
|
62
|
+
if ($from.parent.type.name !== 'div') {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (!selectionEmpty) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
var parentText = $from.parent.textContent;
|
|
69
|
+
if (parentText.length === 0) {
|
|
70
|
+
return state.doc.childCount === 1 ? true : false;
|
|
71
|
+
}
|
|
72
|
+
if (parentText.length === 1 && $from.parentOffset === 1) {
|
|
73
|
+
var tr = state.tr;
|
|
74
|
+
tr["delete"]($from.pos - 1, $from.pos);
|
|
75
|
+
_this.editor.view.dispatch(tr);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=div-node.js.map
|