@manuscripts/article-editor 4.2.8 → 4.2.10
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/EditorApp.js +8 -1
- package/dist/cjs/EditorApp.js.map +1 -1
- package/dist/cjs/Main.js +3 -3
- package/dist/cjs/Main.js.map +1 -1
- package/dist/cjs/components/inspector/SnapshotsList.js +14 -2
- package/dist/cjs/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/cjs/components/projects/EditorElement.js +5 -4
- package/dist/cjs/components/projects/EditorElement.js.map +1 -1
- package/dist/cjs/components/projects/Inspector.js +6 -0
- package/dist/cjs/components/projects/Inspector.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js +4 -3
- package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/cjs/components/tools/CompareDocumentsModal.js +170 -0
- package/dist/cjs/components/tools/CompareDocumentsModal.js.map +1 -0
- package/dist/cjs/components/track-changes/SortByDropdown.js +1 -1
- package/dist/cjs/components/track-changes/TrackChangesPanel.js +16 -3
- package/dist/cjs/components/track-changes/TrackChangesPanel.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js +7 -3
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js +6 -2
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/cjs/hooks/use-compare-documents.js +69 -0
- package/dist/cjs/hooks/use-compare-documents.js.map +1 -0
- package/dist/cjs/hooks/use-create-editor.js +30 -13
- package/dist/cjs/hooks/use-create-editor.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/change-handlers.js +10 -1
- package/dist/cjs/lib/change-handlers.js.map +1 -1
- package/dist/cjs/lib/comparison/compare-documents.js +53 -0
- package/dist/cjs/lib/comparison/compare-documents.js.map +1 -0
- package/dist/cjs/lib/comparison/compare-paragraph-like.js +388 -0
- package/dist/cjs/lib/comparison/compare-paragraph-like.js.map +1 -0
- package/dist/cjs/lib/comparison/compare-table-element.js +567 -0
- package/dist/cjs/lib/comparison/compare-table-element.js.map +1 -0
- package/dist/cjs/lib/comparison/create-dataTracked-attrs.js +60 -0
- package/dist/cjs/lib/comparison/create-dataTracked-attrs.js.map +1 -0
- package/dist/cjs/lib/comparison/distribute-nodes.js +131 -0
- package/dist/cjs/lib/comparison/distribute-nodes.js.map +1 -0
- package/dist/cjs/lib/comparison/rebuild-nodes-tree.js +76 -0
- package/dist/cjs/lib/comparison/rebuild-nodes-tree.js.map +1 -0
- package/dist/cjs/store/Store.js +7 -2
- package/dist/cjs/store/Store.js.map +1 -1
- package/dist/es/EditorApp.js +8 -1
- package/dist/es/EditorApp.js.map +1 -1
- package/dist/es/Main.js +3 -3
- package/dist/es/Main.js.map +1 -1
- package/dist/es/components/inspector/SnapshotsList.js +15 -3
- package/dist/es/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/es/components/projects/EditorElement.js +5 -4
- package/dist/es/components/projects/EditorElement.js.map +1 -1
- package/dist/es/components/projects/Inspector.js +6 -0
- package/dist/es/components/projects/Inspector.js.map +1 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js +4 -3
- package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/es/components/tools/CompareDocumentsModal.js +140 -0
- package/dist/es/components/tools/CompareDocumentsModal.js.map +1 -0
- package/dist/es/components/track-changes/SortByDropdown.js +1 -1
- package/dist/es/components/track-changes/TrackChangesPanel.js +16 -3
- package/dist/es/components/track-changes/TrackChangesPanel.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js +7 -3
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js +6 -2
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/es/hooks/use-compare-documents.js +65 -0
- package/dist/es/hooks/use-compare-documents.js.map +1 -0
- package/dist/es/hooks/use-create-editor.js +31 -14
- package/dist/es/hooks/use-create-editor.js.map +1 -1
- package/dist/es/index.js +3 -3
- package/dist/es/index.js.map +1 -1
- package/dist/es/lib/change-handlers.js +10 -1
- package/dist/es/lib/change-handlers.js.map +1 -1
- package/dist/es/lib/comparison/compare-documents.js +48 -0
- package/dist/es/lib/comparison/compare-documents.js.map +1 -0
- package/dist/es/lib/comparison/compare-paragraph-like.js +378 -0
- package/dist/es/lib/comparison/compare-paragraph-like.js.map +1 -0
- package/dist/es/lib/comparison/compare-table-element.js +559 -0
- package/dist/es/lib/comparison/compare-table-element.js.map +1 -0
- package/dist/es/lib/comparison/create-dataTracked-attrs.js +54 -0
- package/dist/es/lib/comparison/create-dataTracked-attrs.js.map +1 -0
- package/dist/es/lib/comparison/distribute-nodes.js +127 -0
- package/dist/es/lib/comparison/distribute-nodes.js.map +1 -0
- package/dist/es/lib/comparison/rebuild-nodes-tree.js +72 -0
- package/dist/es/lib/comparison/rebuild-nodes-tree.js.map +1 -0
- package/dist/es/store/Store.js +7 -2
- package/dist/es/store/Store.js.map +1 -1
- package/dist/types/EditorApp.d.ts +2 -1
- package/dist/types/Main.d.ts +1 -1
- package/dist/types/components/projects/ManuscriptPageContainer.d.ts +1 -1
- package/dist/types/components/tools/CompareDocumentsModal.d.ts +11 -0
- package/dist/types/components/track-changes/TrackChangesPanel.d.ts +1 -1
- package/dist/types/components/track-changes/suggestion-list/Suggestion.d.ts +1 -1
- package/dist/types/components/track-changes/suggestion-list/SuggestionList.d.ts +3 -3
- package/dist/types/hooks/use-compare-documents.d.ts +24 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/comparison/compare-documents.d.ts +16 -0
- package/dist/types/lib/comparison/compare-paragraph-like.d.ts +23 -0
- package/dist/types/lib/comparison/compare-table-element.d.ts +21 -0
- package/dist/types/lib/comparison/create-dataTracked-attrs.d.ts +15 -0
- package/dist/types/lib/comparison/distribute-nodes.d.ts +19 -0
- package/dist/types/lib/comparison/rebuild-nodes-tree.d.ts +14 -0
- package/dist/types/store/Store.d.ts +3 -1
- package/package.json +5 -3
@@ -0,0 +1,140 @@
|
|
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 { CloseButton, ModalBody, ModalContainer, ModalHeader, PrimaryButton, SecondaryButton, StyledModal, } from '@manuscripts/style-guide';
|
13
|
+
import React, { useState } from 'react';
|
14
|
+
import styled from 'styled-components';
|
15
|
+
export const CompareDocumentsModal = ({ snapshots, loading = false, error = null, onCancel, submissionID, }) => {
|
16
|
+
const [isOpen, setOpen] = useState(true);
|
17
|
+
const [originalDocId, setOriginalDocId] = useState('');
|
18
|
+
const [comparisonDocId, setComparisonDocId] = useState('');
|
19
|
+
const handleCompare = () => {
|
20
|
+
setOpen(false);
|
21
|
+
window.open(`/editor/${submissionID}/compare/${originalDocId}/${comparisonDocId}`, '_blank');
|
22
|
+
handleClose();
|
23
|
+
};
|
24
|
+
const handleClose = () => {
|
25
|
+
setOpen(false);
|
26
|
+
onCancel();
|
27
|
+
};
|
28
|
+
return (React.createElement(StyledModal, { isOpen: isOpen, onRequestClose: handleClose, shouldCloseOnOverlayClick: true },
|
29
|
+
React.createElement(StyledModalContainer, null,
|
30
|
+
React.createElement(StyledModalHeader, null,
|
31
|
+
React.createElement(ModalTitle, null, "Compare Snapshots"),
|
32
|
+
React.createElement(CloseButton, { onClick: handleClose })),
|
33
|
+
React.createElement(StyledModalBody, null, loading ? (React.createElement(LoadingContainer, null,
|
34
|
+
React.createElement(LoadingText, null, "Loading snapshots..."))) : error ? (React.createElement(ErrorMessage, null, error)) : (React.createElement(React.Fragment, null,
|
35
|
+
React.createElement(DocumentSelectContainer, null,
|
36
|
+
React.createElement(SelectContainer, null,
|
37
|
+
React.createElement(InputLabel, { htmlFor: "original-document" }, "Original Version"),
|
38
|
+
React.createElement(Select, { id: "original-document", value: originalDocId, onChange: (e) => setOriginalDocId(e.target.value) },
|
39
|
+
React.createElement("option", { value: "" }, "Select a version"),
|
40
|
+
snapshots.map((snapshot) => (React.createElement("option", { key: snapshot.id, value: snapshot.id, disabled: snapshot.id === comparisonDocId },
|
41
|
+
snapshot.name,
|
42
|
+
" (",
|
43
|
+
snapshot.createdAt,
|
44
|
+
")"))))),
|
45
|
+
React.createElement(SelectContainer, null,
|
46
|
+
React.createElement(InputLabel, { htmlFor: "comparison-document" }, "Version to Compare"),
|
47
|
+
React.createElement(Select, { id: "comparison-document", value: comparisonDocId, onChange: (e) => setComparisonDocId(e.target.value) },
|
48
|
+
React.createElement("option", { value: "" }, "Select a version"),
|
49
|
+
snapshots.map((snapshot) => (React.createElement("option", { key: snapshot.id, value: snapshot.id, disabled: snapshot.id === originalDocId },
|
50
|
+
snapshot.name,
|
51
|
+
" (",
|
52
|
+
snapshot.createdAt,
|
53
|
+
")")))))),
|
54
|
+
React.createElement(ButtonContainer, null,
|
55
|
+
React.createElement(SecondaryButton, { onClick: handleClose }, "Cancel"),
|
56
|
+
React.createElement(PrimaryButton, { onClick: handleCompare, disabled: !originalDocId ||
|
57
|
+
!comparisonDocId ||
|
58
|
+
originalDocId === comparisonDocId }, "Compare"))))))));
|
59
|
+
};
|
60
|
+
const DocumentSelectContainer = styled.div `
|
61
|
+
display: flex;
|
62
|
+
flex-direction: column;
|
63
|
+
gap: ${(props) => props.theme.grid.unit * 2}px;
|
64
|
+
`;
|
65
|
+
const SelectContainer = styled.div `
|
66
|
+
display: flex;
|
67
|
+
flex-direction: column;
|
68
|
+
gap: ${(props) => props.theme.grid.unit}px;
|
69
|
+
margin-bottom: ${(props) => props.theme.grid.unit * 2}px;
|
70
|
+
`;
|
71
|
+
const InputLabel = styled.label `
|
72
|
+
font-size: ${(props) => props.theme.font.size.normal};
|
73
|
+
font-weight: ${(props) => props.theme.font.weight.medium};
|
74
|
+
color: ${(props) => props.theme.colors.text.primary};
|
75
|
+
margin-bottom: ${(props) => props.theme.grid.unit}px;
|
76
|
+
`;
|
77
|
+
const Select = styled.select `
|
78
|
+
width: 100%;
|
79
|
+
height: 36px;
|
80
|
+
padding: 0 ${(props) => props.theme.grid.unit * 2}px;
|
81
|
+
border: 1px solid ${(props) => props.theme.colors.border.secondary};
|
82
|
+
border-radius: ${(props) => props.theme.grid.radius.small};
|
83
|
+
background-color: ${(props) => props.theme.colors.background.primary};
|
84
|
+
font-size: ${(props) => props.theme.font.size.normal};
|
85
|
+
color: ${(props) => props.theme.colors.text.primary};
|
86
|
+
appearance: none;
|
87
|
+
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 6L0 0h12z' fill='%23666'/%3E%3C/svg%3E");
|
88
|
+
background-repeat: no-repeat;
|
89
|
+
background-position: right ${(props) => props.theme.grid.unit * 2}px center;
|
90
|
+
`;
|
91
|
+
const ButtonContainer = styled.div `
|
92
|
+
display: flex;
|
93
|
+
justify-content: flex-end;
|
94
|
+
gap: ${(props) => props.theme.grid.unit * 2}px;
|
95
|
+
padding-top: ${(props) => props.theme.grid.unit * 2}px;
|
96
|
+
border-top: 1px solid ${(props) => props.theme.colors.border.tertiary};
|
97
|
+
`;
|
98
|
+
const StyledModalBody = styled(ModalBody) `
|
99
|
+
width: 400px;
|
100
|
+
padding: ${(props) => props.theme.grid.unit * 3}px;
|
101
|
+
flex-direction: column;
|
102
|
+
height: 250px;
|
103
|
+
justify-content: end;
|
104
|
+
margin-bottom: 15px;
|
105
|
+
`;
|
106
|
+
const StyledModalContainer = styled(ModalContainer) `
|
107
|
+
margin: auto;
|
108
|
+
position: relative;
|
109
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
110
|
+
`;
|
111
|
+
const ModalTitle = styled.h2 `
|
112
|
+
font-size: ${(props) => props.theme.font.size.medium};
|
113
|
+
font-weight: ${(props) => props.theme.font.weight.bold};
|
114
|
+
color: ${(props) => props.theme.colors.text.primary};
|
115
|
+
margin-left: ${(props) => props.theme.grid.unit * 2}px;
|
116
|
+
`;
|
117
|
+
const StyledModalHeader = styled(ModalHeader) `
|
118
|
+
width: 100%;
|
119
|
+
display: flex;
|
120
|
+
justify-content: space-between;
|
121
|
+
align-items: center;
|
122
|
+
border-bottom: 1px solid ${(props) => props.theme.colors.border.tertiary};
|
123
|
+
`;
|
124
|
+
const LoadingContainer = styled.div `
|
125
|
+
display: flex;
|
126
|
+
justify-content: center;
|
127
|
+
align-items: center;
|
128
|
+
height: 60px;
|
129
|
+
`;
|
130
|
+
const LoadingText = styled.div `
|
131
|
+
font-size: ${(props) => props.theme.font.size.normal};
|
132
|
+
color: ${(props) => props.theme.colors.text.secondary};
|
133
|
+
text-align: center;
|
134
|
+
`;
|
135
|
+
const ErrorMessage = styled.div `
|
136
|
+
color: ${(props) => props.theme.colors.text.error};
|
137
|
+
margin: ${(props) => props.theme.grid.unit * 2}px 0;
|
138
|
+
text-align: center;
|
139
|
+
`;
|
140
|
+
//# sourceMappingURL=CompareDocumentsModal.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CompareDocumentsModal.js","sourceRoot":"","sources":["../../../../src/components/tools/CompareDocumentsModal.tsx"],"names":[],"mappings":"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"}
|
@@ -52,7 +52,7 @@ const Label = styled.div `
|
|
52
52
|
const Container = styled(DropdownContainer) `
|
53
53
|
padding-top: ${(props) => props.theme.grid.unit * 4}px;
|
54
54
|
padding-left: ${(props) => props.theme.grid.unit * 4}px;
|
55
|
-
|
55
|
+
width: fit-content;
|
56
56
|
.dropdown-toggle {
|
57
57
|
border: none;
|
58
58
|
background: transparent !important;
|
@@ -7,7 +7,7 @@
|
|
7
7
|
*
|
8
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
9
|
*
|
10
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c)
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
11
|
*/
|
12
12
|
import { CHANGE_STATUS, ChangeSet, trackCommands, } from '@manuscripts/track-changes-plugin';
|
13
13
|
import React, { useCallback, useState } from 'react';
|
@@ -18,10 +18,11 @@ import { SuggestionList } from './suggestion-list/SuggestionList';
|
|
18
18
|
import { setChangeStatus, setSelectedSuggestion } from './utils';
|
19
19
|
export const TrackChangesPanel = () => {
|
20
20
|
const [sortBy, setSortBy] = useState('in Context');
|
21
|
-
const [{ trackState, selectedSuggestionID }, _, getState] = useStore((store) => ({
|
21
|
+
const [{ trackState, selectedSuggestionID, isComparingMode }, _, getState] = useStore((store) => ({
|
22
22
|
// @TODO - check if trackstate actually issues some updates and we listen to them
|
23
23
|
trackState: store.trackState,
|
24
24
|
selectedSuggestionID: store.selectedSuggestionID,
|
25
|
+
isComparingMode: store.isComparingMode,
|
25
26
|
}));
|
26
27
|
const handleSelect = useCallback((suggestions) => {
|
27
28
|
setSelectedSuggestion(suggestions, getState);
|
@@ -48,6 +49,18 @@ export const TrackChangesPanel = () => {
|
|
48
49
|
}, []);
|
49
50
|
return (React.createElement(React.Fragment, null,
|
50
51
|
React.createElement(SortByDropdown, { sortBy: sortBy, setSortBy: setSortBy }),
|
51
|
-
React.createElement(SuggestionList, { type: "all", changes: changeSet?.groupChanges || [], selectionID: selectedSuggestionID, title: "Suggestions", sortBy: sortBy, onAccept:
|
52
|
+
React.createElement(SuggestionList, { type: "all", changes: changeSet?.groupChanges || [], selectionID: selectedSuggestionID, title: "Suggestions", sortBy: sortBy, onAccept: (change) => {
|
53
|
+
if (!isComparingMode) {
|
54
|
+
handleAccept(change);
|
55
|
+
}
|
56
|
+
}, onReject: (change) => {
|
57
|
+
if (!isComparingMode) {
|
58
|
+
handleReject(change);
|
59
|
+
}
|
60
|
+
}, onAcceptAll: isComparingMode
|
61
|
+
? undefined
|
62
|
+
: changeSet?.pending.length
|
63
|
+
? handleAcceptAll
|
64
|
+
: undefined, onSelect: handleSelect })));
|
52
65
|
};
|
53
66
|
//# sourceMappingURL=TrackChangesPanel.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TrackChangesPanel.js","sourceRoot":"","sources":["../../../../src/components/track-changes/TrackChangesPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,aAAa,EACb,SAAS,EAET,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEhE,MAAM,CAAC,MAAM,iBAAiB,GAAa,GAAG,EAAE;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAElD,MAAM,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,
|
1
|
+
{"version":3,"file":"TrackChangesPanel.js","sourceRoot":"","sources":["../../../../src/components/track-changes/TrackChangesPanel.tsx"],"names":[],"mappings":"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"}
|
@@ -7,10 +7,11 @@
|
|
7
7
|
*
|
8
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
9
|
*
|
10
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c)
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
11
|
*/
|
12
12
|
import React, { useEffect, useRef, useState } from 'react';
|
13
13
|
import styled from 'styled-components';
|
14
|
+
import { useStore } from '../../../store';
|
14
15
|
import TrackModal from '../TrackModal';
|
15
16
|
import SuggestionActions from './SuggestionActions';
|
16
17
|
import { SuggestionSnippet } from './SuggestionSnippet';
|
@@ -23,6 +24,9 @@ const scrollIntoView = (element) => {
|
|
23
24
|
export const Suggestion = ({ suggestions, isSelected, onAccept, onReject, onSelect, }) => {
|
24
25
|
const wrapperRef = useRef(null);
|
25
26
|
const [trackModalVisible, setModalVisible] = useState(false);
|
27
|
+
const [{ isComparingMode }] = useStore((store) => ({
|
28
|
+
isComparingMode: store.isComparingMode,
|
29
|
+
}));
|
26
30
|
const handleClick = (e) => {
|
27
31
|
e.preventDefault();
|
28
32
|
setModalVisible(true);
|
@@ -38,8 +42,8 @@ export const Suggestion = ({ suggestions, isSelected, onAccept, onReject, onSele
|
|
38
42
|
return (React.createElement(Wrapper, { "data-cy": "suggestion", isFocused: isSelected, ref: wrapperRef },
|
39
43
|
React.createElement(FocusHandle, { href: "#", onClick: handleClick },
|
40
44
|
React.createElement(SuggestionSnippet, { suggestions: suggestions })),
|
41
|
-
React.createElement(Actions, null,
|
42
|
-
React.createElement(SuggestionActions, { suggestions: suggestions, handleAccept: onAccept, handleReject: onReject })),
|
45
|
+
!isComparingMode && (React.createElement(Actions, null,
|
46
|
+
React.createElement(SuggestionActions, { suggestions: suggestions, handleAccept: onAccept, handleReject: onReject }))),
|
43
47
|
trackModalVisible && (React.createElement(TrackModal, { ref: wrapperRef, isVisible: trackModalVisible, changeId: suggestions[0].id, setVisible: setModalVisible }))));
|
44
48
|
};
|
45
49
|
const Actions = styled.div `
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Suggestion.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/Suggestion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,cAAc,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;IAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;QACtD,OAAO,CAAC,cAAc,EAAE,CAAA;KACzB;AACH,CAAC,CAAA;AAUD,MAAM,CAAC,MAAM,UAAU,GAAoB,CAAC,EAC1C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"Suggestion.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/Suggestion.tsx"],"names":[],"mappings":"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"}
|
@@ -1,15 +1,19 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import styled from 'styled-components';
|
3
|
+
import { useStore } from '../../../store';
|
3
4
|
import { InspectorSection } from '../../InspectorSection';
|
4
5
|
import { Suggestion } from './Suggestion';
|
5
6
|
export const SuggestionList = ({ changes, selectionID, title, type, sortBy, onAccept, onReject, onAcceptAll, onSelect, }) => {
|
7
|
+
const [{ isComparingMode }] = useStore((store) => ({
|
8
|
+
isComparingMode: store.isComparingMode,
|
9
|
+
}));
|
6
10
|
const changesByDate = (a, b) => b[0].dataTracked.updatedAt - a[0].dataTracked.updatedAt;
|
7
11
|
const changesByContext = (a, b) => a[0].from - b[0].from;
|
8
12
|
const sortedChanges = changes
|
9
13
|
.slice()
|
10
14
|
.sort(sortBy === 'Date' ? changesByDate : changesByContext);
|
11
|
-
return (React.createElement(InspectorSection, { title: title.concat(changes.length ? ` (${changes.length})` : ''), approveAll: onAcceptAll, fixed: true },
|
12
|
-
React.createElement(List, { "data-cy": "suggestions-list", "data-cy-type": type }, sortedChanges.map((c) => (React.createElement(Suggestion, { key: c[0].id, suggestions: c, isSelected: selectionID === c[0].id, onAccept: () => onAccept(c), onReject: () => onReject(c), onSelect: () => onSelect && onSelect(c) }))))));
|
15
|
+
return (React.createElement(InspectorSection, { title: title.concat(changes.length ? ` (${changes.length})` : ''), approveAll: !isComparingMode ? onAcceptAll : undefined, fixed: true },
|
16
|
+
React.createElement(List, { "data-cy": "suggestions-list", "data-cy-type": type }, sortedChanges.map((c) => (React.createElement(Suggestion, { key: c[0].id, suggestions: c, isSelected: selectionID === c[0].id, onAccept: () => !isComparingMode && onAccept(c), onReject: () => !isComparingMode && onReject(c), onSelect: () => onSelect && onSelect(c) }))))));
|
13
17
|
};
|
14
18
|
const List = styled.ul `
|
15
19
|
list-style: none;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SuggestionList.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/SuggestionList.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAczC,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,OAAO,EACP,WAAW,EACX,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CACrD,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAA;IAEzD,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CACxD,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEvB,MAAM,aAAa,GAAG,OAAO;SAC1B,KAAK,EAAE;SACP,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAE7D,OAAO,CACL,oBAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EACjE,UAAU,EAAE,WAAW,
|
1
|
+
{"version":3,"file":"SuggestionList.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/SuggestionList.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAczC,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,OAAO,EACP,WAAW,EACX,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAA;IAEH,MAAM,aAAa,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CACrD,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAA;IAEzD,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CACxD,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEvB,MAAM,aAAa,GAAG,OAAO;SAC1B,KAAK,EAAE;SACP,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAE7D,OAAO,CACL,oBAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EACjE,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACtD,KAAK,EAAE,IAAI;QAEX,oBAAC,IAAI,eAAS,kBAAkB,kBAAe,IAAI,IAChD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CACpC,oBAAC,UAAU,IACT,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACZ,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,GACvC,CACH,CAAC,CACG,CACU,CACpB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAA;;;;;CAKrB,CAAA"}
|
@@ -0,0 +1,65 @@
|
|
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 { useEffect, useState } from 'react';
|
13
|
+
import { compareDocuments } from '../lib/comparison/compare-documents';
|
14
|
+
export const useCompareDocuments = ({ originalId, comparisonId, getSnapshot, }) => {
|
15
|
+
const [comparedDoc, setComparedDoc] = useState(null);
|
16
|
+
const [isLoading, setIsLoading] = useState(false);
|
17
|
+
const [error, setError] = useState(null);
|
18
|
+
const isComparingMode = Boolean(originalId && comparisonId);
|
19
|
+
useEffect(() => {
|
20
|
+
const fetchAndCompareDocuments = async () => {
|
21
|
+
if (!originalId || !comparisonId) {
|
22
|
+
setComparedDoc(null);
|
23
|
+
setError(null);
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
setIsLoading(true);
|
27
|
+
setError(null);
|
28
|
+
try {
|
29
|
+
const [originalSnapshot, comparisonSnapshot] = await Promise.all([
|
30
|
+
getSnapshot(originalId),
|
31
|
+
getSnapshot(comparisonId),
|
32
|
+
]);
|
33
|
+
if (!originalSnapshot || !comparisonSnapshot) {
|
34
|
+
throw new Error('Failed to fetch one or both snapshots');
|
35
|
+
}
|
36
|
+
const comparedDocument = compareDocuments(originalSnapshot, comparisonSnapshot);
|
37
|
+
setComparedDoc(comparedDocument);
|
38
|
+
}
|
39
|
+
catch (err) {
|
40
|
+
console.error('Error comparing documents:', err);
|
41
|
+
setError(err instanceof Error ? err.message : 'Unknown error occurred');
|
42
|
+
setComparedDoc(null);
|
43
|
+
}
|
44
|
+
finally {
|
45
|
+
setIsLoading(false);
|
46
|
+
}
|
47
|
+
};
|
48
|
+
fetchAndCompareDocuments();
|
49
|
+
}, [originalId, comparisonId, getSnapshot]);
|
50
|
+
// Reset state when exiting comparison mode
|
51
|
+
useEffect(() => {
|
52
|
+
if (!isComparingMode) {
|
53
|
+
setComparedDoc(null);
|
54
|
+
setError(null);
|
55
|
+
setIsLoading(false);
|
56
|
+
}
|
57
|
+
}, [isComparingMode]);
|
58
|
+
return {
|
59
|
+
comparedDoc,
|
60
|
+
isComparingMode,
|
61
|
+
isLoading,
|
62
|
+
error,
|
63
|
+
};
|
64
|
+
};
|
65
|
+
//# sourceMappingURL=use-compare-documents.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-compare-documents.js","sourceRoot":"","sources":["../../../src/hooks/use-compare-documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAStE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,UAAU,EACV,YAAY,EACZ,WAAW,GACc,EAAE,EAAE;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,CAAA;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE;gBAChC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACd,OAAM;aACP;YAED,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEd,IAAI;gBACF,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC/D,WAAW,CAAC,UAAU,CAAC;oBACvB,WAAW,CAAC,YAAY,CAAC;iBAC1B,CAAC,CAAA;gBAEF,IAAI,CAAC,gBAAgB,IAAI,CAAC,kBAAkB,EAAE;oBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;iBACzD;gBAED,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,gBAAgB,EAChB,kBAAkB,CACnB,CAAA;gBACD,cAAc,CAAC,gBAAgB,CAAC,CAAA;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;gBAChD,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAA;gBACvE,cAAc,CAAC,IAAI,CAAC,CAAA;aACrB;oBAAS;gBACR,YAAY,CAAC,KAAK,CAAC,CAAA;aACpB;QACH,CAAC,CAAA;QAED,wBAAwB,EAAE,CAAA;IAC5B,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IAE3C,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE;YACpB,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;SACpB;IACH,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IAErB,OAAO;QACL,WAAW;QACX,eAAe;QACf,SAAS;QACT,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
|
@@ -7,20 +7,21 @@
|
|
7
7
|
*
|
8
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
9
|
*
|
10
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c)
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
11
|
*/
|
12
12
|
import { useEditor } from '@manuscripts/body-editor';
|
13
13
|
import { getCapabilities as getActionCapabilities } from '@manuscripts/style-guide';
|
14
14
|
import { useEffect, useMemo } from 'react';
|
15
|
-
import { useLocation, useNavigate } from 'react-router-dom';
|
15
|
+
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
16
16
|
import { useApi } from '../api/Api';
|
17
17
|
import { StepsExchanger } from '../api/StepsExchanger';
|
18
18
|
import { getConfig } from '../config';
|
19
19
|
import { useStore } from '../store';
|
20
20
|
import { theme } from '../theme/theme';
|
21
|
+
import { useCompareDocuments } from './use-compare-documents';
|
21
22
|
import { useInspectorTabsContext } from './use-inspector-tabs-context';
|
22
23
|
export const useCreateEditor = () => {
|
23
|
-
const [{ doc, initialDocVersion, projectID, manuscriptID, user, fileManagement, style, locale, sectionCategories, isViewingMode, }, dispatch, getState,] = useStore((store) => ({
|
24
|
+
const [{ doc, initialDocVersion, projectID, manuscriptID, user, fileManagement, style, locale, sectionCategories, isViewingMode, getSnapshot, }, dispatch, getState,] = useStore((store) => ({
|
24
25
|
doc: store.doc,
|
25
26
|
initialDocVersion: store.initialDocVersion,
|
26
27
|
projectID: store.projectID,
|
@@ -31,22 +32,36 @@ export const useCreateEditor = () => {
|
|
31
32
|
locale: store.cslLocale,
|
32
33
|
sectionCategories: store.sectionCategories,
|
33
34
|
isViewingMode: store.isViewingMode,
|
35
|
+
getSnapshot: store.getSnapshot,
|
34
36
|
}));
|
35
37
|
const api = useApi();
|
38
|
+
const params = useParams();
|
39
|
+
const { comparedDoc, isComparingMode } = useCompareDocuments({
|
40
|
+
originalId: params.originalId,
|
41
|
+
comparisonId: params.comparisonId,
|
42
|
+
getSnapshot,
|
43
|
+
});
|
44
|
+
useEffect(() => {
|
45
|
+
dispatch({ isComparingMode });
|
46
|
+
}, [isComparingMode, dispatch]);
|
36
47
|
const updateVersion = (v) => dispatch({ initialDocVersion: v });
|
37
|
-
const stepsExchanger = useMemo(() =>
|
48
|
+
const stepsExchanger = useMemo(() => isComparingMode
|
49
|
+
? undefined
|
50
|
+
: new StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
|
38
51
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
39
|
-
[projectID, manuscriptID, api]);
|
52
|
+
[projectID, manuscriptID, api, isComparingMode]);
|
40
53
|
useEffect(() => {
|
41
|
-
stepsExchanger
|
54
|
+
if (stepsExchanger) {
|
55
|
+
stepsExchanger.isThrottling.onChange((value) => {
|
56
|
+
dispatch({
|
57
|
+
preventUnload: value,
|
58
|
+
});
|
59
|
+
});
|
42
60
|
dispatch({
|
43
|
-
|
61
|
+
beforeUnload: () => stepsExchanger.flush(),
|
44
62
|
});
|
45
|
-
|
46
|
-
|
47
|
-
beforeUnload: () => stepsExchanger.flush(),
|
48
|
-
});
|
49
|
-
return () => stepsExchanger.stop();
|
63
|
+
return () => stepsExchanger.stop();
|
64
|
+
}
|
50
65
|
}, [dispatch, stepsExchanger]);
|
51
66
|
const getCapabilities = useMemo(() => (project, user, permittedActions) => getActionCapabilities(project, user, undefined, permittedActions, isViewingMode), [isViewingMode]);
|
52
67
|
const config = getConfig();
|
@@ -58,7 +73,7 @@ export const useCreateEditor = () => {
|
|
58
73
|
spellcheck: 'true',
|
59
74
|
tabindex: '2',
|
60
75
|
},
|
61
|
-
doc,
|
76
|
+
doc: comparedDoc || doc,
|
62
77
|
userID: user._id,
|
63
78
|
debug: config.environment === 'development',
|
64
79
|
// @TODO - move primaryLanguageCode to be an attribute on ManuscriptNode
|
@@ -79,10 +94,12 @@ export const useCreateEditor = () => {
|
|
79
94
|
return getState().files;
|
80
95
|
},
|
81
96
|
fileManagement: fileManagement,
|
82
|
-
collabProvider: stepsExchanger,
|
97
|
+
collabProvider: isComparingMode ? undefined : stepsExchanger,
|
83
98
|
sectionCategories: sectionCategories,
|
84
99
|
navigate: useNavigate(),
|
85
100
|
location: useLocation(),
|
101
|
+
isComparingMode,
|
102
|
+
submissionId: params.id,
|
86
103
|
lockBody: config.features.lockBody,
|
87
104
|
isViewingMode,
|
88
105
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
|
package/dist/es/index.js
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
*
|
8
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
9
|
*
|
10
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c)
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
11
11
|
*/
|
12
12
|
import './lib/fonts';
|
13
13
|
import React, { Suspense } from 'react';
|
@@ -18,12 +18,12 @@ import { ThemeProvider } from './theme/ThemeProvider';
|
|
18
18
|
export { ProjectRole } from './lib/roles';
|
19
19
|
export { getUserRole } from './lib/roles';
|
20
20
|
export * from './hooks/external/use-manuscripts-state';
|
21
|
-
const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, }) => {
|
21
|
+
const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, submissionID, }) => {
|
22
22
|
setConfig(config);
|
23
23
|
return (React.createElement(React.Fragment, null,
|
24
24
|
React.createElement(ThemeProvider, null,
|
25
25
|
React.createElement(Suspense, { fallback: React.createElement(LoadingPage, { className: 'loader' }, "Loading...") },
|
26
|
-
React.createElement(Main, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, getAuthToken: getAuthToken, observer: observer }))),
|
26
|
+
React.createElement(Main, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, getAuthToken: getAuthToken, observer: observer, submissionID: submissionID }))),
|
27
27
|
React.createElement("div", { id: "menu" }),
|
28
28
|
React.createElement("div", { id: "notifications" }),
|
29
29
|
React.createElement("div", { id: "size" })));
|
package/dist/es/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAA2B,SAAS,EAAE,MAAM,UAAU,CAAA;AAE7D,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,cAAc,wCAAwC,CAAA;AAGtD,MAAM,gBAAgB,GAElB,CAAC,EACH,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,MAAM,EACN,QAAQ,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAA2B,SAAS,EAAE,MAAM,UAAU,CAAA;AAE7D,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,cAAc,wCAAwC,CAAA;AAGtD,MAAM,gBAAgB,GAElB,CAAC,EACH,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,YAAY,GACb,EAAE,EAAE;IACH,SAAS,CAAC,MAAM,CAAC,CAAA;IACjB,OAAO,CACL;QACE,oBAAC,aAAa;YACZ,oBAAC,QAAQ,IACP,QAAQ,EAAE,oBAAC,WAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,oBAAC,IAAI,IACH,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,GAC1B,CACO,CACG;QAChB,6BAAK,EAAE,EAAC,MAAM,GAAO;QACrB,6BAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,6BAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAC3C,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACb,mHAAmH;IACnH,mIAAmI;IACnI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAA,CAAC,sCAAsC;AACtF,CAAC,CACF,CAAA"}
|
@@ -52,6 +52,7 @@ export const handleNodeChange = (suggestion, state) => {
|
|
52
52
|
const { node, dataTracked } = suggestion;
|
53
53
|
const operation = changeOperationAlias(dataTracked.operation);
|
54
54
|
const nodeName = nodeNames.get(node.type) || node.type.name;
|
55
|
+
const parentNode = getParentNode(state, suggestion.from);
|
55
56
|
switch (node.type) {
|
56
57
|
case schema.nodes.inline_footnote: {
|
57
58
|
return {
|
@@ -67,6 +68,15 @@ export const handleNodeChange = (suggestion, state) => {
|
|
67
68
|
content: nodeContentRetriever.getFootnoteContent(state, node),
|
68
69
|
};
|
69
70
|
}
|
71
|
+
case schema.nodes.figcaption: {
|
72
|
+
return {
|
73
|
+
operation,
|
74
|
+
nodeName: parentNode?.type === schema.nodes.box_element
|
75
|
+
? 'label'
|
76
|
+
: 'figcaption',
|
77
|
+
content: nodeContentRetriever.getFootnoteContent(state, node),
|
78
|
+
};
|
79
|
+
}
|
70
80
|
case schema.nodes.contributor: {
|
71
81
|
return {
|
72
82
|
operation,
|
@@ -106,7 +116,6 @@ export const handleNodeChange = (suggestion, state) => {
|
|
106
116
|
content: nodeContentRetriever.getFigureLabel(node),
|
107
117
|
};
|
108
118
|
case schema.nodes.figure: {
|
109
|
-
const parentNode = getParentNode(state, suggestion.from);
|
110
119
|
const nodeName = nodeNames.get(parentNode?.type) || parentNode?.type.name;
|
111
120
|
return {
|
112
121
|
operation,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"change-handlers.js","sourceRoot":"","sources":["../../../src/lib/change-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAEL,gBAAgB,EAChB,WAAW,GAEZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,SAAS,GAKV,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,SAAS,EACT,MAAM,GACP,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAQvC,MAAM,cAAc,GAAG,CAAC,IAAoB,EAAW,EAAE,CACvD,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA;AAEtC,MAAM,mBAAmB,GAAG,CAAC,IAAoB,EAAU,EAAE;IAC3D,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,IAAI;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACnE,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CACxB,CAAA;KACF;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAsB,EACtB,KAA4B,EACR,EAAE;IACtB,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;IAClC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IACxD,IAAI,QAAQ,CAAA;IAEZ,IAAI,UAAU,EAAE;QACd,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;YAC9B,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;SAC3C;aAAM;YACL,MAAM,cAAc,GAClB,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAA;YACzD,QAAQ;gBACN,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS;oBAC1C,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,UAAU;oBACzC,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,cAAc,GAAG,OAAO,CAAA;SAC/B;KACF;IACD,OAAO;QACL,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC;QACtD,QAAQ,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI;QAC9C,OAAO,EAAE,UAAU,CAAC,IAAI;KACzB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAuC,EACvC,KAA4B,EACR,EAAE;IACtB,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAChE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;IACxC,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;
|
1
|
+
{"version":3,"file":"change-handlers.js","sourceRoot":"","sources":["../../../src/lib/change-handlers.ts"],"names":[],"mappings":"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"}
|