@manuscripts/transform 3.0.17 → 3.0.19

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.
@@ -22,9 +22,27 @@ const createArticleNode = (attrs) => {
22
22
  const title = schema_1.schema.nodes.title.createChecked({
23
23
  id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.title),
24
24
  });
25
- if (!attrs.id) {
26
- throw new Error('Manuscript ID is missing');
27
- }
28
- return schema_1.schema.nodes.manuscript.createAndFill(attrs, title);
25
+ const abstracts = schema_1.schema.nodes.abstracts.createChecked({
26
+ id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.abstracts),
27
+ });
28
+ const paragraph = schema_1.schema.nodes.paragraph.createChecked({
29
+ id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.paragraph),
30
+ });
31
+ const body = schema_1.schema.nodes.body.createChecked({
32
+ id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.body),
33
+ }, paragraph);
34
+ const backmatter = schema_1.schema.nodes.backmatter.createChecked({
35
+ id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.backmatter),
36
+ });
37
+ const comments = schema_1.schema.nodes.comments.createChecked({
38
+ id: (0, transformer_1.generateNodeID)(schema_1.schema.nodes.comments),
39
+ });
40
+ return schema_1.schema.nodes.manuscript.createChecked(attrs, [
41
+ title,
42
+ abstracts,
43
+ body,
44
+ backmatter,
45
+ comments,
46
+ ]);
29
47
  };
30
48
  exports.createArticleNode = createArticleNode;
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.fixTables = exports.orderTableFootnote = exports.moveReferencesToBackmatter = exports.createSupplementaryMaterialsSection = exports.createKeywordsSection = exports.moveCaptionsToEnd = exports.createBackmatter = exports.createAbstracts = exports.createBody = exports.createBoxedElementSection = exports.moveAbstracts = exports.moveAffiliations = exports.moveContributors = exports.moveAwards = exports.moveAuthorNotes = exports.moveTitle = exports.ensureSection = void 0;
18
+ exports.fixTables = exports.orderTableFootnote = exports.moveReferencesToBackmatter = exports.createSupplementaryMaterialsSection = exports.createKeywordsSection = exports.moveCaptionsToEnd = exports.createBackmatter = exports.createAbstracts = exports.createBody = exports.createBoxedElementSection = exports.moveAbstracts = exports.moveAffiliations = exports.moveContributors = exports.moveAwards = exports.moveAuthorNotes = exports.moveTitle = void 0;
19
19
  const deafults_1 = require("../../lib/deafults");
20
20
  const section_group_type_1 = require("../../lib/section-group-type");
21
21
  const transformer_1 = require("../../transformer");
@@ -30,29 +30,6 @@ const createSectionGroup = (type, createElement) => {
30
30
  sec.appendChild(title);
31
31
  return sec;
32
32
  };
33
- const ensureSection = (body, createElement) => {
34
- let section;
35
- const element = body.firstElementChild;
36
- if (element && element.tagName === 'sec') {
37
- section = element;
38
- }
39
- else {
40
- section = createElement('sec');
41
- body.insertBefore(section, body.firstChild);
42
- }
43
- body.childNodes.forEach((child) => {
44
- if (child.nodeType === Node.ELEMENT_NODE) {
45
- const element = child;
46
- if (element.tagName !== 'sec') {
47
- section.appendChild(element);
48
- }
49
- else {
50
- section = element;
51
- }
52
- }
53
- });
54
- };
55
- exports.ensureSection = ensureSection;
56
33
  const moveTitle = (front, createElement) => {
57
34
  var _a, _b;
58
35
  let title = front.querySelector('article-meta > title-group > article-title');
@@ -116,8 +93,12 @@ exports.moveAbstracts = moveAbstracts;
116
93
  const createBoxedElementSection = (body, createElement) => {
117
94
  const boxedTexts = body.querySelectorAll('boxed-text');
118
95
  for (const boxedText of boxedTexts) {
96
+ const boxElementId = boxedText.getAttribute('id');
119
97
  const boxElementSec = createElement('sec');
120
98
  boxElementSec.setAttribute('sec-type', 'box-element');
99
+ if (boxElementId) {
100
+ boxElementSec.setAttribute('id', boxElementId);
101
+ }
121
102
  const title = createElement('title');
122
103
  title.textContent = 'BoxElement';
123
104
  boxElementSec.append(title);
@@ -135,6 +116,8 @@ const createBoxedElementSection = (body, createElement) => {
135
116
  exports.createBoxedElementSection = createBoxedElementSection;
136
117
  const createBody = (doc, body, createElement) => {
137
118
  const group = createSectionGroup(section_group_type_1.bodyType, createElement);
119
+ const paragraphs = doc.querySelectorAll('body > p');
120
+ group.append(...paragraphs);
138
121
  const sections = doc.querySelectorAll('body > sec:not([sec-type="backmatter"]), body > sec:not([sec-type])');
139
122
  sections.forEach((section) => {
140
123
  removeNodeFromParent(section);
@@ -37,7 +37,6 @@ const processJATS = (doc) => {
37
37
  if (!body) {
38
38
  return;
39
39
  }
40
- (0, jats_transformations_1.ensureSection)(body, createElement);
41
40
  (0, jats_transformations_1.moveCaptionsToEnd)(body);
42
41
  (0, jats_transformations_1.createBoxedElementSection)(body, createElement);
43
42
  (0, jats_transformations_1.createBody)(doc, body, createElement);
@@ -17,7 +17,7 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.body = void 0;
19
19
  exports.body = {
20
- content: 'sections*',
20
+ content: 'element* sections*',
21
21
  atom: true,
22
22
  attrs: {
23
23
  id: { default: '' },
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "3.0.17";
4
+ exports.VERSION = "3.0.19";
@@ -19,8 +19,26 @@ export const createArticleNode = (attrs) => {
19
19
  const title = schema.nodes.title.createChecked({
20
20
  id: generateNodeID(schema.nodes.title),
21
21
  });
22
- if (!attrs.id) {
23
- throw new Error('Manuscript ID is missing');
24
- }
25
- return schema.nodes.manuscript.createAndFill(attrs, title);
22
+ const abstracts = schema.nodes.abstracts.createChecked({
23
+ id: generateNodeID(schema.nodes.abstracts),
24
+ });
25
+ const paragraph = schema.nodes.paragraph.createChecked({
26
+ id: generateNodeID(schema.nodes.paragraph),
27
+ });
28
+ const body = schema.nodes.body.createChecked({
29
+ id: generateNodeID(schema.nodes.body),
30
+ }, paragraph);
31
+ const backmatter = schema.nodes.backmatter.createChecked({
32
+ id: generateNodeID(schema.nodes.backmatter),
33
+ });
34
+ const comments = schema.nodes.comments.createChecked({
35
+ id: generateNodeID(schema.nodes.comments),
36
+ });
37
+ return schema.nodes.manuscript.createChecked(attrs, [
38
+ title,
39
+ abstracts,
40
+ body,
41
+ backmatter,
42
+ comments,
43
+ ]);
26
44
  };
@@ -27,28 +27,6 @@ const createSectionGroup = (type, createElement) => {
27
27
  sec.appendChild(title);
28
28
  return sec;
29
29
  };
30
- export const ensureSection = (body, createElement) => {
31
- let section;
32
- const element = body.firstElementChild;
33
- if (element && element.tagName === 'sec') {
34
- section = element;
35
- }
36
- else {
37
- section = createElement('sec');
38
- body.insertBefore(section, body.firstChild);
39
- }
40
- body.childNodes.forEach((child) => {
41
- if (child.nodeType === Node.ELEMENT_NODE) {
42
- const element = child;
43
- if (element.tagName !== 'sec') {
44
- section.appendChild(element);
45
- }
46
- else {
47
- section = element;
48
- }
49
- }
50
- });
51
- };
52
30
  export const moveTitle = (front, createElement) => {
53
31
  var _a, _b;
54
32
  let title = front.querySelector('article-meta > title-group > article-title');
@@ -106,8 +84,12 @@ export const moveAbstracts = (doc, group, createElement) => {
106
84
  export const createBoxedElementSection = (body, createElement) => {
107
85
  const boxedTexts = body.querySelectorAll('boxed-text');
108
86
  for (const boxedText of boxedTexts) {
87
+ const boxElementId = boxedText.getAttribute('id');
109
88
  const boxElementSec = createElement('sec');
110
89
  boxElementSec.setAttribute('sec-type', 'box-element');
90
+ if (boxElementId) {
91
+ boxElementSec.setAttribute('id', boxElementId);
92
+ }
111
93
  const title = createElement('title');
112
94
  title.textContent = 'BoxElement';
113
95
  boxElementSec.append(title);
@@ -124,6 +106,8 @@ export const createBoxedElementSection = (body, createElement) => {
124
106
  };
125
107
  export const createBody = (doc, body, createElement) => {
126
108
  const group = createSectionGroup(bodyType, createElement);
109
+ const paragraphs = doc.querySelectorAll('body > p');
110
+ group.append(...paragraphs);
127
111
  const sections = doc.querySelectorAll('body > sec:not([sec-type="backmatter"]), body > sec:not([sec-type])');
128
112
  sections.forEach((section) => {
129
113
  removeNodeFromParent(section);
@@ -17,7 +17,7 @@ import { markComments } from './jats-comments';
17
17
  import { jatsDOMParser } from './jats-dom-parser';
18
18
  import { parseJournal } from './jats-journal-meta-parser';
19
19
  import { updateDocumentIDs } from './jats-parser-utils';
20
- import { createAbstracts, createBackmatter, createBody, createBoxedElementSection, createKeywordsSection, createSupplementaryMaterialsSection, ensureSection, fixTables, moveAffiliations, moveAuthorNotes, moveAwards, moveCaptionsToEnd, moveContributors, moveReferencesToBackmatter, moveTitle, orderTableFootnote, } from './jats-transformations';
20
+ import { createAbstracts, createBackmatter, createBody, createBoxedElementSection, createKeywordsSection, createSupplementaryMaterialsSection, fixTables, moveAffiliations, moveAuthorNotes, moveAwards, moveCaptionsToEnd, moveContributors, moveReferencesToBackmatter, moveTitle, orderTableFootnote, } from './jats-transformations';
21
21
  const processJATS = (doc) => {
22
22
  const createElement = createElementFn(doc);
23
23
  markComments(doc);
@@ -34,7 +34,6 @@ const processJATS = (doc) => {
34
34
  if (!body) {
35
35
  return;
36
36
  }
37
- ensureSection(body, createElement);
38
37
  moveCaptionsToEnd(body);
39
38
  createBoxedElementSection(body, createElement);
40
39
  createBody(doc, body, createElement);
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export const body = {
17
- content: 'sections*',
17
+ content: 'element* sections*',
18
18
  atom: true,
19
19
  attrs: {
20
20
  id: { default: '' },
@@ -1 +1 @@
1
- export const VERSION = "3.0.17";
1
+ export const VERSION = "3.0.19";
@@ -13,5 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { ManuscriptAttrs } from '../../schema';
17
- export declare const createArticleNode: (attrs: Partial<ManuscriptAttrs>) => import("prosemirror-model").Node;
16
+ import { ManuscriptAttrs, ManuscriptNode } from '../../schema';
17
+ export declare const createArticleNode: (attrs: Partial<ManuscriptAttrs> & {
18
+ id: string;
19
+ }) => ManuscriptNode;
@@ -14,7 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export type CreateElement = (tagName: string) => HTMLElement;
17
- export declare const ensureSection: (body: Element, createElement: CreateElement) => void;
18
17
  export declare const moveTitle: (front: Element, createElement: CreateElement) => void;
19
18
  export declare const moveAuthorNotes: (front: Element, createElement: CreateElement) => void;
20
19
  export declare const moveAwards: (front: Element) => void;
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export declare const TABLE_CELL_STYLES: readonly ["backgroundColor", "border-top", "border-right", "border-bottom", "border-left", "verticalAlign", "textAlign"];
17
- export type TableCellStyleKey = (typeof TABLE_CELL_STYLES)[number];
17
+ export type TableCellStyleKey = typeof TABLE_CELL_STYLES[number];
18
18
  export declare const serializeTableCellStyles: (styles: {
19
19
  backgroundColor?: string | null | undefined;
20
20
  "border-top"?: string | null | undefined;
@@ -1 +1 @@
1
- export declare const VERSION = "3.0.17";
1
+ export declare const VERSION = "3.0.19";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/transform",
3
3
  "description": "ProseMirror transformer for Manuscripts applications",
4
- "version": "3.0.17",
4
+ "version": "3.0.19",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-transform",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",