@manuscripts/article-editor 4.2.8 → 4.2.9

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 (99) 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/comparison/compare-documents.js +53 -0
  29. package/dist/cjs/lib/comparison/compare-documents.js.map +1 -0
  30. package/dist/cjs/lib/comparison/compare-paragraph-like.js +388 -0
  31. package/dist/cjs/lib/comparison/compare-paragraph-like.js.map +1 -0
  32. package/dist/cjs/lib/comparison/compare-table-element.js +567 -0
  33. package/dist/cjs/lib/comparison/compare-table-element.js.map +1 -0
  34. package/dist/cjs/lib/comparison/create-dataTracked-attrs.js +60 -0
  35. package/dist/cjs/lib/comparison/create-dataTracked-attrs.js.map +1 -0
  36. package/dist/cjs/lib/comparison/distribute-nodes.js +131 -0
  37. package/dist/cjs/lib/comparison/distribute-nodes.js.map +1 -0
  38. package/dist/cjs/lib/comparison/rebuild-nodes-tree.js +76 -0
  39. package/dist/cjs/lib/comparison/rebuild-nodes-tree.js.map +1 -0
  40. package/dist/cjs/store/Store.js +7 -2
  41. package/dist/cjs/store/Store.js.map +1 -1
  42. package/dist/es/EditorApp.js +8 -1
  43. package/dist/es/EditorApp.js.map +1 -1
  44. package/dist/es/Main.js +3 -3
  45. package/dist/es/Main.js.map +1 -1
  46. package/dist/es/components/inspector/SnapshotsList.js +15 -3
  47. package/dist/es/components/inspector/SnapshotsList.js.map +1 -1
  48. package/dist/es/components/projects/EditorElement.js +5 -4
  49. package/dist/es/components/projects/EditorElement.js.map +1 -1
  50. package/dist/es/components/projects/Inspector.js +6 -0
  51. package/dist/es/components/projects/Inspector.js.map +1 -1
  52. package/dist/es/components/projects/ManuscriptPageContainer.js +4 -3
  53. package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
  54. package/dist/es/components/tools/CompareDocumentsModal.js +140 -0
  55. package/dist/es/components/tools/CompareDocumentsModal.js.map +1 -0
  56. package/dist/es/components/track-changes/SortByDropdown.js +1 -1
  57. package/dist/es/components/track-changes/TrackChangesPanel.js +16 -3
  58. package/dist/es/components/track-changes/TrackChangesPanel.js.map +1 -1
  59. package/dist/es/components/track-changes/suggestion-list/Suggestion.js +7 -3
  60. package/dist/es/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
  61. package/dist/es/components/track-changes/suggestion-list/SuggestionList.js +6 -2
  62. package/dist/es/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
  63. package/dist/es/hooks/use-compare-documents.js +65 -0
  64. package/dist/es/hooks/use-compare-documents.js.map +1 -0
  65. package/dist/es/hooks/use-create-editor.js +31 -14
  66. package/dist/es/hooks/use-create-editor.js.map +1 -1
  67. package/dist/es/index.js +3 -3
  68. package/dist/es/index.js.map +1 -1
  69. package/dist/es/lib/comparison/compare-documents.js +48 -0
  70. package/dist/es/lib/comparison/compare-documents.js.map +1 -0
  71. package/dist/es/lib/comparison/compare-paragraph-like.js +378 -0
  72. package/dist/es/lib/comparison/compare-paragraph-like.js.map +1 -0
  73. package/dist/es/lib/comparison/compare-table-element.js +559 -0
  74. package/dist/es/lib/comparison/compare-table-element.js.map +1 -0
  75. package/dist/es/lib/comparison/create-dataTracked-attrs.js +54 -0
  76. package/dist/es/lib/comparison/create-dataTracked-attrs.js.map +1 -0
  77. package/dist/es/lib/comparison/distribute-nodes.js +127 -0
  78. package/dist/es/lib/comparison/distribute-nodes.js.map +1 -0
  79. package/dist/es/lib/comparison/rebuild-nodes-tree.js +72 -0
  80. package/dist/es/lib/comparison/rebuild-nodes-tree.js.map +1 -0
  81. package/dist/es/store/Store.js +7 -2
  82. package/dist/es/store/Store.js.map +1 -1
  83. package/dist/types/EditorApp.d.ts +2 -1
  84. package/dist/types/Main.d.ts +1 -1
  85. package/dist/types/components/projects/ManuscriptPageContainer.d.ts +1 -1
  86. package/dist/types/components/tools/CompareDocumentsModal.d.ts +11 -0
  87. package/dist/types/components/track-changes/TrackChangesPanel.d.ts +1 -1
  88. package/dist/types/components/track-changes/suggestion-list/Suggestion.d.ts +1 -1
  89. package/dist/types/components/track-changes/suggestion-list/SuggestionList.d.ts +3 -3
  90. package/dist/types/hooks/use-compare-documents.d.ts +24 -0
  91. package/dist/types/index.d.ts +1 -1
  92. package/dist/types/lib/comparison/compare-documents.d.ts +16 -0
  93. package/dist/types/lib/comparison/compare-paragraph-like.d.ts +23 -0
  94. package/dist/types/lib/comparison/compare-table-element.d.ts +21 -0
  95. package/dist/types/lib/comparison/create-dataTracked-attrs.d.ts +15 -0
  96. package/dist/types/lib/comparison/distribute-nodes.d.ts +19 -0
  97. package/dist/types/lib/comparison/rebuild-nodes-tree.d.ts +14 -0
  98. package/dist/types/store/Store.d.ts +3 -1
  99. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionList.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/SuggestionList.tsx"],"names":[],"mappings":";;;;;;AAYA,kDAAyB;AACzB,0EAAsC;AAEtC,6DAAyD;AACzD,6CAAyC;AAclC,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,8BAAC,mCAAgB,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,8BAAC,IAAI,eAAS,kBAAkB,kBAAe,IAAI,IAChD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CACpC,8BAAC,uBAAU,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;AAzCY,QAAA,cAAc,kBAyC1B;AAED,MAAM,IAAI,GAAG,2BAAM,CAAC,EAAE,CAAA;;;;;CAKrB,CAAA"}
1
+ {"version":3,"file":"SuggestionList.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/SuggestionList.tsx"],"names":[],"mappings":";;;;;;AAYA,kDAAyB;AACzB,0EAAsC;AAEtC,0CAAyC;AACzC,6DAAyD;AACzD,6CAAyC;AAclC,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,IAAA,gBAAQ,EAAC,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,8BAAC,mCAAgB,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,8BAAC,IAAI,eAAS,kBAAkB,kBAAe,IAAI,IAChD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CACpC,8BAAC,uBAAU,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;AA7CY,QAAA,cAAc,kBA6C1B;AAED,MAAM,IAAI,GAAG,2BAAM,CAAC,EAAE,CAAA;;;;;CAKrB,CAAA"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /*!
3
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
+ *
5
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
+ *
7
+ * The Original Code is manuscripts-frontend.
8
+ *
9
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
+ *
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.useCompareDocuments = void 0;
15
+ const react_1 = require("react");
16
+ const compare_documents_1 = require("../lib/comparison/compare-documents");
17
+ const useCompareDocuments = ({ originalId, comparisonId, getSnapshot, }) => {
18
+ const [comparedDoc, setComparedDoc] = (0, react_1.useState)(null);
19
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
20
+ const [error, setError] = (0, react_1.useState)(null);
21
+ const isComparingMode = Boolean(originalId && comparisonId);
22
+ (0, react_1.useEffect)(() => {
23
+ const fetchAndCompareDocuments = async () => {
24
+ if (!originalId || !comparisonId) {
25
+ setComparedDoc(null);
26
+ setError(null);
27
+ return;
28
+ }
29
+ setIsLoading(true);
30
+ setError(null);
31
+ try {
32
+ const [originalSnapshot, comparisonSnapshot] = await Promise.all([
33
+ getSnapshot(originalId),
34
+ getSnapshot(comparisonId),
35
+ ]);
36
+ if (!originalSnapshot || !comparisonSnapshot) {
37
+ throw new Error('Failed to fetch one or both snapshots');
38
+ }
39
+ const comparedDocument = (0, compare_documents_1.compareDocuments)(originalSnapshot, comparisonSnapshot);
40
+ setComparedDoc(comparedDocument);
41
+ }
42
+ catch (err) {
43
+ console.error('Error comparing documents:', err);
44
+ setError(err instanceof Error ? err.message : 'Unknown error occurred');
45
+ setComparedDoc(null);
46
+ }
47
+ finally {
48
+ setIsLoading(false);
49
+ }
50
+ };
51
+ fetchAndCompareDocuments();
52
+ }, [originalId, comparisonId, getSnapshot]);
53
+ // Reset state when exiting comparison mode
54
+ (0, react_1.useEffect)(() => {
55
+ if (!isComparingMode) {
56
+ setComparedDoc(null);
57
+ setError(null);
58
+ setIsLoading(false);
59
+ }
60
+ }, [isComparingMode]);
61
+ return {
62
+ comparedDoc,
63
+ isComparingMode,
64
+ isLoading,
65
+ error,
66
+ };
67
+ };
68
+ exports.useCompareDocuments = useCompareDocuments;
69
+ //# 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,iCAA2C;AAE3C,2EAAsE;AAS/D,MAAM,mBAAmB,GAAG,CAAC,EAClC,UAAU,EACV,YAAY,EACZ,WAAW,GACc,EAAE,EAAE;IAC7B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAwB,IAAI,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,CAAA;IAE3D,IAAA,iBAAS,EAAC,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,IAAA,oCAAgB,EACvC,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,IAAA,iBAAS,EAAC,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;AAhEY,QAAA,mBAAmB,uBAgE/B"}
@@ -10,7 +10,7 @@ exports.useCreateEditor = void 0;
10
10
  *
11
11
  * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
12
12
  *
13
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
13
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
14
14
  */
15
15
  const body_editor_1 = require("@manuscripts/body-editor");
16
16
  const style_guide_1 = require("@manuscripts/style-guide");
@@ -21,9 +21,10 @@ const StepsExchanger_1 = require("../api/StepsExchanger");
21
21
  const config_1 = require("../config");
22
22
  const store_1 = require("../store");
23
23
  const theme_1 = require("../theme/theme");
24
+ const use_compare_documents_1 = require("./use-compare-documents");
24
25
  const use_inspector_tabs_context_1 = require("./use-inspector-tabs-context");
25
26
  const useCreateEditor = () => {
26
- const [{ doc, initialDocVersion, projectID, manuscriptID, user, fileManagement, style, locale, sectionCategories, isViewingMode, }, dispatch, getState,] = (0, store_1.useStore)((store) => ({
27
+ const [{ doc, initialDocVersion, projectID, manuscriptID, user, fileManagement, style, locale, sectionCategories, isViewingMode, getSnapshot, }, dispatch, getState,] = (0, store_1.useStore)((store) => ({
27
28
  doc: store.doc,
28
29
  initialDocVersion: store.initialDocVersion,
29
30
  projectID: store.projectID,
@@ -34,22 +35,36 @@ const useCreateEditor = () => {
34
35
  locale: store.cslLocale,
35
36
  sectionCategories: store.sectionCategories,
36
37
  isViewingMode: store.isViewingMode,
38
+ getSnapshot: store.getSnapshot,
37
39
  }));
38
40
  const api = (0, Api_1.useApi)();
41
+ const params = (0, react_router_dom_1.useParams)();
42
+ const { comparedDoc, isComparingMode } = (0, use_compare_documents_1.useCompareDocuments)({
43
+ originalId: params.originalId,
44
+ comparisonId: params.comparisonId,
45
+ getSnapshot,
46
+ });
47
+ (0, react_1.useEffect)(() => {
48
+ dispatch({ isComparingMode });
49
+ }, [isComparingMode, dispatch]);
39
50
  const updateVersion = (v) => dispatch({ initialDocVersion: v });
40
- const stepsExchanger = (0, react_1.useMemo)(() => new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
51
+ const stepsExchanger = (0, react_1.useMemo)(() => isComparingMode
52
+ ? undefined
53
+ : new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
41
54
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
- [projectID, manuscriptID, api]);
55
+ [projectID, manuscriptID, api, isComparingMode]);
43
56
  (0, react_1.useEffect)(() => {
44
- stepsExchanger.isThrottling.onChange((value) => {
57
+ if (stepsExchanger) {
58
+ stepsExchanger.isThrottling.onChange((value) => {
59
+ dispatch({
60
+ preventUnload: value,
61
+ });
62
+ });
45
63
  dispatch({
46
- preventUnload: value,
64
+ beforeUnload: () => stepsExchanger.flush(),
47
65
  });
48
- });
49
- dispatch({
50
- beforeUnload: () => stepsExchanger.flush(),
51
- });
52
- return () => stepsExchanger.stop();
66
+ return () => stepsExchanger.stop();
67
+ }
53
68
  }, [dispatch, stepsExchanger]);
54
69
  const getCapabilities = (0, react_1.useMemo)(() => (project, user, permittedActions) => (0, style_guide_1.getCapabilities)(project, user, undefined, permittedActions, isViewingMode), [isViewingMode]);
55
70
  const config = (0, config_1.getConfig)();
@@ -61,7 +76,7 @@ const useCreateEditor = () => {
61
76
  spellcheck: 'true',
62
77
  tabindex: '2',
63
78
  },
64
- doc,
79
+ doc: comparedDoc || doc,
65
80
  userID: user._id,
66
81
  debug: config.environment === 'development',
67
82
  // @TODO - move primaryLanguageCode to be an attribute on ManuscriptNode
@@ -82,10 +97,12 @@ const useCreateEditor = () => {
82
97
  return getState().files;
83
98
  },
84
99
  fileManagement: fileManagement,
85
- collabProvider: stepsExchanger,
100
+ collabProvider: isComparingMode ? undefined : stepsExchanger,
86
101
  sectionCategories: sectionCategories,
87
102
  navigate: (0, react_router_dom_1.useNavigate)(),
88
103
  location: (0, react_router_dom_1.useLocation)(),
104
+ isComparingMode,
105
+ submissionId: params.id,
89
106
  lockBody: config.features.lockBody,
90
107
  isViewingMode,
91
108
  };
@@ -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/cjs/index.js CHANGED
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
10
  *
11
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
12
12
  */
13
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
14
  if (k2 === undefined) k2 = k;
@@ -52,12 +52,12 @@ Object.defineProperty(exports, "ProjectRole", { enumerable: true, get: function
52
52
  var roles_2 = require("./lib/roles");
53
53
  Object.defineProperty(exports, "getUserRole", { enumerable: true, get: function () { return roles_2.getUserRole; } });
54
54
  __exportStar(require("./hooks/external/use-manuscripts-state"), exports);
55
- const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, }) => {
55
+ const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, submissionID, }) => {
56
56
  (0, config_1.setConfig)(config);
57
57
  return (react_1.default.createElement(react_1.default.Fragment, null,
58
58
  react_1.default.createElement(ThemeProvider_1.ThemeProvider, null,
59
59
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(Loading_1.LoadingPage, { className: 'loader' }, "Loading...") },
60
- react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, getAuthToken: getAuthToken, observer: observer }))),
60
+ react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, getAuthToken: getAuthToken, observer: observer, submissionID: submissionID }))),
61
61
  react_1.default.createElement("div", { id: "menu" }),
62
62
  react_1.default.createElement("div", { id: "notifications" }),
63
63
  react_1.default.createElement("div", { id: "size" })));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uBAAoB;AAEpB,+CAAuC;AAEvC,kDAAkD;AAClD,qCAA6D;AAE7D,kDAAyB;AACzB,yDAAqD;AACrD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AACpB,yEAAsD;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,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAA;IACjB,OAAO,CACL;QACE,8BAAC,6BAAa;YACZ,8BAAC,gBAAQ,IACP,QAAQ,EAAE,8BAAC,qBAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,8BAAC,cAAI,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,uCAAK,EAAE,EAAC,MAAM,GAAO;QACrB,uCAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,uCAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,mBAAmB,GAAG,eAAK,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,uBAAoB;AAEpB,+CAAuC;AAEvC,kDAAkD;AAClD,qCAA6D;AAE7D,kDAAyB;AACzB,yDAAqD;AACrD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AACpB,yEAAsD;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,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAA;IACjB,OAAO,CACL;QACE,8BAAC,6BAAa;YACZ,8BAAC,gBAAQ,IACP,QAAQ,EAAE,8BAAC,qBAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,8BAAC,cAAI,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,uCAAK,EAAE,EAAC,MAAM,GAAO;QACrB,uCAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,uCAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,mBAAmB,GAAG,eAAK,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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /*!
3
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
+ *
5
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
+ *
7
+ * The Original Code is manuscripts-frontend.
8
+ *
9
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
+ *
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.compareSingleNodeAttrs = exports.compareDocuments = void 0;
15
+ const transform_1 = require("@manuscripts/transform");
16
+ const lodash_1 = require("lodash");
17
+ const create_dataTracked_attrs_1 = require("./create-dataTracked-attrs");
18
+ const distribute_nodes_1 = require("./distribute-nodes");
19
+ const rebuild_nodes_tree_1 = require("./rebuild-nodes-tree");
20
+ // The entry point for the comparison mode, which is used to compare two ManuscriptNode trees
21
+ // It distributes the nodes, rebuilds the nodes tree and then creates a new ManuscriptNode tree
22
+ const compareDocuments = (originalSnapshot, comparisonSnapshot) => {
23
+ const originalDocument = transform_1.schema.nodeFromJSON(originalSnapshot.snapshot);
24
+ const comparisonDocument = transform_1.schema.nodeFromJSON(comparisonSnapshot.snapshot);
25
+ const distributedNodes = (0, distribute_nodes_1.distributeNodesForComparison)(originalDocument, comparisonDocument);
26
+ const distributedNodesArray = [];
27
+ distributedNodes.forEach((_, key) => {
28
+ distributedNodesArray.push((0, rebuild_nodes_tree_1.rebuildDocNodeTree)(key, distributedNodes));
29
+ });
30
+ const manuscript = transform_1.schema.nodes.manuscript.create(comparisonDocument.attrs, distributedNodesArray);
31
+ return manuscript;
32
+ };
33
+ exports.compareDocuments = compareDocuments;
34
+ // Compares the attributes of two nodes and returns a new node with the updated attributes
35
+ const compareSingleNodeAttrs = (originalNode, comparisonNode, nodeType, rebuiltChildren) => {
36
+ const originalAttrs = originalNode?.attrs || {};
37
+ const comparisonAttrs = comparisonNode?.attrs || {};
38
+ if (!(0, lodash_1.isEqual)(originalAttrs, comparisonAttrs)) {
39
+ return nodeType.create({
40
+ ...comparisonAttrs,
41
+ dataTracked: [(0, create_dataTracked_attrs_1.createComparisonSetAttrsDataTracked)('', originalAttrs)],
42
+ }, rebuiltChildren.length > 0
43
+ ? rebuiltChildren
44
+ : comparisonNode?.content || null);
45
+ }
46
+ else {
47
+ return nodeType.create(comparisonAttrs, rebuiltChildren.length > 0
48
+ ? rebuiltChildren
49
+ : comparisonNode?.content || null);
50
+ }
51
+ };
52
+ exports.compareSingleNodeAttrs = compareSingleNodeAttrs;
53
+ //# sourceMappingURL=compare-documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-documents.js","sourceRoot":"","sources":["../../../../src/lib/comparison/compare-documents.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,sDAA+D;AAC/D,mCAAgC;AAIhC,yEAAgF;AAChF,yDAAiE;AACjE,6DAAyD;AAEzD,6FAA6F;AAC7F,+FAA+F;AACxF,MAAM,gBAAgB,GAAG,CAC9B,gBAAoC,EACpC,kBAAsC,EACtC,EAAE;IACF,MAAM,gBAAgB,GAAG,kBAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACvE,MAAM,kBAAkB,GAAG,kBAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAE3E,MAAM,gBAAgB,GAAG,IAAA,+CAA4B,EACnD,gBAAgB,EAChB,kBAAkB,CACnB,CAAA;IACD,MAAM,qBAAqB,GAAqB,EAAE,CAAA;IAClD,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAClC,qBAAqB,CAAC,IAAI,CAAC,IAAA,uCAAkB,EAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,kBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAC/C,kBAAkB,CAAC,KAAK,EACxB,qBAAqB,CACtB,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAtBY,QAAA,gBAAgB,oBAsB5B;AAED,0FAA0F;AACnF,MAAM,sBAAsB,GAAG,CACpC,YAA4B,EAC5B,cAA8B,EAC9B,QAAkB,EAClB,eAAiC,EACjB,EAAE;IAClB,MAAM,aAAa,GAAG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAA;IAC/C,MAAM,eAAe,GAAG,cAAc,EAAE,KAAK,IAAI,EAAE,CAAA;IACnD,IAAI,CAAC,IAAA,gBAAO,EAAC,aAAa,EAAE,eAAe,CAAC,EAAE;QAC5C,OAAO,QAAQ,CAAC,MAAM,CACpB;YACE,GAAG,eAAe;YAClB,WAAW,EAAE,CAAC,IAAA,8DAAmC,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC;SACtE,EACD,eAAe,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CACpC,CAAA;KACF;SAAM;QACL,OAAO,QAAQ,CAAC,MAAM,CACpB,eAAe,EACf,eAAe,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CACpC,CAAA;KACF;AACH,CAAC,CAAA;AA1BY,QAAA,sBAAsB,0BA0BlC"}