@pie-lib/editable-html-tip-tap 2.1.2-next.31 → 2.1.2-next.36
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 +697 -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 +137 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
- package/lib/components/respArea/InlineDropdown.js +210 -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/lib/utils/toolbar.js +19 -0
- package/lib/utils/toolbar.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 +556 -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 +209 -0
- package/src/components/__tests__/ImageToolbar.test.jsx +128 -0
- package/src/components/__tests__/InlineDropdown.test.jsx +393 -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 +136 -0
- package/src/components/respArea/InlineDropdown.jsx +221 -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 +604 -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 +325 -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/__tests__/toolbar.test.js +43 -0
- package/src/utils/helper.js +69 -0
- package/src/utils/size.js +32 -0
- package/src/utils/toolbar.js +15 -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,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.ImageToolbar = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
17
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
18
|
+
var _styles = require("@mui/material/styles");
|
|
19
|
+
var _AltDialog = _interopRequireDefault(require("./AltDialog"));
|
|
20
|
+
var _toolbarButtons = require("../common/toolbar-buttons");
|
|
21
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
22
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
|
+
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; }
|
|
24
|
+
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; }
|
|
25
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:image-toolbar');
|
|
26
|
+
var StyledHolder = (0, _styles.styled)('div')(function (_ref) {
|
|
27
|
+
var theme = _ref.theme;
|
|
28
|
+
return {
|
|
29
|
+
paddingLeft: theme.spacing.unit,
|
|
30
|
+
display: 'flex',
|
|
31
|
+
alignItems: 'center'
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
var StyledAltText = (0, _styles.styled)('span', {
|
|
35
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
36
|
+
return !['disabled', 'hasAlignmentButtons'].includes(prop);
|
|
37
|
+
}
|
|
38
|
+
})(function (_ref2) {
|
|
39
|
+
var disabled = _ref2.disabled,
|
|
40
|
+
hasAlignmentButtons = _ref2.hasAlignmentButtons;
|
|
41
|
+
return _objectSpread(_objectSpread({}, disabled && {
|
|
42
|
+
opacity: 0.5
|
|
43
|
+
}), hasAlignmentButtons && {
|
|
44
|
+
borderLeft: '1px solid grey',
|
|
45
|
+
paddingLeft: 8,
|
|
46
|
+
marginLeft: 4
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
var AlignmentButton = function AlignmentButton(_ref3) {
|
|
50
|
+
var alignment = _ref3.alignment,
|
|
51
|
+
active = _ref3.active,
|
|
52
|
+
onClick = _ref3.onClick;
|
|
53
|
+
return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
|
|
54
|
+
active: active,
|
|
55
|
+
onToggle: function onToggle() {
|
|
56
|
+
return onClick(alignment);
|
|
57
|
+
},
|
|
58
|
+
label: alignment
|
|
59
|
+
}, alignment);
|
|
60
|
+
};
|
|
61
|
+
AlignmentButton.propTypes = {
|
|
62
|
+
alignment: _propTypes["default"].string.isRequired,
|
|
63
|
+
active: _propTypes["default"].bool.isRequired,
|
|
64
|
+
onClick: _propTypes["default"].func.isRequired
|
|
65
|
+
};
|
|
66
|
+
var ImageToolbar = exports.ImageToolbar = /*#__PURE__*/function (_React$Component) {
|
|
67
|
+
function ImageToolbar() {
|
|
68
|
+
var _this;
|
|
69
|
+
(0, _classCallCheck2["default"])(this, ImageToolbar);
|
|
70
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
71
|
+
args[_key] = arguments[_key];
|
|
72
|
+
}
|
|
73
|
+
_this = _callSuper(this, ImageToolbar, [].concat(args));
|
|
74
|
+
(0, _defineProperty2["default"])(_this, "onAltTextDone", function (newAlt) {
|
|
75
|
+
log('[onAltTextDone]: alt:', newAlt);
|
|
76
|
+
_this.props.onChange({
|
|
77
|
+
alt: newAlt
|
|
78
|
+
}, true);
|
|
79
|
+
});
|
|
80
|
+
(0, _defineProperty2["default"])(_this, "onAlignmentClick", function (alignment) {
|
|
81
|
+
log('[onAlignmentClick]: alignment:', alignment);
|
|
82
|
+
_this.props.onChange({
|
|
83
|
+
alignment: alignment
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
(0, _defineProperty2["default"])(_this, "renderDialog", function () {
|
|
87
|
+
var alt = _this.props.alt;
|
|
88
|
+
var popoverEl = document.createElement('div');
|
|
89
|
+
var el = /*#__PURE__*/_react["default"].createElement(_AltDialog["default"], {
|
|
90
|
+
alt: alt,
|
|
91
|
+
onDone: _this.onAltTextDone
|
|
92
|
+
});
|
|
93
|
+
_reactDom["default"].render(el, popoverEl);
|
|
94
|
+
document.body.appendChild(popoverEl);
|
|
95
|
+
});
|
|
96
|
+
return _this;
|
|
97
|
+
}
|
|
98
|
+
(0, _inherits2["default"])(ImageToolbar, _React$Component);
|
|
99
|
+
return (0, _createClass2["default"])(ImageToolbar, [{
|
|
100
|
+
key: "render",
|
|
101
|
+
value: function render() {
|
|
102
|
+
var _this2 = this;
|
|
103
|
+
var _this$props = this.props,
|
|
104
|
+
alignment = _this$props.alignment,
|
|
105
|
+
imageLoaded = _this$props.imageLoaded,
|
|
106
|
+
disableImageAlignmentButtons = _this$props.disableImageAlignmentButtons;
|
|
107
|
+
return /*#__PURE__*/_react["default"].createElement(StyledHolder, null, !disableImageAlignmentButtons && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
|
|
108
|
+
alignment: 'left',
|
|
109
|
+
active: alignment === 'left',
|
|
110
|
+
onClick: this.onAlignmentClick
|
|
111
|
+
}), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
|
|
112
|
+
alignment: 'center',
|
|
113
|
+
active: alignment === 'center',
|
|
114
|
+
onClick: this.onAlignmentClick
|
|
115
|
+
}), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
|
|
116
|
+
alignment: 'right',
|
|
117
|
+
active: alignment === 'right',
|
|
118
|
+
onClick: this.onAlignmentClick
|
|
119
|
+
})), /*#__PURE__*/_react["default"].createElement(StyledAltText, {
|
|
120
|
+
disabled: !imageLoaded,
|
|
121
|
+
hasAlignmentButtons: !disableImageAlignmentButtons,
|
|
122
|
+
onMouseDown: function onMouseDown(event) {
|
|
123
|
+
return imageLoaded && _this2.renderDialog(event);
|
|
124
|
+
}
|
|
125
|
+
}, "Alt text"));
|
|
126
|
+
}
|
|
127
|
+
}]);
|
|
128
|
+
}(_react["default"].Component);
|
|
129
|
+
(0, _defineProperty2["default"])(ImageToolbar, "propTypes", {
|
|
130
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
131
|
+
alignment: _propTypes["default"].string,
|
|
132
|
+
alt: _propTypes["default"].string,
|
|
133
|
+
imageLoaded: _propTypes["default"].bool,
|
|
134
|
+
disableImageAlignmentButtons: _propTypes["default"].bool
|
|
135
|
+
});
|
|
136
|
+
var _default = exports["default"] = ImageToolbar;
|
|
137
|
+
//# sourceMappingURL=ImageToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageToolbar.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_reactDom","_styles","_AltDialog","_toolbarButtons","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","StyledHolder","styled","_ref","theme","paddingLeft","spacing","unit","display","alignItems","StyledAltText","shouldForwardProp","prop","includes","_ref2","disabled","hasAlignmentButtons","opacity","borderLeft","marginLeft","AlignmentButton","_ref3","alignment","active","onClick","createElement","MarkButton","onToggle","label","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","newAlt","props","onChange","alt","popoverEl","document","el","onDone","onAltTextDone","ReactDOM","render","body","appendChild","_inherits2","_createClass2","key","value","_this2","_this$props","imageLoaded","disableImageAlignmentButtons","Fragment","onAlignmentClick","onMouseDown","event","renderDialog","React","Component","_default"],"sources":["../../../src/components/image/ImageToolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { styled } from '@mui/material/styles';\n\nimport AltDialog from './AltDialog';\nimport { MarkButton } from '../common/toolbar-buttons';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst StyledHolder = styled('div')(({ theme }) => ({\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledAltText = styled('span', {\n shouldForwardProp: (prop) => !['disabled', 'hasAlignmentButtons'].includes(prop),\n})(({ disabled, hasAlignmentButtons }) => ({\n ...(disabled && {\n opacity: 0.5,\n }),\n ...(hasAlignmentButtons && {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n }),\n}));\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool,\n disableImageAlignmentButtons: PropTypes.bool,\n };\n\n onAltTextDone = (newAlt) => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt }, true);\n };\n\n onAlignmentClick = (alignment) => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n ReactDOM.render(el, popoverEl);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { alignment, imageLoaded, disableImageAlignmentButtons } = this.props;\n return (\n <StyledHolder>\n {!disableImageAlignmentButtons && (\n <>\n <AlignmentButton alignment={'left'} active={alignment === 'left'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'center'} active={alignment === 'center'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'right'} active={alignment === 'right'} onClick={this.onAlignmentClick} />\n </>\n )}\n <StyledAltText\n disabled={!imageLoaded}\n hasAlignmentButtons={!disableImageAlignmentButtons}\n onMouseDown={(event) => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </StyledAltText>\n </StyledHolder>\n );\n }\n}\n\nexport default ImageToolbar;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Handles user selection, insertion (or cancellation) of an image into the editor.
|
|
18
|
+
* @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image
|
|
19
|
+
* @param {Function} onFinish - a function to call if uploading fails or succeeds
|
|
20
|
+
* @param {Function} getValue - a function to return the value of the editor
|
|
21
|
+
* @param {Function} onChange - callback to notify changes applied by the handler
|
|
22
|
+
* @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
|
|
23
|
+
*/
|
|
24
|
+
var InsertImageHandler = /*#__PURE__*/function () {
|
|
25
|
+
function InsertImageHandler(editor, nodeInfo, onFinish) {
|
|
26
|
+
var isPasted = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
27
|
+
(0, _classCallCheck2["default"])(this, InsertImageHandler);
|
|
28
|
+
this.editor = editor;
|
|
29
|
+
this.nodeInfo = nodeInfo;
|
|
30
|
+
this.node = nodeInfo[0];
|
|
31
|
+
this.nodePos = nodeInfo[1];
|
|
32
|
+
this.onFinish = onFinish;
|
|
33
|
+
this.isPasted = isPasted;
|
|
34
|
+
this.chosenFile = null;
|
|
35
|
+
}
|
|
36
|
+
return (0, _createClass2["default"])(InsertImageHandler, [{
|
|
37
|
+
key: "cancel",
|
|
38
|
+
value: function cancel() {
|
|
39
|
+
log('insert cancelled');
|
|
40
|
+
try {
|
|
41
|
+
this.deleteNode();
|
|
42
|
+
this.onFinish(false);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
//
|
|
45
|
+
} finally {
|
|
46
|
+
this.editor._insertingImage = false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "updateNode",
|
|
51
|
+
value: function updateNode(newAttrs) {
|
|
52
|
+
var _this$editor = this.editor,
|
|
53
|
+
state = _this$editor.state,
|
|
54
|
+
view = _this$editor.view;
|
|
55
|
+
var tr = state.tr;
|
|
56
|
+
var node = state.doc.nodeAt(this.nodePos);
|
|
57
|
+
if (node) {
|
|
58
|
+
var transaction = tr.setNodeMarkup(this.nodePos, undefined, _objectSpread(_objectSpread({}, node.attrs), newAttrs));
|
|
59
|
+
view.dispatch(transaction);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "deleteNode",
|
|
64
|
+
value: function deleteNode() {
|
|
65
|
+
var _this$editor2 = this.editor,
|
|
66
|
+
state = _this$editor2.state,
|
|
67
|
+
view = _this$editor2.view;
|
|
68
|
+
var tr = state.tr;
|
|
69
|
+
var transaction = tr["delete"](this.nodePos, this.nodePos + this.node.nodeSize);
|
|
70
|
+
view.dispatch(transaction);
|
|
71
|
+
}
|
|
72
|
+
}, {
|
|
73
|
+
key: "done",
|
|
74
|
+
value: function done(err, src) {
|
|
75
|
+
log('done: err:', err);
|
|
76
|
+
if (err) {
|
|
77
|
+
//eslint-disable-next-line
|
|
78
|
+
console.log(err);
|
|
79
|
+
this.onFinish(false);
|
|
80
|
+
} else {
|
|
81
|
+
this.updateNode({
|
|
82
|
+
loaded: true,
|
|
83
|
+
src: src,
|
|
84
|
+
percent: 100
|
|
85
|
+
});
|
|
86
|
+
this.onFinish(true);
|
|
87
|
+
}
|
|
88
|
+
this.editor._insertingImage = false;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Notify handler that the user chose a file - will create a change with a preview in the editor.
|
|
93
|
+
*
|
|
94
|
+
* @param {File} file - the file that the user chose using a file input.
|
|
95
|
+
*/
|
|
96
|
+
}, {
|
|
97
|
+
key: "fileChosen",
|
|
98
|
+
value: function fileChosen(file) {
|
|
99
|
+
var _this = this;
|
|
100
|
+
if (!file) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Save the chosen file to this.chosenFile
|
|
105
|
+
this.chosenFile = file;
|
|
106
|
+
this.editor._insertingImage = false;
|
|
107
|
+
log('[fileChosen] file: ', file);
|
|
108
|
+
var reader = new FileReader();
|
|
109
|
+
reader.onload = function () {
|
|
110
|
+
var dataURL = reader.result;
|
|
111
|
+
_this.updateNode({
|
|
112
|
+
src: dataURL
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
reader.readAsDataURL(file);
|
|
116
|
+
}
|
|
117
|
+
}, {
|
|
118
|
+
key: "progress",
|
|
119
|
+
value: function progress(percent, bytes, total) {
|
|
120
|
+
log('progress: ', percent, bytes, total);
|
|
121
|
+
this.updateNode({
|
|
122
|
+
percent: percent
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Add a getter method to retrieve the chosen file
|
|
127
|
+
}, {
|
|
128
|
+
key: "getChosenFile",
|
|
129
|
+
value: function getChosenFile() {
|
|
130
|
+
return this.chosenFile;
|
|
131
|
+
}
|
|
132
|
+
}]);
|
|
133
|
+
}();
|
|
134
|
+
var _default = exports["default"] = InsertImageHandler;
|
|
135
|
+
//# sourceMappingURL=InsertImageHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertImageHandler.js","names":["_debug","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","InsertImageHandler","editor","nodeInfo","onFinish","isPasted","undefined","_classCallCheck2","node","nodePos","chosenFile","_createClass2","key","value","cancel","deleteNode","err","_insertingImage","updateNode","newAttrs","_this$editor","state","view","tr","doc","nodeAt","transaction","setNodeMarkup","attrs","dispatch","_this$editor2","nodeSize","done","src","console","loaded","percent","fileChosen","file","_this","reader","FileReader","onload","dataURL","result","readAsDataURL","progress","bytes","total","getChosenFile","_default","exports"],"sources":["../../../src/components/image/InsertImageHandler.js"],"sourcesContent":["import debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} onFinish - a function to call if uploading fails or succeeds\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(editor, nodeInfo, onFinish, isPasted = false) {\n this.editor = editor;\n this.nodeInfo = nodeInfo;\n this.node = nodeInfo[0];\n this.nodePos = nodeInfo[1];\n this.onFinish = onFinish;\n this.isPasted = isPasted;\n this.chosenFile = null;\n }\n\n cancel() {\n log('insert cancelled');\n\n try {\n this.deleteNode();\n this.onFinish(false);\n } catch (err) {\n //\n } finally {\n this.editor._insertingImage = false;\n }\n }\n\n updateNode(newAttrs) {\n const { state, view } = this.editor;\n const { tr } = state;\n const node = state.doc.nodeAt(this.nodePos);\n\n if (node) {\n const transaction = tr.setNodeMarkup(this.nodePos, undefined, { ...node.attrs, ...newAttrs });\n\n view.dispatch(transaction);\n }\n }\n\n deleteNode() {\n const { state, view } = this.editor;\n const { tr } = state;\n\n const transaction = tr.delete(this.nodePos, this.nodePos + this.node.nodeSize);\n\n view.dispatch(transaction);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.onFinish(false);\n } else {\n this.updateNode({ loaded: true, src, percent: 100 });\n this.onFinish(true);\n }\n\n this.editor._insertingImage = false;\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n // Save the chosen file to this.chosenFile\n this.chosenFile = file;\n this.editor._insertingImage = false;\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.updateNode({ src: dataURL });\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n this.updateNode({ percent });\n }\n\n // Add a getter method to retrieve the chosen file\n getChosenFile() {\n return this.chosenFile;\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":"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","ignoreList":[]}
|