@manuscripts/article-editor 1.15.3-LEAN-3604.1 → 1.15.3

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 (65) hide show
  1. package/dist/cjs/EditorApp.js +11 -3
  2. package/dist/cjs/EditorApp.js.map +1 -1
  3. package/dist/cjs/Main.js +2 -4
  4. package/dist/cjs/Main.js.map +1 -1
  5. package/dist/cjs/components/comments/CommentActions.js +59 -0
  6. package/dist/cjs/components/comments/CommentActions.js.map +1 -0
  7. package/dist/cjs/components/comments/CommentBody.js +97 -0
  8. package/dist/cjs/components/comments/CommentBody.js.map +1 -0
  9. package/dist/cjs/components/comments/CommentResolveButton.js +56 -0
  10. package/dist/cjs/components/comments/CommentResolveButton.js.map +1 -0
  11. package/dist/cjs/components/comments/CommentThread.js +122 -0
  12. package/dist/cjs/components/comments/CommentThread.js.map +1 -0
  13. package/dist/cjs/components/comments/CommentsPanel.js +134 -0
  14. package/dist/cjs/components/comments/CommentsPanel.js.map +1 -0
  15. package/dist/cjs/components/comments/CommentsPlaceholder.js +44 -0
  16. package/dist/cjs/components/comments/CommentsPlaceholder.js.map +1 -0
  17. package/dist/cjs/index.js +2 -6
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/lib/comments.js +29 -0
  20. package/dist/cjs/lib/comments.js.map +1 -0
  21. package/dist/cjs/postgres-data/PsSource.js +5 -3
  22. package/dist/cjs/postgres-data/PsSource.js.map +1 -1
  23. package/dist/cjs/postgres-data/buildUtilities.js +30 -13
  24. package/dist/cjs/postgres-data/buildUtilities.js.map +1 -1
  25. package/dist/cjs/store/StoreContext.js +4 -10
  26. package/dist/cjs/store/StoreContext.js.map +1 -1
  27. package/dist/es/EditorApp.js +11 -3
  28. package/dist/es/EditorApp.js.map +1 -1
  29. package/dist/es/Main.js +2 -4
  30. package/dist/es/Main.js.map +1 -1
  31. package/dist/es/components/comments/CommentActions.js +52 -0
  32. package/dist/es/components/comments/CommentActions.js.map +1 -0
  33. package/dist/es/components/comments/CommentBody.js +67 -0
  34. package/dist/es/components/comments/CommentBody.js.map +1 -0
  35. package/dist/es/components/comments/CommentResolveButton.js +49 -0
  36. package/dist/es/components/comments/CommentResolveButton.js.map +1 -0
  37. package/dist/es/components/comments/CommentThread.js +93 -0
  38. package/dist/es/components/comments/CommentThread.js.map +1 -0
  39. package/dist/es/components/comments/CommentsPanel.js +104 -0
  40. package/dist/es/components/comments/CommentsPanel.js.map +1 -0
  41. package/dist/es/components/comments/CommentsPlaceholder.js +37 -0
  42. package/dist/es/components/comments/CommentsPlaceholder.js.map +1 -0
  43. package/dist/es/index.js +2 -3
  44. package/dist/es/index.js.map +1 -1
  45. package/dist/es/lib/comments.js +23 -0
  46. package/dist/es/lib/comments.js.map +1 -0
  47. package/dist/es/postgres-data/PsSource.js +5 -3
  48. package/dist/es/postgres-data/PsSource.js.map +1 -1
  49. package/dist/es/postgres-data/buildUtilities.js +30 -13
  50. package/dist/es/postgres-data/buildUtilities.js.map +1 -1
  51. package/dist/es/store/StoreContext.js +4 -10
  52. package/dist/es/store/StoreContext.js.map +1 -1
  53. package/dist/types/EditorApp.d.ts +14 -5
  54. package/dist/types/Main.d.ts +2 -12
  55. package/dist/types/components/comments/CommentActions.d.ts +24 -0
  56. package/dist/types/components/comments/CommentBody.d.ts +21 -0
  57. package/dist/types/components/comments/CommentResolveButton.d.ts +18 -0
  58. package/dist/types/components/comments/CommentThread.d.ts +22 -0
  59. package/dist/types/components/comments/CommentsPanel.d.ts +2 -0
  60. package/dist/types/components/comments/CommentsPlaceholder.d.ts +14 -0
  61. package/dist/types/index.d.ts +3 -13
  62. package/dist/types/lib/comments.d.ts +21 -0
  63. package/dist/types/postgres-data/buildUtilities.d.ts +1 -1
  64. package/dist/types/store/StoreContext.d.ts +3 -3
  65. package/package.json +3 -3
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CommentsPlaceholder = exports.Message = void 0;
7
+ /*!
8
+ * 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.
9
+ *
10
+ * 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.
11
+ *
12
+ * The Original Code is manuscripts-frontend.
13
+ *
14
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
15
+ *
16
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2024 Atypon Systems LLC. All Rights Reserved.
17
+ */
18
+ const react_1 = __importDefault(require("react"));
19
+ const styled_components_1 = __importDefault(require("styled-components"));
20
+ const Container = styled_components_1.default.div `
21
+ display: flex;
22
+ flex-direction: column;
23
+ align-items: center;
24
+ justify-content: center;
25
+ margin-top: 50px;
26
+ `;
27
+ exports.Message = styled_components_1.default.div `
28
+ font-size: ${(props) => props.theme.font.size.medium};
29
+ font-weight: ${(props) => props.theme.font.weight.light};
30
+ color: ${(props) => props.theme.colors.text.secondary};
31
+ text-align: center;
32
+ margin: ${(props) => props.theme.grid.unit * 5}px;
33
+ `;
34
+ const PlaceholderGraphic = () => (react_1.default.createElement("svg", { width: "300", height: "300", viewBox: "0 0 300 300", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
35
+ react_1.default.createElement("rect", { width: "300", height: "300", fill: "url(#pattern0_6815_691)" }),
36
+ react_1.default.createElement("defs", null,
37
+ react_1.default.createElement("pattern", { id: "pattern0_6815_691", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
38
+ react_1.default.createElement("use", { xlinkHref: "#image0_6815_691", transform: "scale(0.00333333)" })),
39
+ react_1.default.createElement("image", { id: "image0_6815_691", width: "300", height: "300", xlinkHref: "data:image/png;base64,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" }))));
40
+ const CommentsPlaceholder = () => (react_1.default.createElement(Container, null,
41
+ react_1.default.createElement(PlaceholderGraphic, null),
42
+ react_1.default.createElement(exports.Message, null, "Discuss this manuscript with your collaborators by creating a comment.")));
43
+ exports.CommentsPlaceholder = CommentsPlaceholder;
44
+ //# sourceMappingURL=CommentsPlaceholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentsPlaceholder.js","sourceRoot":"","sources":["../../../../src/components/comments/CommentsPlaceholder.tsx"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;GAUG;AACH,kDAAyB;AACzB,0EAAsC;AAEtC,MAAM,SAAS,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;CAM3B,CAAA;AAEY,QAAA,OAAO,GAAG,2BAAM,CAAC,GAAG,CAAA;eAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;iBACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;WAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;;YAE3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;CAC/C,CAAA;AAED,MAAM,kBAAkB,GAAa,GAAG,EAAE,CAAC,CACzC,uCACE,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B;IAElC,wCAAM,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,yBAAyB,GAAG;IAChE;QACE,2CACE,EAAE,EAAC,mBAAmB,EACtB,mBAAmB,EAAC,mBAAmB,EACvC,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG;YAEV,uCAAK,SAAS,EAAC,kBAAkB,EAAC,SAAS,EAAC,mBAAmB,GAAG,CAC1D;QACV,yCACE,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,SAAS,EAAC,w8hCAAw8hC,GACl9hC,CACG,CACH,CACP,CAAA;AAEM,MAAM,mBAAmB,GAAa,GAAG,EAAE,CAAC,CACjD,8BAAC,SAAS;IACR,8BAAC,kBAAkB,OAAG;IACtB,8BAAC,eAAO,iFAEE,CACA,CACb,CAAA;AAPY,QAAA,mBAAmB,uBAO/B"}
package/dist/cjs/index.js CHANGED
@@ -33,9 +33,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  __setModuleDefault(result, mod);
34
34
  return result;
35
35
  };
36
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
38
- };
39
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
40
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
41
38
  };
@@ -52,10 +49,9 @@ const Main_1 = __importDefault(require("./Main"));
52
49
  const ThemeProvider_1 = require("./theme/ThemeProvider");
53
50
  var roles_1 = require("./lib/roles");
54
51
  Object.defineProperty(exports, "ProjectRole", { enumerable: true, get: function () { return roles_1.ProjectRole; } });
55
- __exportStar(require("./store/ParentObserver"), exports);
56
52
  var roles_2 = require("./lib/roles");
57
53
  Object.defineProperty(exports, "getUserRole", { enumerable: true, get: function () { return roles_2.getUserRole; } });
58
- const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID, projectID, permittedActions, authToken, }) => {
54
+ const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, authToken, observer, }) => {
59
55
  (0, react_1.useMemo)(() => {
60
56
  if (authToken) {
61
57
  token_1.default.remove();
@@ -74,7 +70,7 @@ const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID,
74
70
  return (react_1.default.createElement(react_1.default.Fragment, null,
75
71
  react_1.default.createElement(ThemeProvider_1.ThemeProvider, null,
76
72
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(Loading_1.LoadingPage, { className: 'loader' }, "Loading...") },
77
- react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, authToken: authToken || '', parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions }))),
73
+ react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, authToken: authToken || '', manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, observer: observer }))),
78
74
  react_1.default.createElement("div", { id: "menu" }),
79
75
  react_1.default.createElement("div", { id: "notifications" }),
80
76
  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,2BAAwB;AACxB,uBAAoB;AAGpB,4DAA+B;AAC/B,+CAAgD;AAEhD,kDAAkD;AAClD,wDAAsC;AAEtC,4DAAkC;AAClC,kDAAyB;AAEzB,yDAAqD;AAErD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,yDAAsC;AACtC,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAYpB,MAAM,gBAAgB,GAAuC,CAAC,EAC5D,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,GACV,EAAE,EAAE;IACH,IAAA,eAAO,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,eAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,oBAAM,EAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,iBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,iBAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,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,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,GAClC,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,2BAAwB;AACxB,uBAAoB;AAEpB,4DAA+B;AAC/B,+CAAgD;AAEhD,kDAAkD;AAElD,wDAAsC;AAEtC,4DAAkC;AAClC,kDAAyB;AACzB,yDAAqD;AAErD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAQpB,MAAM,gBAAgB,GAA6B,CAAC,EAClD,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,IAAA,eAAO,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,eAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,oBAAM,EAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,iBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,iBAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,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,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildAuthorName = exports.buildCommentTrees = exports.getAuthorID = void 0;
4
+ const getAuthorID = (comment) => {
5
+ const contributions = comment.node.attrs.contributions;
6
+ if (!contributions?.length) {
7
+ return undefined;
8
+ }
9
+ return contributions[0].profileID;
10
+ };
11
+ exports.getAuthorID = getAuthorID;
12
+ const buildCommentTrees = (comments, newCommentID) => {
13
+ return comments.map((c) => ({
14
+ comment: c,
15
+ isNew: newCommentID === c.node.attrs.id,
16
+ children: [],
17
+ }));
18
+ };
19
+ exports.buildCommentTrees = buildCommentTrees;
20
+ const buildAuthorName = (user) => {
21
+ if (!user) {
22
+ return '';
23
+ }
24
+ return [user.bibliographicName.given, user.bibliographicName.family]
25
+ .filter(Boolean)
26
+ .join(' ');
27
+ };
28
+ exports.buildAuthorName = buildAuthorName;
29
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../src/lib/comments.ts"],"names":[],"mappings":";;;AAoBO,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAA;IACtD,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAA;KACjB;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACnC,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB;AAEM,MAAM,iBAAiB,GAAG,CAC/B,QAAmB,EACnB,YAAqB,EACN,EAAE;IACjB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACvC,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AATY,QAAA,iBAAiB,qBAS7B;AAEM,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAE,EAAE;IAC/D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAA;KACV;IACD,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;SACjE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B"}
@@ -15,9 +15,11 @@ class PsSource {
15
15
  if (state.userID && state.authToken) {
16
16
  this.api.setToken(state.authToken);
17
17
  }
18
- if (state.manuscriptID && state.projectID) {
19
- this.data = await (0, buildData_1.buildData)(state.projectID, state.manuscriptID, this.api);
20
- this.utilities = (0, buildUtilities_1.buildUtilities)(() => this.data, setState, this.api);
18
+ const projectID = state.projectID;
19
+ const manuscriptID = state.manuscriptID;
20
+ if (manuscriptID && projectID) {
21
+ this.data = await (0, buildData_1.buildData)(projectID, manuscriptID, this.api);
22
+ this.utilities = (0, buildUtilities_1.buildUtilities)(projectID, manuscriptID, () => this.data, setState, this.api);
21
23
  }
22
24
  next({ ...state, ...this.data, ...this.utilities });
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":";;;;;AAeA,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAqB,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC1E,IAAI,CAAC,SAAS,GAAG,IAAA,+BAAc,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;aACrE;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QA3BC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CAsBF;AAnCD,2BAmCC"}
1
+ {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":";;;;;AAeA,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAqB,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACvC,IAAI,YAAY,IAAI,SAAS,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC9D,IAAI,CAAC,SAAS,GAAG,IAAA,+BAAc,EAC7B,SAAS,EACT,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EACf,QAAQ,EACR,IAAI,CAAC,GAAG,CACT,CAAA;aACF;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QAnCC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CA8BF;AA3CD,2BA2CC"}
@@ -14,13 +14,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.buildUtilities = void 0;
15
15
  const json_schema_1 = require("@manuscripts/json-schema");
16
16
  const transform_1 = require("@manuscripts/transform");
17
+ const roles_1 = require("../lib/roles");
17
18
  const savingUtilities_1 = require("./savingUtilities");
18
- const buildUtilities = (getState, updateState, api) => {
19
+ const buildUtilities = (projectID, manuscriptID, getState, updateState, api) => {
19
20
  const nonPMModelsTypes = new Set([
20
21
  json_schema_1.ObjectTypes.Manuscript,
21
22
  json_schema_1.ObjectTypes.Project,
22
23
  ]);
23
- const updateContainerIDs = (model, projectID, manuscriptID) => {
24
+ const updateContainerIDs = (model) => {
24
25
  const containerIDs = {
25
26
  containerID: projectID,
26
27
  };
@@ -35,7 +36,7 @@ const buildUtilities = (getState, updateState, api) => {
35
36
  ...containerIDs,
36
37
  };
37
38
  };
38
- const saveProject = async (models, projectID) => {
39
+ const saveProject = async (models) => {
39
40
  try {
40
41
  const filtered = models.filter((m) => m.objectType !== json_schema_1.ObjectTypes.Project);
41
42
  await api.saveProject(projectID, filtered);
@@ -54,9 +55,7 @@ const buildUtilities = (getState, updateState, api) => {
54
55
  };
55
56
  const saveModels = async (models, excludeIDs) => {
56
57
  const state = getState();
57
- const projectID = state.projectID;
58
- const manuscriptID = state.manuscriptID;
59
- if (!state.modelMap || !manuscriptID || !projectID) {
58
+ if (!state.modelMap) {
60
59
  throw new Error('Unable to save due to incomplete data');
61
60
  }
62
61
  const modelMap = new Map();
@@ -70,7 +69,7 @@ const buildUtilities = (getState, updateState, api) => {
70
69
  if (!model._id) {
71
70
  throw new Error('Model ID required');
72
71
  }
73
- const updated = updateContainerIDs(model, projectID, manuscriptID);
72
+ const updated = updateContainerIDs(model);
74
73
  modelMap.set(model._id, updated);
75
74
  }
76
75
  updateState({
@@ -81,7 +80,7 @@ const buildUtilities = (getState, updateState, api) => {
81
80
  updateState({
82
81
  savingProcess: 'saving',
83
82
  });
84
- const result = await saveProject([...modelMap.values()], projectID);
83
+ const result = await saveProject([...modelMap.values()]);
85
84
  updateState({
86
85
  savingProcess: result ? 'saved' : 'failed',
87
86
  preventUnload: false,
@@ -99,10 +98,10 @@ const buildUtilities = (getState, updateState, api) => {
99
98
  };
100
99
  const saveManuscript = async (manuscript) => {
101
100
  const state = getState();
102
- if (!state.modelMap || !state.manuscriptID) {
101
+ if (!state.modelMap) {
103
102
  throw new Error('Unable to save manuscript due to incomplete data');
104
103
  }
105
- const previous = state.modelMap.get(state.manuscriptID);
104
+ const previous = state.modelMap.get(manuscriptID);
106
105
  await saveModel({
107
106
  ...previous,
108
107
  ...manuscript,
@@ -114,11 +113,9 @@ const buildUtilities = (getState, updateState, api) => {
114
113
  };
115
114
  const createSnapshot = async () => {
116
115
  const state = getState();
117
- const projectID = state.projectID;
118
- const manuscriptID = state.manuscriptID;
119
116
  const snapshots = state.snapshots;
120
117
  const snapshotsMap = state.snapshotsMap;
121
- if (!projectID || !manuscriptID || !snapshots || !snapshotsMap) {
118
+ if (!snapshots || !snapshotsMap) {
122
119
  throw new Error('Unable to create snapshot due to incomplete data');
123
120
  }
124
121
  const data = await api.createSnapshot(projectID, manuscriptID);
@@ -128,6 +125,25 @@ const buildUtilities = (getState, updateState, api) => {
128
125
  snapshotsMap: snapshotsMap.set(label.id, data.snapshot),
129
126
  });
130
127
  };
128
+ const refreshProject = async () => {
129
+ const state = getState();
130
+ const userID = state.userID;
131
+ if (!userID) {
132
+ return;
133
+ }
134
+ const models = await api.getManuscript(projectID, manuscriptID);
135
+ if (!models) {
136
+ return;
137
+ }
138
+ const project = models.filter((m) => m.objectType === json_schema_1.ObjectTypes.Project)[0];
139
+ if (!project) {
140
+ return;
141
+ }
142
+ updateState({
143
+ project,
144
+ userRole: (0, roles_1.getUserRole)(project, userID),
145
+ });
146
+ };
131
147
  return {
132
148
  saveModel,
133
149
  deleteModel,
@@ -136,6 +152,7 @@ const buildUtilities = (getState, updateState, api) => {
136
152
  saveModels,
137
153
  saveDoc,
138
154
  createSnapshot,
155
+ refreshProject,
139
156
  };
140
157
  };
141
158
  exports.buildUtilities = buildUtilities;
@@ -1 +1 @@
1
- {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
@@ -38,20 +38,14 @@ exports.useGenericStore = exports.GenericStoreProvider = exports.createStore = v
38
38
  const react_1 = __importStar(require("react"));
39
39
  const _1 = require(".");
40
40
  const GenericStoreContext = (0, react_1.createContext)(new _1.GenericStore());
41
- const createStore = async (dataSources, reducer, unmountHandler, parentObserver) => {
42
- const store = new _1.GenericStore(reducer, unmountHandler);
43
- await store.init(dataSources);
44
- parentObserver?.onUpdate((state) => store.setState({ ...store.state, ...state }));
45
- store.subscribe((state) => {
46
- parentObserver?.storeObserver(state);
47
- });
41
+ const createStore = async (sources, observer) => {
42
+ const store = new _1.GenericStore();
43
+ await store.init(sources);
44
+ store.subscribe((state) => observer?.onUpdate(state));
48
45
  return store;
49
46
  };
50
47
  exports.createStore = createStore;
51
48
  const GenericStoreProvider = ({ children, store }) => {
52
- if (!(store instanceof _1.GenericStore)) {
53
- throw new Error('GenericStoreProvider received incorrect store.');
54
- }
55
49
  (0, react_1.useEffect)(() => {
56
50
  return () => store.unmount();
57
51
  }, [store]);
@@ -1 +1 @@
1
- {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,+CAAmE;AAEnE,wBAAgF;AAGhF,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAe,IAAI,eAAY,EAAE,CAAC,CAAA;AAEpE,MAAM,WAAW,GAAG,KAAK,EAC9B,WAAsC,EACtC,OAAiB,EACjB,cAAwC,EACxC,cAAyB,EACzB,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,eAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IACvD,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE7B,cAAc,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,EAAW,CAAC,CACtD,CAAA;IACD,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAjBY,QAAA,WAAW,eAiBvB;AAMM,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAI,CAAC,CAAC,KAAK,YAAY,eAAY,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;KAClE;IACD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,8BAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iEAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAhBY,QAAA,oBAAoB,wBAgBhC;AAEM,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;AAAvD,QAAA,eAAe,mBAAwC"}
1
+ {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,+CAAmE;AAGnE,wBAAyD;AAEzD,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAe,IAAI,eAAY,EAAE,CAAC,CAAA;AAEpE,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkC,EAClC,QAA2B,EAC3B,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,eAAY,EAAE,CAAA;IAChC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzB,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB;AAMM,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,8BAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iEAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC;AAEM,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;AAAvD,QAAA,eAAe,mBAAwC"}
@@ -26,7 +26,7 @@ const PlaceholderWrapper = styled.div `
26
26
  justify-content: center;
27
27
  align-items: center;
28
28
  `;
29
- const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions, fileManagement, files, authToken, }) => {
29
+ const EditorApp = ({ manuscriptID, projectID, permittedActions, fileManagement, files, authToken, observer, }) => {
30
30
  const userID = getCurrentUserId();
31
31
  const [store, setStore] = useState();
32
32
  const loadDoc = useLoadDoc(authToken);
@@ -35,7 +35,7 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
35
35
  // implement remount for the store if component is retriggered
36
36
  const basicSource = new BasicSource(fileManagement, projectID, manuscriptID, files, permittedActions, userID || '', authToken || '');
37
37
  const mainSource = new PsSource(files);
38
- createStore([basicSource, mainSource, quarterBackSource], undefined, undefined, parentObserver)
38
+ createStore([basicSource, mainSource, quarterBackSource], observer)
39
39
  .then((store) => {
40
40
  setStore(store);
41
41
  })
@@ -43,11 +43,19 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
43
43
  console.error(e);
44
44
  });
45
45
  return () => {
46
- parentObserver?.detach();
47
46
  store?.unmount();
48
47
  };
49
48
  // eslint-disable-next-line react-hooks/exhaustive-deps
50
49
  }, [manuscriptID, projectID]);
50
+ useEffect(() => {
51
+ if (!observer) {
52
+ return;
53
+ }
54
+ observer.state.current = {
55
+ get: () => store?.getState(),
56
+ update: (state) => store?.setState(state),
57
+ };
58
+ }, [observer, store]);
51
59
  return store ? (React.createElement(GenericStoreProvider, { store: store },
52
60
  React.createElement(Router, null,
53
61
  React.createElement(Page, null,
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,uBAAuB,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,qBAAqB,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EACL,WAAW,EACX,WAAW,EAEX,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAahB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAAoB,CAAC,EAClC,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAgB,CAAA;IAElD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,WAAW,CACT,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAC5C,SAAS,EACT,SAAS,EACT,cAAc,CACf;aACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,cAAc,EAAE,MAAM,EAAE,CAAA;YACxB,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,oBAAC,MAAM;YACL,oBAAC,IAAI;gBACH,oBAAC,OAAO;oBACN,oBAAC,uBAAuB,OAAG,CACnB,CACL,CACA,CACY,CACxB,CAAC,CAAC,CAAC,CACF,oBAAC,kBAAkB;QACjB,oBAAC,qBAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"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"}
package/dist/es/Main.js CHANGED
@@ -14,10 +14,8 @@ import { DndProvider } from 'react-dnd';
14
14
  import { HTML5Backend } from 'react-dnd-html5-backend';
15
15
  import EditorApp from './EditorApp';
16
16
  import { GlobalStyle } from './theme/theme';
17
- // projectID="MPProject:E1895468-4DFE-4F17-9B06-5212ECD29555"
18
- // manuscriptID="MPManuscript:5F6D807F-CECF-45D0-B94C-5CF1361BDF05"
19
- const Main = ({ fileManagement, files, parentObserver, manuscriptID, projectID, authToken, permittedActions, }) => (React.createElement(DndProvider, { backend: HTML5Backend },
17
+ const Main = ({ fileManagement, files, manuscriptID, projectID, authToken, permittedActions, observer, }) => (React.createElement(DndProvider, { backend: HTML5Backend },
20
18
  React.createElement(GlobalStyle, null),
21
- React.createElement(EditorApp, { fileManagement: fileManagement, files: files, parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken })));
19
+ React.createElement(EditorApp, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken, observer: observer })));
22
20
  export default Main;
23
21
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAY3C,6DAA6D;AAC7D,mEAAmE;AAEnE,MAAM,IAAI,GAAoB,CAAC,EAC7B,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,GACjB,EAAE,EAAE,CAAC,CACJ,oBAAC,WAAW,IAAC,OAAO,EAAE,YAAY;IAChC,oBAAC,WAAW,OAAG;IACf,oBAAC,SAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GACpB,CACU,CACf,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,SAA6B,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,IAAI,GAA6B,CAAC,EACtC,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,oBAAC,WAAW,IAAC,OAAO,EAAE,YAAY;IAChC,oBAAC,WAAW,OAAG;IACf,oBAAC,SAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GAClB,CACU,CACf,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,52 @@
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) 2024 Atypon Systems LLC. All Rights Reserved.
11
+ */
12
+ import { DotsIcon, DropdownContainer, DropdownList, useDropdown, } from '@manuscripts/style-guide';
13
+ import React from 'react';
14
+ import styled from 'styled-components';
15
+ import { CommentResolveButton } from './CommentResolveButton';
16
+ export const ActionsIcon = styled.button `
17
+ border: none;
18
+ background: transparent;
19
+ cursor: pointer;
20
+ padding: 0 8px;
21
+ margin-top: -8px;
22
+ &:focus {
23
+ outline: none;
24
+ }
25
+ &:hover svg circle {
26
+ fill: #1a9bc7;
27
+ }
28
+ `;
29
+ export const CommentAction = styled.div `
30
+ font-family: ${(props) => props.theme.font.family.Lato};
31
+ cursor: pointer;
32
+ font-size: 16px;
33
+ line-height: 24px;
34
+ color: ${(props) => props.theme.colors.text.primary};
35
+ padding: 16px;
36
+ &:hover,
37
+ &:focus {
38
+ background: #f2fbfc;
39
+ }
40
+ `;
41
+ export const CommentActions = ({ comment, isResolveEnabled, isActionsEnabled, onEdit, onDelete, toggleResolve, }) => {
42
+ const { isOpen, toggleOpen, wrapperRef } = useDropdown();
43
+ return (React.createElement(React.Fragment, null,
44
+ isResolveEnabled && (React.createElement(CommentResolveButton, { comment: comment, onClick: toggleResolve })),
45
+ isActionsEnabled && (React.createElement(DropdownContainer, { ref: wrapperRef },
46
+ React.createElement(ActionsIcon, { onClick: toggleOpen },
47
+ React.createElement(DotsIcon, null)),
48
+ isOpen && (React.createElement(DropdownList, { direction: 'right', width: 125, onClick: toggleOpen },
49
+ React.createElement(CommentAction, { onClick: onEdit }, "Edit"),
50
+ React.createElement(CommentAction, { onClick: onDelete }, "Delete")))))));
51
+ };
52
+ //# sourceMappingURL=CommentActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentActions.js","sourceRoot":"","sources":["../../../../src/components/comments/CommentActions.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;;;CAYvC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;iBACtB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAWD,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,aAAa,GACd,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAA;IAExD,OAAO,CACL;QACG,gBAAgB,IAAI,CACnB,oBAAC,oBAAoB,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAI,CACnE;QACA,gBAAgB,IAAI,CACnB,oBAAC,iBAAiB,IAAC,GAAG,EAAE,UAAU;YAChC,oBAAC,WAAW,IAAC,OAAO,EAAE,UAAU;gBAC9B,oBAAC,QAAQ,OAAG,CACA;YACb,MAAM,IAAI,CACT,oBAAC,YAAY,IAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU;gBAC/D,oBAAC,aAAa,IAAC,OAAO,EAAE,MAAM,WAAsB;gBACpD,oBAAC,aAAa,IAAC,OAAO,EAAE,QAAQ,aAAwB,CAC3C,CAChB,CACiB,CACrB,CACA,CACJ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { ButtonGroup, PrimaryButton, SecondaryButton, } from '@manuscripts/style-guide';
2
+ import React, { useCallback, useRef } from 'react';
3
+ import styled from 'styled-components';
4
+ const CommentContent = styled.div `
5
+ cursor: pointer;
6
+ `;
7
+ const CommentEditor = styled.textarea `
8
+ cursor: text;
9
+ font-family: ${(props) => props.theme.font.family.sans};
10
+ color: ${(props) => props.theme.colors.text.primary};
11
+ margin: ${(props) => props.theme.grid.unit * 2}px 0;
12
+ resize: none;
13
+
14
+ width: 100%;
15
+ outline: 0;
16
+ border: 1px solid #e2e2e2;
17
+ border-radius: 6px;
18
+
19
+ &:focus {
20
+ background: #f2fbfc;
21
+ border: 1px solid #bce7f6;
22
+ border-radius: 6px;
23
+ }
24
+
25
+ box-sizing: border-box;
26
+ padding: 3px 16px 3px 16px;
27
+ font-style: normal;
28
+ font-weight: normal;
29
+ font-size: 14px;
30
+ line-height: 24px;
31
+ `;
32
+ const CommentViewer = styled.div `
33
+ flex: 1;
34
+
35
+ font-family: ${(props) => props.theme.font.family.sans};
36
+ line-height: 1.06;
37
+ letter-spacing: -0.2px;
38
+ color: ${(props) => props.theme.colors.text.primary};
39
+ margin: ${(props) => props.theme.grid.unit * 2}px 0;
40
+ `;
41
+ const EditorActions = styled(ButtonGroup) `
42
+ & button:not(:last-of-type) {
43
+ margin-right: 4px;
44
+ }
45
+ `;
46
+ export const CommentBody = ({ comment, isEditing, onSave, onCancel, onSelect, }) => {
47
+ const editor = useRef(null);
48
+ const handleSave = () => {
49
+ if (editor.current) {
50
+ onSave(editor.current.value);
51
+ }
52
+ };
53
+ const ref = useCallback((e) => {
54
+ if (e && editor.current !== e) {
55
+ e.focus();
56
+ }
57
+ editor.current = e;
58
+ }, []);
59
+ return (React.createElement(React.Fragment, null, isEditing ? (React.createElement(React.Fragment, null,
60
+ React.createElement(CommentEditor, { ref: ref, defaultValue: comment.node.attrs.contents }),
61
+ React.createElement(EditorActions, null,
62
+ React.createElement(SecondaryButton, { onClick: onCancel }, "Cancel"),
63
+ React.createElement(PrimaryButton, { onClick: handleSave }, "Save")))) : (React.createElement(React.Fragment, null,
64
+ React.createElement(CommentContent, { onClick: onSelect },
65
+ React.createElement(CommentViewer, null, comment.node.attrs.contents))))));
66
+ };
67
+ //# sourceMappingURL=CommentBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentBody.js","sourceRoot":"","sources":["../../../../src/components/comments/CommentBody.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;CAEhC,CAAA;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAA;;iBAEpB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;WAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoB/C,CAAA;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;iBAGf,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;WAG7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;CAC/C,CAAA;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;;;;CAIxC,CAAA;AAUD,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAA;IAEvD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;SAC7B;IACH,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAA;SACV;QACD,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;IACpB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,0CACG,SAAS,CAAC,CAAC,CAAC,CACX;QACE,oBAAC,aAAa,IACZ,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAC1B;QACjB,oBAAC,aAAa;YACZ,oBAAC,eAAe,IAAC,OAAO,EAAE,QAAQ,aAA0B;YAC5D,oBAAC,aAAa,IAAC,OAAO,EAAE,UAAU,WAAsB,CAC1C,CACf,CACJ,CAAC,CAAC,CAAC,CACF;QACE,oBAAC,cAAc,IAAC,OAAO,EAAE,QAAQ;YAC/B,oBAAC,aAAa,QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAiB,CAC7C,CAChB,CACJ,CACA,CACJ,CAAA;AACH,CAAC,CAAA"}