@manuscripts/article-editor 3.9.3-LEAN-4573.1 → 3.9.3-LEAN-4611.1
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/components/FileManager/FileActions.js +3 -1
- package/dist/cjs/components/FileManager/FileActions.js.map +1 -1
- package/dist/cjs/components/FileManager/FileGroup.js +108 -0
- package/dist/cjs/components/FileManager/FileGroup.js.map +1 -0
- package/dist/cjs/components/FileManager/InlineFilesSection.js +77 -28
- package/dist/cjs/components/FileManager/InlineFilesSection.js.map +1 -1
- package/dist/es/components/FileManager/FileActions.js +3 -1
- package/dist/es/components/FileManager/FileActions.js.map +1 -1
- package/dist/es/components/FileManager/FileGroup.js +102 -0
- package/dist/es/components/FileManager/FileGroup.js.map +1 -0
- package/dist/es/components/FileManager/InlineFilesSection.js +80 -31
- package/dist/es/components/FileManager/InlineFilesSection.js.map +1 -1
- package/dist/types/components/FileManager/FileActions.d.ts +1 -0
- package/dist/types/components/FileManager/FileGroup.d.ts +19 -0
- package/package.json +3 -3
@@ -33,7 +33,7 @@ const styled_components_1 = __importDefault(require("styled-components"));
|
|
33
33
|
/**
|
34
34
|
* This component represents the drop-down list action for each file item.
|
35
35
|
*/
|
36
|
-
const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain, move, className, file, accept, }) => {
|
36
|
+
const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onDelete, onUseAsMain, move, className, file, accept, }) => {
|
37
37
|
const can = (0, style_guide_1.usePermissions)();
|
38
38
|
const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
|
39
39
|
const [isMoveDialogOpen, setMoveDialogOpen] = (0, react_1.useState)(false);
|
@@ -41,6 +41,7 @@ const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain
|
|
41
41
|
const showDownload = can?.downloadFiles && onDownload;
|
42
42
|
const showReplace = can?.replaceFile && onReplace;
|
43
43
|
const showDetach = can?.detachFile && onDetach;
|
44
|
+
const showDelete = can?.detachFile && onDelete;
|
44
45
|
const showMove = can?.moveFile && move;
|
45
46
|
const showUseAsMain = can?.moveFile && onUseAsMain && isValidMainDocumentFormat(file);
|
46
47
|
const show = showDownload || showReplace || showDetach || showMove || showUseAsMain;
|
@@ -68,6 +69,7 @@ const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain
|
|
68
69
|
react_1.default.createElement(exports.FileAction, { onClick: openFileDialog }, "Replace"),
|
69
70
|
react_1.default.createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleChange, accept: accept }))),
|
70
71
|
showDetach && react_1.default.createElement(exports.FileAction, { onClick: onDetach }, "Detach"),
|
72
|
+
showDelete && react_1.default.createElement(exports.FileAction, { onClick: onDelete }, "Delete"),
|
71
73
|
showMove && (react_1.default.createElement(exports.FileAction, { onClick: () => setMoveDialogOpen(true) },
|
72
74
|
"Move to ",
|
73
75
|
move.sectionType)),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,0DASiC;AACjC,+CAA4D;AAC5D,0EAAsC;AAItC;;GAEG;AACI,MAAM,WAAW,
|
1
|
+
{"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*!
|
3
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
4
|
+
*
|
5
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
6
|
+
*
|
7
|
+
* The Original Code is manuscripts-frontend.
|
8
|
+
*
|
9
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
10
|
+
*
|
11
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
12
|
+
*/
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
exports.ToggleIcon = exports.FileGroupHeader = exports.FileLabel = exports.FileGroup = exports.FileGroupItemContainer = exports.FileGroupContainer = void 0;
|
18
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
19
|
+
exports.FileGroupContainer = styled_components_1.default.div `
|
20
|
+
margin: 20px 0px 20px 15px;
|
21
|
+
`;
|
22
|
+
exports.FileGroupItemContainer = styled_components_1.default.div `
|
23
|
+
display: flex;
|
24
|
+
align-items: center;
|
25
|
+
cursor: pointer;
|
26
|
+
padding: 24px 18px;
|
27
|
+
|
28
|
+
.react-tooltip {
|
29
|
+
max-width: 100% !important;
|
30
|
+
}
|
31
|
+
|
32
|
+
svg {
|
33
|
+
width: 16px;
|
34
|
+
}
|
35
|
+
|
36
|
+
&.dragging {
|
37
|
+
opacity: 0.2;
|
38
|
+
}
|
39
|
+
|
40
|
+
.show-on-hover {
|
41
|
+
visibility: hidden;
|
42
|
+
}
|
43
|
+
|
44
|
+
&:hover .show-on-hover {
|
45
|
+
visibility: visible;
|
46
|
+
}
|
47
|
+
|
48
|
+
&:hover,
|
49
|
+
&:focus {
|
50
|
+
background: #f2fbfc;
|
51
|
+
}
|
52
|
+
`;
|
53
|
+
exports.FileGroup = styled_components_1.default.div `
|
54
|
+
display: block;
|
55
|
+
`;
|
56
|
+
exports.FileLabel = styled_components_1.default.div `
|
57
|
+
color: ${(props) => props.theme.colors.text.primary};
|
58
|
+
font-weight: bold;
|
59
|
+
font-size: 16px;
|
60
|
+
line-height: 20px;
|
61
|
+
white-space: nowrap;
|
62
|
+
align-content: center;
|
63
|
+
`;
|
64
|
+
exports.FileGroupHeader = styled_components_1.default.div `
|
65
|
+
display: flex;
|
66
|
+
align-items: center;
|
67
|
+
cursor: pointer;
|
68
|
+
padding-right: 20px;
|
69
|
+
|
70
|
+
.file-icon {
|
71
|
+
margin-right: ${(props) => props.theme.grid.unit * 2}px; /* Adjust as needed */
|
72
|
+
}
|
73
|
+
|
74
|
+
${exports.FileLabel} {
|
75
|
+
margin-right: auto;
|
76
|
+
}
|
77
|
+
`;
|
78
|
+
exports.ToggleIcon = styled_components_1.default.div `
|
79
|
+
width: 20px;
|
80
|
+
height: 20px;
|
81
|
+
border-radius: 50%;
|
82
|
+
border: 1px solid #e2e2e2;
|
83
|
+
text-align: center;
|
84
|
+
cursor: pointer;
|
85
|
+
|
86
|
+
svg {
|
87
|
+
width: 19px;
|
88
|
+
height: 19px;
|
89
|
+
transition: transform 0.2s ease; // Smooth transition for rotation
|
90
|
+
}
|
91
|
+
|
92
|
+
// Style for TriangleCollapsedIcon (when collapsed)
|
93
|
+
${(props) => !props.isOpen &&
|
94
|
+
`
|
95
|
+
svg {
|
96
|
+
transform: rotate(270deg); // Point downward when collapsed
|
97
|
+
}
|
98
|
+
`}
|
99
|
+
|
100
|
+
// Style for TriangleExpandedIcon (when expanded)
|
101
|
+
${(props) => props.isOpen &&
|
102
|
+
`
|
103
|
+
svg {
|
104
|
+
transform: rotate(0deg); // Point upward when expanded
|
105
|
+
}
|
106
|
+
`}
|
107
|
+
`;
|
108
|
+
//# sourceMappingURL=FileGroup.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FileGroup.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileGroup.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,0EAAsC;AAEzB,QAAA,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;CAE3C,CAAA;AACY,QAAA,sBAAsB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/C,CAAA;AAEY,QAAA,SAAS,GAAG,2BAAM,CAAC,GAAG,CAAA;;CAElC,CAAA;AACY,QAAA,SAAS,GAAG,2BAAM,CAAC,GAAG,CAAA;WACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAEY,QAAA,eAAe,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;oBAOrB,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;IAG3B,iBAAS;;;CAGZ,CAAA;AAEY,QAAA,UAAU,GAAG,2BAAM,CAAC,GAAG,CAAqB;;;;;;;;;;;;;;;IAerD,CAAC,KAAK,EAAE,EAAE,CACV,CAAC,KAAK,CAAC,MAAM;IACb;;;;GAID;;;IAGC,CAAC,KAAK,EAAE,EAAE,CACV,KAAK,CAAC,MAAM;IACZ;;;;GAID;CACF,CAAA"}
|
@@ -29,31 +29,30 @@ const transform_1 = require("@manuscripts/transform");
|
|
29
29
|
const prosemirror_state_1 = require("prosemirror-state");
|
30
30
|
const prosemirror_utils_1 = require("prosemirror-utils");
|
31
31
|
const react_1 = __importStar(require("react"));
|
32
|
+
const files_1 = require("../../lib/files");
|
32
33
|
const store_1 = require("../../store");
|
33
34
|
const FileActions_1 = require("./FileActions");
|
34
|
-
const FileContainer_1 = require("./FileContainer");
|
35
35
|
const FileCreatedDate_1 = require("./FileCreatedDate");
|
36
|
+
const FileGroup_1 = require("./FileGroup");
|
36
37
|
const FileManager_1 = require("./FileManager");
|
37
38
|
const FileName_1 = require("./FileName");
|
39
|
+
const FileTypeIcon_1 = require("./FileTypeIcon");
|
38
40
|
const InlineFilesSection = ({ elements, }) => {
|
39
41
|
const [{ view, fileManagement, sectionCategories }] = (0, store_1.useStore)((s) => ({
|
40
42
|
view: s.view,
|
41
43
|
fileManagement: s.fileManagement,
|
42
44
|
sectionCategories: s.sectionCategories,
|
43
45
|
}));
|
44
|
-
const
|
46
|
+
const groupedMetadata = (0, react_1.useMemo)(() => {
|
45
47
|
if (!view) {
|
46
48
|
return [];
|
47
49
|
}
|
48
50
|
let figureIndex = 1;
|
49
51
|
let imageIndex = 1;
|
50
52
|
return elements.map((element) => {
|
51
|
-
const figure = element.files[0];
|
52
|
-
const file = figure?.file || { id: '', name: '' };
|
53
53
|
const $pos = view.state.doc.resolve(element.pos);
|
54
54
|
const section = (0, prosemirror_utils_1.findParentNodeOfTypeClosestToPos)($pos, transform_1.schema.nodes.graphical_abstract_section);
|
55
|
-
let label;
|
56
|
-
let icon;
|
55
|
+
let label, icon;
|
57
56
|
if (section) {
|
58
57
|
const category = section.node.attrs.category;
|
59
58
|
label = sectionCategories.get(category)?.titles[0] || '';
|
@@ -63,62 +62,112 @@ const InlineFilesSection = ({ elements, }) => {
|
|
63
62
|
label = `Image ${imageIndex++}`;
|
64
63
|
icon = style_guide_1.FileImageIcon;
|
65
64
|
}
|
66
|
-
else if (element.node.type === transform_1.schema.nodes.hero_image) {
|
67
|
-
label = `Hero Image`;
|
68
|
-
icon = style_guide_1.FileImageIcon;
|
69
|
-
}
|
70
65
|
else {
|
71
66
|
label = `Figure ${figureIndex++}`;
|
72
67
|
icon = style_guide_1.FileFigureIcon;
|
73
68
|
}
|
74
69
|
return {
|
75
70
|
element,
|
76
|
-
node: figure?.node,
|
77
|
-
pos: figure?.pos,
|
78
|
-
file,
|
79
71
|
label,
|
80
72
|
icon,
|
73
|
+
files: element.files.filter((f) => f.file.id),
|
81
74
|
};
|
82
75
|
});
|
83
76
|
}, [elements, view, sectionCategories]);
|
77
|
+
const [openGroupIndexes, setOpenGroupIndexes] = (0, react_1.useState)(new Set(groupedMetadata.map((_, index) => index)));
|
78
|
+
const toggleGroupOpen = (groupIndex) => {
|
79
|
+
setOpenGroupIndexes((prevOpenIndexes) => {
|
80
|
+
const newOpenIndexes = new Set(prevOpenIndexes);
|
81
|
+
if (newOpenIndexes.has(groupIndex)) {
|
82
|
+
newOpenIndexes.delete(groupIndex);
|
83
|
+
}
|
84
|
+
else {
|
85
|
+
newOpenIndexes.add(groupIndex);
|
86
|
+
}
|
87
|
+
return newOpenIndexes;
|
88
|
+
});
|
89
|
+
};
|
84
90
|
if (!view) {
|
85
91
|
return null;
|
86
92
|
}
|
87
|
-
const handleClick = (
|
93
|
+
const handleClick = (element) => {
|
94
|
+
const tr = view.state.tr;
|
95
|
+
tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc, element.pos));
|
96
|
+
tr.scrollIntoView();
|
97
|
+
view.focus();
|
98
|
+
view.dispatch(tr);
|
99
|
+
};
|
100
|
+
const handleFileClick = (pos) => {
|
101
|
+
if (!pos) {
|
102
|
+
return;
|
103
|
+
}
|
88
104
|
const tr = view.state.tr;
|
89
|
-
tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc,
|
105
|
+
tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc, pos));
|
90
106
|
tr.scrollIntoView();
|
91
107
|
view.focus();
|
92
108
|
view.dispatch(tr);
|
93
109
|
};
|
94
|
-
const handleDetach = (
|
95
|
-
if (!
|
110
|
+
const handleDetach = (pos) => {
|
111
|
+
if (!pos) {
|
96
112
|
return;
|
97
113
|
}
|
98
114
|
const tr = view.state.tr;
|
99
|
-
tr.setNodeAttribute(
|
100
|
-
tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc,
|
115
|
+
tr.setNodeAttribute(pos, 'src', '');
|
116
|
+
tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, pos));
|
101
117
|
tr.scrollIntoView();
|
102
118
|
view.focus();
|
103
119
|
view.dispatch(tr);
|
104
120
|
};
|
105
|
-
const
|
106
|
-
if (!
|
121
|
+
const handleDelete = (pos) => {
|
122
|
+
if (!pos || !view) {
|
123
|
+
return;
|
124
|
+
}
|
125
|
+
const node = view.state.doc.nodeAt(pos);
|
126
|
+
if (node?.type === transform_1.schema.nodes.figure) {
|
127
|
+
const tr = view.state.tr;
|
128
|
+
tr.delete(pos, pos + node.nodeSize);
|
129
|
+
view.dispatch(tr);
|
130
|
+
}
|
131
|
+
};
|
132
|
+
const handleReplace = async (pos, file) => {
|
133
|
+
if (!pos || !file) {
|
107
134
|
return;
|
108
135
|
}
|
109
136
|
const uploaded = await fileManagement.upload(file);
|
110
137
|
const tr = view.state.tr;
|
111
|
-
tr.setNodeAttribute(
|
112
|
-
tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc,
|
138
|
+
tr.setNodeAttribute(pos, 'src', uploaded.id);
|
139
|
+
tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, pos));
|
113
140
|
tr.scrollIntoView();
|
114
141
|
view.focus();
|
115
142
|
view.dispatch(tr);
|
116
143
|
};
|
117
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
118
|
-
|
119
|
-
|
120
|
-
react_1.default.createElement(
|
121
|
-
|
144
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, groupedMetadata.map((group, groupIndex) => {
|
145
|
+
const isOpen = openGroupIndexes.has(groupIndex);
|
146
|
+
return (react_1.default.createElement(FileGroup_1.FileGroupContainer, { "data-cy": "file-container", key: groupIndex, onClick: () => handleClick(group.element) },
|
147
|
+
react_1.default.createElement(FileGroup_1.FileGroupHeader, null,
|
148
|
+
react_1.default.createElement(group.icon, { className: "file-icon" }),
|
149
|
+
group.label && react_1.default.createElement(FileGroup_1.FileLabel, null,
|
150
|
+
group.label,
|
151
|
+
":"),
|
152
|
+
group.files.length > 0 && (react_1.default.createElement(FileGroup_1.ToggleIcon, { isOpen: isOpen, onClick: (e) => {
|
153
|
+
e.stopPropagation();
|
154
|
+
toggleGroupOpen(groupIndex);
|
155
|
+
} }, isOpen ? (react_1.default.createElement(style_guide_1.TriangleExpandedIcon, null)) : (react_1.default.createElement(style_guide_1.TriangleCollapsedIcon, null))))),
|
156
|
+
isOpen && group.files.length > 0 && (react_1.default.createElement(FileGroup_1.FileGroup, null, group.files.map((fileAttachment, fileIndex) => (react_1.default.createElement(FileGroup_1.FileGroupItemContainer, { key: fileIndex, "data-tooltip-id": `${fileAttachment.file?.id}-file-name-tooltip`, onClick: (e) => {
|
157
|
+
e.stopPropagation();
|
158
|
+
handleFileClick(fileAttachment.pos);
|
159
|
+
} },
|
160
|
+
fileAttachment.file && (react_1.default.createElement(FileTypeIcon_1.FileTypeIcon, { file: fileAttachment.file })),
|
161
|
+
react_1.default.createElement(FileName_1.FileNameText, { "data-cy": "filename" },
|
162
|
+
fileAttachment.file?.name
|
163
|
+
? (0, files_1.trimFilename)(fileAttachment.file.name, 25)
|
164
|
+
: 'Figure',
|
165
|
+
react_1.default.createElement(style_guide_1.Tooltip, { id: `${fileAttachment.file?.id}-file-name-tooltip`, place: "bottom" }, fileAttachment.file?.name || 'Figure')),
|
166
|
+
fileAttachment.file && (react_1.default.createElement(FileCreatedDate_1.FileCreatedDate, { file: fileAttachment.file, className: "show-on-hover" })),
|
167
|
+
react_1.default.createElement(FileActions_1.FileActions, { sectionType: FileManager_1.FileSectionType.Inline, onReplace: async (f) => await handleReplace(fileAttachment.pos, f), onDetach: () => handleDetach(fileAttachment.pos), onDownload: () => fileAttachment.file &&
|
168
|
+
fileManagement.download(fileAttachment.file), onDelete: fileIndex !== 0 // Skip displaying the delete option for the first figure
|
169
|
+
? () => handleDelete(fileAttachment.pos)
|
170
|
+
: undefined }))))))));
|
122
171
|
})));
|
123
172
|
};
|
124
173
|
exports.InlineFilesSection = InlineFilesSection;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,
|
1
|
+
{"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
|
@@ -4,7 +4,7 @@ import styled from 'styled-components';
|
|
4
4
|
/**
|
5
5
|
* This component represents the drop-down list action for each file item.
|
6
6
|
*/
|
7
|
-
export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain, move, className, file, accept, }) => {
|
7
|
+
export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onDelete, onUseAsMain, move, className, file, accept, }) => {
|
8
8
|
const can = usePermissions();
|
9
9
|
const { isOpen, toggleOpen, wrapperRef } = useDropdown();
|
10
10
|
const [isMoveDialogOpen, setMoveDialogOpen] = useState(false);
|
@@ -12,6 +12,7 @@ export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUs
|
|
12
12
|
const showDownload = can?.downloadFiles && onDownload;
|
13
13
|
const showReplace = can?.replaceFile && onReplace;
|
14
14
|
const showDetach = can?.detachFile && onDetach;
|
15
|
+
const showDelete = can?.detachFile && onDelete;
|
15
16
|
const showMove = can?.moveFile && move;
|
16
17
|
const showUseAsMain = can?.moveFile && onUseAsMain && isValidMainDocumentFormat(file);
|
17
18
|
const show = showDownload || showReplace || showDetach || showMove || showUseAsMain;
|
@@ -39,6 +40,7 @@ export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUs
|
|
39
40
|
React.createElement(FileAction, { onClick: openFileDialog }, "Replace"),
|
40
41
|
React.createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleChange, accept: accept }))),
|
41
42
|
showDetach && React.createElement(FileAction, { onClick: onDetach }, "Detach"),
|
43
|
+
showDelete && React.createElement(FileAction, { onClick: onDelete }, "Delete"),
|
42
44
|
showMove && (React.createElement(FileAction, { onClick: () => setMoveDialogOpen(true) },
|
43
45
|
"Move to ",
|
44
46
|
move.sectionType)),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,EAAe,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAItC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,
|
1
|
+
{"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,EAAe,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAItC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAWnB,CAAC,EACJ,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,MAAM,GACP,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAA;IACxD,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACtE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,GACnD,QAAQ,CAAU,KAAK,CAAC,CAAA;IAE1B,MAAM,YAAY,GAAG,GAAG,EAAE,aAAa,IAAI,UAAU,CAAA;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,WAAW,IAAI,SAAS,CAAA;IACjD,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,IAAI,QAAQ,CAAA;IAC9C,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,IAAI,QAAQ,CAAA;IAC9C,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAA;IACtC,MAAM,aAAa,GACjB,GAAG,EAAE,QAAQ,IAAI,WAAW,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAEjE,MAAM,IAAI,GACR,YAAY,IAAI,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,aAAa,CAAA;IAExE,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAEnD,MAAM,YAAY,GAAG,KAAK,EAAE,KAAoC,EAAE,EAAE;QAClE,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;SACtB;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;YACxC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SAC7B;IACH,CAAC,CAAA;IAED,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,oBAAC,iBAAiB,IAAC,GAAG,EAAE,UAAU;QAChC,oBAAC,WAAW,IACV,OAAO,EAAE,UAAU,EACnB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,eAAe,aACjB,cAAc,gBACX,SAAS,kBACN,MAAM;YAEpB,oBAAC,QAAQ,OAAG,CACA;QACb,MAAM,IAAI,CACT,oBAAC,sBAAsB,eACb,uBAAuB,EAC/B,SAAS,EAAC,OAAO,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,UAAU;YAElB,YAAY,IAAI,CACf,oBAAC,UAAU,IAAC,OAAO,EAAE,UAAU,eAAuB,CACvD;YACA,WAAW,IAAI,CACd;gBACE,oBAAC,UAAU,IAAC,OAAO,EAAE,cAAc,cAAsB;gBACzD,+BACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,GACd,CACD,CACJ;YACA,UAAU,IAAI,oBAAC,UAAU,IAAC,OAAO,EAAE,QAAQ,aAAqB;YAChE,UAAU,IAAI,oBAAC,UAAU,IAAC,OAAO,EAAE,QAAQ,aAAqB;YAChE,QAAQ,IAAI,CACX,oBAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;;gBACvC,IAAI,CAAC,WAAW,CACd,CACd;YACA,aAAa,IAAI,CAChB,oBAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,2BAE1C,CACd,CACsB,CAC1B;QACA,QAAQ,IAAI,CACX,oBAAC,0BAA0B,eACjB,0BAA0B,EAClC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACrC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,UAAU,EAAE,IAAI,CAAC,OAAO,GACxB,CACH;QACA,aAAa,IAAI,CAChB,oBAAC,2BAA2B,eAClB,iCAAiC,EACzC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAC1C,eAAe,EAAE,WAAW,GAC5B,CACH,CACiB,CACrB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAI5B,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,CACb;QACE,oBAAC,UAAU,OAAG;+BAEb,CACJ,CAAA;IACD,MAAM,OAAO,GAAG,CACd;;QAEE,+BAAM;QACN,+BAAM;mCAEL,CACJ,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,eAAe,EAAE,CAAA;QACjB,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,SAAS;aACjB;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;gBACrB,KAAK,EAAE,QAAQ;aAChB;SACF,GACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAM3B,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,+CAA+C,MAAM,IAAI,CAAA;IACxE,MAAM,OAAO,GAAG,kCAAkC,MAAM,mBAAmB,MAAM,IAAI,CAAA;IAErF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,UAAU,EAAE,CAAA;QACZ,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,MAAM;aACd;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;gBACrB,KAAK,EAAE,QAAQ;aAChB;SACF,GACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;;CAE7C,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;;CAWvC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;;;;;;gBAM1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;;;;CAI/D,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;iBACnB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,IAAqB,EAAW,EAAE;IACnE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAA;KACb;IAED,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAEjE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CACpD,CAAA;AACH,CAAC,CAAA"}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
/*!
|
2
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
3
|
+
*
|
4
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
5
|
+
*
|
6
|
+
* The Original Code is manuscripts-frontend.
|
7
|
+
*
|
8
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
|
+
*
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
|
+
*/
|
12
|
+
import styled from 'styled-components';
|
13
|
+
export const FileGroupContainer = styled.div `
|
14
|
+
margin: 20px 0px 20px 15px;
|
15
|
+
`;
|
16
|
+
export const FileGroupItemContainer = styled.div `
|
17
|
+
display: flex;
|
18
|
+
align-items: center;
|
19
|
+
cursor: pointer;
|
20
|
+
padding: 24px 18px;
|
21
|
+
|
22
|
+
.react-tooltip {
|
23
|
+
max-width: 100% !important;
|
24
|
+
}
|
25
|
+
|
26
|
+
svg {
|
27
|
+
width: 16px;
|
28
|
+
}
|
29
|
+
|
30
|
+
&.dragging {
|
31
|
+
opacity: 0.2;
|
32
|
+
}
|
33
|
+
|
34
|
+
.show-on-hover {
|
35
|
+
visibility: hidden;
|
36
|
+
}
|
37
|
+
|
38
|
+
&:hover .show-on-hover {
|
39
|
+
visibility: visible;
|
40
|
+
}
|
41
|
+
|
42
|
+
&:hover,
|
43
|
+
&:focus {
|
44
|
+
background: #f2fbfc;
|
45
|
+
}
|
46
|
+
`;
|
47
|
+
export const FileGroup = styled.div `
|
48
|
+
display: block;
|
49
|
+
`;
|
50
|
+
export const FileLabel = styled.div `
|
51
|
+
color: ${(props) => props.theme.colors.text.primary};
|
52
|
+
font-weight: bold;
|
53
|
+
font-size: 16px;
|
54
|
+
line-height: 20px;
|
55
|
+
white-space: nowrap;
|
56
|
+
align-content: center;
|
57
|
+
`;
|
58
|
+
export const FileGroupHeader = styled.div `
|
59
|
+
display: flex;
|
60
|
+
align-items: center;
|
61
|
+
cursor: pointer;
|
62
|
+
padding-right: 20px;
|
63
|
+
|
64
|
+
.file-icon {
|
65
|
+
margin-right: ${(props) => props.theme.grid.unit * 2}px; /* Adjust as needed */
|
66
|
+
}
|
67
|
+
|
68
|
+
${FileLabel} {
|
69
|
+
margin-right: auto;
|
70
|
+
}
|
71
|
+
`;
|
72
|
+
export const ToggleIcon = styled.div `
|
73
|
+
width: 20px;
|
74
|
+
height: 20px;
|
75
|
+
border-radius: 50%;
|
76
|
+
border: 1px solid #e2e2e2;
|
77
|
+
text-align: center;
|
78
|
+
cursor: pointer;
|
79
|
+
|
80
|
+
svg {
|
81
|
+
width: 19px;
|
82
|
+
height: 19px;
|
83
|
+
transition: transform 0.2s ease; // Smooth transition for rotation
|
84
|
+
}
|
85
|
+
|
86
|
+
// Style for TriangleCollapsedIcon (when collapsed)
|
87
|
+
${(props) => !props.isOpen &&
|
88
|
+
`
|
89
|
+
svg {
|
90
|
+
transform: rotate(270deg); // Point downward when collapsed
|
91
|
+
}
|
92
|
+
`}
|
93
|
+
|
94
|
+
// Style for TriangleExpandedIcon (when expanded)
|
95
|
+
${(props) => props.isOpen &&
|
96
|
+
`
|
97
|
+
svg {
|
98
|
+
transform: rotate(0deg); // Point upward when expanded
|
99
|
+
}
|
100
|
+
`}
|
101
|
+
`;
|
102
|
+
//# sourceMappingURL=FileGroup.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FileGroup.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAE3C,CAAA;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/C,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;CAElC,CAAA;AACD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;WACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;oBAOrB,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;IAG3B,SAAS;;;CAGZ,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAqB;;;;;;;;;;;;;;;IAerD,CAAC,KAAK,EAAE,EAAE,CACV,CAAC,KAAK,CAAC,MAAM;IACb;;;;GAID;;;IAGC,CAAC,KAAK,EAAE,EAAE,CACV,KAAK,CAAC,MAAM;IACZ;;;;GAID;CACF,CAAA"}
|
@@ -1,33 +1,32 @@
|
|
1
|
-
import { FileFigureIcon, FileGraphicalAbstractIcon, FileImageIcon, } from '@manuscripts/style-guide';
|
1
|
+
import { FileFigureIcon, FileGraphicalAbstractIcon, FileImageIcon, Tooltip, TriangleCollapsedIcon, TriangleExpandedIcon, } from '@manuscripts/style-guide';
|
2
2
|
import { schema } from '@manuscripts/transform';
|
3
3
|
import { NodeSelection } from 'prosemirror-state';
|
4
4
|
import { findParentNodeOfTypeClosestToPos } from 'prosemirror-utils';
|
5
|
-
import React, { useMemo } from 'react';
|
5
|
+
import React, { useMemo, useState } from 'react';
|
6
|
+
import { trimFilename } from '../../lib/files';
|
6
7
|
import { useStore } from '../../store';
|
7
8
|
import { FileActions } from './FileActions';
|
8
|
-
import { FileContainer } from './FileContainer';
|
9
9
|
import { FileCreatedDate } from './FileCreatedDate';
|
10
|
+
import { FileGroup, FileGroupContainer, FileGroupHeader, FileGroupItemContainer, FileLabel, ToggleIcon, } from './FileGroup';
|
10
11
|
import { FileSectionType } from './FileManager';
|
11
|
-
import {
|
12
|
+
import { FileNameText } from './FileName';
|
13
|
+
import { FileTypeIcon } from './FileTypeIcon';
|
12
14
|
export const InlineFilesSection = ({ elements, }) => {
|
13
15
|
const [{ view, fileManagement, sectionCategories }] = useStore((s) => ({
|
14
16
|
view: s.view,
|
15
17
|
fileManagement: s.fileManagement,
|
16
18
|
sectionCategories: s.sectionCategories,
|
17
19
|
}));
|
18
|
-
const
|
20
|
+
const groupedMetadata = useMemo(() => {
|
19
21
|
if (!view) {
|
20
22
|
return [];
|
21
23
|
}
|
22
24
|
let figureIndex = 1;
|
23
25
|
let imageIndex = 1;
|
24
26
|
return elements.map((element) => {
|
25
|
-
const figure = element.files[0];
|
26
|
-
const file = figure?.file || { id: '', name: '' };
|
27
27
|
const $pos = view.state.doc.resolve(element.pos);
|
28
28
|
const section = findParentNodeOfTypeClosestToPos($pos, schema.nodes.graphical_abstract_section);
|
29
|
-
let label;
|
30
|
-
let icon;
|
29
|
+
let label, icon;
|
31
30
|
if (section) {
|
32
31
|
const category = section.node.attrs.category;
|
33
32
|
label = sectionCategories.get(category)?.titles[0] || '';
|
@@ -37,62 +36,112 @@ export const InlineFilesSection = ({ elements, }) => {
|
|
37
36
|
label = `Image ${imageIndex++}`;
|
38
37
|
icon = FileImageIcon;
|
39
38
|
}
|
40
|
-
else if (element.node.type === schema.nodes.hero_image) {
|
41
|
-
label = `Hero Image`;
|
42
|
-
icon = FileImageIcon;
|
43
|
-
}
|
44
39
|
else {
|
45
40
|
label = `Figure ${figureIndex++}`;
|
46
41
|
icon = FileFigureIcon;
|
47
42
|
}
|
48
43
|
return {
|
49
44
|
element,
|
50
|
-
node: figure?.node,
|
51
|
-
pos: figure?.pos,
|
52
|
-
file,
|
53
45
|
label,
|
54
46
|
icon,
|
47
|
+
files: element.files.filter((f) => f.file.id),
|
55
48
|
};
|
56
49
|
});
|
57
50
|
}, [elements, view, sectionCategories]);
|
51
|
+
const [openGroupIndexes, setOpenGroupIndexes] = useState(new Set(groupedMetadata.map((_, index) => index)));
|
52
|
+
const toggleGroupOpen = (groupIndex) => {
|
53
|
+
setOpenGroupIndexes((prevOpenIndexes) => {
|
54
|
+
const newOpenIndexes = new Set(prevOpenIndexes);
|
55
|
+
if (newOpenIndexes.has(groupIndex)) {
|
56
|
+
newOpenIndexes.delete(groupIndex);
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
newOpenIndexes.add(groupIndex);
|
60
|
+
}
|
61
|
+
return newOpenIndexes;
|
62
|
+
});
|
63
|
+
};
|
58
64
|
if (!view) {
|
59
65
|
return null;
|
60
66
|
}
|
61
|
-
const handleClick = (
|
67
|
+
const handleClick = (element) => {
|
68
|
+
const tr = view.state.tr;
|
69
|
+
tr.setSelection(NodeSelection.create(view.state.doc, element.pos));
|
70
|
+
tr.scrollIntoView();
|
71
|
+
view.focus();
|
72
|
+
view.dispatch(tr);
|
73
|
+
};
|
74
|
+
const handleFileClick = (pos) => {
|
75
|
+
if (!pos) {
|
76
|
+
return;
|
77
|
+
}
|
62
78
|
const tr = view.state.tr;
|
63
|
-
tr.setSelection(NodeSelection.create(view.state.doc,
|
79
|
+
tr.setSelection(NodeSelection.create(view.state.doc, pos));
|
64
80
|
tr.scrollIntoView();
|
65
81
|
view.focus();
|
66
82
|
view.dispatch(tr);
|
67
83
|
};
|
68
|
-
const handleDetach = (
|
69
|
-
if (!
|
84
|
+
const handleDetach = (pos) => {
|
85
|
+
if (!pos) {
|
70
86
|
return;
|
71
87
|
}
|
72
88
|
const tr = view.state.tr;
|
73
|
-
tr.setNodeAttribute(
|
74
|
-
tr.setSelection(NodeSelection.create(tr.doc,
|
89
|
+
tr.setNodeAttribute(pos, 'src', '');
|
90
|
+
tr.setSelection(NodeSelection.create(tr.doc, pos));
|
75
91
|
tr.scrollIntoView();
|
76
92
|
view.focus();
|
77
93
|
view.dispatch(tr);
|
78
94
|
};
|
79
|
-
const
|
80
|
-
if (!
|
95
|
+
const handleDelete = (pos) => {
|
96
|
+
if (!pos || !view) {
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
const node = view.state.doc.nodeAt(pos);
|
100
|
+
if (node?.type === schema.nodes.figure) {
|
101
|
+
const tr = view.state.tr;
|
102
|
+
tr.delete(pos, pos + node.nodeSize);
|
103
|
+
view.dispatch(tr);
|
104
|
+
}
|
105
|
+
};
|
106
|
+
const handleReplace = async (pos, file) => {
|
107
|
+
if (!pos || !file) {
|
81
108
|
return;
|
82
109
|
}
|
83
110
|
const uploaded = await fileManagement.upload(file);
|
84
111
|
const tr = view.state.tr;
|
85
|
-
tr.setNodeAttribute(
|
86
|
-
tr.setSelection(NodeSelection.create(tr.doc,
|
112
|
+
tr.setNodeAttribute(pos, 'src', uploaded.id);
|
113
|
+
tr.setSelection(NodeSelection.create(tr.doc, pos));
|
87
114
|
tr.scrollIntoView();
|
88
115
|
view.focus();
|
89
116
|
view.dispatch(tr);
|
90
117
|
};
|
91
|
-
return (React.createElement(React.Fragment, null,
|
92
|
-
|
93
|
-
|
94
|
-
React.createElement(
|
95
|
-
|
118
|
+
return (React.createElement(React.Fragment, null, groupedMetadata.map((group, groupIndex) => {
|
119
|
+
const isOpen = openGroupIndexes.has(groupIndex);
|
120
|
+
return (React.createElement(FileGroupContainer, { "data-cy": "file-container", key: groupIndex, onClick: () => handleClick(group.element) },
|
121
|
+
React.createElement(FileGroupHeader, null,
|
122
|
+
React.createElement(group.icon, { className: "file-icon" }),
|
123
|
+
group.label && React.createElement(FileLabel, null,
|
124
|
+
group.label,
|
125
|
+
":"),
|
126
|
+
group.files.length > 0 && (React.createElement(ToggleIcon, { isOpen: isOpen, onClick: (e) => {
|
127
|
+
e.stopPropagation();
|
128
|
+
toggleGroupOpen(groupIndex);
|
129
|
+
} }, isOpen ? (React.createElement(TriangleExpandedIcon, null)) : (React.createElement(TriangleCollapsedIcon, null))))),
|
130
|
+
isOpen && group.files.length > 0 && (React.createElement(FileGroup, null, group.files.map((fileAttachment, fileIndex) => (React.createElement(FileGroupItemContainer, { key: fileIndex, "data-tooltip-id": `${fileAttachment.file?.id}-file-name-tooltip`, onClick: (e) => {
|
131
|
+
e.stopPropagation();
|
132
|
+
handleFileClick(fileAttachment.pos);
|
133
|
+
} },
|
134
|
+
fileAttachment.file && (React.createElement(FileTypeIcon, { file: fileAttachment.file })),
|
135
|
+
React.createElement(FileNameText, { "data-cy": "filename" },
|
136
|
+
fileAttachment.file?.name
|
137
|
+
? trimFilename(fileAttachment.file.name, 25)
|
138
|
+
: 'Figure',
|
139
|
+
React.createElement(Tooltip, { id: `${fileAttachment.file?.id}-file-name-tooltip`, place: "bottom" }, fileAttachment.file?.name || 'Figure')),
|
140
|
+
fileAttachment.file && (React.createElement(FileCreatedDate, { file: fileAttachment.file, className: "show-on-hover" })),
|
141
|
+
React.createElement(FileActions, { sectionType: FileSectionType.Inline, onReplace: async (f) => await handleReplace(fileAttachment.pos, f), onDetach: () => handleDetach(fileAttachment.pos), onDownload: () => fileAttachment.file &&
|
142
|
+
fileManagement.download(fileAttachment.file), onDelete: fileIndex !== 0 // Skip displaying the delete option for the first figure
|
143
|
+
? () => handleDelete(fileAttachment.pos)
|
144
|
+
: undefined }))))))));
|
96
145
|
})));
|
97
146
|
};
|
98
147
|
//# sourceMappingURL=InlineFilesSection.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,aAAa,
|
1
|
+
{"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*!
|
2
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
3
|
+
*
|
4
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
5
|
+
*
|
6
|
+
* The Original Code is manuscripts-frontend.
|
7
|
+
*
|
8
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
|
+
*
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
|
+
*/
|
12
|
+
export declare const FileGroupContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
13
|
+
export declare const FileGroupItemContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
14
|
+
export declare const FileGroup: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
15
|
+
export declare const FileLabel: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
16
|
+
export declare const FileGroupHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
17
|
+
export declare const ToggleIcon: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
|
18
|
+
isOpen: boolean;
|
19
|
+
}, never>;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@manuscripts/article-editor",
|
3
|
-
"version": "3.9.3-LEAN-
|
3
|
+
"version": "3.9.3-LEAN-4611.1",
|
4
4
|
"license": "CPAL-1.0",
|
5
5
|
"description": "React components for editing and viewing manuscripts",
|
6
6
|
"repository": "github:Atypon-OpenSource/manuscripts-article-editor",
|
@@ -35,12 +35,12 @@
|
|
35
35
|
"@fontsource/lato": "^4.5.10",
|
36
36
|
"@fontsource/pt-sans": "^4.5.11",
|
37
37
|
"@fontsource/pt-serif": "^4.5.11",
|
38
|
-
"@manuscripts/body-editor": "2.9.3-LEAN-
|
38
|
+
"@manuscripts/body-editor": "2.9.3-LEAN-4611.0",
|
39
39
|
"@manuscripts/json-schema": "2.2.11",
|
40
40
|
"@manuscripts/library": "1.3.14",
|
41
41
|
"@manuscripts/style-guide": "2.1.13",
|
42
42
|
"@manuscripts/track-changes-plugin": "1.10.9",
|
43
|
-
"@manuscripts/transform": "3.1.3-LEAN-
|
43
|
+
"@manuscripts/transform": "3.1.3-LEAN-4611.0",
|
44
44
|
"@popperjs/core": "^2.11.8",
|
45
45
|
"@types/use-sync-external-store": "^0.0.6",
|
46
46
|
"autotrack": "^2.4.1",
|