@pie-lib/editable-html 10.0.0-beta.5 → 10.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +255 -152
- package/lib/components.js +15 -39
- package/lib/components.js.map +1 -1
- package/lib/editor.js +200 -356
- package/lib/editor.js.map +1 -1
- package/lib/index.js +25 -49
- package/lib/index.js.map +1 -1
- package/lib/new-serialization.js +6 -67
- package/lib/new-serialization.js.map +1 -1
- package/lib/parse-html.js +7 -6
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +3 -13
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +20 -59
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/hotKeys/index.js +9 -16
- package/lib/plugins/hotKeys/index.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +6 -27
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +42 -99
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +14 -50
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +16 -59
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +13 -25
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +6 -36
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +11 -46
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +89 -93
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +32 -109
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +107 -195
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +7 -27
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +9 -14
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +13 -53
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +6 -20
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +5 -10
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +16 -31
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +7 -54
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +3 -10
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +6 -21
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +1 -8
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +54 -187
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +12 -44
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +17 -46
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +2 -10
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +134 -144
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +2 -6
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +9 -40
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +29 -83
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +8 -30
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +11 -69
- package/lib/serialization.js.map +1 -1
- package/lib/test-serializer.js +3 -46
- package/lib/test-serializer.js.map +1 -1
- package/lib/theme.js +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +7 -7
- package/playground/image/data.js +20 -20
- package/playground/image/index.html +20 -22
- package/playground/image/index.jsx +10 -12
- package/playground/index.html +23 -25
- package/playground/mathquill/index.html +20 -23
- package/playground/mathquill/index.jsx +22 -18
- package/playground/prod-test/index.html +20 -24
- package/playground/prod-test/index.jsx +3 -5
- package/playground/schema-override/data.js +10 -10
- package/playground/schema-override/image-plugin.jsx +4 -3
- package/playground/schema-override/index.html +19 -21
- package/playground/schema-override/index.jsx +14 -13
- package/playground/serialization/data.js +10 -10
- package/playground/serialization/image-plugin.jsx +4 -3
- package/playground/serialization/index.html +20 -22
- package/playground/table-examples.html +8 -5
- package/playground/webpack.config.js +10 -10
- package/src/editor.jsx +108 -104
- package/src/index.jsx +20 -13
- package/src/parse-html.js +1 -1
- package/src/plugins/characters/custom-popper.js +7 -7
- package/src/plugins/characters/index.jsx +34 -23
- package/src/plugins/characters/utils.js +81 -81
- package/src/plugins/image/alt-dialog.jsx +5 -4
- package/src/plugins/image/component.jsx +47 -44
- package/src/plugins/image/image-toolbar.jsx +19 -27
- package/src/plugins/image/index.jsx +24 -18
- package/src/plugins/image/insert-image-handler.js +9 -0
- package/src/plugins/index.jsx +7 -9
- package/src/plugins/list/index.jsx +7 -7
- package/src/plugins/math/index.jsx +71 -28
- package/src/plugins/media/index.jsx +7 -7
- package/src/plugins/media/media-dialog.js +63 -89
- package/src/plugins/media/media-toolbar.jsx +8 -8
- package/src/plugins/media/media-wrapper.jsx +8 -5
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +19 -21
- package/src/plugins/respArea/drag-in-the-blank/index.jsx +4 -4
- package/src/plugins/respArea/explicit-constructed-response/index.jsx +5 -4
- package/src/plugins/respArea/icons/index.jsx +14 -11
- package/src/plugins/respArea/index.jsx +9 -15
- package/src/plugins/respArea/inline-dropdown/index.jsx +6 -6
- package/src/plugins/respArea/utils.jsx +7 -3
- package/src/plugins/table/icons/index.jsx +11 -17
- package/src/plugins/table/index.jsx +14 -10
- package/src/plugins/table/table-toolbar.jsx +6 -6
- package/src/plugins/toolbar/default-toolbar.jsx +9 -9
- package/src/plugins/toolbar/done-button.jsx +4 -4
- package/src/plugins/toolbar/editor-and-toolbar.jsx +36 -33
- package/src/plugins/toolbar/index.jsx +3 -2
- package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
- package/src/plugins/toolbar/toolbar.jsx +6 -1
- package/src/plugins/utils.js +2 -2
- package/src/serialization.jsx +34 -32
- package/lib/old-serialization.js +0 -330
- package/lib/slate-editor.js +0 -302
- package/package-lock.json +0 -3762
|
@@ -1,86 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = MediaPlugin;
|
|
9
8
|
exports.serialization = exports.insertDialog = void 0;
|
|
10
|
-
|
|
11
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
|
|
13
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
|
-
|
|
15
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
|
-
|
|
17
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
18
|
-
|
|
19
13
|
var _react = _interopRequireDefault(require("react"));
|
|
20
|
-
|
|
21
14
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
22
|
-
|
|
23
15
|
var _slate = require("slate");
|
|
24
|
-
|
|
25
16
|
var _slateHyperscript = require("slate-hyperscript");
|
|
26
|
-
|
|
27
17
|
var _slateReact = require("slate-react");
|
|
28
|
-
|
|
29
18
|
var _Theaters = _interopRequireDefault(require("@material-ui/icons/Theaters"));
|
|
30
|
-
|
|
31
19
|
var _VolumeUp = _interopRequireDefault(require("@material-ui/icons/VolumeUp"));
|
|
32
|
-
|
|
33
20
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
34
|
-
|
|
35
21
|
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
36
|
-
|
|
37
22
|
var _debug = _interopRequireDefault(require("debug"));
|
|
38
|
-
|
|
39
23
|
var _mediaDialog = _interopRequireDefault(require("./media-dialog"));
|
|
40
|
-
|
|
41
24
|
var _mediaToolbar = _interopRequireDefault(require("./media-toolbar"));
|
|
42
|
-
|
|
43
25
|
var _mediaWrapper = _interopRequireDefault(require("./media-wrapper"));
|
|
44
|
-
|
|
45
26
|
var _excluded = ["type", "callback", "opts"],
|
|
46
|
-
|
|
47
|
-
|
|
27
|
+
_excluded2 = ["src", "height", "width", "editing", "tag"];
|
|
48
28
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
|
-
|
|
50
29
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
|
-
|
|
52
30
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
53
|
-
|
|
54
31
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
55
|
-
|
|
56
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
57
|
-
|
|
32
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
58
33
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image');
|
|
59
|
-
|
|
60
34
|
var removeDialogs = function removeDialogs() {
|
|
61
35
|
var prevDialogs = document.querySelectorAll('.insert-media-dialog');
|
|
62
36
|
prevDialogs.forEach(function (s) {
|
|
63
37
|
return s.remove();
|
|
64
38
|
});
|
|
65
39
|
};
|
|
66
|
-
|
|
67
40
|
var insertDialog = function insertDialog(props) {
|
|
68
41
|
var newEl = document.createElement('div');
|
|
69
42
|
var type = props.type,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
43
|
+
callback = props.callback,
|
|
44
|
+
opts = props.opts,
|
|
45
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
73
46
|
var initialBodyOverflow = document.body.style.overflow;
|
|
74
47
|
removeDialogs();
|
|
75
48
|
newEl.className = 'insert-media-dialog';
|
|
76
49
|
document.body.style.overflow = 'hidden';
|
|
77
|
-
|
|
78
50
|
var handleClose = function handleClose(val, data) {
|
|
79
51
|
callback(val, data);
|
|
80
52
|
newEl.remove();
|
|
81
53
|
document.body.style.overflow = initialBodyOverflow;
|
|
82
54
|
};
|
|
83
|
-
|
|
84
55
|
var el = /*#__PURE__*/_react["default"].createElement(_mediaDialog["default"], (0, _extends2["default"])({}, rest, {
|
|
85
56
|
uploadSoundSupport: opts.uploadSoundSupport,
|
|
86
57
|
type: type,
|
|
@@ -88,28 +59,21 @@ var insertDialog = function insertDialog(props) {
|
|
|
88
59
|
open: true,
|
|
89
60
|
handleClose: handleClose
|
|
90
61
|
}));
|
|
91
|
-
|
|
92
62
|
_reactDom["default"].render(el, newEl);
|
|
93
|
-
|
|
94
63
|
document.body.appendChild(newEl);
|
|
95
64
|
};
|
|
96
|
-
|
|
97
65
|
exports.insertDialog = insertDialog;
|
|
98
|
-
|
|
99
66
|
var getNodeBy = function getNodeBy(editor, callback) {
|
|
100
67
|
var descendants = _slate.Node.descendants(editor, {
|
|
101
68
|
reverse: true
|
|
102
69
|
});
|
|
103
|
-
|
|
104
70
|
var _iterator = _createForOfIteratorHelper(descendants),
|
|
105
|
-
|
|
106
|
-
|
|
71
|
+
_step;
|
|
107
72
|
try {
|
|
108
73
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
109
74
|
var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
75
|
+
descendant = _step$value[0],
|
|
76
|
+
descendantPath = _step$value[1];
|
|
113
77
|
if (callback(descendant, descendantPath)) {
|
|
114
78
|
return [descendant, descendantPath];
|
|
115
79
|
}
|
|
@@ -120,24 +84,19 @@ var getNodeBy = function getNodeBy(editor, callback) {
|
|
|
120
84
|
_iterator.f();
|
|
121
85
|
}
|
|
122
86
|
};
|
|
123
|
-
|
|
124
87
|
var moveFocusAfterMedia = function moveFocusAfterMedia(editor, node) {
|
|
125
88
|
if (!editor || !node) {
|
|
126
89
|
return;
|
|
127
90
|
}
|
|
128
|
-
|
|
129
91
|
setTimeout(function () {
|
|
130
92
|
_slateReact.ReactEditor.focus(editor);
|
|
131
|
-
|
|
132
93
|
_slate.Transforms.move(editor, {
|
|
133
94
|
distance: 1,
|
|
134
95
|
unit: 'offset'
|
|
135
96
|
});
|
|
136
97
|
}, 0);
|
|
137
98
|
};
|
|
138
|
-
|
|
139
99
|
var types = ['audio', 'video'];
|
|
140
|
-
|
|
141
100
|
function MediaPlugin(type, opts) {
|
|
142
101
|
var toolbar = {
|
|
143
102
|
icon: type === 'audio' ? /*#__PURE__*/_react["default"].createElement(_VolumeUp["default"], null) : /*#__PURE__*/_react["default"].createElement(_Theaters["default"], null),
|
|
@@ -167,7 +126,6 @@ function MediaPlugin(type, opts) {
|
|
|
167
126
|
opts: opts,
|
|
168
127
|
callback: function callback(val, data) {
|
|
169
128
|
var nodePath = _slateReact.ReactEditor.findPath(editor, inline);
|
|
170
|
-
|
|
171
129
|
if (inline) {
|
|
172
130
|
if (!val) {
|
|
173
131
|
editor.apply({
|
|
@@ -189,7 +147,6 @@ function MediaPlugin(type, opts) {
|
|
|
189
147
|
});
|
|
190
148
|
}
|
|
191
149
|
}
|
|
192
|
-
|
|
193
150
|
moveFocusAfterMedia(editor, inline);
|
|
194
151
|
}
|
|
195
152
|
});
|
|
@@ -200,16 +157,13 @@ function MediaPlugin(type, opts) {
|
|
|
200
157
|
toolbar: toolbar,
|
|
201
158
|
rules: function rules(editor) {
|
|
202
159
|
var isVoid = editor.isVoid,
|
|
203
|
-
|
|
204
|
-
|
|
160
|
+
isInline = editor.isInline;
|
|
205
161
|
editor.isVoid = function (element) {
|
|
206
162
|
return ['audio', 'video'].includes(element.type) ? true : isVoid(element);
|
|
207
163
|
};
|
|
208
|
-
|
|
209
164
|
editor.isInline = function (element) {
|
|
210
165
|
return ['audio', 'video'].includes(element.type) ? true : isInline(element);
|
|
211
166
|
};
|
|
212
|
-
|
|
213
167
|
return editor;
|
|
214
168
|
},
|
|
215
169
|
supports: function supports(node) {
|
|
@@ -218,24 +172,19 @@ function MediaPlugin(type, opts) {
|
|
|
218
172
|
renderNode: function renderNode(props) {
|
|
219
173
|
if (props.node.type === type) {
|
|
220
174
|
var node = props.node,
|
|
221
|
-
|
|
175
|
+
editor = props.editor;
|
|
222
176
|
var data = node.data;
|
|
223
|
-
|
|
224
177
|
var _omit = (0, _omit2["default"])(data, ['newMedia', 'urlToUse']),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
178
|
+
src = _omit.src,
|
|
179
|
+
height = _omit.height,
|
|
180
|
+
width = _omit.width,
|
|
181
|
+
editing = _omit.editing,
|
|
182
|
+
tag = _omit.tag,
|
|
183
|
+
rest = (0, _objectWithoutProperties2["default"])(_omit, _excluded2);
|
|
232
184
|
var attributes = _objectSpread(_objectSpread({}, rest), props.attributes);
|
|
233
|
-
|
|
234
185
|
var handleEdit = function handleEdit(event) {
|
|
235
186
|
var nodeToEdit = _slateReact.ReactEditor.toSlateNode(editor, event.target);
|
|
236
|
-
|
|
237
187
|
var nodePath = _slateReact.ReactEditor.findPath(editor, nodeToEdit);
|
|
238
|
-
|
|
239
188
|
editor.apply({
|
|
240
189
|
type: 'set_node',
|
|
241
190
|
path: nodePath,
|
|
@@ -254,7 +203,6 @@ function MediaPlugin(type, opts) {
|
|
|
254
203
|
opts: opts,
|
|
255
204
|
callback: function callback(val, data) {
|
|
256
205
|
var nodePath = _slateReact.ReactEditor.findPath(editor, nodeToEdit);
|
|
257
|
-
|
|
258
206
|
if (nodePath && val) {
|
|
259
207
|
editor.apply({
|
|
260
208
|
type: 'set_node',
|
|
@@ -272,28 +220,21 @@ function MediaPlugin(type, opts) {
|
|
|
272
220
|
}
|
|
273
221
|
}));
|
|
274
222
|
};
|
|
275
|
-
|
|
276
223
|
var handleDelete = function handleDelete(event) {
|
|
277
224
|
var nodeToEdit = _slateReact.ReactEditor.toSlateNode(editor, event.target);
|
|
278
|
-
|
|
279
225
|
var nodePath = _slateReact.ReactEditor.findPath(editor, nodeToEdit);
|
|
280
|
-
|
|
281
226
|
editor.apply({
|
|
282
227
|
type: 'remove_node',
|
|
283
228
|
path: nodePath
|
|
284
229
|
});
|
|
285
230
|
};
|
|
286
|
-
|
|
287
231
|
var style = {};
|
|
288
|
-
|
|
289
232
|
if (width) {
|
|
290
233
|
style.width = "".concat(width, "px");
|
|
291
234
|
}
|
|
292
|
-
|
|
293
235
|
if (height) {
|
|
294
236
|
style.height = "".concat(height, "px");
|
|
295
237
|
}
|
|
296
|
-
|
|
297
238
|
if (tag === 'audio') {
|
|
298
239
|
return /*#__PURE__*/_react["default"].createElement(_mediaWrapper["default"], {
|
|
299
240
|
"data-type": type,
|
|
@@ -309,7 +250,6 @@ function MediaPlugin(type, opts) {
|
|
|
309
250
|
onRemove: handleDelete
|
|
310
251
|
}), props.children);
|
|
311
252
|
}
|
|
312
|
-
|
|
313
253
|
return /*#__PURE__*/_react["default"].createElement(_mediaWrapper["default"], {
|
|
314
254
|
"data-type": type,
|
|
315
255
|
width: style.width,
|
|
@@ -330,20 +270,15 @@ function MediaPlugin(type, opts) {
|
|
|
330
270
|
}
|
|
331
271
|
};
|
|
332
272
|
}
|
|
333
|
-
|
|
334
273
|
var serialization = {
|
|
335
|
-
deserialize: function deserialize(el
|
|
336
|
-
/*, next*/
|
|
337
|
-
) {
|
|
274
|
+
deserialize: function deserialize(el /*, next*/) {
|
|
338
275
|
var type = el.dataset && el.dataset.type;
|
|
339
276
|
var tag = 'iframe';
|
|
340
277
|
var src;
|
|
341
278
|
var typeIndex = types.indexOf(type);
|
|
342
|
-
|
|
343
279
|
if (typeIndex < 0) {
|
|
344
280
|
if (el instanceof Element && el.tagName.toLowerCase() === 'audio') {
|
|
345
281
|
var _el$firstChild;
|
|
346
|
-
|
|
347
282
|
type = 'audio';
|
|
348
283
|
tag = 'audio';
|
|
349
284
|
src = (_el$firstChild = el.firstChild) === null || _el$firstChild === void 0 ? void 0 : _el$firstChild.getAttribute('src');
|
|
@@ -351,14 +286,12 @@ var serialization = {
|
|
|
351
286
|
return;
|
|
352
287
|
}
|
|
353
288
|
}
|
|
354
|
-
|
|
355
289
|
var _ref = el.dataset || {},
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
290
|
+
ends = _ref.ends,
|
|
291
|
+
starts = _ref.starts,
|
|
292
|
+
title = _ref.title,
|
|
293
|
+
editing = _ref.editing,
|
|
294
|
+
url = _ref.url;
|
|
362
295
|
log('deserialize: ', name);
|
|
363
296
|
var width = parseInt(el.getAttribute('width'), 10) || null;
|
|
364
297
|
var height = parseInt(el.getAttribute('height'), 10) || null;
|
|
@@ -381,34 +314,27 @@ var serialization = {
|
|
|
381
314
|
},
|
|
382
315
|
serialize: function serialize(object) {
|
|
383
316
|
var typeIndex = types.indexOf(object.type);
|
|
384
|
-
|
|
385
317
|
if (typeIndex < 0) {
|
|
386
318
|
return;
|
|
387
319
|
}
|
|
388
|
-
|
|
389
320
|
var type = types[typeIndex];
|
|
390
|
-
|
|
391
321
|
var _ref2 = object.data || {},
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
322
|
+
editing = _ref2.editing,
|
|
323
|
+
tag = _ref2.tag,
|
|
324
|
+
ends = _ref2.ends,
|
|
325
|
+
src = _ref2.src,
|
|
326
|
+
starts = _ref2.starts,
|
|
327
|
+
title = _ref2.title,
|
|
328
|
+
width = _ref2.width,
|
|
329
|
+
height = _ref2.height,
|
|
330
|
+
url = _ref2.url;
|
|
402
331
|
var style = {};
|
|
403
|
-
|
|
404
332
|
if (width) {
|
|
405
333
|
style.width = "".concat(width, "px");
|
|
406
334
|
}
|
|
407
|
-
|
|
408
335
|
if (height) {
|
|
409
336
|
style.height = "".concat(height, "px");
|
|
410
337
|
}
|
|
411
|
-
|
|
412
338
|
var divProps = {
|
|
413
339
|
'data-editing': editing,
|
|
414
340
|
'data-ends': ends,
|
|
@@ -416,11 +342,9 @@ var serialization = {
|
|
|
416
342
|
'data-title': title,
|
|
417
343
|
'data-url': url
|
|
418
344
|
};
|
|
419
|
-
|
|
420
345
|
var props = _objectSpread(_objectSpread({}, style), {}, {
|
|
421
346
|
src: src
|
|
422
347
|
});
|
|
423
|
-
|
|
424
348
|
if (tag === 'audio') {
|
|
425
349
|
return /*#__PURE__*/_react["default"].createElement("audio", {
|
|
426
350
|
controls: "controls"
|
|
@@ -429,7 +353,6 @@ var serialization = {
|
|
|
429
353
|
src: src
|
|
430
354
|
}));
|
|
431
355
|
}
|
|
432
|
-
|
|
433
356
|
return /*#__PURE__*/_react["default"].createElement("iframe", (0, _extends2["default"])({
|
|
434
357
|
"data-type": type,
|
|
435
358
|
src: src
|
|
@@ -441,4 +364,4 @@ var serialization = {
|
|
|
441
364
|
}
|
|
442
365
|
};
|
|
443
366
|
exports.serialization = serialization;
|
|
444
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsInJlbW92ZURpYWxvZ3MiLCJwcmV2RGlhbG9ncyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwicmVtb3ZlIiwiaW5zZXJ0RGlhbG9nIiwicHJvcHMiLCJuZXdFbCIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiY2FsbGJhY2siLCJvcHRzIiwicmVzdCIsImluaXRpYWxCb2R5T3ZlcmZsb3ciLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImNsYXNzTmFtZSIsImhhbmRsZUNsb3NlIiwidmFsIiwiZGF0YSIsImVsIiwidXBsb2FkU291bmRTdXBwb3J0IiwiUmVhY3RET00iLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsImdldE5vZGVCeSIsImVkaXRvciIsImRlc2NlbmRhbnRzIiwiU2xhdGVOb2RlIiwicmV2ZXJzZSIsImRlc2NlbmRhbnQiLCJkZXNjZW5kYW50UGF0aCIsIm1vdmVGb2N1c0FmdGVyTWVkaWEiLCJub2RlIiwic2V0VGltZW91dCIsIlJlYWN0RWRpdG9yIiwiZm9jdXMiLCJUcmFuc2Zvcm1zIiwibW92ZSIsImRpc3RhbmNlIiwidW5pdCIsInR5cGVzIiwiTWVkaWFQbHVnaW4iLCJ0b29sYmFyIiwiaWNvbiIsIm9uQ2xpY2siLCJpbmxpbmUiLCJpc1ZvaWQiLCJuZXdNZWRpYSIsImVkaXRpbmciLCJlbmRzIiwidW5kZWZpbmVkIiwiaGVpZ2h0IiwidGl0bGUiLCJzdGFydHMiLCJzcmMiLCJ1cmwiLCJ3aWR0aCIsImNoaWxkcmVuIiwidGV4dCIsImluc2VydE5vZGUiLCJub2RlUGF0aCIsImZpbmRQYXRoIiwiYXBwbHkiLCJwYXRoIiwicHJvcGVydGllcyIsIm5ld1Byb3BlcnRpZXMiLCJuYW1lIiwicnVsZXMiLCJpc0lubGluZSIsImVsZW1lbnQiLCJpbmNsdWRlcyIsInN1cHBvcnRzIiwicmVuZGVyTm9kZSIsIm9taXQiLCJ0YWciLCJhdHRyaWJ1dGVzIiwiaGFuZGxlRWRpdCIsImV2ZW50Iiwibm9kZVRvRWRpdCIsInRvU2xhdGVOb2RlIiwidGFyZ2V0IiwiZWRpdCIsImhhbmRsZURlbGV0ZSIsInNlcmlhbGl6YXRpb24iLCJkZXNlcmlhbGl6ZSIsImRhdGFzZXQiLCJ0eXBlSW5kZXgiLCJpbmRleE9mIiwiRWxlbWVudCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsImZpcnN0Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJwYXJzZUludCIsIm91dCIsImpzeCIsInNlcmlhbGl6ZSIsIm9iamVjdCIsImRpdlByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvbWVkaWEvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE5vZGUgYXMgU2xhdGVOb2RlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnc2xhdGUtaHlwZXJzY3JpcHQnO1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IgfSBmcm9tICdzbGF0ZS1yZWFjdCc7XG5pbXBvcnQgVGhlYXRlcnNJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9UaGVhdGVycyc7XG5pbXBvcnQgVm9sdW1lVXBJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Wb2x1bWVVcCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IE1lZGlhRGlhbG9nIGZyb20gJy4vbWVkaWEtZGlhbG9nJztcbmltcG9ydCBNZWRpYVRvb2xiYXIgZnJvbSAnLi9tZWRpYS10b29sYmFyJztcbmltcG9ydCBNZWRpYVdyYXBwZXIgZnJvbSAnLi9tZWRpYS13cmFwcGVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZScpO1xuXG5jb25zdCByZW1vdmVEaWFsb2dzID0gKCkgPT4ge1xuICBjb25zdCBwcmV2RGlhbG9ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnNlcnQtbWVkaWEtZGlhbG9nJyk7XG5cbiAgcHJldkRpYWxvZ3MuZm9yRWFjaChzID0+IHMucmVtb3ZlKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydERpYWxvZyA9IHByb3BzID0+IHtcbiAgY29uc3QgbmV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgY29uc3QgeyB0eXBlLCBjYWxsYmFjaywgb3B0cywgLi4ucmVzdCB9ID0gcHJvcHM7XG4gIGNvbnN0IGluaXRpYWxCb2R5T3ZlcmZsb3cgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuXG4gIHJlbW92ZURpYWxvZ3MoKTtcblxuICBuZXdFbC5jbGFzc05hbWUgPSAnaW5zZXJ0LW1lZGlhLWRpYWxvZyc7XG4gIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICh2YWwsIGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayh2YWwsIGRhdGEpO1xuICAgIG5ld0VsLnJlbW92ZSgpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBpbml0aWFsQm9keU92ZXJmbG93O1xuICB9O1xuXG4gIGNvbnN0IGVsID0gKFxuICAgIDxNZWRpYURpYWxvZ1xuICAgICAgey4uLnJlc3R9XG4gICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e29wdHMudXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIGRpc2FibGVQb3J0YWw9e3RydWV9XG4gICAgICBvcGVuPXt0cnVlfVxuICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgIC8+XG4gICk7XG5cbiAgUmVhY3RET00ucmVuZGVyKGVsLCBuZXdFbCk7XG5cbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXdFbCk7XG59O1xuXG5jb25zdCBnZXROb2RlQnkgPSAoZWRpdG9yLCBjYWxsYmFjaykgPT4ge1xuICBjb25zdCBkZXNjZW5kYW50cyA9IFNsYXRlTm9kZS5kZXNjZW5kYW50cyhlZGl0b3IsIHtcbiAgICByZXZlcnNlOiB0cnVlXG4gIH0pO1xuXG4gIGZvciAoY29uc3QgW2Rlc2NlbmRhbnQsIGRlc2NlbmRhbnRQYXRoXSBvZiBkZXNjZW5kYW50cykge1xuICAgIGlmIChjYWxsYmFjayhkZXNjZW5kYW50LCBkZXNjZW5kYW50UGF0aCkpIHtcbiAgICAgIHJldHVybiBbZGVzY2VuZGFudCwgZGVzY2VuZGFudFBhdGhdO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgbW92ZUZvY3VzQWZ0ZXJNZWRpYSA9IChlZGl0b3IsIG5vZGUpID0+IHtcbiAgaWYgKCFlZGl0b3IgfHwgIW5vZGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBSZWFjdEVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgIFRyYW5zZm9ybXMubW92ZShlZGl0b3IsIHsgZGlzdGFuY2U6IDEsIHVuaXQ6ICdvZmZzZXQnIH0pO1xuICB9LCAwKTtcbn07XG5cbmNvbnN0IHR5cGVzID0gWydhdWRpbycsICd2aWRlbyddO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNZWRpYVBsdWdpbih0eXBlLCBvcHRzKSB7XG4gIGNvbnN0IHRvb2xiYXIgPSB7XG4gICAgaWNvbjogdHlwZSA9PT0gJ2F1ZGlvJyA/IDxWb2x1bWVVcEljb24gLz4gOiA8VGhlYXRlcnNJY29uIC8+LFxuICAgIG9uQ2xpY2s6IGVkaXRvciA9PiB7XG4gICAgICBsb2coJ1t0b29sYmFyXSBvbkNsaWNrJyk7XG4gICAgICBjb25zdCBpbmxpbmUgPSB7XG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGlzVm9pZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG5ld01lZGlhOiB0cnVlLFxuICAgICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVuZHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0aXRsZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHN0YXJ0czogdW5kZWZpbmVkLFxuICAgICAgICAgIHNyYzogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgICAgICAgIHdpZHRoOiB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dXG4gICAgICB9O1xuXG4gICAgICBlZGl0b3IuaW5zZXJ0Tm9kZShpbmxpbmUpO1xuXG4gICAgICBpbnNlcnREaWFsb2coe1xuICAgICAgICB0eXBlLFxuICAgICAgICBvcHRzLFxuICAgICAgICBjYWxsYmFjazogKHZhbCwgZGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBpbmxpbmUpO1xuXG4gICAgICAgICAgaWYgKGlubGluZSkge1xuICAgICAgICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmVtb3ZlX25vZGUnLFxuICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGlubGluZS5kYXRhXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5ld01lZGlhOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbW92ZUZvY3VzQWZ0ZXJNZWRpYShlZGl0b3IsIGlubGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHR5cGUsXG4gICAgdG9vbGJhcixcbiAgICBydWxlczogZWRpdG9yID0+IHtcbiAgICAgIGNvbnN0IHsgaXNWb2lkLCBpc0lubGluZSB9ID0gZWRpdG9yO1xuXG4gICAgICBlZGl0b3IuaXNWb2lkID0gZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBbJ2F1ZGlvJywgJ3ZpZGVvJ10uaW5jbHVkZXMoZWxlbWVudC50eXBlKSA/IHRydWUgOiBpc1ZvaWQoZWxlbWVudCk7XG4gICAgICB9O1xuXG4gICAgICBlZGl0b3IuaXNJbmxpbmUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIFsnYXVkaW8nLCAndmlkZW8nXS5pbmNsdWRlcyhlbGVtZW50LnR5cGUpID8gdHJ1ZSA6IGlzSW5saW5lKGVsZW1lbnQpO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICB9LFxuICAgIHN1cHBvcnRzOiBub2RlID0+IG5vZGUudHlwZSA9PT0gdHlwZSxcbiAgICByZW5kZXJOb2RlKHByb3BzKSB7XG4gICAgICBpZiAocHJvcHMubm9kZS50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIGNvbnN0IHsgbm9kZSwgZWRpdG9yIH0gPSBwcm9wcztcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBub2RlO1xuICAgICAgICBjb25zdCB7IHNyYywgaGVpZ2h0LCB3aWR0aCwgZWRpdGluZywgdGFnLCAuLi5yZXN0IH0gPSBvbWl0KGRhdGEsIFsnbmV3TWVkaWEnLCAndXJsVG9Vc2UnXSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7IC4uLnJlc3QsIC4uLnByb3BzLmF0dHJpYnV0ZXMgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlRWRpdCA9IGV2ZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBub2RlVG9FZGl0ID0gUmVhY3RFZGl0b3IudG9TbGF0ZU5vZGUoZWRpdG9yLCBldmVudC50YXJnZXQpO1xuICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlVG9FZGl0KTtcblxuICAgICAgICAgIGVkaXRvci5hcHBseSh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IG5vZGUuZGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgZWRpdGluZzogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpbnNlcnREaWFsb2coe1xuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIGVkaXQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgb3B0cyxcbiAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlVG9FZGl0KTtcblxuICAgICAgICAgICAgICBpZiAobm9kZVBhdGggJiYgdmFsKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRfbm9kZScsXG4gICAgICAgICAgICAgICAgICBwYXRoOiBub2RlUGF0aCxcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogbm9kZS5kYXRhXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBlZGl0aW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBoYW5kbGVEZWxldGUgPSBldmVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZVRvRWRpdCA9IFJlYWN0RWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgICBjb25zdCBub2RlUGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZVRvRWRpdCk7XG5cbiAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgdHlwZTogJ3JlbW92ZV9ub2RlJyxcbiAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge307XG5cbiAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICAgICAgc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWcgPT09ICdhdWRpbycpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1lZGlhV3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHdpZHRoPXtzdHlsZS53aWR0aH0gYXR0cmlidXRlcz17YXR0cmlidXRlc30+XG4gICAgICAgICAgICAgIDxhdWRpbyBjb250cm9scz1cImNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgPHNvdXJjZSB0eXBlPVwiYXVkaW8vbXAzXCIgc3JjPXtzcmN9IC8+XG4gICAgICAgICAgICAgIDwvYXVkaW8+XG4gICAgICAgICAgICAgIDxNZWRpYVRvb2xiYXIgaGlkZUVkaXQgb25SZW1vdmU9e2hhbmRsZURlbGV0ZX0gLz5cbiAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgPC9NZWRpYVdyYXBwZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPE1lZGlhV3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHdpZHRoPXtzdHlsZS53aWR0aH0gYXR0cmlidXRlcz17YXR0cmlidXRlc30+XG4gICAgICAgICAgICA8ZGl2IGNvbnRlbnRFZGl0YWJsZT17ZmFsc2V9PlxuICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICAgICAgICBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmVcIlxuICAgICAgICAgICAgICAgIGFsbG93RnVsbFNjcmVlblxuICAgICAgICAgICAgICAgIHNyYz17c3JjfVxuICAgICAgICAgICAgICAgIGVkaXRpbmc9e2VkaXRpbmcgPyAxIDogMH1cbiAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICB7Li4uc3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxNZWRpYVRvb2xiYXIgb25FZGl0PXtoYW5kbGVFZGl0fSBvblJlbW92ZT17aGFuZGxlRGVsZXRlfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgPC9NZWRpYVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6YXRpb24gPSB7XG4gIGRlc2VyaWFsaXplKGVsIC8qLCBuZXh0Ki8pIHtcbiAgICBsZXQgdHlwZSA9IGVsLmRhdGFzZXQgJiYgZWwuZGF0YXNldC50eXBlO1xuICAgIGxldCB0YWcgPSAnaWZyYW1lJztcbiAgICBsZXQgc3JjO1xuICAgIGNvbnN0IHR5cGVJbmRleCA9IHR5cGVzLmluZGV4T2YodHlwZSk7XG5cbiAgICBpZiAodHlwZUluZGV4IDwgMCkge1xuICAgICAgaWYgKGVsIGluc3RhbmNlb2YgRWxlbWVudCAmJiBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhdWRpbycpIHtcbiAgICAgICAgdHlwZSA9ICdhdWRpbyc7XG4gICAgICAgIHRhZyA9ICdhdWRpbyc7XG4gICAgICAgIHNyYyA9IGVsLmZpcnN0Q2hpbGQ/LmdldEF0dHJpYnV0ZSgnc3JjJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBlbmRzLCBzdGFydHMsIHRpdGxlLCBlZGl0aW5nLCB1cmwgfSA9IGVsLmRhdGFzZXQgfHwge307XG5cbiAgICBsb2coJ2Rlc2VyaWFsaXplOiAnLCBuYW1lKTtcbiAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KGVsLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSwgMTApIHx8IG51bGw7XG4gICAgY29uc3QgaGVpZ2h0ID0gcGFyc2VJbnQoZWwuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSwgMTApIHx8IG51bGw7XG5cbiAgICBjb25zdCBvdXQgPSBqc3goJ2VsZW1lbnQnLCB7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YToge1xuICAgICAgICB0YWcsXG4gICAgICAgIHNyYzogc3JjIHx8IGVsLmdldEF0dHJpYnV0ZSgnc3JjJyksXG4gICAgICAgIGVkaXRpbmcsXG4gICAgICAgIGVuZHMsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc3RhcnRzLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIHVybFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbG9nKCdyZXR1cm4gb2JqZWN0OiAnLCBvdXQpO1xuICAgIHJldHVybiBvdXQ7XG4gIH0sXG4gIHNlcmlhbGl6ZShvYmplY3QpIHtcbiAgICBjb25zdCB0eXBlSW5kZXggPSB0eXBlcy5pbmRleE9mKG9iamVjdC50eXBlKTtcblxuICAgIGlmICh0eXBlSW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVzW3R5cGVJbmRleF07XG5cbiAgICBjb25zdCB7IGVkaXRpbmcsIHRhZywgZW5kcywgc3JjLCBzdGFydHMsIHRpdGxlLCB3aWR0aCwgaGVpZ2h0LCB1cmwgfSA9IG9iamVjdC5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHN0eWxlID0ge307XG5cbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgIH1cblxuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XG4gICAgfVxuXG4gICAgY29uc3QgZGl2UHJvcHMgPSB7XG4gICAgICAnZGF0YS1lZGl0aW5nJzogZWRpdGluZyxcbiAgICAgICdkYXRhLWVuZHMnOiBlbmRzLFxuICAgICAgJ2RhdGEtc3RhcnRzJzogc3RhcnRzLFxuICAgICAgJ2RhdGEtdGl0bGUnOiB0aXRsZSxcbiAgICAgICdkYXRhLXVybCc6IHVybFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5zdHlsZSxcbiAgICAgIHNyY1xuICAgIH07XG5cbiAgICBpZiAodGFnID09PSAnYXVkaW8nKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YXVkaW8gY29udHJvbHM9XCJjb250cm9sc1wiPlxuICAgICAgICAgIDxzb3VyY2UgdHlwZT1cImF1ZGlvL21wM1wiIHNyYz17c3JjfSAvPlxuICAgICAgICA8L2F1ZGlvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGlmcmFtZVxuICAgICAgICBkYXRhLXR5cGU9e3R5cGV9XG4gICAgICAgIHNyYz17c3JjfVxuICAgICAgICB7Li4uZGl2UHJvcHN9XG4gICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgIGFsbG93RnVsbFNjcmVlblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxzQ0FBTixDQUFaOztBQUVBLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsR0FBTTtFQUMxQixJQUFNQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsc0JBQTFCLENBQXBCO0VBRUFGLFdBQVcsQ0FBQ0csT0FBWixDQUFvQixVQUFBQyxDQUFDO0lBQUEsT0FBSUEsQ0FBQyxDQUFDQyxNQUFGLEVBQUo7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
|
|
367
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["log","debug","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","props","newEl","createElement","type","callback","opts","rest","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","el","uploadSoundSupport","ReactDOM","render","appendChild","getNodeBy","editor","descendants","SlateNode","reverse","descendant","descendantPath","moveFocusAfterMedia","node","setTimeout","ReactEditor","focus","Transforms","move","distance","unit","types","MediaPlugin","toolbar","icon","onClick","inline","isVoid","newMedia","editing","ends","undefined","height","title","starts","src","url","width","children","text","insertNode","get","nodePath","apply","path","properties","newProperties","name","rules","isInline","element","includes","supports","renderNode","omit","tag","attributes","handleEdit","event","nodeToEdit","toSlateNode","target","findPath","edit","nodeIsThere","handleDelete","serialization","deserialize","dataset","typeIndex","indexOf","Element","tagName","toLowerCase","firstChild","getAttribute","parseInt","out","jsx","serialize","object","divProps"],"sources":["../../../src/plugins/media/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node as SlateNode, Transforms } from 'slate';\nimport { jsx } from 'slate-hyperscript';\nimport { ReactEditor } from 'slate-react';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\n\nimport debug from 'debug';\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach(s => s.remove());\n};\n\nexport const insertDialog = props => {\n const newEl = document.createElement('div');\n const { type, callback, opts, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={opts.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst getNodeBy = (editor, callback) => {\n const descendants = SlateNode.descendants(editor, {\n reverse: true\n });\n\n for (const [descendant, descendantPath] of descendants) {\n if (callback(descendant, descendantPath)) {\n return [descendant, descendantPath];\n }\n }\n};\n\nconst moveFocusAfterMedia = (editor, node) => {\n if (!editor || !node) {\n return;\n }\n\n setTimeout(() => {\n ReactEditor.focus(editor);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n }, 0);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: editor => {\n log('[toolbar] onClick');\n const inline = {\n type: type,\n isVoid: true,\n data: {\n newMedia: true,\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined\n },\n children: [{ text: '' }]\n };\n\n editor.insertNode(inline);\n\n insertDialog({\n type,\n opts,\n callback: (val, data) => {\n const [node, nodePath] = getNodeBy(\n editor,\n descendant => descendant.type === type && get(descendant, 'data.newMedia')\n );\n\n if (node) {\n if (!val) {\n editor.apply({\n type: 'remove_node',\n path: nodePath\n });\n } else {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data\n },\n newProperties: {\n data: {\n ...data,\n newMedia: false\n }\n }\n });\n }\n }\n\n moveFocusAfterMedia(editor, node);\n }\n });\n }\n };\n\n return {\n name: type,\n toolbar,\n rules: editor => {\n const { isVoid, isInline } = editor;\n\n editor.isVoid = element => {\n return ['audio', 'video'].includes(element.type) ? true : isVoid(element);\n };\n\n editor.isInline = element => {\n return ['audio', 'video'].includes(element.type) ? true : isInline(element);\n };\n\n return editor;\n },\n supports: node => node.type === type,\n renderNode(props) {\n if (props.node.type === type) {\n const { node, editor } = props;\n const { data } = node;\n const { src, height, width, editing, tag, ...rest } = omit(data, ['newMedia', 'urlToUse']);\n const attributes = { ...rest, ...props.attributes };\n const handleEdit = event => {\n const nodeToEdit = ReactEditor.toSlateNode(editor, event.target);\n const nodePath = ReactEditor.findPath(editor, nodeToEdit);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data\n },\n newProperties: {\n data: {\n ...data,\n editing: true\n }\n }\n });\n\n insertDialog({\n ...data,\n edit: true,\n type,\n opts,\n callback: (val, data) => {\n const [nodeIsThere, nodePath] = getNodeBy(\n editor,\n descendant => descendant.type === type && get(descendant, 'data.editing')\n );\n\n if (nodeIsThere && val) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data\n },\n newProperties: {\n data: {\n ...data,\n editing: true\n }\n }\n });\n }\n }\n });\n };\n const handleDelete = event => {\n const nodeToEdit = ReactEditor.toSlateNode(editor, event.target);\n const nodePath = ReactEditor.findPath(editor, nodeToEdit);\n\n editor.apply({\n type: 'remove_node',\n path: nodePath\n });\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n if (tag === 'audio') {\n return (\n <MediaWrapper data-type={type} width={style.width} attributes={attributes}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n <MediaToolbar hideEdit onRemove={handleDelete} />\n {props.children}\n </MediaWrapper>\n );\n }\n\n return (\n <MediaWrapper data-type={type} width={style.width} attributes={attributes}>\n <div contentEditable={false}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </div>\n {props.children}\n </MediaWrapper>\n );\n }\n },\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n let type = el.dataset && el.dataset.type;\n let tag = 'iframe';\n let src;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) {\n if (el instanceof Element && el.tagName.toLowerCase() === 'audio') {\n type = 'audio';\n tag = 'audio';\n src = el.firstChild?.getAttribute('src');\n } else {\n return;\n }\n }\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = jsx('element', {\n type,\n data: {\n tag,\n src: src || el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n });\n\n log('return object: ', out);\n return out;\n },\n serialize(object) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) {\n return;\n }\n\n const type = types[typeIndex];\n\n const { editing, tag, ends, src, starts, title, width, height, url } = object.data || {};\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url\n };\n const props = {\n ...style,\n src\n };\n\n if (tag === 'audio') {\n return (\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n );\n }\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_reactDom","_slate","_slateHyperscript","_slateReact","_Theaters","_VolumeUp","_get","_omit2","_debug","_mediaDialog","_mediaToolbar","_mediaWrapper","_excluded","_excluded2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","log","debug","removeDialogs","prevDialogs","document","querySelectorAll","remove","insertDialog","props","newEl","createElement","type","callback","opts","rest","_objectWithoutProperties2","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","el","_extends2","uploadSoundSupport","disablePortal","open","ReactDOM","render","appendChild","exports","getNodeBy","editor","descendants","SlateNode","reverse","_iterator","_step","_step$value","_slicedToArray2","descendant","descendantPath","moveFocusAfterMedia","node","setTimeout","ReactEditor","focus","Transforms","move","distance","unit","types","MediaPlugin","toolbar","icon","onClick","inline","isVoid","newMedia","editing","ends","undefined","height","title","starts","src","url","width","children","text","insertNode","nodePath","findPath","path","properties","newProperties","rules","isInline","element","includes","supports","renderNode","_omit","omit","tag","attributes","handleEdit","event","nodeToEdit","toSlateNode","edit","handleDelete","concat","controls","hideEdit","onRemove","contentEditable","frameBorder","allow","allowFullScreen","onEdit","serialization","deserialize","dataset","typeIndex","indexOf","Element","tagName","toLowerCase","_el$firstChild","firstChild","getAttribute","_ref","parseInt","out","jsx","serialize","_ref2","divProps"],"sources":["../../../src/plugins/media/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node as SlateNode, Transforms } from 'slate';\nimport { jsx } from 'slate-hyperscript';\nimport { ReactEditor } from 'slate-react';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\n\nimport debug from 'debug';\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nexport const insertDialog = (props) => {\n const newEl = document.createElement('div');\n const { type, callback, opts, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={opts.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst getNodeBy = (editor, callback) => {\n const descendants = SlateNode.descendants(editor, {\n reverse: true\n });\n\n for (const [descendant, descendantPath] of descendants) {\n if (callback(descendant, descendantPath)) {\n return [descendant, descendantPath];\n }\n }\n};\n\nconst moveFocusAfterMedia = (editor, node) => {\n if (!editor || !node) {\n return;\n }\n\n setTimeout(() => {\n ReactEditor.focus(editor);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n }, 0);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: editor => {\n log('[toolbar] onClick');\n const inline = {\n type: type,\n isVoid: true,\n data: {\n newMedia: true,\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined,\n },\n children: [{ text: '' }],\n };\n\n editor.insertNode(inline);\n\n insertDialog({\n type,\n opts,\n callback: (val, data) => {\n const nodePath = ReactEditor.findPath(editor, inline);\n\n if (inline) {\n if (!val) {\n editor.apply({\n type: 'remove_node',\n path: nodePath\n });\n } else {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: inline.data\n },\n newProperties: {\n data: {\n ...data,\n newMedia: false\n }\n }\n });\n }\n }\n\n moveFocusAfterMedia(editor, inline);\n }\n });\n }\n };\n\n return {\n name: type,\n toolbar,\n rules: editor => {\n const { isVoid, isInline } = editor;\n\n editor.isVoid = element => {\n return ['audio', 'video'].includes(element.type) ? true : isVoid(element);\n };\n\n editor.isInline = element => {\n return ['audio', 'video'].includes(element.type) ? true : isInline(element);\n };\n\n return editor;\n },\n supports: node => node.type === type,\n renderNode(props) {\n if (props.node.type === type) {\n const { node, editor } = props;\n const { data } = node;\n const { src, height, width, editing, tag, ...rest } = omit(data, ['newMedia', 'urlToUse']);\n const attributes = { ...rest, ...props.attributes };\n const handleEdit = event => {\n const nodeToEdit = ReactEditor.toSlateNode(editor, event.target);\n const nodePath = ReactEditor.findPath(editor, nodeToEdit);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data\n },\n newProperties: {\n data: {\n ...data,\n editing: true\n }\n }\n });\n\n insertDialog({\n ...data,\n edit: true,\n type,\n opts,\n callback: (val, data) => {\n const nodePath = ReactEditor.findPath(editor, nodeToEdit);\n\n if (nodePath && val) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data\n },\n newProperties: {\n data: {\n ...data,\n editing: true\n }\n }\n });\n }\n }\n });\n };\n const handleDelete = event => {\n const nodeToEdit = ReactEditor.toSlateNode(editor, event.target);\n const nodePath = ReactEditor.findPath(editor, nodeToEdit);\n\n editor.apply({\n type: 'remove_node',\n path: nodePath\n });\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n if (tag === 'audio') {\n return (\n <MediaWrapper data-type={type} width={style.width} attributes={attributes}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n <MediaToolbar hideEdit onRemove={handleDelete} />\n {props.children}\n </MediaWrapper>\n );\n }\n\n return (\n <MediaWrapper data-type={type} width={style.width} attributes={attributes}>\n <div contentEditable={false}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </div>\n {props.children}\n </MediaWrapper>\n );\n }\n },\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n let type = el.dataset && el.dataset.type;\n let tag = 'iframe';\n let src;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) {\n if (el instanceof Element && el.tagName.toLowerCase() === 'audio') {\n type = 'audio';\n tag = 'audio';\n src = el.firstChild?.getAttribute('src');\n } else {\n return;\n }\n }\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = jsx('element', {\n type,\n data: {\n tag,\n src: src || el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n });\n\n log('return object: ', out);\n return out;\n },\n serialize(object) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) {\n return;\n }\n\n const type = types[typeIndex];\n\n const { editing, tag, ends, src, starts, title, width, height, url } = object.data || {};\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url,\n };\n const props = {\n ...style,\n src,\n };\n\n if (tag === 'audio') {\n return (\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n );\n }\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n },\n};\n"],"mappings":"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"}
|