@pie-lib/editable-html 12.1.0-next.2 → 12.1.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/block-tags.js +24 -0
- package/lib/block-tags.js.map +1 -0
- package/lib/constants.js +11 -0
- package/lib/constants.js.map +1 -0
- package/lib/editor.js +1224 -0
- package/lib/editor.js.map +1 -0
- package/lib/index.js +208 -0
- package/lib/index.js.map +1 -0
- package/lib/parse-html.js +16 -0
- package/lib/parse-html.js.map +1 -0
- package/lib/plugins/characters/custom-popper.js +57 -0
- package/lib/plugins/characters/custom-popper.js.map +1 -0
- package/lib/plugins/characters/index.js +265 -0
- package/lib/plugins/characters/index.js.map +1 -0
- package/lib/plugins/characters/utils.js +378 -0
- package/lib/plugins/characters/utils.js.map +1 -0
- package/lib/plugins/css/icons/index.js +25 -0
- package/lib/plugins/css/icons/index.js.map +1 -0
- package/lib/plugins/css/index.js +338 -0
- package/lib/plugins/css/index.js.map +1 -0
- package/lib/plugins/customPlugin/index.js +98 -0
- package/lib/plugins/customPlugin/index.js.map +1 -0
- package/lib/plugins/html/icons/index.js +30 -0
- package/lib/plugins/html/icons/index.js.map +1 -0
- package/lib/plugins/html/index.js +71 -0
- package/lib/plugins/html/index.js.map +1 -0
- package/lib/plugins/image/alt-dialog.js +100 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -0
- package/lib/plugins/image/component.js +343 -0
- package/lib/plugins/image/component.js.map +1 -0
- package/lib/plugins/image/image-toolbar.js +137 -0
- package/lib/plugins/image/image-toolbar.js.map +1 -0
- package/lib/plugins/image/index.js +223 -0
- package/lib/plugins/image/index.js.map +1 -0
- package/lib/plugins/image/insert-image-handler.js +140 -0
- package/lib/plugins/image/insert-image-handler.js.map +1 -0
- package/lib/plugins/index.js +342 -0
- package/lib/plugins/index.js.map +1 -0
- package/lib/plugins/list/index.js +288 -0
- package/lib/plugins/list/index.js.map +1 -0
- package/lib/plugins/math/index.js +402 -0
- package/lib/plugins/math/index.js.map +1 -0
- package/lib/plugins/media/index.js +330 -0
- package/lib/plugins/media/index.js.map +1 -0
- package/lib/plugins/media/media-dialog.js +594 -0
- package/lib/plugins/media/media-dialog.js.map +1 -0
- package/lib/plugins/media/media-toolbar.js +76 -0
- package/lib/plugins/media/media-toolbar.js.map +1 -0
- package/lib/plugins/media/media-wrapper.js +64 -0
- package/lib/plugins/media/media-wrapper.js.map +1 -0
- package/lib/plugins/rendering/index.js +36 -0
- package/lib/plugins/rendering/index.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +271 -0
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/index.js +55 -0
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/utils.js +38 -0
- package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -0
- package/lib/plugins/respArea/explicit-constructed-response/index.js +50 -0
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -0
- package/lib/plugins/respArea/icons/index.js +72 -0
- package/lib/plugins/respArea/icons/index.js.map +1 -0
- package/lib/plugins/respArea/index.js +287 -0
- package/lib/plugins/respArea/index.js.map +1 -0
- package/lib/plugins/respArea/inline-dropdown/index.js +67 -0
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -0
- package/lib/plugins/respArea/math-templated/index.js +112 -0
- package/lib/plugins/respArea/math-templated/index.js.map +1 -0
- package/lib/plugins/respArea/utils.js +95 -0
- package/lib/plugins/respArea/utils.js.map +1 -0
- package/lib/plugins/table/CustomTablePlugin.js +116 -0
- package/lib/plugins/table/CustomTablePlugin.js.map +1 -0
- package/lib/plugins/table/icons/index.js +55 -0
- package/lib/plugins/table/icons/index.js.map +1 -0
- package/lib/plugins/table/index.js +413 -0
- package/lib/plugins/table/index.js.map +1 -0
- package/lib/plugins/table/table-toolbar.js +138 -0
- package/lib/plugins/table/table-toolbar.js.map +1 -0
- package/lib/plugins/textAlign/icons/index.js +187 -0
- package/lib/plugins/textAlign/icons/index.js.map +1 -0
- package/lib/plugins/textAlign/index.js +26 -0
- package/lib/plugins/textAlign/index.js.map +1 -0
- package/lib/plugins/toolbar/default-toolbar.js +180 -0
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -0
- package/lib/plugins/toolbar/done-button.js +35 -0
- package/lib/plugins/toolbar/done-button.js.map +1 -0
- package/lib/plugins/toolbar/editor-and-toolbar.js +258 -0
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -0
- package/lib/plugins/toolbar/index.js +29 -0
- package/lib/plugins/toolbar/index.js.map +1 -0
- package/lib/plugins/toolbar/toolbar-buttons.js +145 -0
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -0
- package/lib/plugins/toolbar/toolbar.js +307 -0
- package/lib/plugins/toolbar/toolbar.js.map +1 -0
- package/lib/plugins/utils.js +42 -0
- package/lib/plugins/utils.js.map +1 -0
- package/lib/serialization.js +571 -0
- package/lib/serialization.js.map +1 -0
- package/lib/shared/alert-dialog.js +68 -0
- package/lib/theme.js +8 -0
- package/lib/theme.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,307 @@
|
|
|
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.Toolbar = 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 _react = _interopRequireDefault(require("react"));
|
|
15
|
+
var _slate = require("slate");
|
|
16
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
17
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
20
|
+
var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
21
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
22
|
+
var _doneButton = require("./done-button");
|
|
23
|
+
var _utils = require("../utils");
|
|
24
|
+
var _styles = require("@mui/material/styles");
|
|
25
|
+
var _defaultToolbar = _interopRequireDefault(require("./default-toolbar"));
|
|
26
|
+
var _characters = require("../characters");
|
|
27
|
+
var _constants = require("../../constants");
|
|
28
|
+
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; }
|
|
29
|
+
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; }
|
|
30
|
+
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)); }
|
|
31
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
32
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
|
|
33
|
+
var StyledToolbar = (0, _styles.styled)('div', {
|
|
34
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
35
|
+
return !['hasDoneButton', 'position', 'alignment', 'focused', 'autoWidth', 'hidden'].includes(prop);
|
|
36
|
+
}
|
|
37
|
+
})(function (_ref) {
|
|
38
|
+
var hasDoneButton = _ref.hasDoneButton,
|
|
39
|
+
position = _ref.position,
|
|
40
|
+
alignment = _ref.alignment,
|
|
41
|
+
focused = _ref.focused,
|
|
42
|
+
autoWidth = _ref.autoWidth,
|
|
43
|
+
hidden = _ref.hidden;
|
|
44
|
+
return {
|
|
45
|
+
position: 'absolute',
|
|
46
|
+
zIndex: 10,
|
|
47
|
+
cursor: 'pointer',
|
|
48
|
+
justifyContent: 'space-between',
|
|
49
|
+
background: 'var(--editable-html-toolbar-bg, #efefef)',
|
|
50
|
+
minWidth: hasDoneButton ? '280px' : '265px',
|
|
51
|
+
margin: '5px 0 0 0',
|
|
52
|
+
padding: '2px',
|
|
53
|
+
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)',
|
|
54
|
+
boxSizing: 'border-box',
|
|
55
|
+
display: 'flex',
|
|
56
|
+
opacity: focused ? 1 : 0,
|
|
57
|
+
pointerEvents: focused ? 'auto' : 'none',
|
|
58
|
+
top: position === 'top' ? '-45px' : 'auto',
|
|
59
|
+
right: alignment === 'right' ? 0 : 'auto',
|
|
60
|
+
width: autoWidth ? 'auto' : '100%',
|
|
61
|
+
visibility: hidden ? 'hidden' : 'visible'
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
var SharedContainer = (0, _styles.styled)('div')({
|
|
65
|
+
display: 'flex'
|
|
66
|
+
});
|
|
67
|
+
var StyledIconButton = (0, _styles.styled)(_IconButton["default"])({
|
|
68
|
+
width: '28px',
|
|
69
|
+
height: '28px',
|
|
70
|
+
padding: '4px',
|
|
71
|
+
verticalAlign: 'top'
|
|
72
|
+
});
|
|
73
|
+
var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, onDataChange) {
|
|
74
|
+
if (!plugin) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (!plugin.toolbar) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (plugin.toolbar.CustomToolbarComp) {
|
|
81
|
+
/**
|
|
82
|
+
* Using a pre-defined Component should be preferred
|
|
83
|
+
* as the rendering of it (and it's children) can be optimized by React.
|
|
84
|
+
* If you keep re-defining the comp with an inline function
|
|
85
|
+
* then react will have to re-render.
|
|
86
|
+
*/
|
|
87
|
+
return plugin.toolbar.CustomToolbarComp;
|
|
88
|
+
} else if (typeof plugin.toolbar.customToolbar === 'function') {
|
|
89
|
+
log('deprecated - use CustomToolbarComp');
|
|
90
|
+
return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
var Toolbar = exports.Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
94
|
+
function Toolbar(props) {
|
|
95
|
+
var _this;
|
|
96
|
+
(0, _classCallCheck2["default"])(this, Toolbar);
|
|
97
|
+
_this = _callSuper(this, Toolbar, [props]);
|
|
98
|
+
(0, _defineProperty2["default"])(_this, "hasMark", function (type) {
|
|
99
|
+
var value = _this.props.value;
|
|
100
|
+
return value.marks.some(function (mark) {
|
|
101
|
+
return mark.type == type;
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
(0, _defineProperty2["default"])(_this, "hasBlock", function (type) {
|
|
105
|
+
var value = _this.props.value;
|
|
106
|
+
return value.blocks.some(function (node) {
|
|
107
|
+
return node.type == type;
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
(0, _defineProperty2["default"])(_this, "onToggle", function (plugin) {
|
|
111
|
+
var _this$props = _this.props,
|
|
112
|
+
value = _this$props.value,
|
|
113
|
+
onChange = _this$props.onChange;
|
|
114
|
+
if (!plugin.onToggle) return;
|
|
115
|
+
var change = plugin.onToggle(value.change());
|
|
116
|
+
onChange(change);
|
|
117
|
+
});
|
|
118
|
+
(0, _defineProperty2["default"])(_this, "onClick", function (e) {
|
|
119
|
+
log('[onClick]');
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
});
|
|
122
|
+
(0, _defineProperty2["default"])(_this, "onButtonClick", function (fn) {
|
|
123
|
+
return function (e) {
|
|
124
|
+
e.preventDefault();
|
|
125
|
+
fn();
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
(0, _defineProperty2["default"])(_this, "onToolbarDone", function (change, finishEditing) {
|
|
129
|
+
log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);
|
|
130
|
+
var _this$props2 = _this.props,
|
|
131
|
+
onChange = _this$props2.onChange,
|
|
132
|
+
onDone = _this$props2.onDone;
|
|
133
|
+
|
|
134
|
+
// use handler only if this is an actual Slate Change
|
|
135
|
+
if (change instanceof _slate.Change) {
|
|
136
|
+
onChange(change, function () {
|
|
137
|
+
if (finishEditing) {
|
|
138
|
+
onDone();
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
} else {
|
|
142
|
+
if (finishEditing) {
|
|
143
|
+
log('[onToolbarChange] call onDone');
|
|
144
|
+
onDone();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
(0, _defineProperty2["default"])(_this, "onDeleteClick", (0, _debounce["default"])(function (e, plugin, node, value, onChange) {
|
|
149
|
+
return plugin.deleteNode(e, node, value, onChange);
|
|
150
|
+
}, 500));
|
|
151
|
+
(0, _defineProperty2["default"])(_this, "onDeleteMouseDown", function (e, plugin, node, value, onChange) {
|
|
152
|
+
e.persist();
|
|
153
|
+
_this.onDeleteClick(e, plugin, node, value, onChange);
|
|
154
|
+
});
|
|
155
|
+
_this.state = {
|
|
156
|
+
change: null
|
|
157
|
+
};
|
|
158
|
+
return _this;
|
|
159
|
+
}
|
|
160
|
+
(0, _inherits2["default"])(Toolbar, _React$Component);
|
|
161
|
+
return (0, _createClass2["default"])(Toolbar, [{
|
|
162
|
+
key: "componentWillUnmount",
|
|
163
|
+
value: function componentWillUnmount() {
|
|
164
|
+
(0, _characters.removeDialogs)();
|
|
165
|
+
}
|
|
166
|
+
}, {
|
|
167
|
+
key: "render",
|
|
168
|
+
value: function render() {
|
|
169
|
+
var _this2 = this;
|
|
170
|
+
var _this$props3 = this.props,
|
|
171
|
+
plugins = _this$props3.plugins,
|
|
172
|
+
pluginProps = _this$props3.pluginProps,
|
|
173
|
+
toolbarOpts = _this$props3.toolbarOpts,
|
|
174
|
+
value = _this$props3.value,
|
|
175
|
+
autoWidth = _this$props3.autoWidth,
|
|
176
|
+
onChange = _this$props3.onChange,
|
|
177
|
+
getFocusedValue = _this$props3.getFocusedValue,
|
|
178
|
+
isFocused = _this$props3.isFocused,
|
|
179
|
+
onDone = _this$props3.onDone,
|
|
180
|
+
toolbarRef = _this$props3.toolbarRef,
|
|
181
|
+
doneButtonRef = _this$props3.doneButtonRef,
|
|
182
|
+
onBlur = _this$props3.onBlur,
|
|
183
|
+
onFocus = _this$props3.onFocus;
|
|
184
|
+
var node = (0, _utils.findSingleNode)(value);
|
|
185
|
+
var parentNode = (0, _utils.findParentNode)(value, node);
|
|
186
|
+
log(' --------------> [render] node: ', node);
|
|
187
|
+
log('[render] node: ', node);
|
|
188
|
+
var plugin = plugins.find(function (p) {
|
|
189
|
+
if (!node) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (p.toolbar) {
|
|
193
|
+
return p.toolbar.supports && p.toolbar.supports(node, value);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
var parentPlugin = plugins.find(function (p) {
|
|
197
|
+
if (!parentNode) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (p.toolbar) {
|
|
201
|
+
return p.toolbar.supports && p.toolbar.supports(parentNode, value);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
log('[render] plugin: ', plugin);
|
|
205
|
+
var handleDone = function handleDone(change, done) {
|
|
206
|
+
var handler = onDone;
|
|
207
|
+
if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {
|
|
208
|
+
handler = _this2.onToolbarDone;
|
|
209
|
+
}
|
|
210
|
+
handler(change, done);
|
|
211
|
+
if (parentPlugin && parentPlugin.handleDone) {
|
|
212
|
+
parentPlugin.handleDone(value, node, plugin, onChange);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
var handleDataChange = function handleDataChange(key, data) {
|
|
216
|
+
_this2.props.onDataChange(key, data);
|
|
217
|
+
};
|
|
218
|
+
var CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);
|
|
219
|
+
var filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;
|
|
220
|
+
log('[render] CustomToolbar: ', CustomToolbar);
|
|
221
|
+
var parentExtraStyles = parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};
|
|
222
|
+
var pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};
|
|
223
|
+
var extraStyles = _objectSpread(_objectSpread({}, pluginExtraStyles), parentExtraStyles);
|
|
224
|
+
var deletable = node && plugin && plugin.deleteNode;
|
|
225
|
+
var customToolbarShowDone = node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;
|
|
226
|
+
|
|
227
|
+
// If there is a toolbarOpts we check if the showDone is not equal to false
|
|
228
|
+
var defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;
|
|
229
|
+
var hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;
|
|
230
|
+
var customStyles = toolbarOpts.minWidth !== undefined ? {
|
|
231
|
+
minWidth: toolbarOpts.minWidth
|
|
232
|
+
} : {};
|
|
233
|
+
return /*#__PURE__*/_react["default"].createElement(StyledToolbar, {
|
|
234
|
+
className: _constants.PIE_TOOLBAR__CLASS,
|
|
235
|
+
hasDoneButton: hasDoneButton,
|
|
236
|
+
position: toolbarOpts.position,
|
|
237
|
+
alignment: toolbarOpts.alignment,
|
|
238
|
+
focused: toolbarOpts.alwaysVisible || isFocused,
|
|
239
|
+
autoWidth: autoWidth,
|
|
240
|
+
hidden: toolbarOpts.isHidden === true,
|
|
241
|
+
style: _objectSpread(_objectSpread({}, extraStyles), customStyles),
|
|
242
|
+
onClick: this.onClick,
|
|
243
|
+
ref: toolbarRef
|
|
244
|
+
}, CustomToolbar ? /*#__PURE__*/_react["default"].createElement(CustomToolbar, {
|
|
245
|
+
node: node,
|
|
246
|
+
value: value,
|
|
247
|
+
getFocusedValue: getFocusedValue,
|
|
248
|
+
onToolbarDone: this.onToolbarDone,
|
|
249
|
+
onDataChange: handleDataChange,
|
|
250
|
+
pluginProps: pluginProps
|
|
251
|
+
}) : /*#__PURE__*/_react["default"].createElement(_defaultToolbar["default"], {
|
|
252
|
+
plugins: filteredPlugins,
|
|
253
|
+
pluginProps: pluginProps,
|
|
254
|
+
value: value,
|
|
255
|
+
onChange: onChange,
|
|
256
|
+
getFocusedValue: getFocusedValue,
|
|
257
|
+
showDone: defaultToolbarShowDone,
|
|
258
|
+
onDone: handleDone,
|
|
259
|
+
deletable: deletable,
|
|
260
|
+
isHtmlMode: toolbarOpts.isHtmlMode,
|
|
261
|
+
onFocus: onFocus,
|
|
262
|
+
doneButtonRef: doneButtonRef,
|
|
263
|
+
onBlur: onBlur
|
|
264
|
+
}), /*#__PURE__*/_react["default"].createElement(SharedContainer, null, deletable && /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
|
|
265
|
+
"aria-label": "Delete",
|
|
266
|
+
onMouseDown: function onMouseDown(e) {
|
|
267
|
+
return _this2.onDeleteMouseDown(e, plugin, node, value, onChange);
|
|
268
|
+
},
|
|
269
|
+
size: "large"
|
|
270
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)), customToolbarShowDone && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
|
|
271
|
+
doneButtonRef: doneButtonRef,
|
|
272
|
+
onClick: handleDone
|
|
273
|
+
})));
|
|
274
|
+
}
|
|
275
|
+
}]);
|
|
276
|
+
}(_react["default"].Component);
|
|
277
|
+
(0, _defineProperty2["default"])(Toolbar, "propTypes", {
|
|
278
|
+
zIndex: _propTypes["default"].number,
|
|
279
|
+
value: _slatePropTypes["default"].value.isRequired,
|
|
280
|
+
plugins: _propTypes["default"].array,
|
|
281
|
+
plugin: _propTypes["default"].object,
|
|
282
|
+
onImageClick: _propTypes["default"].func,
|
|
283
|
+
onDone: _propTypes["default"].func.isRequired,
|
|
284
|
+
toolbarRef: _propTypes["default"].func.isRequired,
|
|
285
|
+
classes: _propTypes["default"].object.isRequired,
|
|
286
|
+
isFocused: _propTypes["default"].bool,
|
|
287
|
+
autoWidth: _propTypes["default"].bool,
|
|
288
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
289
|
+
getFocusedValue: _propTypes["default"].func.isRequired,
|
|
290
|
+
pluginProps: _propTypes["default"].object,
|
|
291
|
+
toolbarOpts: _propTypes["default"].shape({
|
|
292
|
+
isHtmlMode: _propTypes["default"].bool,
|
|
293
|
+
position: _propTypes["default"].oneOf(['bottom', 'top']),
|
|
294
|
+
alignment: _propTypes["default"].oneOf(['left', 'right']),
|
|
295
|
+
alwaysVisible: _propTypes["default"].bool,
|
|
296
|
+
ref: _propTypes["default"].func,
|
|
297
|
+
showDone: _propTypes["default"].bool,
|
|
298
|
+
minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
299
|
+
isHidden: _propTypes["default"].bool
|
|
300
|
+
}),
|
|
301
|
+
onDataChange: _propTypes["default"].func,
|
|
302
|
+
doneButtonRef: _propTypes["default"].func,
|
|
303
|
+
onBlur: _propTypes["default"].func,
|
|
304
|
+
onFocus: _propTypes["default"].func
|
|
305
|
+
});
|
|
306
|
+
var _default = exports["default"] = Toolbar;
|
|
307
|
+
//# sourceMappingURL=toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.js","names":["_react","_interopRequireDefault","require","_slate","_Delete","_IconButton","_propTypes","_debug","_slatePropTypes","_debounce","_doneButton","_utils","_styles","_defaultToolbar","_characters","_constants","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","StyledToolbar","styled","shouldForwardProp","prop","includes","_ref","hasDoneButton","position","alignment","focused","autoWidth","hidden","zIndex","cursor","justifyContent","background","minWidth","margin","padding","boxShadow","boxSizing","display","opacity","pointerEvents","top","right","width","visibility","SharedContainer","StyledIconButton","IconButton","height","verticalAlign","getCustomToolbar","plugin","node","value","handleDone","getFocusedValue","onDataChange","toolbar","CustomToolbarComp","customToolbar","Toolbar","exports","_React$Component","props","_this","_classCallCheck2","type","marks","some","mark","blocks","_this$props","onChange","onToggle","change","preventDefault","fn","finishEditing","_this$props2","onDone","Change","debounce","deleteNode","persist","onDeleteClick","state","_inherits2","_createClass2","key","componentWillUnmount","removeCharacterDialogs","render","_this2","_this$props3","plugins","pluginProps","toolbarOpts","isFocused","toolbarRef","doneButtonRef","onBlur","onFocus","findSingleNode","parentNode","findParentNode","find","p","supports","parentPlugin","done","handler","onToolbarDone","handleDataChange","data","CustomToolbar","filteredPlugins","filterPlugins","parentExtraStyles","pluginStyles","pluginExtraStyles","extraStyles","deletable","customToolbarShowDone","showDone","alwaysVisible","defaultToolbarShowDone","customStyles","undefined","createElement","className","PIE_TOOLBAR__CLASS","isHidden","style","onClick","ref","isHtmlMode","onMouseDown","onDeleteMouseDown","size","DoneButton","React","Component","PropTypes","number","SlatePropTypes","isRequired","array","object","onImageClick","func","classes","bool","shape","oneOf","oneOfType","string","_default"],"sources":["../../../src/plugins/toolbar/toolbar.jsx"],"sourcesContent":["import React from 'react';\nimport { Change } from 'slate';\nimport Delete from '@mui/icons-material/Delete';\nimport IconButton from '@mui/material/IconButton';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport debounce from 'lodash/debounce';\n\nimport { DoneButton } from './done-button';\n\nimport { findSingleNode, findParentNode } from '../utils';\nimport { styled } from '@mui/material/styles';\nimport DefaultToolbar from './default-toolbar';\nimport { removeDialogs as removeCharacterDialogs } from '../characters';\nimport { PIE_TOOLBAR__CLASS } from '../../constants';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst StyledToolbar = styled('div', {\n shouldForwardProp: (prop) => !['hasDoneButton', 'position', 'alignment', 'focused', 'autoWidth', 'hidden'].includes(prop),\n})(({ hasDoneButton, position, alignment, focused, autoWidth, hidden }) => ({\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: hasDoneButton ? '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: focused ? 1 : 0,\n pointerEvents: focused ? 'auto' : 'none',\n top: position === 'top' ? '-45px' : 'auto',\n right: alignment === 'right' ? 0 : 'auto',\n width: autoWidth ? 'auto' : '100%',\n visibility: hidden ? 'hidden' : 'visible',\n}));\n\nconst SharedContainer = styled('div')({\n display: 'flex',\n});\n\nconst StyledIconButton = styled(IconButton)({\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n});\n\nconst getCustomToolbar = (plugin, node, value, handleDone, getFocusedValue, onDataChange) => {\n if (!plugin) {\n return;\n }\n\n if (!plugin.toolbar) {\n return;\n }\n\n if (plugin.toolbar.CustomToolbarComp) {\n /**\n * Using a pre-defined Component should be preferred\n * as the rendering of it (and it's children) can be optimized by React.\n * If you keep re-defining the comp with an inline function\n * then react will have to re-render.\n */\n return plugin.toolbar.CustomToolbarComp;\n } else if (typeof plugin.toolbar.customToolbar === 'function') {\n log('deprecated - use CustomToolbarComp');\n return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);\n }\n};\n\nexport class Toolbar extends React.Component {\n static propTypes = {\n zIndex: PropTypes.number,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array,\n plugin: PropTypes.object,\n onImageClick: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n toolbarRef: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isFocused: PropTypes.bool,\n autoWidth: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n isHtmlMode: PropTypes.bool,\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n ref: PropTypes.func,\n showDone: PropTypes.bool,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isHidden: PropTypes.bool,\n }),\n onDataChange: PropTypes.func,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n change: null,\n };\n }\n\n componentWillUnmount() {\n removeCharacterDialogs();\n }\n\n hasMark = (type) => {\n const { value } = this.props;\n return value.marks.some((mark) => mark.type == type);\n };\n\n hasBlock = (type) => {\n const { value } = this.props;\n return value.blocks.some((node) => node.type == type);\n };\n\n onToggle = (plugin) => {\n const { value, onChange } = this.props;\n\n if (!plugin.onToggle) return;\n\n const change = plugin.onToggle(value.change());\n onChange(change);\n };\n\n onClick = (e) => {\n log('[onClick]');\n e.preventDefault();\n };\n\n onButtonClick = (fn) => {\n return (e) => {\n e.preventDefault();\n fn();\n };\n };\n\n onToolbarDone = (change, finishEditing) => {\n log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);\n const { onChange, onDone } = this.props;\n\n // use handler only if this is an actual Slate Change\n if (change instanceof Change) {\n onChange(change, () => {\n if (finishEditing) {\n onDone();\n }\n });\n } else {\n if (finishEditing) {\n log('[onToolbarChange] call onDone');\n onDone();\n }\n }\n };\n\n onDeleteClick = debounce((e, plugin, node, value, onChange) => plugin.deleteNode(e, node, value, onChange), 500);\n\n onDeleteMouseDown = (e, plugin, node, value, onChange) => {\n e.persist();\n this.onDeleteClick(e, plugin, node, value, onChange);\n };\n\n render() {\n const {\n plugins,\n pluginProps,\n toolbarOpts,\n value,\n autoWidth,\n onChange,\n getFocusedValue,\n isFocused,\n onDone,\n toolbarRef,\n doneButtonRef,\n onBlur,\n onFocus,\n } = this.props;\n\n const node = findSingleNode(value);\n const parentNode = findParentNode(value, node);\n\n log(' --------------> [render] node: ', node);\n log('[render] node: ', node);\n\n const plugin = plugins.find((p) => {\n if (!node) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(node, value);\n }\n });\n const parentPlugin = plugins.find((p) => {\n if (!parentNode) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(parentNode, value);\n }\n });\n\n log('[render] plugin: ', plugin);\n\n const handleDone = (change, done) => {\n let handler = onDone;\n\n if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {\n handler = this.onToolbarDone;\n }\n\n handler(change, done);\n\n if (parentPlugin && parentPlugin.handleDone) {\n parentPlugin.handleDone(value, node, plugin, onChange);\n }\n };\n\n const handleDataChange = (key, data) => {\n this.props.onDataChange(key, data);\n };\n\n const CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);\n\n const filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;\n\n log('[render] CustomToolbar: ', CustomToolbar);\n const parentExtraStyles =\n parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};\n const pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};\n const extraStyles = {\n ...pluginExtraStyles,\n ...parentExtraStyles,\n };\n\n const deletable = node && plugin && plugin.deleteNode;\n const customToolbarShowDone =\n node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;\n\n // If there is a toolbarOpts we check if the showDone is not equal to false\n const defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;\n\n const hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <StyledToolbar\n className={PIE_TOOLBAR__CLASS}\n hasDoneButton={hasDoneButton}\n position={toolbarOpts.position}\n alignment={toolbarOpts.alignment}\n focused={toolbarOpts.alwaysVisible || isFocused}\n autoWidth={autoWidth}\n hidden={toolbarOpts.isHidden === true}\n style={{ ...extraStyles, ...customStyles }}\n onClick={this.onClick}\n ref={toolbarRef}\n >\n {CustomToolbar ? (\n <CustomToolbar\n node={node}\n value={value}\n getFocusedValue={getFocusedValue}\n onToolbarDone={this.onToolbarDone}\n onDataChange={handleDataChange}\n pluginProps={pluginProps}\n />\n ) : (\n <DefaultToolbar\n plugins={filteredPlugins}\n pluginProps={pluginProps}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n showDone={defaultToolbarShowDone}\n onDone={handleDone}\n deletable={deletable}\n isHtmlMode={toolbarOpts.isHtmlMode}\n onFocus={onFocus}\n doneButtonRef={doneButtonRef}\n onBlur={onBlur}\n />\n )}\n <SharedContainer>\n {deletable && (\n <StyledIconButton\n aria-label=\"Delete\"\n onMouseDown={(e) => this.onDeleteMouseDown(e, plugin, node, value, onChange)}\n size=\"large\"\n >\n <Delete />\n </StyledIconButton>\n )}\n {customToolbarShowDone && <DoneButton doneButtonRef={doneButtonRef} onClick={handleDone} />}\n </SharedContainer>\n </StyledToolbar>\n );\n }\n}\n\nexport default Toolbar;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hasNode = exports.hasMark = exports.hasBlock = exports.findSingleNode = exports.findParentNode = void 0;
|
|
7
|
+
var findSingleNode = exports.findSingleNode = function findSingleNode(value) {
|
|
8
|
+
if (!value || !value.isCollapsed || !value.startKey) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
var inline = value.document.getClosestInline(value.startKey);
|
|
12
|
+
if (inline) {
|
|
13
|
+
return inline;
|
|
14
|
+
}
|
|
15
|
+
var block = value.document.getClosestBlock(value.startKey);
|
|
16
|
+
if (block) {
|
|
17
|
+
return block;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
var findParentNode = exports.findParentNode = function findParentNode(value, node) {
|
|
21
|
+
if (!value || !node) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
return value.document.getParent(node.key);
|
|
25
|
+
};
|
|
26
|
+
var hasMark = exports.hasMark = function hasMark(value, type) {
|
|
27
|
+
return value && value.marks.some(function (mark) {
|
|
28
|
+
return mark.type == type;
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
var hasBlock = exports.hasBlock = function hasBlock(value, type) {
|
|
32
|
+
return value && value.blocks.some(function (node) {
|
|
33
|
+
return node.type == type;
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var hasNode = exports.hasNode = function hasNode(_ref, type) {
|
|
37
|
+
var document = _ref.document;
|
|
38
|
+
return document && document.nodes.some(function (node) {
|
|
39
|
+
return node.type == type;
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["findSingleNode","exports","value","isCollapsed","startKey","inline","document","getClosestInline","block","getClosestBlock","findParentNode","node","getParent","key","hasMark","type","marks","some","mark","hasBlock","blocks","hasNode","_ref","nodes"],"sources":["../../src/plugins/utils.js"],"sourcesContent":["export const findSingleNode = (value) => {\n if (!value || !value.isCollapsed || !value.startKey) {\n return;\n }\n\n const inline = value.document.getClosestInline(value.startKey);\n\n if (inline) {\n return inline;\n }\n\n const block = value.document.getClosestBlock(value.startKey);\n\n if (block) {\n return block;\n }\n};\n\nexport const findParentNode = (value, node) => {\n if (!value || !node) {\n return;\n }\n\n return value.document.getParent(node.key);\n};\n\nexport const hasMark = (value, type) => value && value.marks.some((mark) => mark.type == type);\n\nexport const hasBlock = (value, type) => value && value.blocks.some((node) => node.type == type);\n\nexport const hasNode = ({ document }, type) => document && document.nodes.some((node) => node.type == type);\n"],"mappings":";;;;;;AAAO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIE,KAAK,EAAK;EACvC,IAAI,CAACA,KAAK,IAAI,CAACA,KAAK,CAACC,WAAW,IAAI,CAACD,KAAK,CAACE,QAAQ,EAAE;IACnD;EACF;EAEA,IAAMC,MAAM,GAAGH,KAAK,CAACI,QAAQ,CAACC,gBAAgB,CAACL,KAAK,CAACE,QAAQ,CAAC;EAE9D,IAAIC,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEA,IAAMG,KAAK,GAAGN,KAAK,CAACI,QAAQ,CAACG,eAAe,CAACP,KAAK,CAACE,QAAQ,CAAC;EAE5D,IAAII,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;AACF,CAAC;AAEM,IAAME,cAAc,GAAAT,OAAA,CAAAS,cAAA,GAAG,SAAjBA,cAAcA,CAAIR,KAAK,EAAES,IAAI,EAAK;EAC7C,IAAI,CAACT,KAAK,IAAI,CAACS,IAAI,EAAE;IACnB;EACF;EAEA,OAAOT,KAAK,CAACI,QAAQ,CAACM,SAAS,CAACD,IAAI,CAACE,GAAG,CAAC;AAC3C,CAAC;AAEM,IAAMC,OAAO,GAAAb,OAAA,CAAAa,OAAA,GAAG,SAAVA,OAAOA,CAAIZ,KAAK,EAAEa,IAAI;EAAA,OAAKb,KAAK,IAAIA,KAAK,CAACc,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACH,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA;AAEvF,IAAMI,QAAQ,GAAAlB,OAAA,CAAAkB,QAAA,GAAG,SAAXA,QAAQA,CAAIjB,KAAK,EAAEa,IAAI;EAAA,OAAKb,KAAK,IAAIA,KAAK,CAACkB,MAAM,CAACH,IAAI,CAAC,UAACN,IAAI;IAAA,OAAKA,IAAI,CAACI,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA;AAEzF,IAAMM,OAAO,GAAApB,OAAA,CAAAoB,OAAA,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAkBP,IAAI;EAAA,IAAhBT,QAAQ,GAAAgB,IAAA,CAARhB,QAAQ;EAAA,OAAaA,QAAQ,IAAIA,QAAQ,CAACiB,KAAK,CAACN,IAAI,CAAC,UAACN,IAAI;IAAA,OAAKA,IAAI,CAACI,IAAI,IAAIA,IAAI;EAAA,EAAC;AAAA","ignoreList":[]}
|