@manuscripts/article-editor 3.1.48-datasource-cleanup.0 → 3.1.48
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 +7 -15
- package/dist/cjs/EditorApp.js.map +1 -1
- package/dist/cjs/components/inspector/SnapshotsDropdown.js +57 -33
- package/dist/cjs/components/inspector/SnapshotsDropdown.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js +1 -0
- 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 +14 -3
- 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/lib/api/collaboration.js +25 -0
- package/dist/cjs/lib/api/collaboration.js.map +1 -0
- package/dist/cjs/lib/api/index.js +29 -0
- package/dist/cjs/lib/api/index.js.map +1 -0
- package/dist/cjs/postgres-data/Api.js +83 -0
- package/dist/cjs/postgres-data/Api.js.map +1 -0
- package/dist/cjs/{api/ApiSource.js → postgres-data/PsSource.js} +32 -17
- package/dist/cjs/postgres-data/PsSource.js.map +1 -0
- package/dist/cjs/{api → postgres-data}/buildData.js +7 -29
- package/dist/cjs/postgres-data/buildData.js.map +1 -0
- package/dist/cjs/{api → postgres-data}/buildUtilities.js +6 -5
- package/dist/cjs/postgres-data/buildUtilities.js.map +1 -0
- package/dist/cjs/postgres-data/savingUtilities.js.map +1 -0
- package/dist/cjs/quarterback/QuarterbackStepsExchanger.js +145 -0
- package/dist/cjs/quarterback/QuarterbackStepsExchanger.js.map +1 -0
- package/dist/cjs/quarterback/api/document.js +43 -0
- package/dist/cjs/quarterback/api/document.js.map +1 -0
- package/dist/cjs/quarterback/api/loadDoc.js +108 -0
- package/dist/cjs/quarterback/api/loadDoc.js.map +1 -0
- package/dist/cjs/quarterback/api/methods.js +147 -0
- package/dist/cjs/quarterback/api/methods.js.map +1 -0
- package/dist/cjs/{lib/doc.js → quarterback/getDocWithoutTrackContent.js} +8 -7
- package/dist/cjs/quarterback/getDocWithoutTrackContent.js.map +1 -0
- package/dist/cjs/quarterback/types.js +3 -0
- package/dist/cjs/quarterback/types.js.map +1 -0
- package/dist/cjs/store/DataSourceStrategy.js +11 -3
- package/dist/cjs/store/DataSourceStrategy.js.map +1 -1
- package/dist/cjs/store/Store.js.map +1 -1
- package/dist/es/EditorApp.js +7 -15
- package/dist/es/EditorApp.js.map +1 -1
- package/dist/es/components/inspector/SnapshotsDropdown.js +59 -35
- package/dist/es/components/inspector/SnapshotsDropdown.js.map +1 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js +1 -0
- 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 +14 -3
- 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/lib/api/collaboration.js +18 -0
- package/dist/es/lib/api/collaboration.js.map +1 -0
- package/dist/{cjs/api/types.js → es/lib/api/index.js} +3 -4
- package/dist/es/lib/api/index.js.map +1 -0
- package/dist/es/postgres-data/Api.js +77 -0
- package/dist/es/postgres-data/Api.js.map +1 -0
- package/dist/es/{api/ApiSource.js → postgres-data/PsSource.js} +31 -15
- package/dist/es/postgres-data/PsSource.js.map +1 -0
- package/dist/es/{api → postgres-data}/buildData.js +7 -29
- package/dist/es/postgres-data/buildData.js.map +1 -0
- package/dist/es/{api → postgres-data}/buildUtilities.js +6 -5
- package/dist/es/postgres-data/buildUtilities.js.map +1 -0
- package/dist/es/postgres-data/savingUtilities.js.map +1 -0
- package/dist/es/quarterback/QuarterbackStepsExchanger.js +118 -0
- package/dist/es/quarterback/QuarterbackStepsExchanger.js.map +1 -0
- package/dist/es/quarterback/api/document.js +32 -0
- package/dist/es/quarterback/api/document.js.map +1 -0
- package/dist/es/quarterback/api/loadDoc.js +81 -0
- package/dist/es/quarterback/api/loadDoc.js.map +1 -0
- package/dist/es/quarterback/api/methods.js +137 -0
- package/dist/es/quarterback/api/methods.js.map +1 -0
- package/dist/es/{lib/doc.js → quarterback/getDocWithoutTrackContent.js} +6 -6
- package/dist/es/quarterback/getDocWithoutTrackContent.js.map +1 -0
- package/dist/es/quarterback/types.js +2 -0
- package/dist/es/quarterback/types.js.map +1 -0
- package/dist/es/store/DataSourceStrategy.js +11 -3
- package/dist/es/store/DataSourceStrategy.js.map +1 -1
- package/dist/es/store/Store.js.map +1 -1
- package/dist/types/lib/api/collaboration.d.ts +17 -0
- package/dist/{es/api/types.js → types/lib/api/index.d.ts} +2 -3
- package/dist/types/{api → postgres-data}/Api.d.ts +5 -13
- package/dist/types/{api/ApiSource.d.ts → postgres-data/PsSource.d.ts} +4 -3
- package/dist/types/postgres-data/buildData.d.ts +3 -0
- package/dist/types/{api → postgres-data}/buildUtilities.d.ts +1 -1
- package/dist/types/{api/StepsExchanger.d.ts → quarterback/QuarterbackStepsExchanger.d.ts} +21 -18
- package/dist/types/quarterback/api/document.d.ts +20 -0
- package/dist/types/quarterback/api/loadDoc.d.ts +18 -0
- package/dist/types/quarterback/api/methods.d.ts +38 -0
- package/dist/types/quarterback/getDocWithoutTrackContent.d.ts +3 -0
- package/dist/types/{api → quarterback}/types.d.ts +48 -9
- package/dist/types/store/DataSourceStrategy.d.ts +5 -2
- package/dist/types/store/Store.d.ts +5 -4
- package/package.json +4 -3
- package/dist/cjs/api/Api.js +0 -137
- package/dist/cjs/api/Api.js.map +0 -1
- package/dist/cjs/api/ApiSource.js.map +0 -1
- package/dist/cjs/api/StepsExchanger.js +0 -95
- package/dist/cjs/api/StepsExchanger.js.map +0 -1
- package/dist/cjs/api/buildData.js.map +0 -1
- package/dist/cjs/api/buildUtilities.js.map +0 -1
- package/dist/cjs/api/savingUtilities.js.map +0 -1
- package/dist/cjs/api/types.js.map +0 -1
- package/dist/cjs/lib/doc.js.map +0 -1
- package/dist/es/api/Api.js +0 -131
- package/dist/es/api/Api.js.map +0 -1
- package/dist/es/api/ApiSource.js.map +0 -1
- package/dist/es/api/StepsExchanger.js +0 -90
- package/dist/es/api/StepsExchanger.js.map +0 -1
- package/dist/es/api/buildData.js.map +0 -1
- package/dist/es/api/buildUtilities.js.map +0 -1
- package/dist/es/api/savingUtilities.js.map +0 -1
- package/dist/es/api/types.js.map +0 -1
- package/dist/es/lib/doc.js.map +0 -1
- package/dist/types/api/buildData.d.ts +0 -3
- package/dist/types/lib/doc.d.ts +0 -17
- /package/dist/cjs/{api → postgres-data}/savingUtilities.js +0 -0
- /package/dist/es/{api → postgres-data}/savingUtilities.js +0 -0
- /package/dist/types/{api → postgres-data}/savingUtilities.d.ts +0 -0
@@ -13,11 +13,19 @@
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
14
14
|
exports.BasicSource = void 0;
|
15
15
|
class BasicSource {
|
16
|
-
constructor(
|
17
|
-
this.build = (
|
16
|
+
constructor(fileManagement, projectID, manuscriptID, files, permittedActions, userID, authToken) {
|
17
|
+
this.build = (state, next) => {
|
18
18
|
next({ ...this.data });
|
19
19
|
};
|
20
|
-
this.data =
|
20
|
+
this.data = {
|
21
|
+
fileManagement,
|
22
|
+
projectID,
|
23
|
+
manuscriptID,
|
24
|
+
files,
|
25
|
+
permittedActions,
|
26
|
+
userID,
|
27
|
+
authToken,
|
28
|
+
};
|
21
29
|
}
|
22
30
|
}
|
23
31
|
exports.BasicSource = BasicSource;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DataSourceStrategy.js","sourceRoot":"","sources":["../../../src/store/DataSourceStrategy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
1
|
+
{"version":3,"file":"DataSourceStrategy.js","sourceRoot":"","sources":["../../../src/store/DataSourceStrategy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAoBH,MAAa,WAAW;IAEtB,YACE,cAA8B,EAC9B,SAAiB,EACjB,YAAoB,EACpB,KAAuB,EACvB,gBAA0B,EAC1B,MAA2B,EAC3B,SAA8B;QAahC,UAAK,GAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxB,CAAC,CAAA;QAbC,IAAI,CAAC,IAAI,GAAG;YACV,cAAc;YACd,SAAS;YACT,YAAY;YACZ,KAAK;YACL,gBAAgB;YAChB,MAAM;YACN,SAAS;SACV,CAAA;IACH,CAAC;CAKF;AAzBD,kCAyBC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../src/store/Store.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../src/store/Store.ts"],"names":[],"mappings":"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"}
|
package/dist/es/EditorApp.js
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
import React, { useEffect, useRef, useState } from 'react';
|
2
2
|
import styled from 'styled-components';
|
3
|
-
import { ApiSource } from './api/ApiSource';
|
4
3
|
import { Page } from './components/Page';
|
5
4
|
import ManuscriptPageContainer from './components/projects/ManuscriptPageContainer';
|
6
5
|
import { ManuscriptPlaceholder } from './components/projects/ManuscriptPlaceholder';
|
7
6
|
import { getCurrentUserId } from './lib/user';
|
7
|
+
import PsSource from './postgres-data/PsSource';
|
8
8
|
import { BasicSource, createStore, GenericStoreProvider, } from './store';
|
9
|
-
import { TokenData } from './store/TokenData';
|
10
9
|
const Wrapper = styled.div `
|
11
10
|
display: flex;
|
12
11
|
box-sizing: border-box;
|
@@ -35,19 +34,12 @@ const EditorApp = ({ manuscriptID, projectID, permittedActions, fileManagement,
|
|
35
34
|
return;
|
36
35
|
}
|
37
36
|
loadedRef.current = true;
|
38
|
-
|
39
|
-
fileManagement,
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
userID: userID || '',
|
45
|
-
tokenData: new TokenData(),
|
46
|
-
});
|
47
|
-
const api = new ApiSource(authToken);
|
48
|
-
createStore([props, api])
|
49
|
-
.then((s) => {
|
50
|
-
setStore(s);
|
37
|
+
createStore([
|
38
|
+
new BasicSource(fileManagement, projectID, manuscriptID, files, permittedActions, userID || '', authToken || ''),
|
39
|
+
new PsSource(files),
|
40
|
+
])
|
41
|
+
.then((store) => {
|
42
|
+
setStore(store);
|
51
43
|
})
|
52
44
|
.catch((e) => {
|
53
45
|
console.error(e);
|
package/dist/es/EditorApp.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAoB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5E,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAoB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5E,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,EACL,WAAW,EACX,WAAW,EAEX,oBAAoB,GAErB,MAAM,SAAS,CAAA;AAuBhB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAgB,CAAA;IAElD,MAAM,SAAS,GAAG,MAAM,CAAU,KAAK,CAAC,CAAA;IACxC,MAAM,kBAAkB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAA;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,OAAM;SACP;QACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,WAAW,CAAC;YACV,IAAI,WAAW,CACb,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC;SACpB,CAAC;aACC,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,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,SAAS,CAAC,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,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,oBAAC,IAAI;YACH,oBAAC,OAAO;gBACN,oBAAC,uBAAuB,OAAG,CACnB,CACL,CACc,CACxB,CAAC,CAAC,CAAC,CACF,oBAAC,kBAAkB;QACjB,oBAAC,qBAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
|
@@ -10,59 +10,81 @@
|
|
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 { TrackChangesStatus, trackCommands, } from '@manuscripts/track-changes-plugin';
|
14
|
-
import { schema } from '@manuscripts/transform';
|
13
|
+
import { trackChangesPluginKey, TrackChangesStatus, trackCommands, } from '@manuscripts/track-changes-plugin';
|
15
14
|
import { EditorState } from 'prosemirror-state';
|
16
|
-
import React, {
|
15
|
+
import React, { useCallback } from 'react';
|
17
16
|
import styled from 'styled-components';
|
18
17
|
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, doc, originalPmDoc, authToken, snapshotsMap, snapshots, inspectedSnapshotId, }, dispatch,] = useStore((store) => ({
|
25
25
|
view: store.view,
|
26
|
-
|
26
|
+
doc: store.doc,
|
27
|
+
originalPmDoc: store.originalPmDoc,
|
28
|
+
authToken: store.authToken,
|
29
|
+
snapshotsMap: store.snapshotsMap,
|
27
30
|
snapshots: store.snapshots,
|
31
|
+
inspectedSnapshotId: store.inspectedSnapshotId,
|
28
32
|
}));
|
29
33
|
const execCmd = useExecCmd();
|
30
|
-
const
|
31
|
-
const
|
32
|
-
const sortedSnapshots = useMemo(() => snapshots.sort((a, b) => a.createdAt.localeCompare(b.createdAt)), [snapshots]);
|
34
|
+
const sortedSnapshots = snapshots.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
35
|
+
const isBeingInspected = useCallback((snap) => inspectedSnapshotId === snap.id, [inspectedSnapshotId]);
|
33
36
|
const hydrateDocFromJSON = (doc) => {
|
34
|
-
if (!view) {
|
35
|
-
return;
|
36
|
-
}
|
37
37
|
const state = EditorState.create({
|
38
|
-
doc: doc,
|
38
|
+
doc: view.state.schema.nodeFromJSON(doc),
|
39
39
|
plugins: view.state.plugins,
|
40
40
|
});
|
41
|
-
view.updateState(state);
|
41
|
+
view && view.updateState(state);
|
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
|
+
}
|
42
61
|
};
|
43
|
-
|
44
|
-
if (
|
62
|
+
async function handleInspectSnapshot(snap) {
|
63
|
+
if (!inspectedSnapshotId) {
|
64
|
+
dispatch({
|
65
|
+
originalPmDoc: doc.toJSON(),
|
66
|
+
});
|
67
|
+
}
|
68
|
+
else if (isBeingInspected(snap)) {
|
45
69
|
handleResumeEditing();
|
46
70
|
return;
|
47
71
|
}
|
48
|
-
const
|
49
|
-
if (
|
50
|
-
|
51
|
-
setSelectedSnapshot(snapshot);
|
52
|
-
hydrateDocFromJSON(schema.nodeFromJSON(snapshot.snapshot));
|
72
|
+
const resp = await inspectSnapshot(snap.id);
|
73
|
+
if (resp) {
|
74
|
+
hydrateDocFromJSON(resp.data.snapshot);
|
53
75
|
execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.viewSnapshots));
|
54
76
|
}
|
55
|
-
}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
77
|
+
}
|
78
|
+
function handleResumeEditing() {
|
79
|
+
dispatch({
|
80
|
+
inspectedSnapshotId: null,
|
81
|
+
});
|
82
|
+
if (originalPmDoc) {
|
83
|
+
hydrateDocFromJSON(originalPmDoc);
|
60
84
|
}
|
61
|
-
setDoc(undefined);
|
62
|
-
setSelectedSnapshot(undefined);
|
63
|
-
hydrateDocFromJSON(doc);
|
64
85
|
execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.enabled));
|
65
|
-
}
|
86
|
+
}
|
87
|
+
const inspectedSnapshot = snapshotsMap.get(inspectedSnapshotId);
|
66
88
|
return (React.createElement(SnapshotContainer, null,
|
67
89
|
React.createElement(DropdownContainer, { id: 'snapshots-dropdown', ref: wrapperRef },
|
68
90
|
React.createElement(DropdownButtonContainer, { onClick: toggleOpen, isOpen: isOpen, className: 'dropdown-toggle' },
|
@@ -71,13 +93,14 @@ export const SnapshotsDropdown = () => {
|
|
71
93
|
React.createElement(Avatar, { size: 20 })),
|
72
94
|
React.createElement(InnerContainer, null,
|
73
95
|
React.createElement(Text, null,
|
74
|
-
|
96
|
+
inspectedSnapshot ? inspectedSnapshot.name : 'Current',
|
75
97
|
React.createElement(DropdownToggle, { className: isOpen ? 'open' : '' })),
|
76
|
-
|
77
|
-
React.createElement(FormattedDateTime, { date: new Date(
|
98
|
+
inspectedSnapshot && (React.createElement(DateTime, null,
|
99
|
+
React.createElement(FormattedDateTime, { date: Math.floor(new Date(inspectedSnapshot.createdAt).getTime() / 1000) }),
|
100
|
+
' '))))),
|
78
101
|
isOpen && (React.createElement(SnapshotsList, { top: 25, direction: 'left', minWidth: 100 },
|
79
102
|
React.createElement(Element, { onClick: (e) => {
|
80
|
-
if (
|
103
|
+
if (inspectedSnapshot) {
|
81
104
|
handleResumeEditing();
|
82
105
|
}
|
83
106
|
toggleOpen();
|
@@ -89,7 +112,7 @@ export const SnapshotsDropdown = () => {
|
|
89
112
|
React.createElement(Text, null, 'Current')))),
|
90
113
|
sortedSnapshots.map((snapshot) => {
|
91
114
|
return (React.createElement(Element, { onClick: (e) => {
|
92
|
-
|
115
|
+
handleInspectSnapshot(snapshot);
|
93
116
|
toggleOpen();
|
94
117
|
}, key: snapshot.id },
|
95
118
|
React.createElement(Container, null,
|
@@ -98,7 +121,8 @@ export const SnapshotsDropdown = () => {
|
|
98
121
|
React.createElement(InnerContainer, null,
|
99
122
|
React.createElement(Text, null, snapshot.name),
|
100
123
|
React.createElement(DateTime, null,
|
101
|
-
React.createElement(FormattedDateTime, { date: new Date(snapshot.createdAt).getTime() / 1000 })
|
124
|
+
React.createElement(FormattedDateTime, { date: Math.floor(new Date(snapshot.createdAt).getTime() / 1000) }),
|
125
|
+
' ')))));
|
102
126
|
}))))));
|
103
127
|
};
|
104
128
|
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,kBAAkB,EAClB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,
|
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 '../postgres-data/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,18 +14,22 @@ 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';
|
17
18
|
import { useStore } from '../store';
|
18
19
|
import { theme } from '../theme/theme';
|
19
20
|
export const useCreateEditor = () => {
|
20
|
-
const [{ doc, projectID, user, fileManagement, style, locale,
|
21
|
+
const [{ doc, manuscriptID, projectID, user, fileManagement, initialDocVersion, style, locale, authToken, sectionCategories, }, dispatch, getState,] = useStore((store) => ({
|
21
22
|
doc: store.doc,
|
23
|
+
manuscriptID: store.manuscriptID,
|
24
|
+
project: store.project,
|
22
25
|
projectID: store.projectID,
|
23
26
|
user: store.user,
|
24
27
|
fileManagement: store.fileManagement,
|
28
|
+
initialDocVersion: store.initialDocVersion,
|
25
29
|
style: store.cslStyle,
|
26
30
|
locale: store.cslLocale,
|
31
|
+
authToken: store.authToken,
|
27
32
|
sectionCategories: store.sectionCategories,
|
28
|
-
stepsExchanger: store.stepsExchanger,
|
29
33
|
}));
|
30
34
|
const getCapabilities = memoize((project, user, permittedActions) => getActionCapabilities(project, user, undefined, permittedActions));
|
31
35
|
const config = getConfig();
|
@@ -56,7 +60,14 @@ export const useCreateEditor = () => {
|
|
56
60
|
return getState().files;
|
57
61
|
},
|
58
62
|
fileManagement: fileManagement,
|
59
|
-
collabProvider: stepsExchanger,
|
63
|
+
collabProvider: stepsExchanger(manuscriptID, projectID, initialDocVersion, authToken, (preventUnload, beforeUnload) => {
|
64
|
+
if (beforeUnload !== undefined) {
|
65
|
+
dispatch({ preventUnload, beforeUnload });
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
dispatch({ preventUnload });
|
69
|
+
}
|
70
|
+
}),
|
60
71
|
sectionCategories: sectionCategories,
|
61
72
|
navigate: useNavigate(),
|
62
73
|
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,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,
|
1
|
+
{"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
|
@@ -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 '../quarterback/getDocWithoutTrackContent';
|
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,0CAA0C,CAAA;AACpF,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"}
|
@@ -0,0 +1,18 @@
|
|
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) 2019 Atypon Systems LLC. All Rights Reserved.
|
11
|
+
*/
|
12
|
+
import client from '../client';
|
13
|
+
export const projectInvite = (projectID, invitedUsers, role, message = 'message') => client.post(`/invitation/${encodeURIComponent(projectID)}/invite`, {
|
14
|
+
invitedUsers,
|
15
|
+
role,
|
16
|
+
message,
|
17
|
+
});
|
18
|
+
//# sourceMappingURL=collaboration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"collaboration.js","sourceRoot":"","sources":["../../../../src/lib/api/collaboration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,WAAW,CAAA;AAO9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAAiB,EACjB,YAA2B,EAC3B,IAAY,EACZ,OAAO,GAAG,SAAS,EACnB,EAAE,CACF,MAAM,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE;IACjE,YAAY;IACZ,IAAI;IACJ,OAAO;CACR,CAAC,CAAA"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
"use strict";
|
2
1
|
/*!
|
3
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.
|
4
3
|
*
|
@@ -8,7 +7,7 @@
|
|
8
7
|
*
|
9
8
|
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
10
9
|
*
|
11
|
-
* 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) 2019 Atypon Systems LLC. All Rights Reserved.
|
12
11
|
*/
|
13
|
-
|
14
|
-
//# sourceMappingURL=
|
12
|
+
export * from './collaboration';
|
13
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,iBAAiB,CAAA"}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import axios from 'axios';
|
2
|
+
import { getConfig } from '../config';
|
3
|
+
export default class Api {
|
4
|
+
constructor() {
|
5
|
+
this.setToken = (token) => {
|
6
|
+
const config = getConfig();
|
7
|
+
this.instance = axios.create({
|
8
|
+
baseURL: config.api.url,
|
9
|
+
headers: { ...config.api.headers, Authorization: 'Bearer ' + token },
|
10
|
+
});
|
11
|
+
};
|
12
|
+
this.get = async (url) => {
|
13
|
+
try {
|
14
|
+
const result = await this.instance.get(url, {
|
15
|
+
headers: {
|
16
|
+
'Content-Type': 'application/json;charset=UTF-8',
|
17
|
+
},
|
18
|
+
});
|
19
|
+
return result.data;
|
20
|
+
}
|
21
|
+
catch (e) {
|
22
|
+
console.log(e);
|
23
|
+
return undefined;
|
24
|
+
}
|
25
|
+
};
|
26
|
+
this.post = async (path, data) => {
|
27
|
+
return this.instance
|
28
|
+
.post(path, data)
|
29
|
+
.then((result) => result.data)
|
30
|
+
.catch((e) => {
|
31
|
+
console.log(e);
|
32
|
+
throw e.data?.error?.message || 'Request failed';
|
33
|
+
});
|
34
|
+
};
|
35
|
+
this.delete = (url) => {
|
36
|
+
return this.instance.delete(url);
|
37
|
+
};
|
38
|
+
this.options = (url) => {
|
39
|
+
return this.instance.options(url);
|
40
|
+
};
|
41
|
+
this.put = (path, data) => {
|
42
|
+
return this.instance.put(path, data);
|
43
|
+
};
|
44
|
+
this.getUser = () => {
|
45
|
+
return this.get(`user`);
|
46
|
+
};
|
47
|
+
this.getManuscript = (containerID, manuscriptID) => this.get(`project/${containerID}/manuscript/${manuscriptID}`);
|
48
|
+
this.getSectionCategories = () => this.get('/config?id=section-categories');
|
49
|
+
this.getCSLLocale = (lang) => lang !== 'en-US' ? this.get(`/csl/locales?id=${lang}`) : undefined;
|
50
|
+
this.getTemplate = (id) => id ? this.get(`/templates?id=${id}`) : undefined;
|
51
|
+
this.getBundle = (template) => template?.bundle
|
52
|
+
? this.get(`/bundles?id=${template.bundle}`)
|
53
|
+
: undefined;
|
54
|
+
this.getCSLStyle = (bundle) => bundle?.csl?._id
|
55
|
+
? this.get(`/csl/styles?id=${bundle.csl._id}`)
|
56
|
+
: undefined;
|
57
|
+
this.getUserProfiles = (containerID) => this.get(`/project/${containerID}/userProfiles`);
|
58
|
+
this.saveProject = (projectId, models) => {
|
59
|
+
return this.put(`project/${projectId}`, { data: models });
|
60
|
+
};
|
61
|
+
this.createProject = (projectId, title) => {
|
62
|
+
return this.post(`project/${projectId}`, { title });
|
63
|
+
};
|
64
|
+
this.createSnapshot = (projectID, manuscriptID) => {
|
65
|
+
return this.post(`snapshot/${projectID}/manuscript/${manuscriptID}`, {
|
66
|
+
docID: manuscriptID,
|
67
|
+
name: new Date().toLocaleString('sv'),
|
68
|
+
});
|
69
|
+
};
|
70
|
+
const config = getConfig();
|
71
|
+
this.instance = axios.create({
|
72
|
+
baseURL: config.api.url,
|
73
|
+
headers: config.api.headers,
|
74
|
+
});
|
75
|
+
}
|
76
|
+
}
|
77
|
+
//# sourceMappingURL=Api.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../../src/postgres-data/Api.ts"],"names":[],"mappings":"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"}
|
@@ -9,21 +9,39 @@
|
|
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 { loadDoc } from '../quarterback/api/loadDoc';
|
13
13
|
import Api from './Api';
|
14
14
|
import { buildData } from './buildData';
|
15
15
|
import { buildUtilities } from './buildUtilities';
|
16
|
-
export class
|
17
|
-
constructor(
|
16
|
+
export default class PsSource {
|
17
|
+
constructor(files) {
|
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
|
+
}
|
22
25
|
const projectID = state.projectID;
|
23
26
|
const manuscriptID = state.manuscriptID;
|
24
|
-
if (manuscriptID &&
|
25
|
-
await
|
26
|
-
|
27
|
+
if (state.projectID && state.manuscriptID && state.authToken) {
|
28
|
+
const res = await loadDoc(state.manuscriptID, state.projectID, state.authToken, state.doc);
|
29
|
+
if (res?.doc && res.version >= 0) {
|
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
|
+
};
|
27
45
|
this.utilities = buildUtilities(projectID, manuscriptID, () => this.data, setState, this.api);
|
28
46
|
}
|
29
47
|
next({ ...state, ...this.data, ...this.utilities });
|
@@ -34,14 +52,12 @@ export class ApiSource {
|
|
34
52
|
this.updateStore = (setState) => {
|
35
53
|
this.updateState = setState;
|
36
54
|
};
|
37
|
-
this.
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
};
|
44
|
-
this.api = new Api(authToken);
|
55
|
+
this.api = new Api();
|
56
|
+
this.files = files;
|
57
|
+
// import api
|
58
|
+
// get user and all the data
|
59
|
+
// build and provide methods such as saveModel, saveManuscript etc. (see ModelManager in couch-data)
|
60
|
+
// conform with the store
|
45
61
|
}
|
46
62
|
}
|
47
|
-
//# sourceMappingURL=
|
63
|
+
//# sourceMappingURL=PsSource.js.map
|