@seafile/sdoc-editor 1.0.140 → 1.0.141-alpha2

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.
Files changed (40) hide show
  1. package/dist/api/seafile-api.js +24 -0
  2. package/dist/basic-sdk/assets/css/sdoc-editor-plugins.css +4 -0
  3. package/dist/basic-sdk/comment/components/comment-item-collapse-wrapper.js +4 -4
  4. package/dist/basic-sdk/comment/components/comment-list.css +29 -23
  5. package/dist/basic-sdk/comment/components/global-comment/index.css +6 -6
  6. package/dist/basic-sdk/constants/index.js +2 -1
  7. package/dist/basic-sdk/editor/wiki-editor.js +3 -1
  8. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +53 -0
  9. package/dist/basic-sdk/extension/constants/element-type.js +3 -1
  10. package/dist/basic-sdk/extension/constants/index.js +16 -3
  11. package/dist/basic-sdk/extension/constants/menus-config.js +12 -0
  12. package/dist/basic-sdk/extension/plugins/image/plugin.js +6 -0
  13. package/dist/basic-sdk/extension/plugins/image/render-elem.js +5 -0
  14. package/dist/basic-sdk/extension/plugins/index.js +8 -1
  15. package/dist/basic-sdk/extension/plugins/sdoc-link/helpers.js +2 -0
  16. package/dist/basic-sdk/extension/plugins/table/plugin.js +3 -0
  17. package/dist/basic-sdk/extension/plugins/video/helpers.js +144 -0
  18. package/dist/basic-sdk/extension/plugins/video/hover-menu/index.css +89 -0
  19. package/dist/basic-sdk/extension/plugins/video/hover-menu/index.js +84 -0
  20. package/dist/basic-sdk/extension/plugins/video/index.css +73 -0
  21. package/dist/basic-sdk/extension/plugins/video/index.js +20 -0
  22. package/dist/basic-sdk/extension/plugins/video/menu/index.js +55 -0
  23. package/dist/basic-sdk/extension/plugins/video/plugin.js +47 -0
  24. package/dist/basic-sdk/extension/plugins/video/render-elem.js +305 -0
  25. package/dist/basic-sdk/extension/render/custom-element.js +7 -0
  26. package/dist/basic-sdk/extension/render/render-comment-editor-element.js +7 -0
  27. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +9 -8
  28. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +28 -1
  29. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +2 -1
  30. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +19 -0
  31. package/dist/components/toast/toast.js +4 -0
  32. package/dist/components/toast/toaster.js +1 -0
  33. package/dist/context.js +9 -0
  34. package/package.json +1 -1
  35. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  36. package/public/media/sdoc-editor-font/iconfont.svg +4 -0
  37. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  38. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  39. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  40. package/public/media/sdoc-editor-font.css +15 -10
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isInsertVideoMenuDisabled = exports.insertVideo = exports.getVideoURL = exports.getVideoData = exports.generateVideoNode = void 0;
8
+ var _urlJoin = _interopRequireDefault(require("url-join"));
9
+ var _slate = require("@seafile/slate");
10
+ var _core = require("../../core");
11
+ var _constants = require("../../constants");
12
+ var _constants2 = require("../../../constants");
13
+ var _context = _interopRequireDefault(require("../../../../context"));
14
+ const isInsertVideoMenuDisabled = (editor, readonly) => {
15
+ if (readonly) return true;
16
+ const {
17
+ selection
18
+ } = editor;
19
+ if (selection === null) return true;
20
+ if (!_slate.Range.isCollapsed(selection)) return true;
21
+ const [match] = _slate.Editor.nodes(editor, {
22
+ match: n => {
23
+ let type = (0, _core.getNodeType)(n);
24
+ if (!type && (0, _core.isTextNode)(n) && n.id) {
25
+ const parentNode = (0, _core.getParentNode)(editor.children, n.id);
26
+ type = (0, _core.getNodeType)(parentNode);
27
+ }
28
+ if (type === _constants.CODE_BLOCK) return true;
29
+ if (type.startsWith('header')) return true;
30
+ if (type === _constants.TITLE) return true;
31
+ if (type === _constants.SUBTITLE) return true;
32
+ if (type === _constants.LIST_ITEM) return true;
33
+ if (type === _constants.CHECK_LIST_ITEM) return true;
34
+ if (_slate.Editor.isVoid(editor, n)) return true;
35
+ return false;
36
+ },
37
+ universal: true
38
+ });
39
+ if (match) return true;
40
+ return false;
41
+ };
42
+ exports.isInsertVideoMenuDisabled = isInsertVideoMenuDisabled;
43
+ const generateVideoNode = (src, videoFiles) => {
44
+ const element = (0, _core.generateEmptyElement)(_constants.VIDEO_BLOCK);
45
+ return {
46
+ ...element,
47
+ data: {
48
+ src,
49
+ videoFiles
50
+ }
51
+ };
52
+ };
53
+ exports.generateVideoNode = generateVideoNode;
54
+ const insertVideo = function (editor, videoFiles, srcList, selection) {
55
+ let position = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants.INSERT_POSITION.CURRENT;
56
+ if (!srcList) return;
57
+ if (position !== _constants.INSERT_POSITION.AFTER) {
58
+ if (isInsertVideoMenuDisabled(editor)) return;
59
+ }
60
+
61
+ // console.log(5, srcList, selection, position);
62
+ const videoNodes = srcList.map(src => {
63
+ return generateVideoNode(src, videoFiles);
64
+ });
65
+ const validSelection = selection || editor.selection;
66
+ let path = _slate.Editor.path(editor, validSelection);
67
+ if (position === _constants.INSERT_POSITION.AFTER) {
68
+ const p = (0, _core.generateEmptyElement)(_constants.ELEMENT_TYPE.PARAGRAPH);
69
+ videoNodes.forEach((item, index) => {
70
+ p.children[index] = item;
71
+ });
72
+ _slate.Transforms.insertNodes(editor, p, {
73
+ at: [path[0] + 1]
74
+ });
75
+ (0, _core.focusEditor)(editor, [path[0] + 1, 2]);
76
+ return;
77
+ }
78
+ const aboveNodeEntry = (0, _core.getAboveBlockNode)(editor);
79
+ const nodePath = [aboveNodeEntry[1][0]];
80
+ const nextPath = _slate.Path.next(nodePath);
81
+ console.log(33, position, aboveNodeEntry);
82
+ const isEmptyParagraph = aboveNodeEntry[0].type === _constants.PARAGRAPH && _slate.Node.string(aboveNodeEntry[0]).length === 0;
83
+ if (videoNodes.length === 1 && isEmptyParagraph) {
84
+ const videoNode = videoNodes[0];
85
+ _slate.Transforms.setNodes(editor, videoNode, {
86
+ at: validSelection
87
+ });
88
+ // generateVideoNode(srcList, videoFiles);
89
+ // Transforms.setNodes(editor, { type: VIDEO_BLOCK }, { at: validSelection });
90
+ _slate.Transforms.insertNodes(editor, (0, _core.generateDefaultParagraph)(), {
91
+ at: nextPath
92
+ });
93
+ const endOfFirstNode = _slate.Editor.start(editor, nextPath);
94
+ const range = {
95
+ anchor: endOfFirstNode,
96
+ focus: endOfFirstNode
97
+ };
98
+ (0, _core.focusEditor)(editor, range);
99
+ return;
100
+ }
101
+ _slate.Transforms.insertNodes(editor, videoNodes, {
102
+ at: validSelection
103
+ });
104
+ const videoEndSelection = _slate.Path.next(_slate.Path.next(path));
105
+ (0, _core.focusEditor)(editor, videoEndSelection);
106
+ };
107
+ exports.insertVideo = insertVideo;
108
+ const getVideoURL = (data, editor) => {
109
+ const {
110
+ src: url,
111
+ column_key
112
+ } = data;
113
+ // console.log(1, data, column_key);
114
+
115
+ // if (column_key) {
116
+ // const column = getColumnByKey(editor.columns || [], column_key);
117
+ // const { type } = column || {};
118
+ // if (type === CellType.IMAGE) {
119
+ // const imgUrl = editor.getColumnCellValue(column_key) || '';
120
+ // const firstSrc = imgUrl.split(',')[0];
121
+ // return firstSrc;
122
+ // } else if (type === CellType.DIGITAL_SIGN) {
123
+ // const partUrl = editor.getColumnCellValue(column_key) || '';
124
+ // const imgUrl = getDigitalSignImgUrl(partUrl);
125
+ // return imgUrl;
126
+ // }
127
+ // }
128
+
129
+ if (url && url.startsWith('http')) return url;
130
+ const serviceUrl = _context.default.getSetting('serviceUrl');
131
+ const assetsUrl = _context.default.getSetting('assetsUrl');
132
+ return (0, _urlJoin.default)(serviceUrl, assetsUrl, url);
133
+ };
134
+ exports.getVideoURL = getVideoURL;
135
+ const getVideoData = fragmentData => {
136
+ let videoData = new Set();
137
+ fragmentData.forEach(item => item.children.forEach(child => {
138
+ if ((child === null || child === void 0 ? void 0 : child.type) === _constants.VIDEO && !child.data.src.startsWith('http')) {
139
+ videoData.add(child.data.src.slice(1));
140
+ }
141
+ }));
142
+ return Array.from(videoData);
143
+ };
144
+ exports.getVideoData = getVideoData;
@@ -0,0 +1,89 @@
1
+ .sdoc-video-hover-menu-container {
2
+ position: absolute;
3
+ height: 42px;
4
+ z-index: 101;
5
+ width: auto;
6
+ }
7
+
8
+ .sdoc-video-hover-menu-container .hover-menu-container {
9
+ height: 36px;
10
+ background-color: #fff;
11
+ display: flex;
12
+ justify-content: flex-start;
13
+ align-items: center;
14
+ border-radius: 3px;
15
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
16
+ border: 1px solid #e8e8e8;
17
+ }
18
+
19
+ .sdoc-video-hover-menu-container .hover-menu-container>span {
20
+ padding: 0 8px;
21
+ }
22
+
23
+ .sdoc-video-hover-menu-container .hover-menu-container>span:not(:last-of-type) {
24
+ padding: 0 8px;
25
+ border-right: 1px solid #e5e5e5;
26
+ }
27
+
28
+ .sdoc-video-hover-menu-container .hover-menu-container .op-item {
29
+ position: relative;
30
+ font-size: 12px;
31
+ color: #212529;
32
+ padding: 0 5px;
33
+ border-radius: 2px;
34
+ min-width: 24px;
35
+ height: 24px;
36
+ display: inline-flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ }
40
+
41
+ .sdoc-video-hover-menu-container .hover-menu-container .op-item:hover {
42
+ color: #212529;
43
+ text-decoration: none;
44
+ background: #f1f1f1;
45
+ }
46
+
47
+ .sdoc-video-hover-menu-container .hover-menu-container .active {
48
+ background: #f1f1f1;
49
+ }
50
+
51
+ .sdoc-video-hover-menu-container .hover-menu-container .icon-font {
52
+ font-size: 12px;
53
+ color: #999999;
54
+ }
55
+
56
+ .sdoc-video-hover-menu-container .sdoc-video-popover {
57
+ position: absolute;
58
+ top: 37px;
59
+ background-color: #fff;
60
+ border: 1px solid #e5e6e8;
61
+ border-radius: 2px;
62
+ box-shadow: 0 0 10px #ccc;
63
+ display: flex;
64
+ flex-direction: column;
65
+ align-items: flex-start;
66
+ z-index: 101;
67
+ white-space: nowrap;
68
+ }
69
+
70
+ .sdoc-video-hover-menu-container .align-popover {
71
+ left: 80px;
72
+ min-width: 6rem;
73
+ }
74
+
75
+ .sdoc-video-hover-menu-container .border-popover {
76
+ left: 115px;
77
+ flex-direction: row;
78
+ height: 80px;
79
+ align-items: center;
80
+ padding: 0 8px;
81
+ }
82
+
83
+ .sdoc-video-hover-menu-container .border-popover .sdoc-dropdown-menu-item .sdoc-dropdown-item-content .sdoc-check-mark {
84
+ transform: translateX(-24px);
85
+ }
86
+
87
+ .sdoc-video-hover-menu-container .border-popover .sdoc-dropdown-menu-item:hover {
88
+ background-color: transparent;
89
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _commons = require("../../../commons");
12
+ var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
13
+ var _constants = require("../../../constants");
14
+ require("./index.css");
15
+ const VideoHoverMenu = _ref => {
16
+ let {
17
+ editor,
18
+ menuPosition,
19
+ element,
20
+ parentNodeEntry,
21
+ videoCaptionInputRef,
22
+ onHideVideoHoverMenu,
23
+ t,
24
+ readonly
25
+ } = _ref;
26
+ const [isShowTooltip, setIsShowTooltip] = (0, _react.useState)(false);
27
+ (0, _react.useEffect)(() => {
28
+ setIsShowTooltip(true);
29
+ }, []);
30
+
31
+ // const onCopy = useCallback(() => {
32
+ // onCopyNode(editor, slateNode);
33
+ // onReset();
34
+ // }, [editor, onReset, slateNode]);
35
+
36
+ return /*#__PURE__*/_react.default.createElement(_commons.ElementPopover, null, /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "sdoc-video-hover-menu-container",
38
+ style: menuPosition
39
+ }, /*#__PURE__*/_react.default.createElement("div", {
40
+ className: "hover-menu-container"
41
+ }, /*#__PURE__*/_react.default.createElement("span", {
42
+ className: "op-group-item"
43
+ }, /*#__PURE__*/_react.default.createElement("span", {
44
+ id: "sdoc_video_download",
45
+ role: "button",
46
+ className: "op-item",
47
+ onClick: e => {
48
+ e.stopPropagation();
49
+ }
50
+ }, /*#__PURE__*/_react.default.createElement("i", {
51
+ className: "sdocfont sdoc-download icon-font"
52
+ }), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
53
+ target: "sdoc_video_download",
54
+ placement: "top",
55
+ fade: true
56
+ }, t('Download'))), /*#__PURE__*/_react.default.createElement("span", {
57
+ id: "sdoc_video_copy",
58
+ role: "button",
59
+ className: "op-item",
60
+ onClick: e => {
61
+ e.stopPropagation();
62
+ }
63
+ }, /*#__PURE__*/_react.default.createElement("i", {
64
+ className: "sdocfont sdoc-copy icon-font"
65
+ }), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
66
+ target: "sdoc_video_copy",
67
+ placement: "top",
68
+ fade: true
69
+ }, t('Copy'))), /*#__PURE__*/_react.default.createElement("span", {
70
+ id: "sdoc_video_delete",
71
+ role: "button",
72
+ className: "op-item",
73
+ onClick: e => {
74
+ e.stopPropagation();
75
+ }
76
+ }, /*#__PURE__*/_react.default.createElement("i", {
77
+ className: "sdocfont sdoc-delete icon-font"
78
+ }), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
79
+ target: "sdoc_video_delete",
80
+ placement: "top",
81
+ fade: true
82
+ }, t('Delete')))))));
83
+ };
84
+ var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(VideoHoverMenu);
@@ -0,0 +1,73 @@
1
+ .video-loading-placeholder {
2
+ background-color: #F2F2F2;
3
+ width: 100%;
4
+ height: 45px;
5
+ display: flex;
6
+ align-items: center;
7
+ }
8
+
9
+ .video-loading-placeholder .video-file-icon {
10
+ width: 35px;
11
+ height: auto;
12
+ }
13
+
14
+ .video-loading-placeholder .video-file-info {
15
+ display: flex;
16
+ flex-direction: column;
17
+ justify-content: center;
18
+ align-items: flex-start;
19
+ font-size: small;
20
+ }
21
+
22
+ .video-loading-placeholder .file-size {
23
+ display: flex;
24
+ align-items: center;
25
+ color: #939393;
26
+ }
27
+
28
+ .video-loading-placeholder .loading-spinner {
29
+ border: 3px solid #d8d8d8;
30
+ border-top: 3px solid #939393;
31
+ border-radius: 50%;
32
+ width: 15px;
33
+ height: 15px;
34
+ animation: spin 1s linear infinite;
35
+ }
36
+
37
+ @keyframes spin {
38
+ 0% { transform: rotate(0deg); }
39
+ 100% { transform: rotate(360deg); }
40
+ }
41
+
42
+ .sdoc-video-block-wrapper{
43
+ display: flex;
44
+ }
45
+ .sdoc-video-wrapper {
46
+ position: relative;
47
+ display: flex;
48
+ }
49
+
50
+ .sdoc-video-wrapper .sdoc-video-inner {
51
+ position: relative;
52
+ width: 670px;
53
+ display: flex;
54
+ margin-top: 5px;
55
+ margin-bottom: 10px;
56
+ }
57
+
58
+
59
+ .sdoc-video-inner .sdoc-video-element{
60
+ width: 670px;
61
+ }
62
+
63
+ .sdoc-video-inner .sdoc-video-element:focus-visible {
64
+ outline: none;
65
+ }
66
+
67
+ .sdoc-video-inner .sdoc-video-play {
68
+ position: absolute;
69
+ top: 40%;
70
+ left: 45%;
71
+ font-size: 48px;
72
+ pointer-events: none;
73
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _constants = require("../../constants");
9
+ var _plugin = _interopRequireDefault(require("./plugin"));
10
+ var _menu = _interopRequireDefault(require("./menu"));
11
+ var _renderElem = require("./render-elem");
12
+ require("./index.css");
13
+ const VideoPlugin = {
14
+ type: _constants.VIDEO_BLOCK,
15
+ nodeType: 'element',
16
+ editorMenus: [_menu.default],
17
+ editorPlugin: _plugin.default,
18
+ renderElements: [_renderElem.renderVideoBlock]
19
+ };
20
+ var _default = exports.default = VideoPlugin;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _reactstrap = require("reactstrap");
12
+ var _helpers = require("../helpers");
13
+ var _constants = require("../../../constants");
14
+ var _constants2 = require("../../../../constants");
15
+ var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
16
+ const VideoMenu = _ref => {
17
+ let {
18
+ editor,
19
+ readonly,
20
+ eventBus,
21
+ isRichEditor,
22
+ className
23
+ } = _ref;
24
+ const disabled = (0, _helpers.isInsertVideoMenuDisabled)(editor, readonly);
25
+ const menuConfig = _constants.MENUS_CONFIG_MAP[_constants.VIDEO];
26
+ const {
27
+ t
28
+ } = (0, _reactI18next.useTranslation)();
29
+ const openLocalVideoDialog = (0, _react.useCallback)(() => {
30
+ eventBus.dispatch(_constants2.INTERNAL_EVENT.INSERT_ELEMENT, {
31
+ type: _constants.LOCAL_VIDEO,
32
+ editor
33
+ });
34
+ }, [editor, eventBus]);
35
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
36
+ disabled: disabled,
37
+ menuConfig: menuConfig,
38
+ className: "pr-2"
39
+ }, !disabled && /*#__PURE__*/_react.default.createElement("i", {
40
+ className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon 2222"
41
+ })), !disabled && /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledPopover, {
42
+ target: menuConfig.id,
43
+ trigger: "hover",
44
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-video-menu-popover",
45
+ placement: "right-start",
46
+ hideArrow: true,
47
+ fade: false
48
+ }, /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "sdoc-insert-video-menu-popover-container sdoc-dropdown-menu-container 333"
50
+ }, /*#__PURE__*/_react.default.createElement("div", {
51
+ className: "sdoc-dropdown-menu-item",
52
+ onClick: openLocalVideoDialog
53
+ }, t('Upload_local_video')))));
54
+ };
55
+ var _default = exports.default = VideoMenu;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _slate = require("@seafile/slate");
9
+ var _isHotkey = _interopRequireDefault(require("is-hotkey"));
10
+ var _core = require("../../core");
11
+ var _constants = require("../../constants");
12
+ const withVideo = editor => {
13
+ const {
14
+ normalizeNode,
15
+ isVoid
16
+ } = editor;
17
+ const newEditor = editor;
18
+
19
+ // Make video_block as void node
20
+ newEditor.isVoid = elem => {
21
+ const {
22
+ type
23
+ } = elem;
24
+ if (type === _constants.VIDEO_BLOCK) {
25
+ return true;
26
+ }
27
+ return isVoid(elem);
28
+ };
29
+ newEditor.normalizeNode = _ref => {
30
+ let [node, path] = _ref;
31
+ const type = (0, _core.getNodeType)(node);
32
+ if (type !== _constants.ELEMENT_TYPE.VIDEO_BLOCK) {
33
+ return normalizeNode([node, path]);
34
+ }
35
+
36
+ // Insert empty node,continue newEditor
37
+ const isLast = (0, _core.isLastNode)(newEditor, node);
38
+ if (isLast) {
39
+ const p = (0, _core.generateEmptyElement)(_constants.ELEMENT_TYPE.PARAGRAPH);
40
+ _slate.Transforms.insertNodes(newEditor, p, {
41
+ at: [path[0] + 1]
42
+ });
43
+ }
44
+ };
45
+ return newEditor;
46
+ };
47
+ var _default = exports.default = withVideo;