@manuscripts/article-editor 3.1.48-LEAN-3970-v0.0 → 3.1.48-datasource-cleanup.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.
- package/dist/cjs/EditorApp.js +15 -7
- package/dist/cjs/EditorApp.js.map +1 -1
- package/dist/cjs/api/Api.js +137 -0
- package/dist/cjs/api/Api.js.map +1 -0
- package/dist/cjs/{postgres-data/PsSource.js → api/ApiSource.js} +17 -32
- package/dist/cjs/api/ApiSource.js.map +1 -0
- package/dist/cjs/api/StepsExchanger.js +95 -0
- package/dist/cjs/api/StepsExchanger.js.map +1 -0
- package/dist/cjs/{postgres-data → api}/buildData.js +29 -7
- package/dist/cjs/api/buildData.js.map +1 -0
- package/dist/cjs/{postgres-data → api}/buildUtilities.js +5 -6
- package/dist/cjs/api/buildUtilities.js.map +1 -0
- package/dist/cjs/api/savingUtilities.js.map +1 -0
- package/dist/{es/lib/api/index.js → cjs/api/types.js} +4 -3
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/components/inspector/SnapshotsDropdown.js +33 -57
- package/dist/cjs/components/inspector/SnapshotsDropdown.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js +0 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/cjs/hooks/use-connect-editor.js +1 -1
- package/dist/cjs/hooks/use-connect-editor.js.map +1 -1
- package/dist/cjs/hooks/use-create-editor.js +3 -14
- package/dist/cjs/hooks/use-create-editor.js.map +1 -1
- package/dist/cjs/hooks/use-handle-snapshot.js +2 -2
- package/dist/cjs/hooks/use-handle-snapshot.js.map +1 -1
- package/dist/cjs/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +7 -8
- package/dist/cjs/lib/doc.js.map +1 -0
- package/dist/cjs/store/DataSourceStrategy.js +3 -11
- package/dist/cjs/store/DataSourceStrategy.js.map +1 -1
- package/dist/cjs/store/Store.js.map +1 -1
- package/dist/es/EditorApp.js +15 -7
- package/dist/es/EditorApp.js.map +1 -1
- package/dist/es/api/Api.js +131 -0
- package/dist/es/api/Api.js.map +1 -0
- package/dist/es/{postgres-data/PsSource.js → api/ApiSource.js} +15 -31
- package/dist/es/api/ApiSource.js.map +1 -0
- package/dist/es/api/StepsExchanger.js +90 -0
- package/dist/es/api/StepsExchanger.js.map +1 -0
- package/dist/es/{postgres-data → api}/buildData.js +29 -7
- package/dist/es/api/buildData.js.map +1 -0
- package/dist/es/{postgres-data → api}/buildUtilities.js +5 -6
- package/dist/es/api/buildUtilities.js.map +1 -0
- package/dist/es/api/savingUtilities.js.map +1 -0
- package/dist/{types/lib/api/index.d.ts → es/api/types.js} +3 -2
- package/dist/es/api/types.js.map +1 -0
- package/dist/es/components/inspector/SnapshotsDropdown.js +35 -59
- package/dist/es/components/inspector/SnapshotsDropdown.js.map +1 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js +0 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/es/hooks/use-connect-editor.js +1 -1
- package/dist/es/hooks/use-connect-editor.js.map +1 -1
- package/dist/es/hooks/use-create-editor.js +3 -14
- package/dist/es/hooks/use-create-editor.js.map +1 -1
- package/dist/es/hooks/use-handle-snapshot.js +1 -1
- package/dist/es/hooks/use-handle-snapshot.js.map +1 -1
- package/dist/es/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +6 -6
- package/dist/es/lib/doc.js.map +1 -0
- package/dist/es/store/DataSourceStrategy.js +3 -11
- package/dist/es/store/DataSourceStrategy.js.map +1 -1
- package/dist/es/store/Store.js.map +1 -1
- package/dist/types/{postgres-data → api}/Api.d.ts +13 -5
- package/dist/types/{postgres-data/PsSource.d.ts → api/ApiSource.d.ts} +3 -4
- package/dist/types/{quarterback/QuarterbackStepsExchanger.d.ts → api/StepsExchanger.d.ts} +18 -21
- package/dist/types/api/buildData.d.ts +3 -0
- package/dist/types/{postgres-data → api}/buildUtilities.d.ts +1 -1
- package/dist/types/{quarterback/api/loadDoc.d.ts → api/types.d.ts} +23 -6
- package/dist/types/lib/doc.d.ts +17 -0
- package/dist/types/store/DataSourceStrategy.d.ts +2 -5
- package/dist/types/store/Store.d.ts +4 -5
- package/package.json +2 -3
- package/dist/cjs/lib/api/collaboration.js +0 -25
- package/dist/cjs/lib/api/collaboration.js.map +0 -1
- package/dist/cjs/lib/api/index.js +0 -29
- package/dist/cjs/lib/api/index.js.map +0 -1
- package/dist/cjs/postgres-data/Api.js +0 -83
- package/dist/cjs/postgres-data/Api.js.map +0 -1
- package/dist/cjs/postgres-data/PsSource.js.map +0 -1
- package/dist/cjs/postgres-data/buildData.js.map +0 -1
- package/dist/cjs/postgres-data/buildUtilities.js.map +0 -1
- package/dist/cjs/postgres-data/savingUtilities.js.map +0 -1
- package/dist/cjs/quarterback/QuarterbackStepsExchanger.js +0 -145
- package/dist/cjs/quarterback/QuarterbackStepsExchanger.js.map +0 -1
- package/dist/cjs/quarterback/api/document.js +0 -43
- package/dist/cjs/quarterback/api/document.js.map +0 -1
- package/dist/cjs/quarterback/api/loadDoc.js +0 -108
- package/dist/cjs/quarterback/api/loadDoc.js.map +0 -1
- package/dist/cjs/quarterback/api/methods.js +0 -147
- package/dist/cjs/quarterback/api/methods.js.map +0 -1
- package/dist/cjs/quarterback/getDocWithoutTrackContent.js.map +0 -1
- package/dist/cjs/quarterback/types.js +0 -3
- package/dist/cjs/quarterback/types.js.map +0 -1
- package/dist/es/lib/api/collaboration.js +0 -18
- package/dist/es/lib/api/collaboration.js.map +0 -1
- package/dist/es/lib/api/index.js.map +0 -1
- package/dist/es/postgres-data/Api.js +0 -77
- package/dist/es/postgres-data/Api.js.map +0 -1
- package/dist/es/postgres-data/PsSource.js.map +0 -1
- package/dist/es/postgres-data/buildData.js.map +0 -1
- package/dist/es/postgres-data/buildUtilities.js.map +0 -1
- package/dist/es/postgres-data/savingUtilities.js.map +0 -1
- package/dist/es/quarterback/QuarterbackStepsExchanger.js +0 -118
- package/dist/es/quarterback/QuarterbackStepsExchanger.js.map +0 -1
- package/dist/es/quarterback/api/document.js +0 -32
- package/dist/es/quarterback/api/document.js.map +0 -1
- package/dist/es/quarterback/api/loadDoc.js +0 -81
- package/dist/es/quarterback/api/loadDoc.js.map +0 -1
- package/dist/es/quarterback/api/methods.js +0 -137
- package/dist/es/quarterback/api/methods.js.map +0 -1
- package/dist/es/quarterback/getDocWithoutTrackContent.js.map +0 -1
- package/dist/es/quarterback/types.js +0 -2
- package/dist/es/quarterback/types.js.map +0 -1
- package/dist/types/lib/api/collaboration.d.ts +0 -17
- package/dist/types/postgres-data/buildData.d.ts +0 -3
- package/dist/types/quarterback/api/document.d.ts +0 -20
- package/dist/types/quarterback/api/methods.d.ts +0 -38
- package/dist/types/quarterback/getDocWithoutTrackContent.d.ts +0 -3
- package/dist/types/quarterback/types.d.ts +0 -74
- /package/dist/cjs/{postgres-data → api}/savingUtilities.js +0 -0
- /package/dist/es/{postgres-data → api}/savingUtilities.js +0 -0
- /package/dist/types/{postgres-data → api}/savingUtilities.d.ts +0 -0
@@ -9,39 +9,21 @@
|
|
9
9
|
*
|
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
|
-
import {
|
12
|
+
import { getVersion as getTransformVersion } from '@manuscripts/transform';
|
13
13
|
import Api from './Api';
|
14
14
|
import { buildData } from './buildData';
|
15
15
|
import { buildUtilities } from './buildUtilities';
|
16
|
-
export
|
17
|
-
constructor(
|
16
|
+
export class ApiSource {
|
17
|
+
constructor(authToken) {
|
18
18
|
this.updateState = (state) => {
|
19
19
|
console.error(new Error('Store not yet mounted').stack);
|
20
20
|
};
|
21
21
|
this.build = async (state, next, setState) => {
|
22
|
-
if (state.userID && state.authToken) {
|
23
|
-
this.api.setToken(state.authToken);
|
24
|
-
}
|
25
22
|
const projectID = state.projectID;
|
26
23
|
const manuscriptID = state.manuscriptID;
|
27
|
-
if (
|
28
|
-
|
29
|
-
|
30
|
-
this.data = {
|
31
|
-
...this.data,
|
32
|
-
doc: res.doc,
|
33
|
-
initialDocVersion: res.version,
|
34
|
-
snapshots: res.snapshots,
|
35
|
-
snapshotsMap: new Map(),
|
36
|
-
};
|
37
|
-
}
|
38
|
-
}
|
39
|
-
if (manuscriptID && projectID && this.data.doc) {
|
40
|
-
const data = await buildData(projectID, manuscriptID, this.data.doc, this.api);
|
41
|
-
this.data = {
|
42
|
-
...this.data,
|
43
|
-
...data,
|
44
|
-
};
|
24
|
+
if (manuscriptID && projectID) {
|
25
|
+
await this.checkTransformVersion();
|
26
|
+
this.data = await buildData(projectID, manuscriptID, setState, this.api);
|
45
27
|
this.utilities = buildUtilities(projectID, manuscriptID, () => this.data, setState, this.api);
|
46
28
|
}
|
47
29
|
next({ ...state, ...this.data, ...this.utilities });
|
@@ -52,12 +34,14 @@ export default class PsSource {
|
|
52
34
|
this.updateStore = (setState) => {
|
53
35
|
this.updateState = setState;
|
54
36
|
};
|
55
|
-
this.
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
37
|
+
this.checkTransformVersion = async () => {
|
38
|
+
const fe = getTransformVersion();
|
39
|
+
const api = await this.api.getTransformVersion();
|
40
|
+
if (fe !== api) {
|
41
|
+
console.warn(`manuscripts-transform version mismatch. FE: ${fe}, api: ${api}`);
|
42
|
+
}
|
43
|
+
};
|
44
|
+
this.api = new Api(authToken);
|
61
45
|
}
|
62
46
|
}
|
63
|
-
//# sourceMappingURL=
|
47
|
+
//# sourceMappingURL=ApiSource.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ApiSource.js","sourceRoot":"","sources":["../../../src/api/ApiSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAI1E,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,OAAO,SAAS;IAKpB,YAAY,SAAiB;QAI7B,gBAAW,GAAgB,CAAC,KAAY,EAAE,EAAE;YAC1C,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,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACvC,IAAI,YAAY,IAAI,SAAS,EAAE;gBAC7B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;gBAClC,IAAI,CAAC,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBACxE,IAAI,CAAC,SAAS,GAAG,cAAc,CAC7B,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;QACD,0BAAqB,GAAG,KAAK,IAAI,EAAE;YACjC,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAA;YAChD,IAAI,EAAE,KAAK,GAAG,EAAE;gBACd,OAAO,CAAC,IAAI,CACV,+CAA+C,EAAE,UAAU,GAAG,EAAE,CACjE,CAAA;aACF;QACH,CAAC,CAAA;QArCC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/B,CAAC;CAqCF"}
|
@@ -0,0 +1,90 @@
|
|
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) 2022 Atypon Systems LLC. All Rights Reserved.
|
11
|
+
*/
|
12
|
+
import { CollabProvider } from '@manuscripts/body-editor';
|
13
|
+
import { schema } from '@manuscripts/transform';
|
14
|
+
import { Step } from 'prosemirror-transform';
|
15
|
+
import { saveWithDebounce } from './savingUtilities';
|
16
|
+
const MAX_ATTEMPTS = 20;
|
17
|
+
const THROTTLING_INTERVAL = 1200;
|
18
|
+
export class ObservableBoolean {
|
19
|
+
constructor() {
|
20
|
+
this.value = false;
|
21
|
+
this.subs = [];
|
22
|
+
}
|
23
|
+
setValue(value) {
|
24
|
+
this.value = value;
|
25
|
+
this.subs.forEach((s) => s(value));
|
26
|
+
}
|
27
|
+
onChange(sub) {
|
28
|
+
this.subs.push(sub);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
export class StepsExchanger extends CollabProvider {
|
32
|
+
constructor(projectID, manuscriptID, currentVersion, api) {
|
33
|
+
super();
|
34
|
+
this.attempt = 0;
|
35
|
+
this.projectID = projectID;
|
36
|
+
this.manuscriptID = manuscriptID;
|
37
|
+
this.currentVersion = currentVersion;
|
38
|
+
this.isThrottling = new ObservableBoolean();
|
39
|
+
this.debounce = saveWithDebounce();
|
40
|
+
this.api = api;
|
41
|
+
}
|
42
|
+
async sendSteps(version, steps, clientID, flush = false) {
|
43
|
+
this.currentVersion = version;
|
44
|
+
this.flushImmediately = this.debounce(async () => {
|
45
|
+
const response = await this.api.sendSteps(this.projectID, this.manuscriptID, {
|
46
|
+
steps: steps,
|
47
|
+
version,
|
48
|
+
clientID,
|
49
|
+
});
|
50
|
+
if (response.error === 'conflict' && this.attempt < MAX_ATTEMPTS) {
|
51
|
+
console.warn('Retrying');
|
52
|
+
this.newStepsListener();
|
53
|
+
this.attempt++;
|
54
|
+
}
|
55
|
+
else if (response.error) {
|
56
|
+
console.error('Failed to send steps', response.error);
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
this.attempt = 0;
|
60
|
+
}
|
61
|
+
}, THROTTLING_INTERVAL, flush, () => this.isThrottling.setValue(false));
|
62
|
+
if (!flush) {
|
63
|
+
this.isThrottling.setValue(true);
|
64
|
+
}
|
65
|
+
return Promise.resolve();
|
66
|
+
}
|
67
|
+
async receiveSteps(version, steps, clientIDs) {
|
68
|
+
if (steps.length) {
|
69
|
+
//TODO send steps to listener
|
70
|
+
this.newStepsListener();
|
71
|
+
}
|
72
|
+
}
|
73
|
+
flush() {
|
74
|
+
this.flushImmediately && this.flushImmediately();
|
75
|
+
}
|
76
|
+
onNewSteps(listener) {
|
77
|
+
this.newStepsListener = listener;
|
78
|
+
}
|
79
|
+
async stepsSince(version) {
|
80
|
+
const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
|
81
|
+
if (response) {
|
82
|
+
return {
|
83
|
+
steps: response.steps.map((s) => Step.fromJSON(schema, s)),
|
84
|
+
clientIDs: response.clientIDs,
|
85
|
+
version: response.version,
|
86
|
+
};
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
//# sourceMappingURL=StepsExchanger.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
|
@@ -10,8 +10,9 @@
|
|
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 { ObjectTypes, } from '@manuscripts/json-schema';
|
13
|
+
import { schema } from '@manuscripts/transform';
|
13
14
|
import { getUserRole } from '../lib/roles';
|
14
|
-
import {
|
15
|
+
import { StepsExchanger } from './StepsExchanger';
|
15
16
|
const getIdModels = async (api, projectID, manuscriptID) => {
|
16
17
|
const models = await api.getManuscript(projectID, manuscriptID);
|
17
18
|
let project;
|
@@ -29,13 +30,24 @@ const getIdModels = async (api, projectID, manuscriptID) => {
|
|
29
30
|
}
|
30
31
|
return [project, manuscript];
|
31
32
|
};
|
32
|
-
const
|
33
|
+
const getDocumentData = async (projectID, manuscriptID, api) => {
|
34
|
+
const response = await api.getDocument(projectID, manuscriptID);
|
35
|
+
if (!response) {
|
36
|
+
throw new Error('Document not found');
|
37
|
+
}
|
38
|
+
return {
|
39
|
+
doc: schema.nodeFromJSON(response.doc),
|
40
|
+
version: response.version,
|
41
|
+
snapshots: response.snapshots,
|
42
|
+
};
|
43
|
+
};
|
44
|
+
const getManuscriptData = async (templateID, api) => {
|
33
45
|
const data = {};
|
34
46
|
const [sectionCategories, cslLocale, template] = await Promise.all([
|
35
47
|
api.getSectionCategories(),
|
36
48
|
// TODO:: config this!
|
37
49
|
api.getCSLLocale('en-US'),
|
38
|
-
api.getTemplate(
|
50
|
+
api.getTemplate(templateID),
|
39
51
|
]);
|
40
52
|
const bundle = await api.getBundle(template);
|
41
53
|
data.sectionCategories = sectionCategories || [];
|
@@ -58,24 +70,34 @@ const getUserData = async (projectID, user, api) => {
|
|
58
70
|
collaboratorsById: profilesById,
|
59
71
|
};
|
60
72
|
};
|
61
|
-
export const buildData = async (projectID, manuscriptID,
|
73
|
+
export const buildData = async (projectID, manuscriptID, updateState, api) => {
|
62
74
|
const user = await api.getUser();
|
63
75
|
if (!user) {
|
64
76
|
return {};
|
65
77
|
}
|
66
|
-
const
|
67
|
-
const state = await getManuscriptData(
|
78
|
+
const doc = await getDocumentData(projectID, manuscriptID, api);
|
79
|
+
const state = await getManuscriptData(doc.doc.attrs.prototype, api);
|
68
80
|
const [project, manuscript] = await getIdModels(api, projectID, manuscriptID);
|
69
81
|
const role = project ? getUserRole(project, user.userID) : null;
|
70
82
|
const users = await getUserData(projectID, user, api);
|
83
|
+
const stepsExchanger = new StepsExchanger(projectID, manuscriptID, doc.version, api);
|
84
|
+
stepsExchanger.isThrottling.onChange((value) => {
|
85
|
+
updateState({
|
86
|
+
preventUnload: value,
|
87
|
+
});
|
88
|
+
});
|
89
|
+
api.listenToSteps(projectID, manuscriptID, (version, steps, clientIDs) => stepsExchanger.receiveSteps(version, steps, clientIDs));
|
90
|
+
const beforeUnload = () => stepsExchanger.flush();
|
71
91
|
return {
|
72
92
|
user,
|
73
93
|
userRole: role,
|
74
94
|
...users,
|
75
95
|
...state,
|
96
|
+
...doc,
|
97
|
+
stepsExchanger,
|
76
98
|
project,
|
77
99
|
manuscript,
|
78
|
-
|
100
|
+
beforeUnload,
|
79
101
|
};
|
80
102
|
};
|
81
103
|
//# sourceMappingURL=buildData.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"buildData.js","sourceRoot":"","sources":["../../../src/api/buildData.ts"],"names":[],"mappings":"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"}
|
@@ -70,15 +70,13 @@ export const buildUtilities = (projectID, manuscriptID, getState, updateState, a
|
|
70
70
|
const createSnapshot = async () => {
|
71
71
|
const state = getState();
|
72
72
|
const snapshots = state.snapshots;
|
73
|
-
|
74
|
-
|
75
|
-
throw new Error('Unable to create snapshot due to incomplete data');
|
73
|
+
if (!snapshots) {
|
74
|
+
throw new Error('Missing snapshots');
|
76
75
|
}
|
77
|
-
const
|
78
|
-
const { snapshot, ...label } =
|
76
|
+
const response = await api.createSnapshot(projectID, manuscriptID);
|
77
|
+
const { snapshot, ...label } = response.snapshot;
|
79
78
|
updateState({
|
80
79
|
snapshots: [...snapshots, label],
|
81
|
-
snapshotsMap: snapshotsMap.set(label.id, data.snapshot),
|
82
80
|
});
|
83
81
|
};
|
84
82
|
const refreshProject = async () => {
|
@@ -104,6 +102,7 @@ export const buildUtilities = (projectID, manuscriptID, getState, updateState, a
|
|
104
102
|
saveDoc,
|
105
103
|
createSnapshot,
|
106
104
|
refreshProject,
|
105
|
+
getSnapshot: api.getSnapshot,
|
107
106
|
};
|
108
107
|
};
|
109
108
|
//# sourceMappingURL=buildUtilities.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/api/buildUtilities.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"savingUtilities.js","sourceRoot":"","sources":["../../../src/api/savingUtilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAI,OAAe,CAAA;IAEnB,OAAO,CACL,EAAa,EACb,QAAQ,GAAG,IAAI,EACf,KAAK,GAAG,KAAK,EACb,MAAmB,EACnB,EAAE;QACF,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,EAAE,EAAE,CAAA;YACJ,MAAM,IAAI,MAAM,EAAE,CAAA;QACpB,CAAC,CAAA;QACD,IAAI,KAAK,EAAE;YACT,MAAM,EAAE,CAAA;YACR,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAM;SACP;QAED,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,CAAA;QACV,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEZ,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,CAAA;YACR,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,MAAM,EAAU,CAAA;IAEhC,OAAO,CAAC,EAAa,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;QACxC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,SAAS,CAAC,OAAO,EAAE,CAAA;YACnB,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,OAAO,IAAI,CAAA;YACb,CAAC,CAAA;YACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACpC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;YACrB,CAAC,EAAE,QAAQ,CAAC,CAAA;SACb;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
|
@@ -7,6 +7,7 @@
|
|
7
7
|
*
|
8
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
9
9
|
*
|
10
|
-
* All portions of the code written by Atypon Systems LLC are Copyright (c)
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
|
11
11
|
*/
|
12
|
-
export
|
12
|
+
export {};
|
13
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
@@ -10,81 +10,59 @@
|
|
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 { Avatar, SecondaryButton, useDropdown } from '@manuscripts/style-guide';
|
13
|
-
import {
|
13
|
+
import { TrackChangesStatus, trackCommands, } from '@manuscripts/track-changes-plugin';
|
14
|
+
import { schema } from '@manuscripts/transform';
|
14
15
|
import { EditorState } from 'prosemirror-state';
|
15
|
-
import React, {
|
16
|
+
import React, { useMemo, useState } from 'react';
|
16
17
|
import styled from 'styled-components';
|
17
18
|
import useExecCmd from '../../hooks/use-exec-cmd';
|
18
|
-
import { get } from '../../quarterback/api/methods';
|
19
19
|
import { useStore } from '../../store';
|
20
20
|
import { FormattedDateTime } from '../FormattedDateTime';
|
21
21
|
import { Dropdown, DropdownButtonContainer, DropdownContainer, DropdownToggle, } from '../nav/Dropdown';
|
22
22
|
export const SnapshotsDropdown = () => {
|
23
23
|
const { wrapperRef, toggleOpen, isOpen } = useDropdown();
|
24
|
-
const [{ view,
|
24
|
+
const [{ view, getSnapshot, snapshots }] = useStore((store) => ({
|
25
25
|
view: store.view,
|
26
|
-
|
27
|
-
originalPmDoc: store.originalPmDoc,
|
28
|
-
authToken: store.authToken,
|
29
|
-
snapshotsMap: store.snapshotsMap,
|
26
|
+
getSnapshot: store.getSnapshot,
|
30
27
|
snapshots: store.snapshots,
|
31
|
-
inspectedSnapshotId: store.inspectedSnapshotId,
|
32
28
|
}));
|
33
29
|
const execCmd = useExecCmd();
|
34
|
-
const
|
35
|
-
const
|
30
|
+
const [selectedSnapshot, setSelectedSnapshot] = useState();
|
31
|
+
const [doc, setDoc] = useState();
|
32
|
+
const sortedSnapshots = useMemo(() => snapshots.sort((a, b) => a.createdAt.localeCompare(b.createdAt)), [snapshots]);
|
36
33
|
const hydrateDocFromJSON = (doc) => {
|
34
|
+
if (!view) {
|
35
|
+
return;
|
36
|
+
}
|
37
37
|
const state = EditorState.create({
|
38
|
-
doc:
|
38
|
+
doc: doc,
|
39
39
|
plugins: view.state.plugins,
|
40
40
|
});
|
41
|
-
view
|
42
|
-
const trackState = view
|
43
|
-
? trackChangesPluginKey.getState(view.state)
|
44
|
-
: undefined;
|
45
|
-
dispatch({ trackState });
|
46
|
-
};
|
47
|
-
const inspectSnapshot = async (id) => {
|
48
|
-
const inspected = snapshotsMap.get(id);
|
49
|
-
if (inspected) {
|
50
|
-
dispatch({ inspectedSnapshotId: id });
|
51
|
-
return { data: inspected };
|
52
|
-
}
|
53
|
-
const resp = await get(`snapshot/${id}`, authToken);
|
54
|
-
if ('data' in resp) {
|
55
|
-
dispatch({
|
56
|
-
snapshotsMap: snapshotsMap.set(id, resp.data),
|
57
|
-
inspectedSnapshotId: resp.data.id,
|
58
|
-
});
|
59
|
-
return resp;
|
60
|
-
}
|
41
|
+
view.updateState(state);
|
61
42
|
};
|
62
|
-
async
|
63
|
-
if (
|
64
|
-
dispatch({
|
65
|
-
originalPmDoc: doc.toJSON(),
|
66
|
-
});
|
67
|
-
}
|
68
|
-
else if (isBeingInspected(snap)) {
|
43
|
+
const handleSelect = async (id) => {
|
44
|
+
if (id === selectedSnapshot?.id) {
|
69
45
|
handleResumeEditing();
|
70
46
|
return;
|
71
47
|
}
|
72
|
-
const
|
73
|
-
if (
|
74
|
-
|
48
|
+
const snapshot = await getSnapshot(id);
|
49
|
+
if (snapshot) {
|
50
|
+
setDoc(view.state.doc);
|
51
|
+
setSelectedSnapshot(snapshot);
|
52
|
+
hydrateDocFromJSON(schema.nodeFromJSON(snapshot.snapshot));
|
75
53
|
execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.viewSnapshots));
|
76
54
|
}
|
77
|
-
}
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
if (originalPmDoc) {
|
83
|
-
hydrateDocFromJSON(originalPmDoc);
|
55
|
+
};
|
56
|
+
const handleResumeEditing = () => {
|
57
|
+
if (!doc) {
|
58
|
+
console.warn('No original doc found');
|
59
|
+
return;
|
84
60
|
}
|
61
|
+
setDoc(undefined);
|
62
|
+
setSelectedSnapshot(undefined);
|
63
|
+
hydrateDocFromJSON(doc);
|
85
64
|
execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.enabled));
|
86
|
-
}
|
87
|
-
const inspectedSnapshot = snapshotsMap.get(inspectedSnapshotId);
|
65
|
+
};
|
88
66
|
return (React.createElement(SnapshotContainer, null,
|
89
67
|
React.createElement(DropdownContainer, { id: 'snapshots-dropdown', ref: wrapperRef },
|
90
68
|
React.createElement(DropdownButtonContainer, { onClick: toggleOpen, isOpen: isOpen, className: 'dropdown-toggle' },
|
@@ -93,14 +71,13 @@ export const SnapshotsDropdown = () => {
|
|
93
71
|
React.createElement(Avatar, { size: 20 })),
|
94
72
|
React.createElement(InnerContainer, null,
|
95
73
|
React.createElement(Text, null,
|
96
|
-
|
74
|
+
selectedSnapshot ? selectedSnapshot.name : 'Current',
|
97
75
|
React.createElement(DropdownToggle, { className: isOpen ? 'open' : '' })),
|
98
|
-
|
99
|
-
React.createElement(FormattedDateTime, { date:
|
100
|
-
' '))))),
|
76
|
+
selectedSnapshot && (React.createElement(DateTime, null,
|
77
|
+
React.createElement(FormattedDateTime, { date: new Date(selectedSnapshot.createdAt).getTime() / 1000 })))))),
|
101
78
|
isOpen && (React.createElement(SnapshotsList, { top: 25, direction: 'left', minWidth: 100 },
|
102
79
|
React.createElement(Element, { onClick: (e) => {
|
103
|
-
if (
|
80
|
+
if (selectedSnapshot) {
|
104
81
|
handleResumeEditing();
|
105
82
|
}
|
106
83
|
toggleOpen();
|
@@ -112,7 +89,7 @@ export const SnapshotsDropdown = () => {
|
|
112
89
|
React.createElement(Text, null, 'Current')))),
|
113
90
|
sortedSnapshots.map((snapshot) => {
|
114
91
|
return (React.createElement(Element, { onClick: (e) => {
|
115
|
-
|
92
|
+
handleSelect(snapshot.id);
|
116
93
|
toggleOpen();
|
117
94
|
}, key: snapshot.id },
|
118
95
|
React.createElement(Container, null,
|
@@ -121,8 +98,7 @@ export const SnapshotsDropdown = () => {
|
|
121
98
|
React.createElement(InnerContainer, null,
|
122
99
|
React.createElement(Text, null, snapshot.name),
|
123
100
|
React.createElement(DateTime, null,
|
124
|
-
React.createElement(FormattedDateTime, { date:
|
125
|
-
' ')))));
|
101
|
+
React.createElement(FormattedDateTime, { date: new Date(snapshot.createdAt).getTime() / 1000 }))))));
|
126
102
|
}))))));
|
127
103
|
};
|
128
104
|
const Container = styled.div `
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SnapshotsDropdown.js","sourceRoot":"","sources":["../../../../src/components/inspector/SnapshotsDropdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EACL,
|
1
|
+
{"version":3,"file":"SnapshotsDropdown.js","sourceRoot":"","sources":["../../../../src/components/inspector/SnapshotsDropdown.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ManuscriptPageContainer.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptPageContainer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,4CAA4C,CAAA;AACnD,OAAO,oDAAoD,CAAA;AAC3D,OAAO,4CAA4C,CAAA;AACnD,OAAO,wBAAwB,CAAA;AAE/B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,uBAAuB,GAAa,GAAG,EAAE;IAC7C,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/D,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;
|
1
|
+
{"version":3,"file":"ManuscriptPageContainer.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptPageContainer.tsx"],"names":[],"mappings":"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"}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
import { commentsKey, selectedSuggestionKey } from '@manuscripts/body-editor';
|
13
13
|
import { trackChangesPluginKey } from '@manuscripts/track-changes-plugin';
|
14
14
|
import { useEffect, useLayoutEffect, useMemo } from 'react';
|
15
|
-
import { useDoWithThrottle } from '../
|
15
|
+
import { useDoWithThrottle } from '../api/savingUtilities';
|
16
16
|
import { useStore } from '../store';
|
17
17
|
import { useCreateEditor } from './use-create-editor';
|
18
18
|
import { useHandleSnapshot } from './use-handle-snapshot';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-connect-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-connect-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"use-connect-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-connect-editor.ts"],"names":[],"mappings":"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"}
|
@@ -14,22 +14,18 @@ import { getCapabilities as getActionCapabilities } from '@manuscripts/style-gui
|
|
14
14
|
import { memoize } from 'lodash';
|
15
15
|
import { useLocation, useNavigate } from 'react-router-dom';
|
16
16
|
import { getConfig } from '../config';
|
17
|
-
import { stepsExchanger } from '../quarterback/QuarterbackStepsExchanger';
|
18
17
|
import { useStore } from '../store';
|
19
18
|
import { theme } from '../theme/theme';
|
20
19
|
export const useCreateEditor = () => {
|
21
|
-
const [{ doc,
|
20
|
+
const [{ doc, projectID, user, fileManagement, style, locale, sectionCategories, stepsExchanger, }, _, getState,] = useStore((store) => ({
|
22
21
|
doc: store.doc,
|
23
|
-
manuscriptID: store.manuscriptID,
|
24
|
-
project: store.project,
|
25
22
|
projectID: store.projectID,
|
26
23
|
user: store.user,
|
27
24
|
fileManagement: store.fileManagement,
|
28
|
-
initialDocVersion: store.initialDocVersion,
|
29
25
|
style: store.cslStyle,
|
30
26
|
locale: store.cslLocale,
|
31
|
-
authToken: store.authToken,
|
32
27
|
sectionCategories: store.sectionCategories,
|
28
|
+
stepsExchanger: store.stepsExchanger,
|
33
29
|
}));
|
34
30
|
const getCapabilities = memoize((project, user, permittedActions) => getActionCapabilities(project, user, undefined, permittedActions));
|
35
31
|
const config = getConfig();
|
@@ -60,14 +56,7 @@ export const useCreateEditor = () => {
|
|
60
56
|
return getState().files;
|
61
57
|
},
|
62
58
|
fileManagement: fileManagement,
|
63
|
-
collabProvider: stepsExchanger
|
64
|
-
if (beforeUnload !== undefined) {
|
65
|
-
dispatch({ preventUnload, beforeUnload });
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
dispatch({ preventUnload });
|
69
|
-
}
|
70
|
-
}),
|
59
|
+
collabProvider: stepsExchanger,
|
71
60
|
sectionCategories: sectionCategories,
|
72
61
|
navigate: useNavigate(),
|
73
62
|
location: useLocation(),
|
@@ -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;AACpD,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,
|
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;AACpD,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,CACJ,EACE,GAAG,EACH,SAAS,EACT,IAAI,EACJ,cAAc,EACd,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,cAAc,GACf,EACD,CAAC,EACD,QAAQ,EACT,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,QAAQ;QACrB,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC,CAAA;IAEH,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAClE,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAClE,CAAA;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE;YACV,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,GAAG;SACd;QACD,GAAG;QACH,MAAM,EAAE,IAAI,CAAC,GAAG;QAChB,KAAK,EAAE,MAAM,CAAC,WAAW,KAAK,aAAa;QAC3C,wEAAwE;QACxE,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE;YACR,KAAK;YACL,MAAM;SACP;QACD,KAAK;QACL,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;QAC1B,eAAe,EAAE,GAAG,EAAE;YACpB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;YACxB,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC3E,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,QAAQ,EAAE,CAAC,KAAK,CAAA;QACzB,CAAC;QACD,cAAc,EAAE,cAAc;QAC9B,cAAc,EAAE,cAAc;QAC9B,iBAAiB,EAAE,iBAAiB;QACpC,QAAQ,EAAE,WAAW,EAAE;QACvB,QAAQ,EAAE,WAAW,EAAE;KACxB,CAAA;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
@@ -11,7 +11,7 @@
|
|
11
11
|
*/
|
12
12
|
import { usePermissions } from '@manuscripts/style-guide';
|
13
13
|
import { trackCommands } from '@manuscripts/track-changes-plugin';
|
14
|
-
import { getDocWithoutTrackContent } from '../
|
14
|
+
import { getDocWithoutTrackContent } from '../lib/doc';
|
15
15
|
import { useStore } from '../store';
|
16
16
|
import useExecCmd from './use-exec-cmd';
|
17
17
|
export const useHandleSnapshot = (view) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-handle-snapshot.js","sourceRoot":"","sources":["../../../src/hooks/use-handle-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAGjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"use-handle-snapshot.js","sourceRoot":"","sources":["../../../src/hooks/use-handle-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAGjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,UAAU,MAAM,gBAAgB,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAAE,EAAE;IACrD,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvE,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC,CAAA;IACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,mBAAmB,GAAG,GAAG,CAAC,gBAAgB,CAAA;IAChD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,IAAI,EAAE;YACT,OAAM;SACP;QACD,iJAAiJ;QACjJ,YAAY,IAAI,YAAY,EAAE,CAAA;QAC9B,MAAM,cAAc,EAAE,CAAA;QACtB,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAA;QACpD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;oBAC3C,OAAM;iBACP;gBACD,IAAI,CAAC,mBAAmB,EAAE;oBACxB,OAAO,OAAO,EAAE,CAAA;iBACjB;gBAED,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;qBACtC,IAAI,CAAC,GAAG,EAAE;oBACT,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAC3D,CAAA;YACL,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,6DAA6D;QACvE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA"}
|