@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.
Files changed (103) hide show
  1. package/dist/cjs/EditorApp.js +8 -1
  2. package/dist/cjs/EditorApp.js.map +1 -1
  3. package/dist/cjs/Main.js +3 -3
  4. package/dist/cjs/Main.js.map +1 -1
  5. package/dist/cjs/components/inspector/SnapshotsList.js +14 -2
  6. package/dist/cjs/components/inspector/SnapshotsList.js.map +1 -1
  7. package/dist/cjs/components/projects/EditorElement.js +5 -4
  8. package/dist/cjs/components/projects/EditorElement.js.map +1 -1
  9. package/dist/cjs/components/projects/Inspector.js +6 -0
  10. package/dist/cjs/components/projects/Inspector.js.map +1 -1
  11. package/dist/cjs/components/projects/ManuscriptPageContainer.js +4 -3
  12. package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
  13. package/dist/cjs/components/tools/CompareDocumentsModal.js +170 -0
  14. package/dist/cjs/components/tools/CompareDocumentsModal.js.map +1 -0
  15. package/dist/cjs/components/track-changes/SortByDropdown.js +1 -1
  16. package/dist/cjs/components/track-changes/TrackChangesPanel.js +16 -3
  17. package/dist/cjs/components/track-changes/TrackChangesPanel.js.map +1 -1
  18. package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js +7 -3
  19. package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
  20. package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js +6 -2
  21. package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
  22. package/dist/cjs/hooks/use-compare-documents.js +69 -0
  23. package/dist/cjs/hooks/use-compare-documents.js.map +1 -0
  24. package/dist/cjs/hooks/use-create-editor.js +30 -13
  25. package/dist/cjs/hooks/use-create-editor.js.map +1 -1
  26. package/dist/cjs/index.js +3 -3
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/lib/change-handlers.js +10 -1
  29. package/dist/cjs/lib/change-handlers.js.map +1 -1
  30. package/dist/cjs/lib/comparison/compare-documents.js +53 -0
  31. package/dist/cjs/lib/comparison/compare-documents.js.map +1 -0
  32. package/dist/cjs/lib/comparison/compare-paragraph-like.js +388 -0
  33. package/dist/cjs/lib/comparison/compare-paragraph-like.js.map +1 -0
  34. package/dist/cjs/lib/comparison/compare-table-element.js +567 -0
  35. package/dist/cjs/lib/comparison/compare-table-element.js.map +1 -0
  36. package/dist/cjs/lib/comparison/create-dataTracked-attrs.js +60 -0
  37. package/dist/cjs/lib/comparison/create-dataTracked-attrs.js.map +1 -0
  38. package/dist/cjs/lib/comparison/distribute-nodes.js +131 -0
  39. package/dist/cjs/lib/comparison/distribute-nodes.js.map +1 -0
  40. package/dist/cjs/lib/comparison/rebuild-nodes-tree.js +76 -0
  41. package/dist/cjs/lib/comparison/rebuild-nodes-tree.js.map +1 -0
  42. package/dist/cjs/store/Store.js +7 -2
  43. package/dist/cjs/store/Store.js.map +1 -1
  44. package/dist/es/EditorApp.js +8 -1
  45. package/dist/es/EditorApp.js.map +1 -1
  46. package/dist/es/Main.js +3 -3
  47. package/dist/es/Main.js.map +1 -1
  48. package/dist/es/components/inspector/SnapshotsList.js +15 -3
  49. package/dist/es/components/inspector/SnapshotsList.js.map +1 -1
  50. package/dist/es/components/projects/EditorElement.js +5 -4
  51. package/dist/es/components/projects/EditorElement.js.map +1 -1
  52. package/dist/es/components/projects/Inspector.js +6 -0
  53. package/dist/es/components/projects/Inspector.js.map +1 -1
  54. package/dist/es/components/projects/ManuscriptPageContainer.js +4 -3
  55. package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
  56. package/dist/es/components/tools/CompareDocumentsModal.js +140 -0
  57. package/dist/es/components/tools/CompareDocumentsModal.js.map +1 -0
  58. package/dist/es/components/track-changes/SortByDropdown.js +1 -1
  59. package/dist/es/components/track-changes/TrackChangesPanel.js +16 -3
  60. package/dist/es/components/track-changes/TrackChangesPanel.js.map +1 -1
  61. package/dist/es/components/track-changes/suggestion-list/Suggestion.js +7 -3
  62. package/dist/es/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
  63. package/dist/es/components/track-changes/suggestion-list/SuggestionList.js +6 -2
  64. package/dist/es/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
  65. package/dist/es/hooks/use-compare-documents.js +65 -0
  66. package/dist/es/hooks/use-compare-documents.js.map +1 -0
  67. package/dist/es/hooks/use-create-editor.js +31 -14
  68. package/dist/es/hooks/use-create-editor.js.map +1 -1
  69. package/dist/es/index.js +3 -3
  70. package/dist/es/index.js.map +1 -1
  71. package/dist/es/lib/change-handlers.js +10 -1
  72. package/dist/es/lib/change-handlers.js.map +1 -1
  73. package/dist/es/lib/comparison/compare-documents.js +48 -0
  74. package/dist/es/lib/comparison/compare-documents.js.map +1 -0
  75. package/dist/es/lib/comparison/compare-paragraph-like.js +378 -0
  76. package/dist/es/lib/comparison/compare-paragraph-like.js.map +1 -0
  77. package/dist/es/lib/comparison/compare-table-element.js +559 -0
  78. package/dist/es/lib/comparison/compare-table-element.js.map +1 -0
  79. package/dist/es/lib/comparison/create-dataTracked-attrs.js +54 -0
  80. package/dist/es/lib/comparison/create-dataTracked-attrs.js.map +1 -0
  81. package/dist/es/lib/comparison/distribute-nodes.js +127 -0
  82. package/dist/es/lib/comparison/distribute-nodes.js.map +1 -0
  83. package/dist/es/lib/comparison/rebuild-nodes-tree.js +72 -0
  84. package/dist/es/lib/comparison/rebuild-nodes-tree.js.map +1 -0
  85. package/dist/es/store/Store.js +7 -2
  86. package/dist/es/store/Store.js.map +1 -1
  87. package/dist/types/EditorApp.d.ts +2 -1
  88. package/dist/types/Main.d.ts +1 -1
  89. package/dist/types/components/projects/ManuscriptPageContainer.d.ts +1 -1
  90. package/dist/types/components/tools/CompareDocumentsModal.d.ts +11 -0
  91. package/dist/types/components/track-changes/TrackChangesPanel.d.ts +1 -1
  92. package/dist/types/components/track-changes/suggestion-list/Suggestion.d.ts +1 -1
  93. package/dist/types/components/track-changes/suggestion-list/SuggestionList.d.ts +3 -3
  94. package/dist/types/hooks/use-compare-documents.d.ts +24 -0
  95. package/dist/types/index.d.ts +1 -1
  96. package/dist/types/lib/comparison/compare-documents.d.ts +16 -0
  97. package/dist/types/lib/comparison/compare-paragraph-like.d.ts +23 -0
  98. package/dist/types/lib/comparison/compare-table-element.d.ts +21 -0
  99. package/dist/types/lib/comparison/create-dataTracked-attrs.d.ts +15 -0
  100. package/dist/types/lib/comparison/distribute-nodes.d.ts +19 -0
  101. package/dist/types/lib/comparison/rebuild-nodes-tree.d.ts +14 -0
  102. package/dist/types/store/Store.d.ts +3 -1
  103. 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) 2019 Atypon Systems LLC. All Rights Reserved.
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: handleAccept, onReject: handleReject, onAcceptAll: changeSet?.pending.length ? handleAcceptAll : undefined, onSelect: handleSelect })));
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,GAAG,QAAQ,CAClE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACV,iFAAiF;QACjF,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;KACjD,CAAC,CACH,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,WAAuB,EAAE,EAAE;QAC3D,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC5C,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,IAAI,EAAE,CAAA;IAEtC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,OAAmB,EAAE,EAAE;QACvD,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzD,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,OAAmB,EAAE,EAAE;QACvD,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzD,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC,UAAU,CAAA;QACxC,IAAI,CAAC,UAAU,EAAE;YACf,OAAM;SACP;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACpE,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;QACrE,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL;QACE,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAI;QACxD,oBAAC,cAAc,IACb,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,SAAS,EAAE,YAAY,IAAI,EAAE,EACtC,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAC,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EACpE,QAAQ,EAAE,YAAY,GACtB,CACD,CACJ,CAAA;AACH,CAAC,CAAA"}
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) 2022 Atypon Systems LLC. All Rights Reserved.
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":"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"}
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,EACvB,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,QAAQ,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC3B,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"}
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) 2019 Atypon Systems LLC. All Rights Reserved.
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(() => new StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
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.isThrottling.onChange((value) => {
54
+ if (stepsExchanger) {
55
+ stepsExchanger.isThrottling.onChange((value) => {
56
+ dispatch({
57
+ preventUnload: value,
58
+ });
59
+ });
42
60
  dispatch({
43
- preventUnload: value,
61
+ beforeUnload: () => stepsExchanger.flush(),
44
62
  });
45
- });
46
- dispatch({
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":"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"}
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) 2019 Atypon Systems LLC. All Rights Reserved.
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" })));
@@ -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,GACT,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,GAClB,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"}
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;IAE3D,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,wBAAwB,CACpD,KAAK,EACL,IAAI,CAAC,KAAK,CACX;aACF,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;aAC9D,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,KAAyB,CAAC;aACrD,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAyB,CAAC;aAC1D,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,0BAA0B,CACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EACb,IAAI,CACL;aACF,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACnC,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,0BAA0B,CACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EACb,IAAI,CACL;aACF,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;QACjC,KAAK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QAChC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QAChC,KAAK,MAAM,CAAC,KAAK,CAAC,UAAU;YAC1B,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC;aACnD,CAAA;QAEH,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAE,CAAA;YACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,IAAI,CAAC,IAAI,CAAA;YACzE,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC;aACzD,CAAA;SACF;QAED,KAAK,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAClC,KAAK,MAAM,CAAC,KAAK,CAAC,gBAAgB;YAChC,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC;aACvD,CAAA;QACH,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;YACjE,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC;aACzD,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI;YACpB,OAAO;gBACL,SAAS;gBACT,QAAQ;gBACR,OAAO,EAAE,qCAAqC,oBAAoB,CAAC,oBAAoB,CACrF,IAAI,CACL,SAAS;aACX,CAAA;QACH,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aAC3B,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9C,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B,CAAA;SACF;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B,CAAA;SACF;QACD;YACE,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;gBACvC,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B,CAAA;KACJ;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAuB,EACvB,IAAS,EACT,GAAQ,EACR,WAAgB,EACI,EAAE;IACtB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;YAC3C,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,gBAAgB,CAAC,MAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAEtD,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;YACxC,CAAC,CAAE,MAAqB,CAAC,IAAI,CAAA;QAE/B,OAAO;YACL,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;SAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,aAAa,GACjB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAA;IAEpE,oBAAoB;IACpB,MAAM,OAAO,GAAG,SAAS;SACtB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAClB,MAAM,EAAE,QAAQ,KAAK,iBAAiB;QACpC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG;QACvB,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAC1B;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO;QACL,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC;QACtD,QAAQ,EAAE,aAAa,IAAI,MAAM;QACjC,OAAO;KACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAgB,EAAE;IACnD,OAAO;QACL,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,iBAAiB;KAC3B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAChE,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ,CAAC,CAAC;YACb,OAAO,SAAS,CAAA;SACjB;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC,CAAC;YACrB,OAAO,UAAU,CAAA;SAClB;QACD,KAAK,WAAW,CAAC,CAAC;YAChB,OAAO,SAAS,CAAA;SACjB;QACD,KAAK,YAAY,CAAC,CAAC;YACjB,OAAO,OAAO,CAAA;SACf;QACD,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,MAAM,CAAA;SACd;QACD,OAAO,CAAC,CAAC;YACP,OAAO,MAAM,CAAA;SACd;KACF;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"change-handlers.js","sourceRoot":"","sources":["../../../src/lib/change-handlers.ts"],"names":[],"mappings":"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"}