@manuscripts/transform 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +193 -0
  3. package/dist/cjs/errors.js +17 -0
  4. package/dist/cjs/index.js +27 -0
  5. package/dist/cjs/jats/importer/index.js +24 -0
  6. package/dist/cjs/jats/importer/jats-body-dom-parser.js +650 -0
  7. package/dist/cjs/jats/importer/jats-body-transformations.js +269 -0
  8. package/dist/cjs/jats/importer/jats-comments.js +131 -0
  9. package/dist/cjs/jats/importer/jats-front-parser.js +341 -0
  10. package/dist/cjs/jats/importer/jats-journal-meta-parser.js +77 -0
  11. package/dist/cjs/jats/importer/jats-parser-utils.js +145 -0
  12. package/dist/cjs/jats/importer/jats-reference-parser.js +180 -0
  13. package/dist/cjs/jats/importer/parse-jats-article.js +237 -0
  14. package/dist/cjs/jats/index.js +40 -0
  15. package/dist/cjs/jats/jats-exporter.js +1569 -0
  16. package/dist/cjs/jats/jats-versions.js +41 -0
  17. package/dist/cjs/lib/attributes.js +26 -0
  18. package/dist/cjs/lib/html.js +48 -0
  19. package/dist/cjs/lib/styled-content.js +28 -0
  20. package/dist/cjs/lib/table-cell-styles.js +52 -0
  21. package/dist/cjs/lib/utils.js +66 -0
  22. package/dist/cjs/mathjax/index.js +41 -0
  23. package/dist/cjs/mathjax/mathjax-packages.js +20 -0
  24. package/dist/cjs/mathjax/mathml-to-svg.js +56 -0
  25. package/dist/cjs/mathjax/tex-to-mathml.js +49 -0
  26. package/dist/cjs/mathjax/tex-to-svg.js +59 -0
  27. package/dist/cjs/schema/groups.js +31 -0
  28. package/dist/cjs/schema/index.js +195 -0
  29. package/dist/cjs/schema/marks.js +159 -0
  30. package/dist/cjs/schema/nodes/attribution.js +32 -0
  31. package/dist/cjs/schema/nodes/bibliography_element.js +44 -0
  32. package/dist/cjs/schema/nodes/bibliography_item.js +101 -0
  33. package/dist/cjs/schema/nodes/bibliography_section.js +46 -0
  34. package/dist/cjs/schema/nodes/blockquote_element.js +62 -0
  35. package/dist/cjs/schema/nodes/caption.js +52 -0
  36. package/dist/cjs/schema/nodes/caption_title.js +51 -0
  37. package/dist/cjs/schema/nodes/citation.js +52 -0
  38. package/dist/cjs/schema/nodes/comment.js +26 -0
  39. package/dist/cjs/schema/nodes/cross_reference.js +58 -0
  40. package/dist/cjs/schema/nodes/doc.js +21 -0
  41. package/dist/cjs/schema/nodes/equation.js +55 -0
  42. package/dist/cjs/schema/nodes/equation_element.js +52 -0
  43. package/dist/cjs/schema/nodes/figcaption.js +31 -0
  44. package/dist/cjs/schema/nodes/figure.js +52 -0
  45. package/dist/cjs/schema/nodes/figure_element.js +78 -0
  46. package/dist/cjs/schema/nodes/footnote.js +67 -0
  47. package/dist/cjs/schema/nodes/footnotes_element.js +54 -0
  48. package/dist/cjs/schema/nodes/footnotes_section.js +45 -0
  49. package/dist/cjs/schema/nodes/graphical_abstract_section.js +46 -0
  50. package/dist/cjs/schema/nodes/hard_break.js +30 -0
  51. package/dist/cjs/schema/nodes/highlight_marker.js +53 -0
  52. package/dist/cjs/schema/nodes/inline_equation.js +58 -0
  53. package/dist/cjs/schema/nodes/inline_footnote.js +51 -0
  54. package/dist/cjs/schema/nodes/keywords_element.js +52 -0
  55. package/dist/cjs/schema/nodes/keywords_section.js +46 -0
  56. package/dist/cjs/schema/nodes/link.js +61 -0
  57. package/dist/cjs/schema/nodes/list.js +121 -0
  58. package/dist/cjs/schema/nodes/listing.js +73 -0
  59. package/dist/cjs/schema/nodes/listing_element.js +52 -0
  60. package/dist/cjs/schema/nodes/manuscript.js +46 -0
  61. package/dist/cjs/schema/nodes/missing_figure.js +50 -0
  62. package/dist/cjs/schema/nodes/paragraph.js +63 -0
  63. package/dist/cjs/schema/nodes/placeholder.js +49 -0
  64. package/dist/cjs/schema/nodes/placeholder_element.js +48 -0
  65. package/dist/cjs/schema/nodes/pullquote_element.js +65 -0
  66. package/dist/cjs/schema/nodes/section.js +94 -0
  67. package/dist/cjs/schema/nodes/section_label.js +30 -0
  68. package/dist/cjs/schema/nodes/section_title.js +48 -0
  69. package/dist/cjs/schema/nodes/table.js +70 -0
  70. package/dist/cjs/schema/nodes/table_col.js +57 -0
  71. package/dist/cjs/schema/nodes/table_element.js +62 -0
  72. package/dist/cjs/schema/nodes/table_row.js +123 -0
  73. package/dist/cjs/schema/nodes/text.js +21 -0
  74. package/dist/cjs/schema/nodes/toc_element.js +52 -0
  75. package/dist/cjs/schema/nodes/toc_section.js +46 -0
  76. package/dist/cjs/schema/types.js +17 -0
  77. package/dist/cjs/tests.js +30 -0
  78. package/dist/cjs/transformer/builders.js +305 -0
  79. package/dist/cjs/transformer/bundles-data.js +36 -0
  80. package/dist/cjs/transformer/bundles.js +32 -0
  81. package/dist/cjs/transformer/decode.js +619 -0
  82. package/dist/cjs/transformer/document-object-types.js +31 -0
  83. package/dist/cjs/transformer/encode.js +545 -0
  84. package/dist/cjs/transformer/filename.js +27 -0
  85. package/dist/cjs/transformer/footnote-category.js +20 -0
  86. package/dist/cjs/transformer/footnotes-order.js +59 -0
  87. package/dist/cjs/transformer/highlight-markers.js +126 -0
  88. package/dist/cjs/transformer/html.js +414 -0
  89. package/dist/cjs/transformer/id.js +28 -0
  90. package/dist/cjs/transformer/index.js +54 -0
  91. package/dist/cjs/transformer/labels.js +85 -0
  92. package/dist/cjs/transformer/manuscript-dependencies.js +74 -0
  93. package/dist/cjs/transformer/model-map.js +26 -0
  94. package/dist/cjs/transformer/models.js +17 -0
  95. package/dist/cjs/transformer/node-names.js +42 -0
  96. package/dist/cjs/transformer/node-title.js +87 -0
  97. package/dist/cjs/transformer/node-types.js +62 -0
  98. package/dist/cjs/transformer/object-types.js +57 -0
  99. package/dist/cjs/transformer/project-bundle.js +86 -0
  100. package/dist/cjs/transformer/section-category.js +222 -0
  101. package/dist/cjs/transformer/serializer.js +23 -0
  102. package/dist/cjs/transformer/shared-data.js +31 -0
  103. package/dist/cjs/transformer/tei-grobid-importer.js +121 -0
  104. package/dist/cjs/transformer/timestamp.js +20 -0
  105. package/dist/cjs/transformer/update-identifiers.js +93 -0
  106. package/dist/cjs/types.js +2 -0
  107. package/dist/es/errors.js +12 -0
  108. package/dist/es/index.js +9 -0
  109. package/dist/es/jats/importer/index.js +16 -0
  110. package/dist/es/jats/importer/jats-body-dom-parser.js +644 -0
  111. package/dist/es/jats/importer/jats-body-transformations.js +266 -0
  112. package/dist/es/jats/importer/jats-comments.js +124 -0
  113. package/dist/es/jats/importer/jats-front-parser.js +335 -0
  114. package/dist/es/jats/importer/jats-journal-meta-parser.js +70 -0
  115. package/dist/es/jats/importer/jats-parser-utils.js +139 -0
  116. package/dist/es/jats/importer/jats-reference-parser.js +177 -0
  117. package/dist/es/jats/importer/parse-jats-article.js +229 -0
  118. package/dist/es/jats/index.js +18 -0
  119. package/dist/es/jats/jats-exporter.js +1561 -0
  120. package/dist/es/jats/jats-versions.js +36 -0
  121. package/dist/es/lib/attributes.js +22 -0
  122. package/dist/es/lib/html.js +43 -0
  123. package/dist/es/lib/styled-content.js +23 -0
  124. package/dist/es/lib/table-cell-styles.js +47 -0
  125. package/dist/es/lib/utils.js +59 -0
  126. package/dist/es/mathjax/index.js +12 -0
  127. package/dist/es/mathjax/mathjax-packages.js +17 -0
  128. package/dist/es/mathjax/mathml-to-svg.js +52 -0
  129. package/dist/es/mathjax/tex-to-mathml.js +45 -0
  130. package/dist/es/mathjax/tex-to-svg.js +55 -0
  131. package/dist/es/schema/groups.js +27 -0
  132. package/dist/es/schema/index.js +178 -0
  133. package/dist/es/schema/marks.js +156 -0
  134. package/dist/es/schema/nodes/attribution.js +29 -0
  135. package/dist/es/schema/nodes/bibliography_element.js +41 -0
  136. package/dist/es/schema/nodes/bibliography_item.js +98 -0
  137. package/dist/es/schema/nodes/bibliography_section.js +42 -0
  138. package/dist/es/schema/nodes/blockquote_element.js +58 -0
  139. package/dist/es/schema/nodes/caption.js +49 -0
  140. package/dist/es/schema/nodes/caption_title.js +48 -0
  141. package/dist/es/schema/nodes/citation.js +48 -0
  142. package/dist/es/schema/nodes/comment.js +23 -0
  143. package/dist/es/schema/nodes/cross_reference.js +55 -0
  144. package/dist/es/schema/nodes/doc.js +18 -0
  145. package/dist/es/schema/nodes/equation.js +52 -0
  146. package/dist/es/schema/nodes/equation_element.js +49 -0
  147. package/dist/es/schema/nodes/figcaption.js +28 -0
  148. package/dist/es/schema/nodes/figure.js +49 -0
  149. package/dist/es/schema/nodes/figure_element.js +74 -0
  150. package/dist/es/schema/nodes/footnote.js +63 -0
  151. package/dist/es/schema/nodes/footnotes_element.js +50 -0
  152. package/dist/es/schema/nodes/footnotes_section.js +41 -0
  153. package/dist/es/schema/nodes/graphical_abstract_section.js +42 -0
  154. package/dist/es/schema/nodes/hard_break.js +27 -0
  155. package/dist/es/schema/nodes/highlight_marker.js +49 -0
  156. package/dist/es/schema/nodes/inline_equation.js +55 -0
  157. package/dist/es/schema/nodes/inline_footnote.js +47 -0
  158. package/dist/es/schema/nodes/keywords_element.js +49 -0
  159. package/dist/es/schema/nodes/keywords_section.js +42 -0
  160. package/dist/es/schema/nodes/link.js +58 -0
  161. package/dist/es/schema/nodes/list.js +117 -0
  162. package/dist/es/schema/nodes/listing.js +69 -0
  163. package/dist/es/schema/nodes/listing_element.js +49 -0
  164. package/dist/es/schema/nodes/manuscript.js +43 -0
  165. package/dist/es/schema/nodes/missing_figure.js +47 -0
  166. package/dist/es/schema/nodes/paragraph.js +59 -0
  167. package/dist/es/schema/nodes/placeholder.js +46 -0
  168. package/dist/es/schema/nodes/placeholder_element.js +45 -0
  169. package/dist/es/schema/nodes/pullquote_element.js +61 -0
  170. package/dist/es/schema/nodes/section.js +90 -0
  171. package/dist/es/schema/nodes/section_label.js +26 -0
  172. package/dist/es/schema/nodes/section_title.js +44 -0
  173. package/dist/es/schema/nodes/table.js +67 -0
  174. package/dist/es/schema/nodes/table_col.js +54 -0
  175. package/dist/es/schema/nodes/table_element.js +59 -0
  176. package/dist/es/schema/nodes/table_row.js +120 -0
  177. package/dist/es/schema/nodes/text.js +18 -0
  178. package/dist/es/schema/nodes/toc_element.js +49 -0
  179. package/dist/es/schema/nodes/toc_section.js +42 -0
  180. package/dist/es/schema/types.js +16 -0
  181. package/dist/es/tests.js +28 -0
  182. package/dist/es/transformer/builders.js +261 -0
  183. package/dist/es/transformer/bundles-data.js +8 -0
  184. package/dist/es/transformer/bundles.js +27 -0
  185. package/dist/es/transformer/decode.js +608 -0
  186. package/dist/es/transformer/document-object-types.js +28 -0
  187. package/dist/es/transformer/encode.js +535 -0
  188. package/dist/es/transformer/filename.js +23 -0
  189. package/dist/es/transformer/footnote-category.js +16 -0
  190. package/dist/es/transformer/footnotes-order.js +53 -0
  191. package/dist/es/transformer/highlight-markers.js +120 -0
  192. package/dist/es/transformer/html.js +407 -0
  193. package/dist/es/transformer/id.js +23 -0
  194. package/dist/es/transformer/index.js +38 -0
  195. package/dist/es/transformer/labels.js +81 -0
  196. package/dist/es/transformer/manuscript-dependencies.js +64 -0
  197. package/dist/es/transformer/model-map.js +22 -0
  198. package/dist/es/transformer/models.js +16 -0
  199. package/dist/es/transformer/node-names.js +39 -0
  200. package/dist/es/transformer/node-title.js +82 -0
  201. package/dist/es/transformer/node-types.js +55 -0
  202. package/dist/es/transformer/object-types.js +52 -0
  203. package/dist/es/transformer/project-bundle.js +77 -0
  204. package/dist/es/transformer/section-category.js +210 -0
  205. package/dist/es/transformer/serializer.js +17 -0
  206. package/dist/es/transformer/shared-data.js +1 -0
  207. package/dist/es/transformer/tei-grobid-importer.js +115 -0
  208. package/dist/es/transformer/timestamp.js +16 -0
  209. package/dist/es/transformer/update-identifiers.js +87 -0
  210. package/dist/es/types.js +1 -0
  211. package/dist/types/errors.d.ts +6 -0
  212. package/dist/types/index.d.ts +9 -0
  213. package/dist/types/jats/importer/index.d.ts +16 -0
  214. package/dist/types/jats/importer/jats-body-dom-parser.d.ts +24 -0
  215. package/dist/types/jats/importer/jats-body-transformations.d.ts +31 -0
  216. package/dist/types/jats/importer/jats-comments.d.ts +26 -0
  217. package/dist/types/jats/importer/jats-front-parser.d.ts +62 -0
  218. package/dist/types/jats/importer/jats-journal-meta-parser.d.ts +37 -0
  219. package/dist/types/jats/importer/jats-parser-utils.d.ts +23 -0
  220. package/dist/types/jats/importer/jats-reference-parser.d.ts +23 -0
  221. package/dist/types/jats/importer/parse-jats-article.d.ts +30 -0
  222. package/dist/types/jats/index.d.ts +18 -0
  223. package/dist/types/jats/jats-exporter.d.ts +72 -0
  224. package/dist/types/jats/jats-versions.d.ts +23 -0
  225. package/dist/types/lib/attributes.d.ts +20 -0
  226. package/dist/types/lib/html.d.ts +17 -0
  227. package/dist/types/lib/styled-content.d.ts +22 -0
  228. package/dist/types/lib/table-cell-styles.d.ts +27 -0
  229. package/dist/types/lib/utils.d.ts +26 -0
  230. package/dist/types/mathjax/index.d.ts +3 -0
  231. package/dist/types/mathjax/mathjax-packages.d.ts +16 -0
  232. package/dist/types/mathjax/mathml-to-svg.d.ts +17 -0
  233. package/dist/types/mathjax/tex-to-mathml.d.ts +17 -0
  234. package/dist/types/mathjax/tex-to-svg.d.ts +17 -0
  235. package/dist/types/schema/groups.d.ts +22 -0
  236. package/dist/types/schema/index.d.ts +65 -0
  237. package/dist/types/schema/marks.d.ts +27 -0
  238. package/dist/types/schema/nodes/attribution.d.ts +21 -0
  239. package/dist/types/schema/nodes/bibliography_element.d.ts +26 -0
  240. package/dist/types/schema/nodes/bibliography_item.d.ts +36 -0
  241. package/dist/types/schema/nodes/bibliography_section.d.ts +26 -0
  242. package/dist/types/schema/nodes/blockquote_element.d.ts +28 -0
  243. package/dist/types/schema/nodes/caption.d.ts +25 -0
  244. package/dist/types/schema/nodes/caption_title.d.ts +25 -0
  245. package/dist/types/schema/nodes/citation.d.ts +27 -0
  246. package/dist/types/schema/nodes/comment.d.ts +31 -0
  247. package/dist/types/schema/nodes/cross_reference.d.ts +26 -0
  248. package/dist/types/schema/nodes/doc.d.ts +17 -0
  249. package/dist/types/schema/nodes/equation.d.ts +28 -0
  250. package/dist/types/schema/nodes/equation_element.d.ts +29 -0
  251. package/dist/types/schema/nodes/figcaption.d.ts +21 -0
  252. package/dist/types/schema/nodes/figure.d.ts +25 -0
  253. package/dist/types/schema/nodes/figure_element.d.ts +44 -0
  254. package/dist/types/schema/nodes/footnote.d.ts +32 -0
  255. package/dist/types/schema/nodes/footnotes_element.d.ts +28 -0
  256. package/dist/types/schema/nodes/footnotes_section.d.ts +26 -0
  257. package/dist/types/schema/nodes/graphical_abstract_section.d.ts +26 -0
  258. package/dist/types/schema/nodes/hard_break.d.ts +21 -0
  259. package/dist/types/schema/nodes/highlight_marker.d.ts +29 -0
  260. package/dist/types/schema/nodes/inline_equation.d.ts +28 -0
  261. package/dist/types/schema/nodes/inline_footnote.d.ts +27 -0
  262. package/dist/types/schema/nodes/keywords_element.d.ts +27 -0
  263. package/dist/types/schema/nodes/keywords_section.d.ts +26 -0
  264. package/dist/types/schema/nodes/link.d.ts +26 -0
  265. package/dist/types/schema/nodes/list.d.ts +39 -0
  266. package/dist/types/schema/nodes/listing.d.ts +33 -0
  267. package/dist/types/schema/nodes/listing_element.d.ts +29 -0
  268. package/dist/types/schema/nodes/manuscript.d.ts +23 -0
  269. package/dist/types/schema/nodes/missing_figure.d.ts +23 -0
  270. package/dist/types/schema/nodes/paragraph.d.ts +30 -0
  271. package/dist/types/schema/nodes/placeholder.d.ts +26 -0
  272. package/dist/types/schema/nodes/placeholder_element.d.ts +25 -0
  273. package/dist/types/schema/nodes/pullquote_element.d.ts +28 -0
  274. package/dist/types/schema/nodes/section.d.ts +36 -0
  275. package/dist/types/schema/nodes/section_label.d.ts +22 -0
  276. package/dist/types/schema/nodes/section_title.d.ts +22 -0
  277. package/dist/types/schema/nodes/table.d.ts +27 -0
  278. package/dist/types/schema/nodes/table_col.d.ts +24 -0
  279. package/dist/types/schema/nodes/table_element.d.ts +35 -0
  280. package/dist/types/schema/nodes/table_row.d.ts +41 -0
  281. package/dist/types/schema/nodes/text.d.ts +17 -0
  282. package/dist/types/schema/nodes/toc_element.d.ts +27 -0
  283. package/dist/types/schema/nodes/toc_section.d.ts +26 -0
  284. package/dist/types/schema/types.d.ts +45 -0
  285. package/dist/types/tests.d.ts +16 -0
  286. package/dist/types/transformer/builders.d.ts +74 -0
  287. package/dist/types/transformer/bundles-data.d.ts +3 -0
  288. package/dist/types/transformer/bundles.d.ts +3 -0
  289. package/dist/types/transformer/decode.d.ts +38 -0
  290. package/dist/types/transformer/document-object-types.d.ts +17 -0
  291. package/dist/types/transformer/encode.d.ts +29 -0
  292. package/dist/types/transformer/filename.d.ts +16 -0
  293. package/dist/types/transformer/footnote-category.d.ts +17 -0
  294. package/dist/types/transformer/footnotes-order.d.ts +23 -0
  295. package/dist/types/transformer/highlight-markers.d.ts +26 -0
  296. package/dist/types/transformer/html.d.ts +36 -0
  297. package/dist/types/transformer/id.d.ts +20 -0
  298. package/dist/types/transformer/index.d.ts +38 -0
  299. package/dist/types/transformer/labels.d.ts +24 -0
  300. package/dist/types/transformer/manuscript-dependencies.d.ts +12 -0
  301. package/dist/types/transformer/model-map.d.ts +19 -0
  302. package/dist/types/transformer/models.d.ts +48 -0
  303. package/dist/types/transformer/node-names.d.ts +17 -0
  304. package/dist/types/transformer/node-title.d.ts +19 -0
  305. package/dist/types/transformer/node-types.d.ts +22 -0
  306. package/dist/types/transformer/object-types.d.ts +29 -0
  307. package/dist/types/transformer/project-bundle.d.ts +30 -0
  308. package/dist/types/transformer/section-category.d.ts +28 -0
  309. package/dist/types/transformer/serializer.d.ts +19 -0
  310. package/dist/types/transformer/shared-data.d.ts +2 -0
  311. package/dist/types/transformer/tei-grobid-importer.d.ts +20 -0
  312. package/dist/types/transformer/timestamp.d.ts +16 -0
  313. package/dist/types/transformer/update-identifiers.d.ts +23 -0
  314. package/dist/types/types.d.ts +2 -0
  315. package/package.json +89 -0
@@ -0,0 +1,650 @@
1
+ "use strict";
2
+ /*!
3
+ * © 2020 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.jatsBodyDOMParser = void 0;
22
+ const mime_1 = __importDefault(require("mime"));
23
+ const prosemirror_model_1 = require("prosemirror-model");
24
+ const mathml_to_svg_1 = require("../../mathjax/mathml-to-svg");
25
+ const tex_to_svg_1 = require("../../mathjax/tex-to-svg");
26
+ const schema_1 = require("../../schema");
27
+ const transformer_1 = require("../../transformer");
28
+ const XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
29
+ const chooseContentType = (graphicNode) => {
30
+ if (graphicNode) {
31
+ const mimetype = graphicNode.getAttribute('mimetype');
32
+ const subtype = graphicNode.getAttribute('mime-subtype');
33
+ if (mimetype && subtype) {
34
+ return [mimetype, subtype].join('/');
35
+ }
36
+ const href = graphicNode.getAttributeNS(XLINK_NAMESPACE, 'href');
37
+ if (href) {
38
+ return mime_1.default.getType(href) || undefined;
39
+ }
40
+ }
41
+ };
42
+ const marks = [
43
+ {
44
+ tag: 'bold',
45
+ mark: 'bold',
46
+ },
47
+ {
48
+ tag: 'code',
49
+ mark: 'code',
50
+ },
51
+ {
52
+ tag: 'italic',
53
+ mark: 'italic',
54
+ },
55
+ {
56
+ tag: 'sc',
57
+ mark: 'smallcaps',
58
+ },
59
+ {
60
+ tag: 'strike',
61
+ mark: 'strikethrough',
62
+ },
63
+ {
64
+ tag: 'styled-content',
65
+ mark: 'styled',
66
+ getAttrs: (node) => ({
67
+ style: node.getAttribute('style'),
68
+ }),
69
+ },
70
+ {
71
+ tag: 'sub',
72
+ mark: 'subscript',
73
+ },
74
+ {
75
+ tag: 'sup',
76
+ mark: 'superscript',
77
+ },
78
+ {
79
+ tag: 'underline',
80
+ mark: 'underline',
81
+ },
82
+ ];
83
+ const nodes = [
84
+ {
85
+ tag: 'attrib',
86
+ node: 'attribution',
87
+ },
88
+ {
89
+ tag: 'back',
90
+ ignore: true,
91
+ },
92
+ {
93
+ tag: 'body',
94
+ node: 'manuscript',
95
+ },
96
+ {
97
+ tag: 'break',
98
+ node: 'hard_break',
99
+ },
100
+ {
101
+ tag: 'caption',
102
+ node: 'figcaption',
103
+ context: 'figure/',
104
+ },
105
+ {
106
+ tag: 'caption',
107
+ node: 'figcaption',
108
+ context: 'figure_element/',
109
+ getContent: (node, schema) => {
110
+ const element = node;
111
+ const content = [];
112
+ const title = element.querySelector('title');
113
+ if (title) {
114
+ const captionTitle = schema.nodes.caption_title.create();
115
+ content.push(exports.jatsBodyDOMParser.parse(title, { topNode: captionTitle }));
116
+ }
117
+ const paragraphs = element.querySelectorAll('p');
118
+ if (paragraphs.length) {
119
+ const figcaption = schema.nodes.caption.create();
120
+ for (const paragraph of paragraphs) {
121
+ content.push(exports.jatsBodyDOMParser.parse(paragraph, { topNode: figcaption }));
122
+ }
123
+ }
124
+ return prosemirror_model_1.Fragment.from(content);
125
+ },
126
+ },
127
+ {
128
+ tag: 'caption',
129
+ node: 'figcaption',
130
+ context: 'table_element/',
131
+ },
132
+ {
133
+ tag: 'code',
134
+ node: 'listing',
135
+ context: 'listing_element/',
136
+ getAttrs: (node) => {
137
+ var _a, _b, _c;
138
+ const element = node;
139
+ return {
140
+ id: element.getAttribute('id'),
141
+ language: (_a = element.getAttribute('language')) !== null && _a !== void 0 ? _a : '',
142
+ contents: (_c = (_b = element.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '',
143
+ };
144
+ },
145
+ },
146
+ {
147
+ tag: 'inline-formula',
148
+ node: 'inline_equation',
149
+ getAttrs: (node) => {
150
+ var _a, _b, _c, _d, _e;
151
+ const element = node;
152
+ const attrs = {
153
+ id: element.getAttribute('id'),
154
+ MathMLRepresentation: '',
155
+ SVGRepresentation: '',
156
+ TeXRepresentation: '',
157
+ };
158
+ const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
159
+ for (const child of container.childNodes) {
160
+ const nodeName = child.nodeName.replace(/^[a-z]:/, '');
161
+ switch (nodeName) {
162
+ case 'tex-math':
163
+ attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
164
+ if (attrs.TeXRepresentation) {
165
+ attrs.SVGRepresentation =
166
+ (_d = (0, tex_to_svg_1.convertTeXToSVG)(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
167
+ }
168
+ break;
169
+ case 'mml:math':
170
+ ;
171
+ child.removeAttribute('id');
172
+ attrs.MathMLRepresentation = transformer_1.xmlSerializer.serializeToString(child);
173
+ if (attrs.MathMLRepresentation) {
174
+ attrs.SVGRepresentation =
175
+ (_e = (0, mathml_to_svg_1.convertMathMLToSVG)(attrs.MathMLRepresentation, true)) !== null && _e !== void 0 ? _e : '';
176
+ }
177
+ break;
178
+ }
179
+ }
180
+ return attrs;
181
+ },
182
+ },
183
+ {
184
+ tag: 'disp-formula',
185
+ node: 'equation_element',
186
+ getAttrs: (node) => {
187
+ const element = node;
188
+ const caption = element.querySelector('figcaption');
189
+ return {
190
+ id: element.getAttribute('id'),
191
+ suppressCaption: !caption,
192
+ };
193
+ },
194
+ getContent: (node, schema) => {
195
+ var _a, _b, _c, _d, _e;
196
+ const element = node;
197
+ const attrs = {
198
+ MathMLStringRepresentation: '',
199
+ SVGStringRepresentation: '',
200
+ TeXRepresentation: '',
201
+ };
202
+ const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
203
+ for (const child of container.childNodes) {
204
+ const nodeName = child.nodeName.replace(/^[a-z]:/, '');
205
+ switch (nodeName) {
206
+ case 'tex-math':
207
+ attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
208
+ if (attrs.TeXRepresentation) {
209
+ attrs.SVGStringRepresentation =
210
+ (_d = (0, tex_to_svg_1.convertTeXToSVG)(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
211
+ }
212
+ break;
213
+ case 'mml:math':
214
+ ;
215
+ child.removeAttribute('id');
216
+ attrs.MathMLStringRepresentation =
217
+ transformer_1.xmlSerializer.serializeToString(child);
218
+ if (attrs.MathMLStringRepresentation) {
219
+ attrs.SVGStringRepresentation =
220
+ (_e = (0, mathml_to_svg_1.convertMathMLToSVG)(attrs.MathMLStringRepresentation, true)) !== null && _e !== void 0 ? _e : '';
221
+ }
222
+ break;
223
+ }
224
+ }
225
+ const caption = element.querySelector('figcaption');
226
+ const figcaption = schema.nodes.figcaption.create();
227
+ return prosemirror_model_1.Fragment.from([
228
+ schema.nodes.equation.createChecked(attrs),
229
+ caption
230
+ ?
231
+ exports.jatsBodyDOMParser.parse(caption, {
232
+ topNode: figcaption,
233
+ })
234
+ : figcaption,
235
+ ]);
236
+ },
237
+ },
238
+ {
239
+ tag: 'disp-quote[content-type=quote]',
240
+ node: 'blockquote_element',
241
+ getAttrs: (node) => {
242
+ const element = node;
243
+ return {
244
+ id: element.getAttribute('id'),
245
+ };
246
+ },
247
+ },
248
+ {
249
+ tag: 'disp-quote[content-type=pullquote]',
250
+ node: 'pullquote_element',
251
+ getAttrs: (node) => {
252
+ const element = node;
253
+ return {
254
+ id: element.getAttribute('id'),
255
+ };
256
+ },
257
+ },
258
+ {
259
+ tag: 'ext-link',
260
+ node: 'link',
261
+ getAttrs: (node) => {
262
+ const element = node;
263
+ return {
264
+ href: element.getAttributeNS(XLINK_NAMESPACE, 'href') || '',
265
+ title: element.getAttributeNS(XLINK_NAMESPACE, 'title') || '',
266
+ };
267
+ },
268
+ },
269
+ {
270
+ tag: 'fig[fig-type=equation]',
271
+ node: 'equation_element',
272
+ getAttrs: (node) => {
273
+ const element = node;
274
+ return {
275
+ id: element.getAttribute('id'),
276
+ };
277
+ },
278
+ },
279
+ {
280
+ tag: 'fig[fig-type=listing]',
281
+ node: 'listing_element',
282
+ getAttrs: (node) => {
283
+ const element = node;
284
+ return {
285
+ id: element.getAttribute('id'),
286
+ };
287
+ },
288
+ },
289
+ {
290
+ tag: 'graphic[specific-use=MISSING]',
291
+ node: 'missing_figure',
292
+ context: 'figure_element/',
293
+ getAttrs: (node) => {
294
+ const element = node;
295
+ return {
296
+ id: element.getAttribute('id'),
297
+ };
298
+ },
299
+ },
300
+ {
301
+ tag: 'graphic',
302
+ node: 'figure',
303
+ context: 'figure_element/',
304
+ getAttrs: (node) => {
305
+ const element = node;
306
+ const position = element.getAttribute('position');
307
+ const src = element.getAttributeNS(XLINK_NAMESPACE, 'href');
308
+ return {
309
+ id: element.getAttribute('id'),
310
+ contentType: chooseContentType(element || undefined) || '',
311
+ src,
312
+ position,
313
+ };
314
+ },
315
+ },
316
+ {
317
+ tag: 'fig',
318
+ node: 'figure_element',
319
+ getAttrs: (node) => {
320
+ var _a, _b, _c, _d;
321
+ const element = node;
322
+ const labelNode = element.querySelector('label');
323
+ if (labelNode) {
324
+ element.removeChild(labelNode);
325
+ }
326
+ const attrib = element.querySelector('attrib');
327
+ const position = element.getAttribute('position');
328
+ const attribution = attrib
329
+ ? {
330
+ literal: (_b = (_a = attrib.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '',
331
+ }
332
+ : undefined;
333
+ return {
334
+ id: element.getAttribute('id'),
335
+ label: (_d = (_c = labelNode === null || labelNode === void 0 ? void 0 : labelNode.textContent) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : '',
336
+ attribution: attribution,
337
+ position,
338
+ };
339
+ },
340
+ },
341
+ {
342
+ tag: 'ref',
343
+ node: 'bibliography_item',
344
+ context: 'bibliography_element/',
345
+ getAttrs: (node) => {
346
+ const element = node;
347
+ const ref = {
348
+ id: element.getAttribute('id'),
349
+ type: element.getAttribute('type'),
350
+ };
351
+ const author = element.getAttribute('author');
352
+ if (author) {
353
+ ref.author = author;
354
+ }
355
+ const issued = element.getAttribute('issued');
356
+ if (issued) {
357
+ ref.issued = issued;
358
+ }
359
+ const containerTitle = element.getAttribute('container-title');
360
+ if (containerTitle) {
361
+ ref.containerTitle = containerTitle;
362
+ }
363
+ const doi = element.getAttribute('doi');
364
+ if (doi) {
365
+ ref.doi = doi;
366
+ }
367
+ const volume = element.getAttribute('volume');
368
+ if (volume) {
369
+ ref.volume = volume;
370
+ }
371
+ const issue = element.getAttribute('issue');
372
+ if (issue) {
373
+ ref.issue = issue;
374
+ }
375
+ const supplement = element.getAttribute('supplement');
376
+ if (supplement) {
377
+ ref.supplement = supplement;
378
+ }
379
+ const page = element.getAttribute('page');
380
+ if (page) {
381
+ ref.page = page;
382
+ }
383
+ const title = element.getAttribute('title');
384
+ if (title) {
385
+ ref.title = title;
386
+ }
387
+ const literal = element.getAttribute('literal');
388
+ if (literal) {
389
+ ref.literal = literal;
390
+ }
391
+ return ref;
392
+ },
393
+ },
394
+ {
395
+ tag: 'ref-list',
396
+ node: 'bibliography_element',
397
+ context: 'bibliography_section/',
398
+ getAttrs: (node) => {
399
+ const element = node;
400
+ const titleNode = element.querySelector('title');
401
+ if (titleNode) {
402
+ element.removeChild(titleNode);
403
+ }
404
+ return {
405
+ id: element.getAttribute('id'),
406
+ contents: '',
407
+ };
408
+ },
409
+ },
410
+ {
411
+ tag: 'fn-group',
412
+ node: 'footnotes_element',
413
+ context: 'footnotes_section/',
414
+ getAttrs: (node) => {
415
+ const element = node;
416
+ return {
417
+ id: element.getAttribute('id'),
418
+ kind: 'footnote',
419
+ };
420
+ },
421
+ },
422
+ {
423
+ tag: 'table-wrap-foot',
424
+ node: 'footnotes_element',
425
+ getAttrs: (node) => {
426
+ const element = node;
427
+ return {
428
+ id: element.getAttribute('id'),
429
+ kind: 'table_footnote',
430
+ };
431
+ },
432
+ },
433
+ {
434
+ tag: 'fn',
435
+ node: 'footnote',
436
+ context: 'footnotes_element/',
437
+ getAttrs: (node) => {
438
+ const element = node;
439
+ return {
440
+ id: element.getAttribute('id'),
441
+ kind: 'footnote',
442
+ };
443
+ },
444
+ },
445
+ {
446
+ tag: 'front',
447
+ ignore: true,
448
+ },
449
+ {
450
+ tag: 'list[list-type=bullet]',
451
+ node: 'bullet_list',
452
+ getAttrs: (node) => {
453
+ const element = node;
454
+ return {
455
+ id: element.getAttribute('id'),
456
+ };
457
+ },
458
+ },
459
+ {
460
+ tag: 'list[list-type=order]',
461
+ node: 'ordered_list',
462
+ getAttrs: (node) => {
463
+ const element = node;
464
+ return {
465
+ id: element.getAttribute('id'),
466
+ };
467
+ },
468
+ },
469
+ {
470
+ tag: 'list-item',
471
+ node: 'list_item',
472
+ },
473
+ {
474
+ tag: 'p',
475
+ node: 'paragraph',
476
+ context: 'section/',
477
+ getAttrs: (node) => {
478
+ const element = node;
479
+ return {
480
+ id: element.getAttribute('id'),
481
+ };
482
+ },
483
+ },
484
+ {
485
+ tag: 'p',
486
+ node: 'paragraph',
487
+ },
488
+ {
489
+ tag: 'sec[sec-type="endnotes"]',
490
+ node: 'footnotes_section',
491
+ getAttrs: (node) => {
492
+ const element = node;
493
+ return {
494
+ id: element.getAttribute('id'),
495
+ };
496
+ },
497
+ },
498
+ {
499
+ tag: 'sec[sec-type="bibliography"]',
500
+ node: 'bibliography_section',
501
+ getAttrs: (node) => {
502
+ const element = node;
503
+ return {
504
+ id: element.getAttribute('id'),
505
+ };
506
+ },
507
+ },
508
+ {
509
+ tag: 'sec',
510
+ node: 'section',
511
+ getAttrs: (node) => {
512
+ const element = node;
513
+ return {
514
+ id: element.getAttribute('id'),
515
+ category: (0, transformer_1.chooseSectionCategory)(element),
516
+ };
517
+ },
518
+ },
519
+ {
520
+ tag: 'label',
521
+ context: 'section/',
522
+ node: 'section_label',
523
+ },
524
+ {
525
+ tag: 'label',
526
+ context: 'table_element/',
527
+ ignore: true,
528
+ },
529
+ {
530
+ tag: 'label',
531
+ context: 'figure/',
532
+ ignore: true,
533
+ },
534
+ {
535
+ tag: 'table',
536
+ node: 'table',
537
+ getAttrs: (node) => {
538
+ const element = node;
539
+ return {
540
+ id: element.getAttribute('id'),
541
+ };
542
+ },
543
+ },
544
+ {
545
+ tag: 'table-wrap',
546
+ node: 'table_element',
547
+ getAttrs: (node) => {
548
+ const element = node;
549
+ return {
550
+ id: element.getAttribute('id'),
551
+ suppressFooter: !element.querySelector('table > tfoot > tr'),
552
+ suppressHeader: !element.querySelector('table > thead > tr'),
553
+ };
554
+ },
555
+ },
556
+ {
557
+ tag: 'tbody',
558
+ skip: true,
559
+ },
560
+ {
561
+ tag: 'tfoot',
562
+ skip: true,
563
+ },
564
+ {
565
+ tag: 'thead',
566
+ skip: true,
567
+ },
568
+ {
569
+ tag: 'title',
570
+ node: 'section_title',
571
+ context: 'section/|footnotes_section/|bibliography_section/',
572
+ },
573
+ {
574
+ tag: 'title',
575
+ node: 'caption_title',
576
+ context: 'figcaption/',
577
+ },
578
+ {
579
+ tag: 'tr',
580
+ node: 'table_row',
581
+ },
582
+ {
583
+ tag: 'td',
584
+ node: 'table_cell',
585
+ getAttrs: (node) => {
586
+ const element = node;
587
+ const colspan = element.getAttribute('colspan');
588
+ const rowspan = element.getAttribute('rowspan');
589
+ return Object.assign(Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })), { valign: element.getAttribute('valign'), align: element.getAttribute('align'), scope: element.getAttribute('scope'), style: element.getAttribute('style') });
590
+ },
591
+ },
592
+ {
593
+ tag: 'th',
594
+ node: 'table_cell',
595
+ getAttrs: (node) => {
596
+ const element = node;
597
+ const colspan = element.getAttribute('colspan');
598
+ const rowspan = element.getAttribute('rowspan');
599
+ return Object.assign(Object.assign(Object.assign({ celltype: 'th' }, (colspan && { colspan })), (rowspan && { rowspan })), { valign: element.getAttribute('valign'), align: element.getAttribute('align'), scope: element.getAttribute('scope'), style: element.getAttribute('style') });
600
+ },
601
+ },
602
+ {
603
+ tag: 'col',
604
+ node: 'table_col',
605
+ getAttrs: (node) => {
606
+ const element = node;
607
+ return {
608
+ width: element.getAttribute('width'),
609
+ };
610
+ },
611
+ },
612
+ {
613
+ tag: 'colgroup',
614
+ node: 'table_colgroup',
615
+ },
616
+ {
617
+ tag: 'xref[ref-type="bibr"]',
618
+ node: 'citation',
619
+ getAttrs: (node) => {
620
+ const element = node;
621
+ return {
622
+ rid: element.getAttribute('rid'),
623
+ contents: element.textContent,
624
+ };
625
+ },
626
+ },
627
+ {
628
+ tag: 'xref[ref-type="fn"]',
629
+ node: 'inline_footnote',
630
+ getAttrs: (node) => {
631
+ const element = node;
632
+ return {
633
+ rid: element.getAttribute('rid'),
634
+ contents: element.textContent,
635
+ };
636
+ },
637
+ },
638
+ {
639
+ tag: 'xref',
640
+ node: 'cross_reference',
641
+ getAttrs: (node) => {
642
+ const element = node;
643
+ return {
644
+ rid: element.getAttribute('rid'),
645
+ label: element.textContent,
646
+ };
647
+ },
648
+ },
649
+ ];
650
+ exports.jatsBodyDOMParser = new prosemirror_model_1.DOMParser(schema_1.schema, [...marks, ...nodes]);