@manuscripts/article-editor 4.7.16 → 4.7.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/StepsExchanger.js +20 -1
- package/dist/cjs/api/StepsExchanger.js.map +1 -1
- package/dist/cjs/hooks/use-create-editor.js +6 -4
- package/dist/cjs/hooks/use-create-editor.js.map +1 -1
- package/dist/es/api/StepsExchanger.js +20 -1
- package/dist/es/api/StepsExchanger.js.map +1 -1
- package/dist/es/hooks/use-create-editor.js +6 -4
- package/dist/es/hooks/use-create-editor.js.map +1 -1
- package/dist/types/api/StepsExchanger.d.ts +3 -0
- package/package.json +2 -2
|
@@ -34,8 +34,13 @@ class ObservableBoolean {
|
|
|
34
34
|
exports.ObservableBoolean = ObservableBoolean;
|
|
35
35
|
class StepsExchanger extends body_editor_1.CollabProvider {
|
|
36
36
|
constructor(projectID, manuscriptID, currentVersion, api, updateStoreVersion) {
|
|
37
|
+
if (StepsExchanger.instance) {
|
|
38
|
+
StepsExchanger.instance.start();
|
|
39
|
+
return StepsExchanger.instance;
|
|
40
|
+
}
|
|
37
41
|
super();
|
|
38
42
|
this.attempt = 0;
|
|
43
|
+
this.stopped = true;
|
|
39
44
|
this.projectID = projectID;
|
|
40
45
|
this.manuscriptID = manuscriptID;
|
|
41
46
|
this.currentVersion = currentVersion;
|
|
@@ -45,6 +50,7 @@ class StepsExchanger extends body_editor_1.CollabProvider {
|
|
|
45
50
|
this.start();
|
|
46
51
|
this.updateStoreVersion = updateStoreVersion;
|
|
47
52
|
this.stop = this.stop.bind(this);
|
|
53
|
+
StepsExchanger.instance = this;
|
|
48
54
|
}
|
|
49
55
|
async sendSteps(version, steps, clientID, flush = false) {
|
|
50
56
|
this.flushImmediately = this.debounce(async () => {
|
|
@@ -74,22 +80,35 @@ class StepsExchanger extends body_editor_1.CollabProvider {
|
|
|
74
80
|
this.currentVersion = version;
|
|
75
81
|
this.updateStoreVersion(version);
|
|
76
82
|
if (steps.length) {
|
|
77
|
-
//TODO send steps to listener
|
|
78
83
|
this.newStepsListener();
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
86
|
start() {
|
|
87
|
+
if (this.stopped === false) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
82
90
|
this.closeConnection = this.api.listenToSteps(this.projectID, this.manuscriptID, (version, steps, clientIDs) => this.receiveSteps(version, steps, clientIDs));
|
|
91
|
+
this.stopped = false;
|
|
83
92
|
}
|
|
84
93
|
stop() {
|
|
94
|
+
this.stopped = true;
|
|
85
95
|
this.closeConnection();
|
|
86
96
|
}
|
|
87
97
|
flush() {
|
|
88
98
|
this.flushImmediately && this.flushImmediately();
|
|
89
99
|
}
|
|
90
100
|
onNewSteps(listener) {
|
|
101
|
+
this.start();
|
|
91
102
|
this.newStepsListener = listener;
|
|
92
103
|
}
|
|
104
|
+
unsubscribe() {
|
|
105
|
+
// @TODO change in base class to be a function and not a prop
|
|
106
|
+
if (StepsExchanger.instance) {
|
|
107
|
+
StepsExchanger.instance.newStepsListener = () => {
|
|
108
|
+
console.warn('Listener for incoming steps is not assigned');
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
93
112
|
async stepsSince(version) {
|
|
94
113
|
const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
|
|
95
114
|
if (response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,0DAAyD;AACzD,sDAA+C;AAC/C,iEAA4C;AAG5C,uDAAoD;AAEpD,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAIhC,MAAa,iBAAiB;IAA9B;QACE,UAAK,GAAG,KAAK,CAAA;QACL,SAAI,GAAmB,EAAE,CAAA;IAUnC,CAAC;IARC,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,GAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;CACF;AAZD,8CAYC;AAED,MAAa,cAAe,SAAQ,4BAAc;
|
|
1
|
+
{"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,11 +44,13 @@ const useCreateEditor = () => {
|
|
|
44
44
|
dispatch({ isComparingMode });
|
|
45
45
|
}, [isComparingMode, dispatch]);
|
|
46
46
|
const updateVersion = (v) => dispatch({ initialDocVersion: v });
|
|
47
|
-
const stepsExchanger = (0, react_1.useMemo)(() =>
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
const stepsExchanger = (0, react_1.useMemo)(() => {
|
|
48
|
+
return isComparingMode
|
|
49
|
+
? undefined
|
|
50
|
+
: new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion);
|
|
51
|
+
},
|
|
50
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
-
[
|
|
53
|
+
[isComparingMode]);
|
|
52
54
|
(0, react_1.useEffect)(() => {
|
|
53
55
|
if (stepsExchanger) {
|
|
54
56
|
stepsExchanger.isThrottling.onChange((value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,0DAAoD;AAEpD,iCAA0C;AAC1C,uDAA2D;AAE3D,oCAAmC;AACnC,0DAAsD;AACtD,sCAAqC;AACrC,sDAA8E;AAC9E,oCAAmC;AACnC,0CAAsC;AACtC,mEAA6D;AAC7D,6EAAsE;AAE/D,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,CACJ,EACE,GAAG,EACH,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,EACD,QAAQ,EACR,QAAQ,EACT,GAAG,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,QAAQ;QACrB,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAA;IAEH,MAAM,GAAG,GAAG,IAAA,YAAM,GAAE,CAAA;IAEpB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,2CAAmB,GAAE,CAAA;IAE9D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE/B,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;IAEvE,MAAM,cAAc,GAAG,IAAA,eAAO,EAC5B,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,13 @@ export class ObservableBoolean {
|
|
|
30
30
|
}
|
|
31
31
|
export class StepsExchanger extends CollabProvider {
|
|
32
32
|
constructor(projectID, manuscriptID, currentVersion, api, updateStoreVersion) {
|
|
33
|
+
if (StepsExchanger.instance) {
|
|
34
|
+
StepsExchanger.instance.start();
|
|
35
|
+
return StepsExchanger.instance;
|
|
36
|
+
}
|
|
33
37
|
super();
|
|
34
38
|
this.attempt = 0;
|
|
39
|
+
this.stopped = true;
|
|
35
40
|
this.projectID = projectID;
|
|
36
41
|
this.manuscriptID = manuscriptID;
|
|
37
42
|
this.currentVersion = currentVersion;
|
|
@@ -41,6 +46,7 @@ export class StepsExchanger extends CollabProvider {
|
|
|
41
46
|
this.start();
|
|
42
47
|
this.updateStoreVersion = updateStoreVersion;
|
|
43
48
|
this.stop = this.stop.bind(this);
|
|
49
|
+
StepsExchanger.instance = this;
|
|
44
50
|
}
|
|
45
51
|
async sendSteps(version, steps, clientID, flush = false) {
|
|
46
52
|
this.flushImmediately = this.debounce(async () => {
|
|
@@ -70,22 +76,35 @@ export class StepsExchanger extends CollabProvider {
|
|
|
70
76
|
this.currentVersion = version;
|
|
71
77
|
this.updateStoreVersion(version);
|
|
72
78
|
if (steps.length) {
|
|
73
|
-
//TODO send steps to listener
|
|
74
79
|
this.newStepsListener();
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
start() {
|
|
83
|
+
if (this.stopped === false) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
78
86
|
this.closeConnection = this.api.listenToSteps(this.projectID, this.manuscriptID, (version, steps, clientIDs) => this.receiveSteps(version, steps, clientIDs));
|
|
87
|
+
this.stopped = false;
|
|
79
88
|
}
|
|
80
89
|
stop() {
|
|
90
|
+
this.stopped = true;
|
|
81
91
|
this.closeConnection();
|
|
82
92
|
}
|
|
83
93
|
flush() {
|
|
84
94
|
this.flushImmediately && this.flushImmediately();
|
|
85
95
|
}
|
|
86
96
|
onNewSteps(listener) {
|
|
97
|
+
this.start();
|
|
87
98
|
this.newStepsListener = listener;
|
|
88
99
|
}
|
|
100
|
+
unsubscribe() {
|
|
101
|
+
// @TODO change in base class to be a function and not a prop
|
|
102
|
+
if (StepsExchanger.instance) {
|
|
103
|
+
StepsExchanger.instance.newStepsListener = () => {
|
|
104
|
+
console.warn('Listener for incoming steps is not assigned');
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
89
108
|
async stepsSince(version) {
|
|
90
109
|
const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
|
|
91
110
|
if (response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAIhC,MAAM,OAAO,iBAAiB;IAA9B;QACE,UAAK,GAAG,KAAK,CAAA;QACL,SAAI,GAAmB,EAAE,CAAA;IAUnC,CAAC;IARC,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,GAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,cAAc;
|
|
1
|
+
{"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAIhC,MAAM,OAAO,iBAAiB;IAA9B;QACE,UAAK,GAAG,KAAK,CAAA;QACL,SAAI,GAAmB,EAAE,CAAA;IAUnC,CAAC;IARC,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,GAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,cAAc;IAchD,YACE,SAAiB,EACjB,YAAoB,EACpB,cAAsB,EACtB,GAAQ,EACR,kBAA6C;QAE7C,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC5B,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;YAC/B,OAAO,cAAc,CAAC,QAAQ,CAAA;QAChC,CAAC;QAED,KAAK,EAAE,CAAA;QAdT,YAAO,GAAG,CAAC,CAAA;QA2EX,YAAO,GAAG,IAAI,CAAA;QA5DZ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,EAAE,CAAA;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEhC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAe,EACf,KAAa,EACb,QAAgB,EAChB,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CACnC,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB;gBACE,KAAK,EAAE,KAAK;gBACZ,OAAO;gBACP,QAAQ;aACT,CACF,CAAA;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAA;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC;iBAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;YACvD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC,EACD,mBAAmB,EACnB,KAAK,EACL,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC,CAAA;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,KAAgB,EAAE,SAAmB;QACvE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAID,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAC/C,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC;IAED,UAAU,CAAC,QAA4C;QACrD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAClC,CAAC;IAED,WAAW;QACT,6DAA6D;QAC7D,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC5B,cAAc,CAAC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,EAAE;gBAC9C,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;YAC7D,CAAC,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,OAAO,CACR,CAAA;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1D,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAA;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -41,11 +41,13 @@ export const useCreateEditor = () => {
|
|
|
41
41
|
dispatch({ isComparingMode });
|
|
42
42
|
}, [isComparingMode, dispatch]);
|
|
43
43
|
const updateVersion = (v) => dispatch({ initialDocVersion: v });
|
|
44
|
-
const stepsExchanger = useMemo(() =>
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const stepsExchanger = useMemo(() => {
|
|
45
|
+
return isComparingMode
|
|
46
|
+
? undefined
|
|
47
|
+
: new StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion);
|
|
48
|
+
},
|
|
47
49
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
-
[
|
|
50
|
+
[isComparingMode]);
|
|
49
51
|
useEffect(() => {
|
|
50
52
|
if (stepsExchanger) {
|
|
51
53
|
stepsExchanger.isThrottling.onChange((value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,CACJ,EACE,GAAG,EACH,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,EACD,QAAQ,EACR,QAAQ,EACT,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,QAAQ;QACrB,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAA;IAEH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IAEpB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE/B,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;IAEvE,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export declare class ObservableBoolean {
|
|
|
21
21
|
onChange(sub: Subscription): void;
|
|
22
22
|
}
|
|
23
23
|
export declare class StepsExchanger extends CollabProvider {
|
|
24
|
+
private static instance;
|
|
24
25
|
projectID: string;
|
|
25
26
|
manuscriptID: string;
|
|
26
27
|
api: Api;
|
|
@@ -33,10 +34,12 @@ export declare class StepsExchanger extends CollabProvider {
|
|
|
33
34
|
constructor(projectID: string, manuscriptID: string, currentVersion: number, api: Api, updateStoreVersion: (version: number) => void);
|
|
34
35
|
sendSteps(version: number, steps: Step[], clientID: string, flush?: boolean): Promise<void>;
|
|
35
36
|
receiveSteps(version: number, steps: unknown[], clientIDs: number[]): Promise<void>;
|
|
37
|
+
stopped: boolean;
|
|
36
38
|
start(): void;
|
|
37
39
|
stop(): void;
|
|
38
40
|
flush(): void;
|
|
39
41
|
onNewSteps(listener: CollabProvider['newStepsListener']): void;
|
|
42
|
+
unsubscribe(): void;
|
|
40
43
|
stepsSince(version: number): Promise<{
|
|
41
44
|
steps: Step[];
|
|
42
45
|
clientIDs: number[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/article-editor",
|
|
3
|
-
"version": "4.7.
|
|
3
|
+
"version": "4.7.17",
|
|
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",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@fontsource/pt-sans": "5.2.5",
|
|
33
33
|
"@fontsource/pt-serif": "5.2.5",
|
|
34
34
|
"@headlessui/react": "2.2.3",
|
|
35
|
-
"@manuscripts/body-editor": "3.7.
|
|
35
|
+
"@manuscripts/body-editor": "3.7.14",
|
|
36
36
|
"@manuscripts/json-schema": "2.2.12",
|
|
37
37
|
"@manuscripts/style-guide": "3.3.9",
|
|
38
38
|
"@manuscripts/track-changes-plugin": "2.2.1",
|