@manuscripts/body-editor 3.3.2 → 3.3.4
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/dist/cjs/commands.js +2 -0
- package/dist/cjs/components/views/FigureDropdown.js +5 -11
- package/dist/cjs/lib/files.js +20 -8
- package/dist/cjs/lib/media.js +0 -2
- package/dist/cjs/versions.js +1 -1
- package/dist/es/commands.js +2 -0
- package/dist/es/components/views/FigureDropdown.js +5 -11
- package/dist/es/lib/files.js +20 -8
- package/dist/es/lib/media.js +0 -2
- package/dist/es/versions.js +1 -1
- package/dist/types/components/views/FigureDropdown.d.ts +0 -1
- package/dist/types/versions.d.ts +1 -1
- package/package.json +1 -1
- package/styles/AdvancedEditor.css +2 -7
package/dist/cjs/commands.js
CHANGED
|
@@ -570,6 +570,8 @@ const insertBoxElement = (state, dispatch) => {
|
|
|
570
570
|
]);
|
|
571
571
|
if (position && dispatch) {
|
|
572
572
|
const tr = state.tr.insert(position, node);
|
|
573
|
+
const sectionTitlePosition = position + 4;
|
|
574
|
+
tr.setSelection(prosemirror_state_1.TextSelection.create(tr.doc, sectionTitlePosition));
|
|
573
575
|
dispatch(tr);
|
|
574
576
|
}
|
|
575
577
|
return true;
|
|
@@ -42,29 +42,23 @@ const react_1 = __importStar(require("react"));
|
|
|
42
42
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
43
43
|
const files_1 = require("../../lib/files");
|
|
44
44
|
const get_media_type_1 = require("../../lib/get-media-type");
|
|
45
|
-
function getSupplements(getFiles, getDoc, groupFiles, isEmbed
|
|
45
|
+
function getSupplements(getFiles, getDoc, groupFiles, isEmbed) {
|
|
46
46
|
return groupFiles(getDoc(), getFiles())
|
|
47
47
|
.supplements.map((s) => s.file)
|
|
48
48
|
.filter((f) => {
|
|
49
|
-
if (currentFileHref && f.id === currentFileHref) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
49
|
const mediaInfo = (0, get_media_type_1.getMediaTypeInfo)(f.name);
|
|
53
50
|
return isEmbed
|
|
54
51
|
? mediaInfo.isVideo || mediaInfo.isAudio
|
|
55
52
|
: mediaInfo.isImage;
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
|
-
function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed
|
|
55
|
+
function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed) {
|
|
59
56
|
return groupFiles(getDoc(), getFiles()).others.filter((f) => {
|
|
60
|
-
if (currentFileHref && f.id === currentFileHref) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
57
|
const mediaInfo = (0, get_media_type_1.getMediaTypeInfo)(f.name);
|
|
64
58
|
return isEmbed ? mediaInfo.isVideo || mediaInfo.isAudio : mediaInfo.isImage;
|
|
65
59
|
});
|
|
66
60
|
}
|
|
67
|
-
const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container,
|
|
61
|
+
const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, }) => {
|
|
68
62
|
const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
|
|
69
63
|
const showDownload = onDownload && can.downloadFiles;
|
|
70
64
|
const showUpload = onUpload && can.uploadFile;
|
|
@@ -97,10 +91,10 @@ const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach,
|
|
|
97
91
|
isOpen && (react_1.default.createElement(OptionsDropdownList, { direction: 'right', width: 128, top: 5 },
|
|
98
92
|
showReplace && isEmbedMode && (react_1.default.createElement(ListItemButton, { onClick: () => onReplaceEmbed && onReplaceEmbed() }, "Edit Link")),
|
|
99
93
|
showReplace && !isEmbedMode && (react_1.default.createElement(NestedDropdown, { disabled: !showReplace, parentToggleOpen: toggleOpen, buttonText: replaceBtnText, moveLeft: true, list: react_1.default.createElement(react_1.default.Fragment, null,
|
|
100
|
-
getSupplements(getFiles, getDoc, groupFiles, isEmbed
|
|
94
|
+
getSupplements(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
|
|
101
95
|
(0, style_guide_1.getFileIcon)(file.name),
|
|
102
96
|
react_1.default.createElement(ListItemText, null, file.name)))),
|
|
103
|
-
getOtherFiles(getFiles, getDoc, groupFiles, isEmbed
|
|
97
|
+
getOtherFiles(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
|
|
104
98
|
(0, style_guide_1.getFileIcon)(file.name),
|
|
105
99
|
react_1.default.createElement(ListItemText, null, file.name)))),
|
|
106
100
|
showUpload && (react_1.default.createElement(UploadButton, { onClick: onUpload, disabled: !showUpload },
|
package/dist/cjs/lib/files.js
CHANGED
|
@@ -13,6 +13,7 @@ const figureTypes = [
|
|
|
13
13
|
transform_1.schema.nodes.figure_element,
|
|
14
14
|
transform_1.schema.nodes.image_element,
|
|
15
15
|
transform_1.schema.nodes.hero_image,
|
|
16
|
+
transform_1.schema.nodes.embed,
|
|
16
17
|
];
|
|
17
18
|
function memoGroupFiles() {
|
|
18
19
|
let prevFiles = [];
|
|
@@ -45,15 +46,26 @@ const groupFiles = (doc, files) => {
|
|
|
45
46
|
};
|
|
46
47
|
const getFigureElementFiles = (node, pos) => {
|
|
47
48
|
const figureFiles = [];
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
|
|
49
|
+
if (node.type === transform_1.schema.nodes.embed) {
|
|
50
|
+
if (node.attrs.href) {
|
|
51
|
+
figureFiles.push({
|
|
52
|
+
node,
|
|
53
|
+
pos,
|
|
54
|
+
file: getFile(node.attrs.href),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
for (const figure of (0, prosemirror_utils_1.findChildrenByType)(node, transform_1.schema.nodes.figure)) {
|
|
60
|
+
if ((0, track_changes_utils_1.isHidden)(figure.node)) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
figureFiles.push({
|
|
64
|
+
node: figure.node,
|
|
65
|
+
pos: pos + figure.pos + 1,
|
|
66
|
+
file: getFile(figure.node.attrs.src),
|
|
67
|
+
});
|
|
51
68
|
}
|
|
52
|
-
figureFiles.push({
|
|
53
|
-
node: figure.node,
|
|
54
|
-
pos: pos + figure.pos + 1,
|
|
55
|
-
file: getFile(figure.node.attrs.src),
|
|
56
|
-
});
|
|
57
69
|
}
|
|
58
70
|
return {
|
|
59
71
|
node,
|
package/dist/cjs/lib/media.js
CHANGED
|
@@ -121,7 +121,6 @@ const createReactTools = (node, view, getPos, props, handlers, isEmbed, hasSibli
|
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
123
|
const can = props.getCapabilities();
|
|
124
|
-
const currentFileHref = node.attrs.href;
|
|
125
124
|
const componentProps = {
|
|
126
125
|
can,
|
|
127
126
|
getDoc: () => view.state.doc,
|
|
@@ -134,7 +133,6 @@ const createReactTools = (node, view, getPos, props, handlers, isEmbed, hasSibli
|
|
|
134
133
|
onDelete: handlers.handleDelete,
|
|
135
134
|
isEmbed,
|
|
136
135
|
hasSiblings,
|
|
137
|
-
currentFileHref,
|
|
138
136
|
};
|
|
139
137
|
return (0, ReactSubView_1.default)(props, FigureDropdown_1.FigureOptions, componentProps, node, getPos, view);
|
|
140
138
|
};
|
package/dist/cjs/versions.js
CHANGED
package/dist/es/commands.js
CHANGED
|
@@ -540,6 +540,8 @@ export const insertBoxElement = (state, dispatch) => {
|
|
|
540
540
|
]);
|
|
541
541
|
if (position && dispatch) {
|
|
542
542
|
const tr = state.tr.insert(position, node);
|
|
543
|
+
const sectionTitlePosition = position + 4;
|
|
544
|
+
tr.setSelection(TextSelection.create(tr.doc, sectionTitlePosition));
|
|
543
545
|
dispatch(tr);
|
|
544
546
|
}
|
|
545
547
|
return true;
|
|
@@ -3,29 +3,23 @@ import React, { useEffect } from 'react';
|
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { memoGroupFiles, } from '../../lib/files';
|
|
5
5
|
import { getMediaTypeInfo } from '../../lib/get-media-type';
|
|
6
|
-
function getSupplements(getFiles, getDoc, groupFiles, isEmbed
|
|
6
|
+
function getSupplements(getFiles, getDoc, groupFiles, isEmbed) {
|
|
7
7
|
return groupFiles(getDoc(), getFiles())
|
|
8
8
|
.supplements.map((s) => s.file)
|
|
9
9
|
.filter((f) => {
|
|
10
|
-
if (currentFileHref && f.id === currentFileHref) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
10
|
const mediaInfo = getMediaTypeInfo(f.name);
|
|
14
11
|
return isEmbed
|
|
15
12
|
? mediaInfo.isVideo || mediaInfo.isAudio
|
|
16
13
|
: mediaInfo.isImage;
|
|
17
14
|
});
|
|
18
15
|
}
|
|
19
|
-
function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed
|
|
16
|
+
function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed) {
|
|
20
17
|
return groupFiles(getDoc(), getFiles()).others.filter((f) => {
|
|
21
|
-
if (currentFileHref && f.id === currentFileHref) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
18
|
const mediaInfo = getMediaTypeInfo(f.name);
|
|
25
19
|
return isEmbed ? mediaInfo.isVideo || mediaInfo.isAudio : mediaInfo.isImage;
|
|
26
20
|
});
|
|
27
21
|
}
|
|
28
|
-
export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container,
|
|
22
|
+
export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, }) => {
|
|
29
23
|
const { isOpen, toggleOpen, wrapperRef } = useDropdown();
|
|
30
24
|
const showDownload = onDownload && can.downloadFiles;
|
|
31
25
|
const showUpload = onUpload && can.uploadFile;
|
|
@@ -58,10 +52,10 @@ export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onD
|
|
|
58
52
|
isOpen && (React.createElement(OptionsDropdownList, { direction: 'right', width: 128, top: 5 },
|
|
59
53
|
showReplace && isEmbedMode && (React.createElement(ListItemButton, { onClick: () => onReplaceEmbed && onReplaceEmbed() }, "Edit Link")),
|
|
60
54
|
showReplace && !isEmbedMode && (React.createElement(NestedDropdown, { disabled: !showReplace, parentToggleOpen: toggleOpen, buttonText: replaceBtnText, moveLeft: true, list: React.createElement(React.Fragment, null,
|
|
61
|
-
getSupplements(getFiles, getDoc, groupFiles, isEmbed
|
|
55
|
+
getSupplements(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
|
|
62
56
|
getFileIcon(file.name),
|
|
63
57
|
React.createElement(ListItemText, null, file.name)))),
|
|
64
|
-
getOtherFiles(getFiles, getDoc, groupFiles, isEmbed
|
|
58
|
+
getOtherFiles(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
|
|
65
59
|
getFileIcon(file.name),
|
|
66
60
|
React.createElement(ListItemText, null, file.name)))),
|
|
67
61
|
showUpload && (React.createElement(UploadButton, { onClick: onUpload, disabled: !showUpload },
|
package/dist/es/lib/files.js
CHANGED
|
@@ -9,6 +9,7 @@ const figureTypes = [
|
|
|
9
9
|
schema.nodes.figure_element,
|
|
10
10
|
schema.nodes.image_element,
|
|
11
11
|
schema.nodes.hero_image,
|
|
12
|
+
schema.nodes.embed,
|
|
12
13
|
];
|
|
13
14
|
export function memoGroupFiles() {
|
|
14
15
|
let prevFiles = [];
|
|
@@ -41,15 +42,26 @@ export const groupFiles = (doc, files) => {
|
|
|
41
42
|
};
|
|
42
43
|
const getFigureElementFiles = (node, pos) => {
|
|
43
44
|
const figureFiles = [];
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
|
|
45
|
+
if (node.type === schema.nodes.embed) {
|
|
46
|
+
if (node.attrs.href) {
|
|
47
|
+
figureFiles.push({
|
|
48
|
+
node,
|
|
49
|
+
pos,
|
|
50
|
+
file: getFile(node.attrs.href),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
for (const figure of findChildrenByType(node, schema.nodes.figure)) {
|
|
56
|
+
if (isHidden(figure.node)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
figureFiles.push({
|
|
60
|
+
node: figure.node,
|
|
61
|
+
pos: pos + figure.pos + 1,
|
|
62
|
+
file: getFile(figure.node.attrs.src),
|
|
63
|
+
});
|
|
47
64
|
}
|
|
48
|
-
figureFiles.push({
|
|
49
|
-
node: figure.node,
|
|
50
|
-
pos: pos + figure.pos + 1,
|
|
51
|
-
file: getFile(figure.node.attrs.src),
|
|
52
|
-
});
|
|
53
65
|
}
|
|
54
66
|
return {
|
|
55
67
|
node,
|
package/dist/es/lib/media.js
CHANGED
|
@@ -112,7 +112,6 @@ export const createReactTools = (node, view, getPos, props, handlers, isEmbed, h
|
|
|
112
112
|
return null;
|
|
113
113
|
}
|
|
114
114
|
const can = props.getCapabilities();
|
|
115
|
-
const currentFileHref = node.attrs.href;
|
|
116
115
|
const componentProps = {
|
|
117
116
|
can,
|
|
118
117
|
getDoc: () => view.state.doc,
|
|
@@ -125,7 +124,6 @@ export const createReactTools = (node, view, getPos, props, handlers, isEmbed, h
|
|
|
125
124
|
onDelete: handlers.handleDelete,
|
|
126
125
|
isEmbed,
|
|
127
126
|
hasSiblings,
|
|
128
|
-
currentFileHref,
|
|
129
127
|
};
|
|
130
128
|
return ReactSubView(props, FigureOptions, componentProps, node, getPos, view);
|
|
131
129
|
};
|
package/dist/es/versions.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.3.
|
|
1
|
+
export const VERSION = '3.3.4';
|
|
2
2
|
export const MATHJAX_VERSION = '3.2.2';
|
|
@@ -18,7 +18,6 @@ export interface FigureOptionsProps extends FigureDropdownProps {
|
|
|
18
18
|
onDelete?: () => void;
|
|
19
19
|
isEmbed: boolean;
|
|
20
20
|
hasSiblings: () => boolean;
|
|
21
|
-
currentFileHref?: string;
|
|
22
21
|
}
|
|
23
22
|
export interface FigureElementOptionsProps extends FigureDropdownProps {
|
|
24
23
|
onAdd: (file: FileAttachment) => Promise<void>;
|
package/dist/types/versions.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "3.3.
|
|
1
|
+
export declare const VERSION = "3.3.4";
|
|
2
2
|
export declare const MATHJAX_VERSION = "3.2.2";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/body-editor",
|
|
3
3
|
"description": "Prosemirror components for editing and viewing manuscripts",
|
|
4
|
-
"version": "3.3.
|
|
4
|
+
"version": "3.3.4",
|
|
5
5
|
"repository": "github:Atypon-OpenSource/manuscripts-body-editor",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"main": "dist/cjs",
|
|
@@ -851,9 +851,6 @@ span.comment-marker {
|
|
|
851
851
|
0% {
|
|
852
852
|
background: var(--fade-color);
|
|
853
853
|
}
|
|
854
|
-
100% {
|
|
855
|
-
background: transparent;
|
|
856
|
-
}
|
|
857
854
|
}
|
|
858
855
|
|
|
859
856
|
.selected-suggestion:not(.block-container):not(.graphical-abstract):not(
|
|
@@ -1045,7 +1042,7 @@ figure.block:has(.equation.selected-suggestion) {
|
|
|
1045
1042
|
.tracking-visible
|
|
1046
1043
|
.ProseMirror
|
|
1047
1044
|
[data-track-status='pending'][data-track-op='delete']
|
|
1048
|
-
.block,
|
|
1045
|
+
.block:not(.box-element),
|
|
1049
1046
|
.tracking-visible
|
|
1050
1047
|
.ProseMirror
|
|
1051
1048
|
.figure-block
|
|
@@ -1063,9 +1060,7 @@ figure.block:has(.equation.selected-suggestion) {
|
|
|
1063
1060
|
}
|
|
1064
1061
|
|
|
1065
1062
|
.selected-suggestion[data-track-status='pending'][data-track-op='delete']
|
|
1066
|
-
.block
|
|
1067
|
-
.selected-suggestion[data-track-status='pending'][data-track-op='delete']
|
|
1068
|
-
.block {
|
|
1063
|
+
.block:not(.box-element) {
|
|
1069
1064
|
box-shadow: inset 6px 0 0 var(--deleted-color),
|
|
1070
1065
|
inset 9px 0 0 var(--deleted-pending-bg-color) !important;
|
|
1071
1066
|
animation: fadeOutBackground 3s forwards;
|