@manuscripts/article-editor 4.1.2-LEAN-4616.0 → 4.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAMc;AACd,0EAAsC;AAEtC,mCAA2C;AAC3C,+CAA2C;AAC3C,4CAAwC;AACxC,4GAAmF;AACnF,uFAAmF;AACnF,mCAMgB;AAuBhB,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IAClD,MAAM,SAAS,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IACxC,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IAEjD,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,SAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,OAAM;SACP;QACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,mBAAW,CAAC;YAC5B,cAAc;YACd,SAAS;YACT,YAAY;YACZ,KAAK;YACL,gBAAgB;SACjB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAA;QACpC,IAAA,mBAAW,EAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,QAAQ,CAAC,CAAC,CAAC,CAAA;QACb,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,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE;YACrD,OAAM;SACP;QACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAA;QACjC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAc,CAAC;SACnD,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,gBAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,8BAAC,4BAAoB,IAAC,KAAK,EAAE,KAAK;YAChC,8BAAC,WAAI;gBACH,8BAAC,iCAAuB,OAAG,CACtB,CACc,CACH,CACvB,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAkB;QACjB,8BAAC,6CAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAAmE;AACnE,0EAAsC;AAEtC,mCAA2C;AAC3C,+CAA2C;AAC3C,4CAAwC;AACxC,4GAAmF;AACnF,uFAAmF;AAEnF,mCAMgB;AAYhB,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IAClD,MAAM,SAAS,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IACxC,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IAEjD,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,SAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,OAAM;SACP;QACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,mBAAW,CAAC;YAC5B,cAAc;YACd,SAAS;YACT,YAAY;YACZ,KAAK;YACL,gBAAgB;SACjB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAA;QACpC,IAAA,mBAAW,EAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,QAAQ,CAAC,CAAC,CAAC,CAAA;QACb,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,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE;YACrD,OAAM;SACP;QACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAA;QACjC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAc,CAAC;SACnD,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,gBAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,8BAAC,4BAAoB,IAAC,KAAK,EAAE,KAAK;YAChC,8BAAC,WAAI;gBACH,8BAAC,iCAAuB,OAAG,CACtB,CACc,CACH,CACvB,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAkB;QACjB,8BAAC,6CAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /*!
3
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
+ *
5
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
+ *
7
+ * The Original Code is manuscripts-frontend.
8
+ *
9
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
+ *
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
12
+ */
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.useManuscriptsState = exports.useManuscriptsStateObserver = exports.ManuscriptsStateObserverContext = void 0;
18
+ const react_1 = require("react");
19
+ const deeper_equal_1 = __importDefault(require("../../lib/deeper-equal"));
20
+ exports.ManuscriptsStateObserverContext = (0, react_1.createContext)(undefined);
21
+ const useManuscriptsStateObserver = () => {
22
+ const stateRef = (0, react_1.useRef)();
23
+ return (0, react_1.useMemo)(() => newObserver(stateRef), []);
24
+ };
25
+ exports.useManuscriptsStateObserver = useManuscriptsStateObserver;
26
+ /**
27
+ * Get the value of the state of the editor.
28
+ * The selector param is memoized and the flush param is used to force reevaluation.
29
+ */
30
+ const useManuscriptsState = (selector, flush = false) => {
31
+ const [value, setValue] = (0, react_1.useState)();
32
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ selector = (0, react_1.useCallback)(selector, [flush]);
34
+ const observer = (0, react_1.useContext)(exports.ManuscriptsStateObserverContext);
35
+ (0, react_1.useEffect)(() => {
36
+ if (!observer) {
37
+ return;
38
+ }
39
+ const sub = (state) => {
40
+ if (state) {
41
+ const $new = selector(state);
42
+ setValue((old) => ((0, deeper_equal_1.default)(old, $new) ? old : $new));
43
+ }
44
+ };
45
+ observer.subscribe(sub);
46
+ return () => {
47
+ observer.unsubscribe(sub);
48
+ };
49
+ }, [observer, selector]);
50
+ return [value];
51
+ };
52
+ exports.useManuscriptsState = useManuscriptsState;
53
+ const newObserver = (stateRef) => {
54
+ const subs = new Set();
55
+ const subscribe = (sub) => {
56
+ subs.add(sub);
57
+ };
58
+ const unsubscribe = (sub) => {
59
+ subs.delete(sub);
60
+ };
61
+ const onUpdate = (state) => {
62
+ subs.forEach((sub) => sub(state));
63
+ };
64
+ return {
65
+ state: stateRef,
66
+ onUpdate,
67
+ subscribe,
68
+ unsubscribe,
69
+ };
70
+ };
71
+ //# sourceMappingURL=use-manuscripts-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-manuscripts-state.js","sourceRoot":"","sources":["../../../../src/hooks/external/use-manuscripts-state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,iCASc;AAEd,0EAA4C;AAwB/B,QAAA,+BAA+B,GAAG,IAAA,qBAAa,EAE1D,SAAS,CAAC,CAAA;AAEL,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,MAAM,QAAQ,GAAG,IAAA,cAAM,GAAoB,CAAA;IAC3C,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA;AAHY,QAAA,2BAA2B,+BAGvC;AAED;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CACjC,QAAyB,EACzB,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAK,CAAA;IACvC,uDAAuD;IACvD,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,IAAA,kBAAU,EAAC,uCAA+B,CAAC,CAAA;IAC5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QACD,MAAM,GAAG,GAAG,CAAC,KAAY,EAAE,EAAE;YAC3B,IAAI,KAAK,EAAE;gBACT,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAC5B,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAA,sBAAO,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;aACrD;QACH,CAAC,CAAA;QACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxB,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA;AAxBY,QAAA,mBAAmB,uBAwB/B;AAED,MAAM,WAAW,GAAG,CAClB,QAA6B,EACH,EAAE;IAC5B,MAAM,IAAI,GAAsC,IAAI,GAAG,EAAE,CAAA;IACzD,MAAM,SAAS,GAAG,CAAC,GAAiC,EAAE,EAAE;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACf,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,CAAC,GAAiC,EAAE,EAAE;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,QAAQ;QACR,SAAS;QACT,WAAW;KACZ,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-exec-cmd.js","sourceRoot":"","sources":["../../../src/hooks/use-exec-cmd.tsx"],"names":[],"mappings":";;AAcA,oCAAsC;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,MAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAA;IAE9B,OAAO,CAAC,GAAY,EAAE,QAAqB,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK;YAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ;SACjC,CAAA;QACD,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"use-exec-cmd.js","sourceRoot":"","sources":["../../../src/hooks/use-exec-cmd.ts"],"names":[],"mappings":";;AAcA,oCAAsC;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,MAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAA;IAE9B,OAAO,CAAC,GAAY,EAAE,QAAqB,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK;YAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ;SACjC,CAAA;QACD,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -33,6 +33,9 @@ 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
+ };
36
39
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
40
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
41
  };
@@ -48,6 +51,7 @@ var roles_1 = require("./lib/roles");
48
51
  Object.defineProperty(exports, "ProjectRole", { enumerable: true, get: function () { return roles_1.ProjectRole; } });
49
52
  var roles_2 = require("./lib/roles");
50
53
  Object.defineProperty(exports, "getUserRole", { enumerable: true, get: function () { return roles_2.getUserRole; } });
54
+ __exportStar(require("./hooks/external/use-manuscripts-state"), exports);
51
55
  const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, }) => {
52
56
  (0, config_1.setConfig)(config);
53
57
  return (react_1.default.createElement(react_1.default.Fragment, null,
@@ -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;AASpB,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,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,4 +1,4 @@
1
- import React, { useEffect, useMemo, useRef, useState, } from 'react';
1
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { Api, ApiContext } from './api/Api';
4
4
  import { ApiSource } from './api/ApiSource';
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
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 { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'react';
13
+ import isEqual from '../../lib/deeper-equal';
14
+ export const ManuscriptsStateObserverContext = createContext(undefined);
15
+ export const useManuscriptsStateObserver = () => {
16
+ const stateRef = useRef();
17
+ return useMemo(() => newObserver(stateRef), []);
18
+ };
19
+ /**
20
+ * Get the value of the state of the editor.
21
+ * The selector param is memoized and the flush param is used to force reevaluation.
22
+ */
23
+ export const useManuscriptsState = (selector, flush = false) => {
24
+ const [value, setValue] = useState();
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ selector = useCallback(selector, [flush]);
27
+ const observer = useContext(ManuscriptsStateObserverContext);
28
+ useEffect(() => {
29
+ if (!observer) {
30
+ return;
31
+ }
32
+ const sub = (state) => {
33
+ if (state) {
34
+ const $new = selector(state);
35
+ setValue((old) => (isEqual(old, $new) ? old : $new));
36
+ }
37
+ };
38
+ observer.subscribe(sub);
39
+ return () => {
40
+ observer.unsubscribe(sub);
41
+ };
42
+ }, [observer, selector]);
43
+ return [value];
44
+ };
45
+ const newObserver = (stateRef) => {
46
+ const subs = new Set();
47
+ const subscribe = (sub) => {
48
+ subs.add(sub);
49
+ };
50
+ const unsubscribe = (sub) => {
51
+ subs.delete(sub);
52
+ };
53
+ const onUpdate = (state) => {
54
+ subs.forEach((sub) => sub(state));
55
+ };
56
+ return {
57
+ state: stateRef,
58
+ onUpdate,
59
+ subscribe,
60
+ unsubscribe,
61
+ };
62
+ };
63
+ //# sourceMappingURL=use-manuscripts-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-manuscripts-state.js","sourceRoot":"","sources":["../../../../src/hooks/external/use-manuscripts-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,aAAa,EAEb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAA;AAEd,OAAO,OAAO,MAAM,wBAAwB,CAAA;AAwB5C,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAE1D,SAAS,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,EAAoB,CAAA;IAC3C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAyB,EACzB,KAAK,GAAG,KAAK,EACb,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAK,CAAA;IACvC,uDAAuD;IACvD,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAA;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QACD,MAAM,GAAG,GAAG,CAAC,KAAY,EAAE,EAAE;YAC3B,IAAI,KAAK,EAAE;gBACT,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAC5B,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;aACrD;QACH,CAAC,CAAA;QACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IACxB,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,QAA6B,EACH,EAAE;IAC5B,MAAM,IAAI,GAAsC,IAAI,GAAG,EAAE,CAAA;IACzD,MAAM,SAAS,GAAG,CAAC,GAAiC,EAAE,EAAE;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACf,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,CAAC,GAAiC,EAAE,EAAE;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,QAAQ;QACR,SAAS;QACT,WAAW;KACZ,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-exec-cmd.js","sourceRoot":"","sources":["../../../src/hooks/use-exec-cmd.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,OAAO,CAAC,GAAY,EAAE,QAAqB,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK;YAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ;SACjC,CAAA;QACD,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"use-exec-cmd.js","sourceRoot":"","sources":["../../../src/hooks/use-exec-cmd.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,OAAO,CAAC,GAAY,EAAE,QAAqB,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK;YAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ;SACjC,CAAA;QACD,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
package/dist/es/index.js CHANGED
@@ -17,6 +17,7 @@ import Main from './Main';
17
17
  import { ThemeProvider } from './theme/ThemeProvider';
18
18
  export { ProjectRole } from './lib/roles';
19
19
  export { getUserRole } from './lib/roles';
20
+ export * from './hooks/external/use-manuscripts-state';
20
21
  const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, getAuthToken, config, observer, }) => {
21
22
  setConfig(config);
22
23
  return (React.createElement(React.Fragment, null,
@@ -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;AASzC,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,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"}
@@ -10,17 +10,8 @@
10
10
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
11
  */
12
12
  import { FileAttachment, FileManagement } from '@manuscripts/body-editor';
13
- import React, { MutableRefObject } from 'react';
14
- import { state } from './store';
15
- export type AppState = {
16
- get: () => state | undefined;
17
- update: (state: Partial<state>) => void;
18
- };
19
- export type AppStateRef = MutableRefObject<AppState | undefined>;
20
- export type AppStateObserver = {
21
- state: AppStateRef;
22
- onUpdate: (state: state) => void;
23
- };
13
+ import React from 'react';
14
+ import { ManuscriptsStateObserver } from './hooks/external/use-manuscripts-state';
24
15
  export interface EditorAppProps {
25
16
  fileManagement: FileManagement;
26
17
  files: FileAttachment[];
@@ -28,7 +19,7 @@ export interface EditorAppProps {
28
19
  projectID: string;
29
20
  permittedActions: string[];
30
21
  getAuthToken: () => Promise<string | undefined>;
31
- observer?: AppStateObserver;
22
+ observer?: ManuscriptsStateObserver;
32
23
  }
33
24
  declare const EditorApp: React.FC<EditorAppProps>;
34
25
  export default EditorApp;
@@ -0,0 +1,36 @@
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 { MutableRefObject } from 'react';
13
+ import { state } from '../../store';
14
+ /**
15
+ * These hooks are not used within the editor, but exposed to the parent app
16
+ * to allow it to observe the state of the editor.
17
+ */
18
+ export type ManuscriptsState = {
19
+ get: () => state | undefined;
20
+ update: (state: Partial<state>) => void;
21
+ };
22
+ export type ManuscriptsStateRef = MutableRefObject<ManuscriptsState | undefined>;
23
+ export type ManuscriptsStateSubscription = (state: state) => void;
24
+ export type ManuscriptsStateObserver = {
25
+ state: ManuscriptsStateRef;
26
+ onUpdate: (state: state) => void;
27
+ subscribe: (sub: ManuscriptsStateSubscription) => void;
28
+ unsubscribe: (sub: ManuscriptsStateSubscription) => void;
29
+ };
30
+ export declare const ManuscriptsStateObserverContext: import("react").Context<ManuscriptsStateObserver | undefined>;
31
+ export declare const useManuscriptsStateObserver: () => ManuscriptsStateObserver;
32
+ /**
33
+ * Get the value of the state of the editor.
34
+ * The selector param is memoized and the flush param is used to force reevaluation.
35
+ */
36
+ export declare const useManuscriptsState: <T>(selector: (s: state) => T, flush?: boolean) => (T | undefined)[];
@@ -16,7 +16,7 @@ import { EditorAppProps } from './EditorApp';
16
16
  export { ProjectRole } from './lib/roles';
17
17
  export type { state } from './store';
18
18
  export { getUserRole } from './lib/roles';
19
- export type { AppState, AppStateRef, EditorAppProps, AppStateObserver, } from './EditorApp';
19
+ export * from './hooks/external/use-manuscripts-state';
20
20
  export type { ManuscriptsEditorConfig } from './config';
21
21
  export declare const ManuscriptEditorApp: React.NamedExoticComponent<EditorAppProps & {
22
22
  config: ManuscriptsEditorConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/article-editor",
3
- "version": "4.1.2-LEAN-4616.0",
3
+ "version": "4.2.0",
4
4
  "license": "CPAL-1.0",
5
5
  "description": "React components for editing and viewing manuscripts",
6
6
  "repository": "github:Atypon-OpenSource/manuscripts-article-editor",
@@ -30,11 +30,11 @@
30
30
  "@fontsource/pt-sans": "5.2.5",
31
31
  "@fontsource/pt-serif": "5.2.5",
32
32
  "@headlessui/react": "2.2.3",
33
- "@manuscripts/body-editor": "3.1.2-LEAN-4616.0",
33
+ "@manuscripts/body-editor": "3.2.0",
34
34
  "@manuscripts/json-schema": "2.2.12",
35
35
  "@manuscripts/style-guide": "3.1.0",
36
36
  "@manuscripts/track-changes-plugin": "2.0.1",
37
- "@manuscripts/transform": "4.1.1",
37
+ "@manuscripts/transform": "4.2.0",
38
38
  "@popperjs/core": "2.11.8",
39
39
  "date-fns": "4.1.0",
40
40
  "dompurify": "3.2.5",