@manuscripts/body-editor 2.8.75-LEAN-4574.1 → 2.8.76
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/clipboard.js +2 -23
- package/dist/cjs/components/references/ImportBibliographyForm.js +8 -8
- package/dist/cjs/components/references/ReferenceForm/PersonDropDown.js +2 -2
- package/dist/cjs/components/references/ReferenceForm/ReferenceForm.js +31 -42
- package/dist/cjs/components/references/ReferenceForm/config.js +13 -1
- package/dist/cjs/components/views/TableCellContextMenu.js +12 -11
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/lib/context-menu.js +12 -8
- package/dist/cjs/lib/crossref.js +32 -1
- package/dist/cjs/lib/references.js +1 -67
- package/dist/cjs/lib/utils.js +3 -1
- package/dist/cjs/plugins/bibliography/bibliography-utils.js +84 -0
- package/dist/cjs/plugins/bibliography/index.js +128 -0
- package/dist/cjs/plugins/tables-cursor-fix.js +4 -1
- package/dist/cjs/versions.js +1 -1
- package/dist/cjs/views/bibliography_element.js +1 -1
- package/dist/cjs/views/bullet_list.js +44 -0
- package/dist/cjs/views/bullet_list_editable.js +21 -0
- package/dist/cjs/views/list.js +6 -23
- package/dist/cjs/views/ordered_list.js +53 -0
- package/dist/cjs/views/ordered_list_editable.js +21 -0
- package/dist/cjs/views/table_element.js +0 -1
- package/dist/es/clipboard.js +2 -22
- package/dist/es/components/references/ImportBibliographyForm.js +8 -8
- package/dist/es/components/references/ReferenceForm/PersonDropDown.js +2 -2
- package/dist/es/components/references/ReferenceForm/ReferenceForm.js +30 -41
- package/dist/es/components/references/ReferenceForm/config.js +12 -0
- package/dist/es/components/views/TableCellContextMenu.js +12 -11
- package/dist/es/index.js +1 -1
- package/dist/es/lib/context-menu.js +13 -9
- package/dist/es/lib/crossref.js +32 -1
- package/dist/es/lib/references.js +0 -42
- package/dist/es/lib/utils.js +3 -1
- package/dist/es/plugins/bibliography/bibliography-utils.js +77 -0
- package/dist/es/plugins/bibliography/index.js +124 -0
- package/dist/es/plugins/tables-cursor-fix.js +4 -1
- package/dist/es/versions.js +1 -1
- package/dist/es/views/bibliography_element.js +1 -1
- package/dist/es/views/bullet_list.js +36 -0
- package/dist/es/views/bullet_list_editable.js +19 -0
- package/dist/es/views/citation_editable.js +1 -1
- package/dist/es/views/list.js +5 -21
- package/dist/es/views/ordered_list.js +45 -0
- package/dist/es/views/ordered_list_editable.js +19 -0
- package/dist/es/views/table_element.js +0 -1
- package/dist/types/clipboard.d.ts +0 -1
- package/dist/types/components/references/BibliographyItemSource.d.ts +1 -1
- package/dist/types/components/references/CitationEditor.d.ts +1 -1
- package/dist/types/components/references/CitationViewer.d.ts +1 -1
- package/dist/types/components/references/ReferenceForm/PersonDropDown.d.ts +4 -4
- package/dist/types/components/references/ReferenceForm/ReferenceForm.d.ts +1 -1
- package/dist/types/components/references/ReferenceForm/config.d.ts +1 -0
- package/dist/types/components/references/ReferenceLine.d.ts +1 -1
- package/dist/types/components/references/ReferenceSearch.d.ts +1 -1
- package/dist/types/components/references/ReferenceSearchResults.d.ts +1 -1
- package/dist/types/components/references/ReferenceSearchSection.d.ts +1 -1
- package/dist/types/components/references/ReferencesModal.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/context-menu.d.ts +1 -0
- package/dist/types/lib/references.d.ts +4 -3
- package/dist/types/plugins/bibliography/bibliography-utils.d.ts +25 -0
- package/dist/types/plugins/{bibliography.d.ts → bibliography/index.d.ts} +9 -9
- package/dist/types/versions.d.ts +1 -1
- package/dist/types/views/bullet_list.d.ts +25 -0
- package/dist/types/views/bullet_list_editable.d.ts +44 -0
- package/dist/types/views/list.d.ts +1 -2
- package/dist/types/views/ordered_list.d.ts +30 -0
- package/dist/types/views/ordered_list_editable.d.ts +44 -0
- package/dist/types/views/table_element.d.ts +0 -1
- package/package.json +3 -11
- package/dist/cjs/plugins/bibliography.js +0 -177
- package/dist/es/plugins/bibliography.js +0 -149
package/dist/cjs/clipboard.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.clipboardParser = void 0;
|
|
4
4
|
const transform_1 = require("@manuscripts/transform");
|
|
5
5
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
6
6
|
const nodes = [
|
|
@@ -14,7 +14,7 @@ const nodes = [
|
|
|
14
14
|
getAttrs: (list) => {
|
|
15
15
|
const dom = list;
|
|
16
16
|
return {
|
|
17
|
-
listStyleType: (0,
|
|
17
|
+
listStyleType: (0, transform_1.getJatsListType)(dom.style.listStyleType ||
|
|
18
18
|
(dom.firstChild &&
|
|
19
19
|
dom.firstChild.style.listStyleType)),
|
|
20
20
|
};
|
|
@@ -29,24 +29,3 @@ exports.clipboardParser = new prosemirror_model_1.DOMParser(transform_1.schema,
|
|
|
29
29
|
...nodes,
|
|
30
30
|
...prosemirror_model_1.DOMParser.fromSchema(transform_1.schema).rules,
|
|
31
31
|
]);
|
|
32
|
-
const getListStyleType = (cssStyle) => {
|
|
33
|
-
switch (cssStyle) {
|
|
34
|
-
case 'disc':
|
|
35
|
-
return 'bullet';
|
|
36
|
-
case 'decimal':
|
|
37
|
-
return 'order';
|
|
38
|
-
case 'lower-alpha':
|
|
39
|
-
return 'alpha-lower';
|
|
40
|
-
case 'upper-alpha':
|
|
41
|
-
return 'alpha-upper';
|
|
42
|
-
case 'lower-roman':
|
|
43
|
-
return 'roman-lower';
|
|
44
|
-
case 'upper-roman':
|
|
45
|
-
return 'roman-upper';
|
|
46
|
-
case 'simple':
|
|
47
|
-
return 'none';
|
|
48
|
-
default:
|
|
49
|
-
return 'none';
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
exports.getListStyleType = getListStyleType;
|
|
@@ -48,12 +48,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.ImportBibliographyForm = void 0;
|
|
51
|
+
const library_1 = require("@manuscripts/library");
|
|
51
52
|
const style_guide_1 = require("@manuscripts/style-guide");
|
|
52
53
|
const formik_1 = require("formik");
|
|
53
54
|
const lodash_1 = require("lodash");
|
|
54
55
|
const react_1 = __importStar(require("react"));
|
|
55
56
|
const styled_components_1 = __importStar(require("styled-components"));
|
|
56
|
-
const references_1 = require("../../lib/references");
|
|
57
57
|
const ReferenceLine_1 = require("./ReferenceLine");
|
|
58
58
|
const ImportBibliographyForm = ({ onCancel, onSave, }) => {
|
|
59
59
|
const [dragging, setDragging] = (0, react_1.useState)(false);
|
|
@@ -74,18 +74,18 @@ const ImportBibliographyForm = ({ onCancel, onSave, }) => {
|
|
|
74
74
|
const ERROR_CITATION = 'Error generating citation';
|
|
75
75
|
try {
|
|
76
76
|
if (!fileContent.trim()) {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
formik.setFieldValue('err', NO_CITATION);
|
|
78
|
+
formik.setFieldValue('data', []);
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
const data = yield (0,
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
const data = yield (0, library_1.transformBibliography)(fileContent.trim());
|
|
82
|
+
formik.setFieldValue('data', data ? data : []);
|
|
83
|
+
formik.setFieldValue('err', '');
|
|
84
84
|
}
|
|
85
85
|
catch (error) {
|
|
86
86
|
console.error('Citation generation error:', error);
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
formik.setFieldValue('err', ERROR_CITATION);
|
|
88
|
+
formik.setFieldValue('data', []);
|
|
89
89
|
}
|
|
90
90
|
}), []);
|
|
91
91
|
const debouncedGenerateData = (0, react_1.useMemo)(() => (0, lodash_1.debounce)(setDataField, 300), [setDataField]);
|
|
@@ -29,8 +29,8 @@ const formik_1 = require("formik");
|
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
30
|
const styled_components_1 = require("./styled-components");
|
|
31
31
|
const PersonDropDown = (props) => {
|
|
32
|
-
const { person,
|
|
33
|
-
const [isOpen, setIsOpen] = (0, react_1.useState)(isNew);
|
|
32
|
+
const { person, index, remove, onChange, type } = props;
|
|
33
|
+
const [isOpen, setIsOpen] = (0, react_1.useState)(!!person['isNew']);
|
|
34
34
|
const fullName = [person.given, person.family].join(' ').trim();
|
|
35
35
|
const title = fullName.length > 0 ? fullName : `Edit ${type} name`;
|
|
36
36
|
const prefix = `${type}.${index}`;
|
|
@@ -39,23 +39,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
39
39
|
};
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
exports.ReferenceForm = void 0;
|
|
42
|
+
const json_schema_1 = require("@manuscripts/json-schema");
|
|
42
43
|
const style_guide_1 = require("@manuscripts/style-guide");
|
|
43
44
|
const formik_1 = require("formik");
|
|
44
45
|
const react_1 = __importStar(require("react"));
|
|
45
|
-
const references_1 = require("../../../lib/references");
|
|
46
46
|
const utils_1 = require("../../../lib/utils");
|
|
47
47
|
const ChangeHandlingForm_1 = require("../../ChangeHandlingForm");
|
|
48
|
+
const config_1 = require("./config");
|
|
48
49
|
const PersonDropDown_1 = require("./PersonDropDown");
|
|
49
50
|
const styled_components_1 = require("./styled-components");
|
|
50
|
-
const bibliographyItemTypeOptions =
|
|
51
|
+
const bibliographyItemTypeOptions = config_1.bibliographyItemTypes.map((i) => ({
|
|
51
52
|
label: i[1],
|
|
52
53
|
value: i[0],
|
|
53
54
|
}));
|
|
54
55
|
const ReferenceForm = ({ values, showDelete, onChange, onDelete, onCancel, onSave, actionsRef, }) => {
|
|
55
56
|
const fieldsRef = (0, react_1.useRef)(null);
|
|
56
57
|
const formRef = (0, react_1.useRef)(null);
|
|
57
|
-
const [newAuthorIndex, setNewAuthorIndex] = (0, react_1.useState)();
|
|
58
|
-
const [newEditorIndex, setNewEditorIndex] = (0, react_1.useState)();
|
|
59
58
|
(0, react_1.useEffect)(() => {
|
|
60
59
|
if (fieldsRef.current) {
|
|
61
60
|
fieldsRef.current.scrollTop = 0;
|
|
@@ -116,38 +115,28 @@ const ReferenceForm = ({ values, showDelete, onChange, onDelete, onCancel, onSav
|
|
|
116
115
|
react_1.default.createElement(styled_components_1.LabelContainer, null,
|
|
117
116
|
react_1.default.createElement(styled_components_1.Label, { htmlFor: 'std' }, "Standard")),
|
|
118
117
|
react_1.default.createElement(formik_1.Field, { name: 'std' }, (props) => (react_1.default.createElement(styled_components_1.ReferenceTextArea, Object.assign({ id: 'std' }, props.field)))))),
|
|
119
|
-
(0, utils_1.shouldRenderField)('author', formik.values.type) && (react_1.default.createElement(formik_1.FieldArray, { name: 'author', render: ({ push, remove }) =>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
react_1.default.createElement(styled_components_1.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
react_1.default.createElement(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var _a;
|
|
142
|
-
setNewEditorIndex((_a = formik.values.editor) === null || _a === void 0 ? void 0 : _a.length);
|
|
143
|
-
push({
|
|
144
|
-
given: '',
|
|
145
|
-
family: '',
|
|
146
|
-
});
|
|
147
|
-
} },
|
|
148
|
-
react_1.default.createElement(style_guide_1.AddAuthorIcon, { height: 17, width: 17 }))),
|
|
149
|
-
react_1.default.createElement("div", null, (_a = formik.values.editor) === null || _a === void 0 ? void 0 : _a.map((editor, index) => (react_1.default.createElement(PersonDropDown_1.PersonDropDown, { key: index, index: index, person: editor, isNew: newEditorIndex === index, remove: remove, onChange: formik.handleChange, type: "editor" }))))));
|
|
150
|
-
} })),
|
|
118
|
+
(0, utils_1.shouldRenderField)('author', formik.values.type) && (react_1.default.createElement(formik_1.FieldArray, { name: 'author', render: ({ push, remove }) => (react_1.default.createElement(styled_components_1.FormField, null,
|
|
119
|
+
react_1.default.createElement(styled_components_1.LabelContainer, null,
|
|
120
|
+
react_1.default.createElement(styled_components_1.Label, null, "Authors"),
|
|
121
|
+
react_1.default.createElement(styled_components_1.Button, { onClick: () => push((0, json_schema_1.buildBibliographicName)({
|
|
122
|
+
given: '',
|
|
123
|
+
family: '',
|
|
124
|
+
isNew: true,
|
|
125
|
+
})) },
|
|
126
|
+
react_1.default.createElement(style_guide_1.AddAuthorIcon, { height: 17, width: 17 }))),
|
|
127
|
+
react_1.default.createElement("div", null, formik.values.author &&
|
|
128
|
+
formik.values.author.map((author, index) => (react_1.default.createElement(PersonDropDown_1.PersonDropDown, { key: index, index: index, person: author, remove: remove, onChange: formik.handleChange, type: "author" })))))) })),
|
|
129
|
+
(0, utils_1.shouldRenderField)('editor', formik.values.type) && (react_1.default.createElement(formik_1.FieldArray, { name: 'editor', render: ({ push, remove }) => (react_1.default.createElement(styled_components_1.FormField, null,
|
|
130
|
+
react_1.default.createElement(styled_components_1.LabelContainer, null,
|
|
131
|
+
react_1.default.createElement(styled_components_1.Label, null, "Editors"),
|
|
132
|
+
react_1.default.createElement(styled_components_1.Button, { onClick: () => push((0, json_schema_1.buildBibliographicName)({
|
|
133
|
+
given: '',
|
|
134
|
+
family: '',
|
|
135
|
+
isNew: true,
|
|
136
|
+
})) },
|
|
137
|
+
react_1.default.createElement(style_guide_1.AddAuthorIcon, { height: 17, width: 17 }))),
|
|
138
|
+
react_1.default.createElement("div", null, formik.values.editor &&
|
|
139
|
+
formik.values.editor.map((editor, index) => (react_1.default.createElement(PersonDropDown_1.PersonDropDown, { key: index, index: index, person: editor, remove: remove, onChange: formik.handleChange, type: "editor" })))))) })),
|
|
151
140
|
(0, utils_1.shouldRenderField)('issued', formik.values.type) && (react_1.default.createElement(styled_components_1.FormField, null,
|
|
152
141
|
react_1.default.createElement(styled_components_1.LabelContainer, null,
|
|
153
142
|
react_1.default.createElement(styled_components_1.Label, { htmlFor: "issued['date-parts'][0][0]" }, "Issued (Year)")),
|
|
@@ -158,9 +147,9 @@ const ReferenceForm = ({ values, showDelete, onChange, onDelete, onCancel, onSav
|
|
|
158
147
|
formik.setFieldValue("issued['date-parts'][0][0]", Number(value));
|
|
159
148
|
}
|
|
160
149
|
else {
|
|
161
|
-
formik.setFieldValue('issued', {
|
|
150
|
+
formik.setFieldValue('issued', (0, json_schema_1.buildBibliographicDate)({
|
|
162
151
|
'date-parts': [[Number(value)]],
|
|
163
|
-
});
|
|
152
|
+
}));
|
|
164
153
|
}
|
|
165
154
|
}
|
|
166
155
|
else {
|
|
@@ -217,9 +206,9 @@ const ReferenceForm = ({ values, showDelete, onChange, onDelete, onCancel, onSav
|
|
|
217
206
|
formik.setFieldValue("event-date['date-parts'][0][0]", Number(value));
|
|
218
207
|
}
|
|
219
208
|
else {
|
|
220
|
-
formik.setFieldValue('event-date', {
|
|
209
|
+
formik.setFieldValue('event-date', (0, json_schema_1.buildBibliographicDate)({
|
|
221
210
|
'date-parts': [[Number(value)]],
|
|
222
|
-
});
|
|
211
|
+
}));
|
|
223
212
|
}
|
|
224
213
|
}
|
|
225
214
|
else {
|
|
@@ -260,9 +249,9 @@ const ReferenceForm = ({ values, showDelete, onChange, onDelete, onCancel, onSav
|
|
|
260
249
|
formik.setFieldValue("accessed['date-parts'][0][0]", Number(value));
|
|
261
250
|
}
|
|
262
251
|
else {
|
|
263
|
-
formik.setFieldValue('accessed', {
|
|
252
|
+
formik.setFieldValue('accessed', (0, json_schema_1.buildBibliographicDate)({
|
|
264
253
|
'date-parts': [[Number(value)]],
|
|
265
|
-
});
|
|
254
|
+
}));
|
|
266
255
|
}
|
|
267
256
|
}
|
|
268
257
|
else {
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fieldConfigMap = void 0;
|
|
3
|
+
exports.fieldConfigMap = exports.bibliographyItemTypes = void 0;
|
|
4
|
+
exports.bibliographyItemTypes = [
|
|
5
|
+
['article-journal', 'Journal Article'],
|
|
6
|
+
['book', 'Book'],
|
|
7
|
+
['chapter', 'Chapter'],
|
|
8
|
+
['confproc', 'Conference Paper'],
|
|
9
|
+
['thesis', 'Thesis'],
|
|
10
|
+
['webpage', 'Web Page'],
|
|
11
|
+
['other', 'Other'],
|
|
12
|
+
['standard', 'Standard'],
|
|
13
|
+
['dataset', 'Dataset'],
|
|
14
|
+
['preprint', 'Preprint'],
|
|
15
|
+
];
|
|
4
16
|
exports.fieldConfigMap = {
|
|
5
17
|
'article-journal': new Set([
|
|
6
18
|
'author',
|
|
@@ -54,21 +54,16 @@ const isHeaderCellSelected = (state) => {
|
|
|
54
54
|
}
|
|
55
55
|
return (((_a = state.doc.nodeAt(state.selection.from)) === null || _a === void 0 ? void 0 : _a.type) === transform_1.schema.nodes.table_header);
|
|
56
56
|
};
|
|
57
|
-
const
|
|
58
|
-
primary: {
|
|
59
|
-
|
|
60
|
-
title: 'Ok',
|
|
61
|
-
},
|
|
62
|
-
secondary: {
|
|
63
|
-
action: secondaryAction,
|
|
64
|
-
title: 'Cancel',
|
|
65
|
-
},
|
|
57
|
+
const TableChangeWarningDialog = ({ isOpen, primaryAction, secondaryAction }) => (react_1.default.createElement(style_guide_1.Dialog, { isOpen: isOpen, category: style_guide_1.Category.confirmation, header: "This change can't be tracked", message: "This action won't be marked as chnage. Do you want to continue?", actions: {
|
|
58
|
+
primary: { action: primaryAction, title: 'Ok' },
|
|
59
|
+
secondary: { action: secondaryAction, title: 'Cancel' },
|
|
66
60
|
} }));
|
|
67
61
|
const ContextMenu = ({ view, close, onCancelColumnDialog }) => {
|
|
68
62
|
const runCommand = (command, noTracking) => {
|
|
69
63
|
command(view.state, (tr) => view.dispatch((noTracking && (0, track_changes_plugin_1.skipTracking)(tr)) || tr));
|
|
70
64
|
close();
|
|
71
65
|
};
|
|
66
|
+
const [rowDeleteAction, setRowDeleteAction] = (0, react_1.useState)();
|
|
72
67
|
const [columnAction, setColumnAction] = (0, react_1.useState)();
|
|
73
68
|
const isCellSelectionMerged = (0, prosemirror_tables_1.mergeCells)(view.state);
|
|
74
69
|
const isCellSelectionSplittable = (0, prosemirror_tables_1.splitCell)(view.state);
|
|
@@ -103,7 +98,7 @@ const ContextMenu = ({ view, close, onCancelColumnDialog }) => {
|
|
|
103
98
|
" Insert header row ",
|
|
104
99
|
headerPosition),
|
|
105
100
|
react_1.default.createElement(Separator, null),
|
|
106
|
-
react_1.default.createElement(ActionButton, { onClick: () =>
|
|
101
|
+
react_1.default.createElement(ActionButton, { onClick: () => setRowDeleteAction(() => prosemirror_tables_1.deleteRow) },
|
|
107
102
|
react_1.default.createElement(GrayDeleteIcon, null),
|
|
108
103
|
" Delete",
|
|
109
104
|
isHeaderCellSelected(view.state) ? ' header ' : '',
|
|
@@ -116,7 +111,13 @@ const ContextMenu = ({ view, close, onCancelColumnDialog }) => {
|
|
|
116
111
|
(isCellSelectionMerged || isCellSelectionSplittable) && react_1.default.createElement(Separator, null),
|
|
117
112
|
isCellSelectionMerged && (react_1.default.createElement(ActionButton, { onClick: () => runCommand(prosemirror_tables_1.mergeCells, true) }, "Merge cells")),
|
|
118
113
|
isCellSelectionSplittable && (react_1.default.createElement(ActionButton, { onClick: () => runCommand(prosemirror_tables_1.splitCell, true) }, "Split cells")),
|
|
119
|
-
react_1.default.createElement(
|
|
114
|
+
react_1.default.createElement(TableChangeWarningDialog, { isOpen: !!rowDeleteAction, primaryAction: () => {
|
|
115
|
+
if (rowDeleteAction) {
|
|
116
|
+
runCommand(rowDeleteAction, true);
|
|
117
|
+
setRowDeleteAction(undefined);
|
|
118
|
+
}
|
|
119
|
+
}, secondaryAction: () => setRowDeleteAction(undefined) }),
|
|
120
|
+
react_1.default.createElement(TableChangeWarningDialog, { isOpen: !!columnAction, primaryAction: () => {
|
|
120
121
|
if (columnAction) {
|
|
121
122
|
runCommand(columnAction, true);
|
|
122
123
|
setColumnAction(undefined);
|
package/dist/cjs/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
29
29
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.affiliationLabel = exports.authorLabel = exports.
|
|
32
|
+
exports.affiliationLabel = exports.authorLabel = exports.metadata = exports.getClosestMatch = exports.getNewMatch = exports.searchReplacePluginKey = exports.bibliographyPluginKey = exports.footnotesPluginKey = exports.objectsPluginKey = exports.selectedSuggestionKey = exports.PopperManager = exports.CollabProvider = exports.TypeSelector = exports.OutlineItemIcon = exports.ManuscriptOutline = void 0;
|
|
33
33
|
__exportStar(require("./commands"), exports);
|
|
34
34
|
var ManuscriptOutline_1 = require("./components/outline/ManuscriptOutline");
|
|
35
35
|
Object.defineProperty(exports, "ManuscriptOutline", { enumerable: true, get: function () { return ManuscriptOutline_1.ManuscriptOutline; } });
|
|
@@ -70,7 +70,6 @@ Object.defineProperty(exports, "getNewMatch", { enumerable: true, get: function
|
|
|
70
70
|
Object.defineProperty(exports, "getClosestMatch", { enumerable: true, get: function () { return lib_1.getClosestMatch; } });
|
|
71
71
|
var references_1 = require("./lib/references");
|
|
72
72
|
Object.defineProperty(exports, "metadata", { enumerable: true, get: function () { return references_1.metadata; } });
|
|
73
|
-
Object.defineProperty(exports, "bibliographyItemTypes", { enumerable: true, get: function () { return references_1.bibliographyItemTypes; } });
|
|
74
73
|
var authors_1 = require("./lib/authors");
|
|
75
74
|
Object.defineProperty(exports, "authorLabel", { enumerable: true, get: function () { return authors_1.authorLabel; } });
|
|
76
75
|
Object.defineProperty(exports, "affiliationLabel", { enumerable: true, get: function () { return authors_1.affiliationLabel; } });
|
|
@@ -189,20 +189,17 @@ class ContextMenu {
|
|
|
189
189
|
}
|
|
190
190
|
if (type === transform_1.schema.nodes.list) {
|
|
191
191
|
menu.appendChild(this.createMenuSection((section) => {
|
|
192
|
-
const
|
|
193
|
-
|
|
192
|
+
const attrs = this.node.attrs;
|
|
193
|
+
const listType = (0, transform_1.getListType)(attrs.listStyleType).style;
|
|
194
|
+
if (listType === 'none' || listType === 'disc') {
|
|
194
195
|
section.appendChild(this.createMenuItem('Change to Numbered List', () => {
|
|
195
|
-
|
|
196
|
-
tr.setNodeAttribute(this.getPos(), 'listStyleType', 'order');
|
|
197
|
-
this.view.dispatch(tr);
|
|
196
|
+
this.changeNodeType(null, 'order');
|
|
198
197
|
popper.destroy();
|
|
199
198
|
}));
|
|
200
199
|
}
|
|
201
200
|
else {
|
|
202
201
|
section.appendChild(this.createMenuItem('Change to Bulleted list', () => {
|
|
203
|
-
|
|
204
|
-
tr.setNodeAttribute(this.getPos(), 'listStyleType', 'bullet');
|
|
205
|
-
this.view.dispatch(tr);
|
|
202
|
+
this.changeNodeType(null, 'bullet');
|
|
206
203
|
popper.destroy();
|
|
207
204
|
}));
|
|
208
205
|
}
|
|
@@ -347,6 +344,13 @@ class ContextMenu {
|
|
|
347
344
|
checkNode('pullquote_element');
|
|
348
345
|
return insertable;
|
|
349
346
|
};
|
|
347
|
+
this.changeNodeType = (nodeType, listType) => {
|
|
348
|
+
this.view.dispatch(this.view.state.tr.setNodeMarkup(this.getPos(), nodeType, {
|
|
349
|
+
id: this.node.attrs.id,
|
|
350
|
+
listStyleType: listType,
|
|
351
|
+
}));
|
|
352
|
+
popper.destroy();
|
|
353
|
+
};
|
|
350
354
|
this.deleteNode = (nodeType) => {
|
|
351
355
|
switch (nodeType.name) {
|
|
352
356
|
case 'section_title': {
|
package/dist/cjs/lib/crossref.js
CHANGED
|
@@ -25,6 +25,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.Crossref = void 0;
|
|
28
|
+
const json_schema_1 = require("@manuscripts/json-schema");
|
|
29
|
+
const library_1 = require("@manuscripts/library");
|
|
28
30
|
const BibliographyItemSource_1 = require("../components/references/BibliographyItemSource");
|
|
29
31
|
const search = (query, limit) => {
|
|
30
32
|
const controller = new AbortController();
|
|
@@ -49,10 +51,39 @@ const searchAsync = (params, controller) => __awaiter(void 0, void 0, void 0, fu
|
|
|
49
51
|
const items = data.message.items;
|
|
50
52
|
const total = data.message['total-results'];
|
|
51
53
|
return {
|
|
52
|
-
items,
|
|
54
|
+
items: items.map((i) => parseCSLData((0, library_1.fixCSLData)(i))),
|
|
53
55
|
total,
|
|
54
56
|
};
|
|
55
57
|
});
|
|
58
|
+
const parseCSLData = (data) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return ({
|
|
61
|
+
id: (0, json_schema_1.generateID)(json_schema_1.ObjectTypes.BibliographyItem),
|
|
62
|
+
type: data.type,
|
|
63
|
+
author: (_a = data.author) === null || _a === void 0 ? void 0 : _a.map(json_schema_1.buildBibliographicName),
|
|
64
|
+
issued: (0, json_schema_1.buildBibliographicDate)(data.issued),
|
|
65
|
+
'container-title': data['container-title'],
|
|
66
|
+
DOI: data.DOI,
|
|
67
|
+
volume: data.volume ? String(data.volume) : undefined,
|
|
68
|
+
issue: data.issue ? String(data.issue) : undefined,
|
|
69
|
+
page: data.page,
|
|
70
|
+
title: data.title,
|
|
71
|
+
editor: (_b = data.editor) === null || _b === void 0 ? void 0 : _b.map(json_schema_1.buildBibliographicName),
|
|
72
|
+
edition: data.edition ? String(data.edition) : undefined,
|
|
73
|
+
'collection-title': data['collection-title'],
|
|
74
|
+
'publisher-place': data['publisher-place'],
|
|
75
|
+
publisher: data.publisher,
|
|
76
|
+
event: data.event,
|
|
77
|
+
'event-date': (0, json_schema_1.buildBibliographicDate)(data['event-date']),
|
|
78
|
+
'event-place': data['event-place'],
|
|
79
|
+
URL: data.URL,
|
|
80
|
+
accessed: (0, json_schema_1.buildBibliographicDate)(data.accessed),
|
|
81
|
+
'number-of-pages': data['number-of-pages']
|
|
82
|
+
? String(data['number-of-pages'])
|
|
83
|
+
: undefined,
|
|
84
|
+
locator: data.locator,
|
|
85
|
+
});
|
|
86
|
+
};
|
|
56
87
|
exports.Crossref = {
|
|
57
88
|
id: 'crossref',
|
|
58
89
|
label: 'External sources',
|
|
@@ -1,39 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.
|
|
36
|
-
const core_1 = require("@citation-js/core");
|
|
3
|
+
exports.authors = exports.issuedYear = exports.metadata = void 0;
|
|
37
4
|
const metadata = (item) => {
|
|
38
5
|
return [(0, exports.authors)(item), item['container-title'], (0, exports.issuedYear)(item)]
|
|
39
6
|
.filter(Boolean)
|
|
@@ -65,36 +32,3 @@ const authors = (item) => {
|
|
|
65
32
|
return authors.join(', ');
|
|
66
33
|
};
|
|
67
34
|
exports.authors = authors;
|
|
68
|
-
const loadCitationJsPlugins = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
-
try {
|
|
70
|
-
yield Promise.all([
|
|
71
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-bibtex'))),
|
|
72
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-ris'))),
|
|
73
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-doi'))),
|
|
74
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-csl'))),
|
|
75
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-pubmed'))),
|
|
76
|
-
Promise.resolve().then(() => __importStar(require('@citation-js/plugin-enw'))),
|
|
77
|
-
]);
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
console.error('Failed to load citation plugins:', error);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
const importBibliographyItems = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
-
yield loadCitationJsPlugins();
|
|
85
|
-
const cite = yield core_1.Cite.async(data.trim());
|
|
86
|
-
return cite.data;
|
|
87
|
-
});
|
|
88
|
-
exports.importBibliographyItems = importBibliographyItems;
|
|
89
|
-
exports.bibliographyItemTypes = [
|
|
90
|
-
['article-journal', 'Journal Article'],
|
|
91
|
-
['book', 'Book'],
|
|
92
|
-
['chapter', 'Chapter'],
|
|
93
|
-
['confproc', 'Conference Paper'],
|
|
94
|
-
['thesis', 'Thesis'],
|
|
95
|
-
['webpage', 'Web Page'],
|
|
96
|
-
['other', 'Other'],
|
|
97
|
-
['standard', 'Standard'],
|
|
98
|
-
['dataset', 'Dataset'],
|
|
99
|
-
['preprint', 'Preprint'],
|
|
100
|
-
];
|
package/dist/cjs/lib/utils.js
CHANGED
|
@@ -124,10 +124,12 @@ const cleanItemValues = (item) => {
|
|
|
124
124
|
break;
|
|
125
125
|
case 'author':
|
|
126
126
|
case 'editor':
|
|
127
|
+
cleanedItem[key] = [];
|
|
128
|
+
break;
|
|
127
129
|
case 'issued':
|
|
128
130
|
case 'accessed':
|
|
129
131
|
case 'event-date':
|
|
130
|
-
cleanedItem[key] =
|
|
132
|
+
cleanedItem[key] = {};
|
|
131
133
|
break;
|
|
132
134
|
default:
|
|
133
135
|
cleanedItem[key] = '';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* © 2019 Atypon Systems LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.buildCitations = exports.getLatest = exports.buildDecorations = exports.isBibliographyElement = void 0;
|
|
19
|
+
const prosemirror_view_1 = require("prosemirror-view");
|
|
20
|
+
const isBibliographyElement = (node) => node.type === node.type.schema.nodes.bibliography_element;
|
|
21
|
+
exports.isBibliographyElement = isBibliographyElement;
|
|
22
|
+
const buildDecorations = (state, doc) => {
|
|
23
|
+
const decorations = [];
|
|
24
|
+
let hasMissingItems = false;
|
|
25
|
+
for (const [node, pos] of state.citationNodes) {
|
|
26
|
+
const rids = node.attrs.rids;
|
|
27
|
+
if (rids.length) {
|
|
28
|
+
for (const rid of rids) {
|
|
29
|
+
if (!state.bibliographyItems.has(rid)) {
|
|
30
|
+
decorations.push(prosemirror_view_1.Decoration.node(pos, pos + node.nodeSize, {
|
|
31
|
+
class: 'citation-missing',
|
|
32
|
+
}));
|
|
33
|
+
hasMissingItems = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
decorations.push(prosemirror_view_1.Decoration.node(pos, pos + node.nodeSize, {
|
|
39
|
+
class: 'citation-empty',
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
decorations.push(prosemirror_view_1.Decoration.node(pos, pos + node.nodeSize, {
|
|
43
|
+
version: state.version,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
if (hasMissingItems) {
|
|
47
|
+
doc.descendants((node, pos) => {
|
|
48
|
+
if ((0, exports.isBibliographyElement)(node)) {
|
|
49
|
+
decorations.push(prosemirror_view_1.Decoration.node(pos, pos + node.nodeSize, {
|
|
50
|
+
missing: 'true',
|
|
51
|
+
}));
|
|
52
|
+
decorations.push(prosemirror_view_1.Decoration.widget(pos, () => {
|
|
53
|
+
const el = document.createElement('div');
|
|
54
|
+
el.className = 'bibliography-missing';
|
|
55
|
+
el.textContent = `The bibliography could not be generated, due to a missing library item.`;
|
|
56
|
+
return el;
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
doc.descendants((node, pos) => {
|
|
62
|
+
if ((0, exports.isBibliographyElement)(node)) {
|
|
63
|
+
decorations.push(prosemirror_view_1.Decoration.node(pos, pos + node.nodeSize, {
|
|
64
|
+
version: state.version,
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return decorations;
|
|
69
|
+
};
|
|
70
|
+
exports.buildDecorations = buildDecorations;
|
|
71
|
+
const getLatest = (a, b) => a.updatedAt > b.updatedAt ? a : b;
|
|
72
|
+
exports.getLatest = getLatest;
|
|
73
|
+
const buildCitations = (citations) => citations
|
|
74
|
+
.map((c) => c[0].attrs)
|
|
75
|
+
.map((attrs) => ({
|
|
76
|
+
citationID: attrs.id,
|
|
77
|
+
citationItems: attrs.rids.map((rid) => ({
|
|
78
|
+
id: rid,
|
|
79
|
+
})),
|
|
80
|
+
properties: {
|
|
81
|
+
noteIndex: 0,
|
|
82
|
+
},
|
|
83
|
+
}));
|
|
84
|
+
exports.buildCitations = buildCitations;
|