@manuscripts/body-editor 1.4.23-LEAN-2852-1 → 1.4.24
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/components/outline/DraggableTree.js +2 -4
- package/dist/cjs/components/outline/ManuscriptOutline.js +2 -2
- package/dist/cjs/components/outline/OutlineManuscript.js +2 -2
- package/dist/cjs/configs/editor-views.js +0 -2
- package/dist/cjs/index.js +1 -8
- package/dist/es/components/outline/DraggableTree.js +2 -4
- package/dist/es/components/outline/ManuscriptOutline.js +2 -2
- package/dist/es/components/outline/OutlineManuscript.js +2 -2
- package/dist/es/configs/editor-views.js +0 -2
- package/dist/es/index.js +0 -3
- package/dist/types/components/outline/ManuscriptOutline.d.ts +1 -2
- package/dist/types/components/outline/OutlineManuscript.d.ts +1 -2
- package/dist/types/configs/editor-views.d.ts +0 -1
- package/dist/types/index.d.ts +0 -3
- package/package.json +6 -7
- package/dist/cjs/components/requirements/Checks.js +0 -72
- package/dist/cjs/components/requirements/RequirementsAlert.js +0 -83
- package/dist/cjs/components/requirements/RequirementsProvider.js +0 -143
- package/dist/cjs/components/requirements/Statistics.js +0 -121
- package/dist/cjs/lib/statistics.worker.js +0 -43
- package/dist/cjs/views/title.js +0 -48
- package/dist/cjs/views/title_editable.js +0 -20
- package/dist/es/components/requirements/Checks.js +0 -65
- package/dist/es/components/requirements/RequirementsAlert.js +0 -53
- package/dist/es/components/requirements/RequirementsProvider.js +0 -116
- package/dist/es/components/requirements/Statistics.js +0 -91
- package/dist/es/lib/statistics.worker.js +0 -18
- package/dist/es/views/title.js +0 -44
- package/dist/es/views/title_editable.js +0 -18
- package/dist/types/components/requirements/Checks.d.ts +0 -22
- package/dist/types/components/requirements/RequirementsAlert.d.ts +0 -20
- package/dist/types/components/requirements/RequirementsProvider.d.ts +0 -34
- package/dist/types/components/requirements/Statistics.d.ts +0 -21
- package/dist/types/lib/statistics.worker.d.ts +0 -16
- package/dist/types/views/title.d.ts +0 -24
- package/dist/types/views/title_editable.d.ts +0 -18
|
@@ -33,7 +33,6 @@ const context_menu_1 = require("../../lib/context-menu");
|
|
|
33
33
|
const track_changes_utils_1 = require("../../lib/track-changes-utils");
|
|
34
34
|
const node_type_icons_1 = require("../../node-type-icons");
|
|
35
35
|
const section_title_1 = require("../../views/section_title");
|
|
36
|
-
const RequirementsAlert_1 = require("../requirements/RequirementsAlert");
|
|
37
36
|
const Outline_1 = require("./Outline");
|
|
38
37
|
const isExcluded = (nodeType) => {
|
|
39
38
|
const { nodes } = nodeType.schema;
|
|
@@ -128,7 +127,7 @@ class Tree extends React.Component {
|
|
|
128
127
|
render() {
|
|
129
128
|
const { depth = 0, tree, canDrop, connectDragSource, connectDragPreview, connectDropTarget, isDragging, isOverCurrent, item, view, } = this.props;
|
|
130
129
|
const { open, dragPosition } = this.state;
|
|
131
|
-
const { node,
|
|
130
|
+
const { node, items, isSelected } = tree;
|
|
132
131
|
const isDeletedItem = (0, track_changes_utils_1.isDeleted)(node);
|
|
133
132
|
const isRejectedItem = (0, track_changes_utils_1.isRejectedInsert)(node);
|
|
134
133
|
const mightDrop = item && isOverCurrent && canDrop;
|
|
@@ -147,8 +146,7 @@ class Tree extends React.Component {
|
|
|
147
146
|
alignItems: 'center',
|
|
148
147
|
} },
|
|
149
148
|
React.createElement(Outline_1.OutlineItemIcon, null, (0, node_type_icons_1.nodeTypeIcon)(node.type)))),
|
|
150
|
-
React.createElement(Outline_1.OutlineItemLinkText, { className: `outline-text-${node.type.name} ${isDeletedItem && 'deleted'}` }, this.itemText(node)),
|
|
151
|
-
React.createElement(RequirementsAlert_1.RequirementsAlert, { node: requirementsNode || node }))))))),
|
|
149
|
+
React.createElement(Outline_1.OutlineItemLinkText, { className: `outline-text-${node.type.name} ${isDeletedItem && 'deleted'}` }, this.itemText(node)))))))),
|
|
152
150
|
items.length ? (React.createElement("div", { style: {
|
|
153
151
|
display: open || (0, section_title_1.isSpecialSection)(node) ? '' : 'none',
|
|
154
152
|
} }, items.map((subtree) => (React.createElement(DraggableTree, Object.assign({}, this.props, { key: subtree.node.attrs.id, tree: subtree, view: view, depth: (0, section_title_1.isSpecialSection)(node) ? depth : depth + 1 })))))) : null,
|
|
@@ -49,7 +49,7 @@ const ManuscriptOutline = (props) => {
|
|
|
49
49
|
const debouncedProps = (0, use_debounce_1.useDebounce)(props, 500);
|
|
50
50
|
(0, react_1.useEffect)(() => {
|
|
51
51
|
var _a;
|
|
52
|
-
const { doc, view,
|
|
52
|
+
const { doc, view, manuscript, selected } = debouncedProps;
|
|
53
53
|
if (doc) {
|
|
54
54
|
const { items } = (0, DraggableTree_1.buildTree)({
|
|
55
55
|
node: doc,
|
|
@@ -57,7 +57,7 @@ const ManuscriptOutline = (props) => {
|
|
|
57
57
|
index: 0,
|
|
58
58
|
selected,
|
|
59
59
|
});
|
|
60
|
-
const node = (0, title_editor_1.parse)(title
|
|
60
|
+
const node = (0, title_editor_1.parse)(manuscript.title || '');
|
|
61
61
|
const tree = {
|
|
62
62
|
node,
|
|
63
63
|
requirementsNode: doc,
|
|
@@ -30,12 +30,12 @@ const titleText = (value) => {
|
|
|
30
30
|
});
|
|
31
31
|
return node.textContent;
|
|
32
32
|
};
|
|
33
|
-
const OutlineManuscript = ({ project, manuscript,
|
|
33
|
+
const OutlineManuscript = ({ project, manuscript, }) => (react_1.default.createElement(Outline_1.Outline, null,
|
|
34
34
|
react_1.default.createElement(Outline_1.OutlineItem, { isSelected: false, depth: 0 },
|
|
35
35
|
react_1.default.createElement(Outline_1.OutlineItemLink, { to: `/projects/${project._id}/manuscripts/${manuscript._id}` },
|
|
36
36
|
react_1.default.createElement(Outline_1.OutlineItemArrow, null,
|
|
37
37
|
react_1.default.createElement(Outline_1.StyledTriangleCollapsed, null)),
|
|
38
38
|
react_1.default.createElement(Outline_1.OutlineItemIcon, null,
|
|
39
39
|
react_1.default.createElement(OutlineIconManuscript_1.default, null)),
|
|
40
|
-
react_1.default.createElement(Outline_1.OutlineItemLinkText, { className: 'outline-text-title' }, title
|
|
40
|
+
react_1.default.createElement(Outline_1.OutlineItemLinkText, { className: 'outline-text-title' }, manuscript.title ? (titleText(manuscript.title)) : (react_1.default.createElement(Outline_1.OutlineItemPlaceholder, null, (0, transform_1.nodeTitlePlaceholder)(title_editor_1.schema.nodes.title))))))));
|
|
41
41
|
exports.OutlineManuscript = OutlineManuscript;
|
|
@@ -46,7 +46,6 @@ const pullquote_element_editable_1 = __importDefault(require("../views/pullquote
|
|
|
46
46
|
const section_label_1 = __importDefault(require("../views/section_label"));
|
|
47
47
|
const section_title_editable_1 = __importDefault(require("../views/section_title_editable"));
|
|
48
48
|
const table_element_editable_1 = __importDefault(require("../views/table_element_editable"));
|
|
49
|
-
const title_1 = __importDefault(require("../views/title"));
|
|
50
49
|
const toc_element_editable_1 = __importDefault(require("../views/toc_element_editable"));
|
|
51
50
|
exports.default = (props, dispatch) => {
|
|
52
51
|
return {
|
|
@@ -79,6 +78,5 @@ exports.default = (props, dispatch) => {
|
|
|
79
78
|
table_element: (0, table_element_editable_1.default)(props),
|
|
80
79
|
toc_element: (0, toc_element_editable_1.default)(props),
|
|
81
80
|
meta_section: meta_section_1.default,
|
|
82
|
-
article_title: (0, title_1.default)(props),
|
|
83
81
|
};
|
|
84
82
|
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -32,7 +32,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
32
32
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.ManuscriptsEditor = exports.useEditor = exports.isHighlightComment = exports.isThereSelector = exports.commentScroll = exports.toolbar = exports.PopperManager = exports.getMenus = exports.
|
|
35
|
+
exports.ManuscriptsEditor = exports.useEditor = exports.isHighlightComment = exports.isThereSelector = exports.commentScroll = exports.toolbar = exports.PopperManager = exports.getMenus = exports.ManuscriptToolbar = exports.OutlineManuscript = exports.OutlineItemIcon = exports.ManuscriptOutline = exports.DialogNames = exports.DialogController = void 0;
|
|
36
36
|
__exportStar(require("./citation-sources"), exports);
|
|
37
37
|
__exportStar(require("./commands"), exports);
|
|
38
38
|
__exportStar(require("./components/application-menu"), exports);
|
|
@@ -47,13 +47,6 @@ var OutlineManuscript_1 = require("./components/outline/OutlineManuscript");
|
|
|
47
47
|
Object.defineProperty(exports, "OutlineManuscript", { enumerable: true, get: function () { return OutlineManuscript_1.OutlineManuscript; } });
|
|
48
48
|
var ManuscriptToolbar_1 = require("./components/toolbar/ManuscriptToolbar");
|
|
49
49
|
Object.defineProperty(exports, "ManuscriptToolbar", { enumerable: true, get: function () { return ManuscriptToolbar_1.ManuscriptToolbar; } });
|
|
50
|
-
var Checks_1 = require("./components/requirements/Checks");
|
|
51
|
-
Object.defineProperty(exports, "Checks", { enumerable: true, get: function () { return Checks_1.Checks; } });
|
|
52
|
-
var Statistics_1 = require("./components/requirements/Statistics");
|
|
53
|
-
Object.defineProperty(exports, "Statistics", { enumerable: true, get: function () { return Statistics_1.Statistics; } });
|
|
54
|
-
var RequirementsProvider_1 = require("./components/requirements/RequirementsProvider");
|
|
55
|
-
Object.defineProperty(exports, "RequirementsContext", { enumerable: true, get: function () { return RequirementsProvider_1.RequirementsContext; } });
|
|
56
|
-
Object.defineProperty(exports, "RequirementsProvider", { enumerable: true, get: function () { return RequirementsProvider_1.RequirementsProvider; } });
|
|
57
50
|
var menus_1 = require("./menus");
|
|
58
51
|
Object.defineProperty(exports, "getMenus", { enumerable: true, get: function () { return __importDefault(menus_1).default; } });
|
|
59
52
|
var popper_1 = require("./lib/popper");
|
|
@@ -7,7 +7,6 @@ import { ContextMenu } from '../../lib/context-menu';
|
|
|
7
7
|
import { isDeleted, isRejectedInsert } from '../../lib/track-changes-utils';
|
|
8
8
|
import { nodeTypeIcon } from '../../node-type-icons';
|
|
9
9
|
import { isSpecialSection } from '../../views/section_title';
|
|
10
|
-
import { RequirementsAlert } from '../requirements/RequirementsAlert';
|
|
11
10
|
import { Outline, OutlineDropPreview, OutlineItem, OutlineItemArrow, OutlineItemIcon, OutlineItemLink, OutlineItemLinkText, OutlineItemNoArrow, OutlineItemPlaceholder, StyledTriangleCollapsed, StyledTriangleExpanded, } from './Outline';
|
|
12
11
|
const isExcluded = (nodeType) => {
|
|
13
12
|
const { nodes } = nodeType.schema;
|
|
@@ -101,7 +100,7 @@ class Tree extends React.Component {
|
|
|
101
100
|
render() {
|
|
102
101
|
const { depth = 0, tree, canDrop, connectDragSource, connectDragPreview, connectDropTarget, isDragging, isOverCurrent, item, view, } = this.props;
|
|
103
102
|
const { open, dragPosition } = this.state;
|
|
104
|
-
const { node,
|
|
103
|
+
const { node, items, isSelected } = tree;
|
|
105
104
|
const isDeletedItem = isDeleted(node);
|
|
106
105
|
const isRejectedItem = isRejectedInsert(node);
|
|
107
106
|
const mightDrop = item && isOverCurrent && canDrop;
|
|
@@ -120,8 +119,7 @@ class Tree extends React.Component {
|
|
|
120
119
|
alignItems: 'center',
|
|
121
120
|
} },
|
|
122
121
|
React.createElement(OutlineItemIcon, null, nodeTypeIcon(node.type)))),
|
|
123
|
-
React.createElement(OutlineItemLinkText, { className: `outline-text-${node.type.name} ${isDeletedItem && 'deleted'}` }, this.itemText(node)),
|
|
124
|
-
React.createElement(RequirementsAlert, { node: requirementsNode || node }))))))),
|
|
122
|
+
React.createElement(OutlineItemLinkText, { className: `outline-text-${node.type.name} ${isDeletedItem && 'deleted'}` }, this.itemText(node)))))))),
|
|
125
123
|
items.length ? (React.createElement("div", { style: {
|
|
126
124
|
display: open || isSpecialSection(node) ? '' : 'none',
|
|
127
125
|
} }, items.map((subtree) => (React.createElement(DraggableTree, Object.assign({}, this.props, { key: subtree.node.attrs.id, tree: subtree, view: view, depth: isSpecialSection(node) ? depth : depth + 1 })))))) : null,
|
|
@@ -23,7 +23,7 @@ export const ManuscriptOutline = (props) => {
|
|
|
23
23
|
const debouncedProps = useDebounce(props, 500);
|
|
24
24
|
useEffect(() => {
|
|
25
25
|
var _a;
|
|
26
|
-
const { doc, view,
|
|
26
|
+
const { doc, view, manuscript, selected } = debouncedProps;
|
|
27
27
|
if (doc) {
|
|
28
28
|
const { items } = buildTree({
|
|
29
29
|
node: doc,
|
|
@@ -31,7 +31,7 @@ export const ManuscriptOutline = (props) => {
|
|
|
31
31
|
index: 0,
|
|
32
32
|
selected,
|
|
33
33
|
});
|
|
34
|
-
const node = parse(title
|
|
34
|
+
const node = parse(manuscript.title || '');
|
|
35
35
|
const tree = {
|
|
36
36
|
node,
|
|
37
37
|
requirementsNode: doc,
|
|
@@ -24,11 +24,11 @@ const titleText = (value) => {
|
|
|
24
24
|
});
|
|
25
25
|
return node.textContent;
|
|
26
26
|
};
|
|
27
|
-
export const OutlineManuscript = ({ project, manuscript,
|
|
27
|
+
export const OutlineManuscript = ({ project, manuscript, }) => (React.createElement(Outline, null,
|
|
28
28
|
React.createElement(OutlineItem, { isSelected: false, depth: 0 },
|
|
29
29
|
React.createElement(OutlineItemLink, { to: `/projects/${project._id}/manuscripts/${manuscript._id}` },
|
|
30
30
|
React.createElement(OutlineItemArrow, null,
|
|
31
31
|
React.createElement(StyledTriangleCollapsed, null)),
|
|
32
32
|
React.createElement(OutlineItemIcon, null,
|
|
33
33
|
React.createElement(OutlineIconManuscript, null)),
|
|
34
|
-
React.createElement(OutlineItemLinkText, { className: 'outline-text-title' }, title
|
|
34
|
+
React.createElement(OutlineItemLinkText, { className: 'outline-text-title' }, manuscript.title ? (titleText(manuscript.title)) : (React.createElement(OutlineItemPlaceholder, null, nodeTitlePlaceholder(schema.nodes.title))))))));
|
|
@@ -41,7 +41,6 @@ import pullquoteElement from '../views/pullquote_element_editable';
|
|
|
41
41
|
import sectionLabel from '../views/section_label';
|
|
42
42
|
import sectionTitle from '../views/section_title_editable';
|
|
43
43
|
import tableElement from '../views/table_element_editable';
|
|
44
|
-
import articleTitle from '../views/title';
|
|
45
44
|
import tocElement from '../views/toc_element_editable';
|
|
46
45
|
export default (props, dispatch) => {
|
|
47
46
|
return {
|
|
@@ -74,6 +73,5 @@ export default (props, dispatch) => {
|
|
|
74
73
|
table_element: tableElement(props),
|
|
75
74
|
toc_element: tocElement(props),
|
|
76
75
|
meta_section: metaSection,
|
|
77
|
-
article_title: articleTitle(props),
|
|
78
76
|
};
|
|
79
77
|
};
|
package/dist/es/index.js
CHANGED
|
@@ -21,9 +21,6 @@ export { ManuscriptOutline } from './components/outline/ManuscriptOutline';
|
|
|
21
21
|
export { OutlineItemIcon } from './components/outline/Outline';
|
|
22
22
|
export { OutlineManuscript } from './components/outline/OutlineManuscript';
|
|
23
23
|
export { ManuscriptToolbar, } from './components/toolbar/ManuscriptToolbar';
|
|
24
|
-
export { Checks } from './components/requirements/Checks';
|
|
25
|
-
export { Statistics } from './components/requirements/Statistics';
|
|
26
|
-
export { RequirementsContext, RequirementsProvider, } from './components/requirements/RequirementsProvider';
|
|
27
24
|
export { default as getMenus } from './menus';
|
|
28
25
|
export { PopperManager } from './lib/popper';
|
|
29
26
|
export { toolbar } from './toolbar';
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Manuscript
|
|
16
|
+
import { Manuscript } from '@manuscripts/json-schema';
|
|
17
17
|
import { Capabilities } from '@manuscripts/style-guide';
|
|
18
18
|
import { ManuscriptEditorView, ManuscriptNode, Selected } from '@manuscripts/transform';
|
|
19
19
|
import React from 'react';
|
|
20
20
|
interface Props {
|
|
21
21
|
manuscript: Manuscript;
|
|
22
|
-
title: Title;
|
|
23
22
|
selected: Selected | null;
|
|
24
23
|
doc: ManuscriptNode | null;
|
|
25
24
|
capabilities?: Capabilities;
|
|
@@ -13,12 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Manuscript, Project
|
|
16
|
+
import { Manuscript, Project } from '@manuscripts/json-schema';
|
|
17
17
|
import React from 'react';
|
|
18
18
|
interface Props {
|
|
19
19
|
project: Project;
|
|
20
20
|
manuscript: Manuscript;
|
|
21
|
-
title: Title;
|
|
22
21
|
}
|
|
23
22
|
export declare const OutlineManuscript: React.FunctionComponent<Props>;
|
|
24
23
|
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -21,9 +21,6 @@ export { ManuscriptOutline } from './components/outline/ManuscriptOutline';
|
|
|
21
21
|
export { OutlineItemIcon } from './components/outline/Outline';
|
|
22
22
|
export { OutlineManuscript } from './components/outline/OutlineManuscript';
|
|
23
23
|
export { ManuscriptToolbar, ToolbarButtonConfig, } from './components/toolbar/ManuscriptToolbar';
|
|
24
|
-
export { Checks } from './components/requirements/Checks';
|
|
25
|
-
export { Statistics } from './components/requirements/Statistics';
|
|
26
|
-
export { RequirementsAlerts, RequirementsContext, RequirementsProvider, } from './components/requirements/RequirementsProvider';
|
|
27
24
|
export { default as getMenus } from './menus';
|
|
28
25
|
export { ChangeReceiver } from './types';
|
|
29
26
|
export { PopperManager } from './lib/popper';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/body-editor",
|
|
3
3
|
"description": "Prosemirror components for editing and viewing manuscripts",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.24",
|
|
5
5
|
"repository": "github:Atypon-OpenSource/manuscripts-body-editor",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"main": "dist/cjs",
|
|
@@ -29,16 +29,15 @@
|
|
|
29
29
|
"@iarna/word-count": "^1.1.2",
|
|
30
30
|
"@manuscripts/assets": "^0.6.4",
|
|
31
31
|
"@manuscripts/comment-editor": "^1.0.3",
|
|
32
|
-
"@manuscripts/json-schema": "2.2.0
|
|
33
|
-
"@manuscripts/library": "1.1.12
|
|
34
|
-
"@manuscripts/style-guide": "1.3.
|
|
32
|
+
"@manuscripts/json-schema": "^2.2.0",
|
|
33
|
+
"@manuscripts/library": "^1.1.12",
|
|
34
|
+
"@manuscripts/style-guide": "^1.3.6",
|
|
35
35
|
"@manuscripts/title-editor": "^1.1.0",
|
|
36
36
|
"@manuscripts/track-changes-plugin": "^1.7.2",
|
|
37
|
-
"@manuscripts/transform": "1.4.6
|
|
37
|
+
"@manuscripts/transform": "^1.4.6",
|
|
38
38
|
"astrocite-eutils": "^0.16.4",
|
|
39
39
|
"axios": "^1.2.2",
|
|
40
40
|
"codemirror": "^5.58.1",
|
|
41
|
-
"comlink": "^4.3.0",
|
|
42
41
|
"dompurify": "^2.4.1",
|
|
43
42
|
"formik": "^2.2.9",
|
|
44
43
|
"grapheme-splitter": "^1.0.4",
|
|
@@ -146,4 +145,4 @@
|
|
|
146
145
|
"resolutions": {
|
|
147
146
|
"@types/react": "^17.0.2"
|
|
148
147
|
}
|
|
149
|
-
}
|
|
148
|
+
}
|
|
@@ -1,72 +0,0 @@
|
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.Checks = void 0;
|
|
22
|
-
const AttentionOrange_1 = __importDefault(require("@manuscripts/assets/react/AttentionOrange"));
|
|
23
|
-
const SuccessGreen_1 = __importDefault(require("@manuscripts/assets/react/SuccessGreen"));
|
|
24
|
-
const transform_1 = require("@manuscripts/transform");
|
|
25
|
-
const react_1 = __importDefault(require("react"));
|
|
26
|
-
const styled_components_1 = __importDefault(require("styled-components"));
|
|
27
|
-
const node_type_icons_1 = require("../../node-type-icons");
|
|
28
|
-
const Outline_1 = require("../outline/Outline");
|
|
29
|
-
const IconContainer = styled_components_1.default.div `
|
|
30
|
-
display: inline-flex;
|
|
31
|
-
align-items: center;
|
|
32
|
-
width: ${(props) => props.theme.grid.unit * 5}px;
|
|
33
|
-
margin-right: ${(props) => props.theme.grid.unit}px;
|
|
34
|
-
`;
|
|
35
|
-
const CheckContainer = styled_components_1.default.div `
|
|
36
|
-
display: flex;
|
|
37
|
-
align-items: center;
|
|
38
|
-
margin: ${(props) => props.theme.grid.unit * 2}px 0;
|
|
39
|
-
padding-left: ${(props) => props.theme.grid.unit * 4}px;
|
|
40
|
-
|
|
41
|
-
&:not(:last-child) {
|
|
42
|
-
margin-bottom: 8px;
|
|
43
|
-
}
|
|
44
|
-
`;
|
|
45
|
-
const Check = ({ message, passed }) => (react_1.default.createElement(CheckContainer, null,
|
|
46
|
-
react_1.default.createElement(IconContainer, null, passed ? (react_1.default.createElement(SuccessGreen_1.default, { width: 16, height: 16 })) : (react_1.default.createElement(AttentionOrange_1.default, { width: 16, height: 16 }))),
|
|
47
|
-
message));
|
|
48
|
-
const Header = styled_components_1.default.div `
|
|
49
|
-
display: flex;
|
|
50
|
-
align-items: center;
|
|
51
|
-
white-space: nowrap;
|
|
52
|
-
overflow: hidden;
|
|
53
|
-
text-overflow: ellipsis;
|
|
54
|
-
margin-bottom: 4px;
|
|
55
|
-
`;
|
|
56
|
-
const nodeText = (node) => {
|
|
57
|
-
const text = (0, transform_1.nodeTitle)(node);
|
|
58
|
-
return text ? text.trim() : (0, transform_1.nodeTitlePlaceholder)(node.type);
|
|
59
|
-
};
|
|
60
|
-
const Checks = ({ node, alerts }) => {
|
|
61
|
-
const icon = (0, node_type_icons_1.nodeTypeIcon)(node.type);
|
|
62
|
-
const text = nodeText(node);
|
|
63
|
-
return (react_1.default.createElement(Container, null,
|
|
64
|
-
icon && (react_1.default.createElement(Header, null,
|
|
65
|
-
react_1.default.createElement(Outline_1.OutlineItemIcon, null, icon),
|
|
66
|
-
text)),
|
|
67
|
-
Object.values(alerts).map((alert, index) => (react_1.default.createElement(Check, { message: alert.message, passed: alert.passed, key: index })))));
|
|
68
|
-
};
|
|
69
|
-
exports.Checks = Checks;
|
|
70
|
-
const Container = styled_components_1.default.div `
|
|
71
|
-
margin-bottom: 16px;
|
|
72
|
-
`;
|
|
@@ -1,83 +0,0 @@
|
|
|
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
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
-
};
|
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.RequirementsAlert = void 0;
|
|
54
|
-
const AttentionOrange_1 = __importDefault(require("@manuscripts/assets/react/AttentionOrange"));
|
|
55
|
-
const style_guide_1 = require("@manuscripts/style-guide");
|
|
56
|
-
const transform_1 = require("@manuscripts/transform");
|
|
57
|
-
const react_1 = __importStar(require("react"));
|
|
58
|
-
const RequirementsProvider_1 = require("./RequirementsProvider");
|
|
59
|
-
const RequirementsAlert = ({ node, }) => {
|
|
60
|
-
const [items, setItems] = (0, react_1.useState)();
|
|
61
|
-
const validateRequirements = (0, react_1.useContext)(RequirementsProvider_1.RequirementsContext);
|
|
62
|
-
(0, react_1.useEffect)(() => {
|
|
63
|
-
const timer = setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
|
-
if ((0, transform_1.isNodeType)(node, 'manuscript') ||
|
|
65
|
-
(0, transform_1.isNodeType)(node, 'section')) {
|
|
66
|
-
const requirements = yield validateRequirements(node);
|
|
67
|
-
const items = Object.values(requirements)
|
|
68
|
-
.filter((requirement) => !requirement.passed)
|
|
69
|
-
.map((requirement) => requirement.message);
|
|
70
|
-
setItems(items);
|
|
71
|
-
}
|
|
72
|
-
}), 250);
|
|
73
|
-
return () => {
|
|
74
|
-
clearTimeout(timer);
|
|
75
|
-
};
|
|
76
|
-
}, [validateRequirements, node]);
|
|
77
|
-
if (items && items.length) {
|
|
78
|
-
return (react_1.default.createElement(style_guide_1.Tip, { placement: 'right', title: items.join('. ') },
|
|
79
|
-
react_1.default.createElement(AttentionOrange_1.default, { height: '1em' })));
|
|
80
|
-
}
|
|
81
|
-
return null;
|
|
82
|
-
};
|
|
83
|
-
exports.RequirementsAlert = RequirementsAlert;
|
|
@@ -1,143 +0,0 @@
|
|
|
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
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.RequirementsProvider = exports.RequirementsContext = void 0;
|
|
51
|
-
const transform_1 = require("@manuscripts/transform");
|
|
52
|
-
const Comlink = __importStar(require("comlink"));
|
|
53
|
-
const react_1 = __importStar(require("react"));
|
|
54
|
-
const statistics_1 = require("../../lib/statistics");
|
|
55
|
-
const StatisticsWorker = Comlink.wrap(new Worker('../../lib/statistics.worker', { type: 'module' }));
|
|
56
|
-
exports.RequirementsContext = (0, react_1.createContext)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
-
throw new Error('RequirementsProvider is not mounted');
|
|
58
|
-
}));
|
|
59
|
-
const RequirementsProvider = ({ modelMap, children }) => {
|
|
60
|
-
const getActiveRequirementCount = (id) => {
|
|
61
|
-
if (!id) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
const requirement = modelMap.get(id);
|
|
65
|
-
if (!requirement) {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
if (requirement.ignored) {
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
return requirement.count;
|
|
72
|
-
};
|
|
73
|
-
const buildRequirementsAlerts = (node, statistics) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
-
const output = {};
|
|
75
|
-
const { id } = node.attrs;
|
|
76
|
-
if (!id) {
|
|
77
|
-
return output;
|
|
78
|
-
}
|
|
79
|
-
const model = modelMap.get(id);
|
|
80
|
-
if (!model) {
|
|
81
|
-
return output;
|
|
82
|
-
}
|
|
83
|
-
const requirements = {
|
|
84
|
-
words: {
|
|
85
|
-
minimum: getActiveRequirementCount(model.minWordCountRequirement),
|
|
86
|
-
maximum: getActiveRequirementCount(model.maxWordCountRequirement),
|
|
87
|
-
},
|
|
88
|
-
characters: {
|
|
89
|
-
minimum: getActiveRequirementCount(model.minCharacterCountRequirement),
|
|
90
|
-
maximum: getActiveRequirementCount(model.maxCharacterCountRequirement),
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
const hasWordsRequirement = requirements.words.maximum || requirements.words.minimum;
|
|
94
|
-
const hasCharactersRequirement = requirements.characters.maximum || requirements.characters.minimum;
|
|
95
|
-
const hasAnyRequirement = hasWordsRequirement || hasCharactersRequirement;
|
|
96
|
-
if (hasAnyRequirement) {
|
|
97
|
-
const nodeTypeName = transform_1.nodeNames.get(node.type);
|
|
98
|
-
const nodeName = nodeTypeName
|
|
99
|
-
? nodeTypeName.toLowerCase()
|
|
100
|
-
: node.type.name;
|
|
101
|
-
const text = statistics ? statistics.text : (0, statistics_1.buildText)(node);
|
|
102
|
-
if (hasWordsRequirement) {
|
|
103
|
-
const count = statistics
|
|
104
|
-
? statistics.words
|
|
105
|
-
: yield StatisticsWorker.countWords(text);
|
|
106
|
-
const { maximum, minimum } = requirements.words;
|
|
107
|
-
if (maximum !== undefined) {
|
|
108
|
-
output.words_maximum = {
|
|
109
|
-
message: `The ${nodeName} should have a maximum of ${maximum.toLocaleString()} words`,
|
|
110
|
-
passed: count <= maximum,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
if (minimum !== undefined) {
|
|
114
|
-
output.words_minimum = {
|
|
115
|
-
message: `The ${nodeName} should have a minimum of ${minimum.toLocaleString()} words`,
|
|
116
|
-
passed: count >= minimum,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (hasCharactersRequirement) {
|
|
121
|
-
const count = statistics
|
|
122
|
-
? statistics.characters
|
|
123
|
-
: yield StatisticsWorker.countCharacters(text);
|
|
124
|
-
const { maximum, minimum } = requirements.characters;
|
|
125
|
-
if (maximum !== undefined) {
|
|
126
|
-
output.characters_maximum = {
|
|
127
|
-
message: `The ${nodeName} should have a maximum of ${maximum.toLocaleString()} characters`,
|
|
128
|
-
passed: count <= maximum,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
if (minimum !== undefined) {
|
|
132
|
-
output.characters_minimum = {
|
|
133
|
-
message: `The ${nodeName} should have a minimum of ${minimum.toLocaleString()} characters`,
|
|
134
|
-
passed: count >= minimum,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return output;
|
|
140
|
-
});
|
|
141
|
-
return (react_1.default.createElement(exports.RequirementsContext.Provider, { value: buildRequirementsAlerts }, children));
|
|
142
|
-
};
|
|
143
|
-
exports.RequirementsProvider = RequirementsProvider;
|